Introduzione
Seguendo questo tutorial ` possibile congurare Asterisk per ricevere ed inviare chiamate tramite e Asterisk, su Linux, verso e da una linea Alice Voce. Inoltre, una seconda parte spiega come congurare il proprio server per collegare i dispostivi Aladino VoIP ad Asterisk.
Prerequisiti
1. Python 2.x 2. I sorgenti di Asterisk, per ricompilarlo (per la parte Alice Voce).
Nota
` La patch fornita ` relativa alla versione 1.4.17 di Asterisk. E probabile che funzioni anche con e altre versioni, ma non ` garantito; in questo caso pu` essere necessaria qualche piccola modica. e o
Alias IP
Aggiungete un alias nuovo alla vostra scheda di rete. Supponiamo che vogliate usare lindirizzo IP 192.168.0.10: baster` il comando: a ifconfig eth0:1 192.168.0.10 Per rendere la modica permanente, in Debian/Ubuntu vi baster` aggiungere al le /etc/network/interfaces a qualcosa come: auto eth0:1 iface eth0:1 inet static address 192.168.0.10 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 Si pu` attivare subito con ifup eth0:1; al reboot verr` comunque automaticamente attivata. o a
File di congurazione
Il software fornito fa essenzialmente due cose: 1. dialoga con il router per attivare e disattivare le numerazioni VoIP; 2. crea automaticamente i les di congurazione per Asterisk. Copiate i les di congurazione pivelli.ini e *_template.conf nella directory /etc/pivelli. Modicate il le pivelli.ini secondo i commenti al suo interno. Ricordatevi di impostare almeno lindirizzo IP per il VoIP con lopzione bind_ip, ad es. bind_ip=192.168.0.10. Indicare i numeri VoIP ` facoltativo. Se volete gli automatismi allattivazione delle numerazioni e VoIP, cio` la scrittura dei les di congurazione di Asterisk e limpostazione delle route, attivate le e opzioni relative.
dove 80.11.22.33 ` lindirizzo IP del proxy come comunicato dal comando. e ` E indispensabile che Asterisk comunichi con Telecom Italia tramite lIP aggiuntivo (192.168.0.10), e con il resto del mondo tramite lIP originale (192.168.0.2). A questo ne, lasciate abilitata nel le di congurazione di esempio lopzione per impostare il routing, oppure eseguite manualmente: ip route add 80.11.22.33 via 192.168.0.1 src 192.168.0.10 A questo punto, il gioco dovrebbe essere fatto!
Server DHCP
Oltre allindirizzo IP, la base pu` ricevere dal server DHCP una URL alla quale contattare il registration o manager di Telecom Italia. Possiamo approttare di questa particolarit` per fornire una URL fasulla a sul nostro server, in modo che la base eviti di contattare lesterno, se non per ricevere la data e lora dal server NTP di Telecom. Le indicazioni fornite sono per il server ISC DHCP versione 3, il pacchetto fornito in Ubuntu e Debian come dhcp3-server. In questo caso il le di congurazione ` /etc/dhcp3/dhcpd.conf; in altre e distribuzioni potrebbe essere diverso. Si suppone che il server DHCP sia gi` operativo e correttamente a congurato. Innanzitutto dobbiamo denire lo spazio congurazione personalizzato per i dispositivi TR-069. In questo modo DHCPD ci permette di utilizzare una sintassi facilitata. Aggiungiamo in testa al le di congurazione le righe: option space REGMAN; option option option option option REGMAN.url code 1 = text; REGMAN.cpeid code 2 = text; REGMAN.hexcode code 3 = text; REGMAN.mac code 4 = text; REGMAN.devicename code 5 = text;
Poi dobbiamo specicare le opzioni aggiuntive per i dispositivi VoIP. In fondo al le, dopo le denizioni gi` operative per la nostra rete locale, aggiungiamo: a class dslforum { match if substring (option vendor-class-identifier, 0, 12) = dslforum.org; option dhcp-parameter-request-list = concat(option dhcp-parameterrequest-list,2b,3c); option vendor-class-identifier dslforum.org;
option REGMAN.url http://192.168.0.2/acs-empty/; vendor-option-space REGMAN; option routers 192.168.0.2; } (Nota: fate riferimento al le asterisk.txt per la sintassi esatta, perch la trasformazione in PDF e pu` far sparire delle indispensabili virgolette.) o La riga match chiede al server DHCP di applicare le denizioni contenute nella classe soltanto ai dispositivi che si identicano con la vendor class dslforum.org. La seconda riga costringe il server a fornire i parametri 0x2b (43, Vendor Options) e 0x3c (60, Vendor Class Identier) anche se il dispositivo non li ha richiesti esplicitamente. Seguono i parametri richiesti, con la URL ttizia (si tratta di un qualsiasi le non presente sul vostro web server). Lultima riga specica il gateway da utilizzare; ` e importante, perch la base lo user` anche come web server a cui richiedere i parametri per il provisioning. e a
Web server
Leseguibile alice-cgi.py fornito ` uno script CGI che gestisce il provisioning dei dispositivi. e Per prima cosa, create la directory specicata nel le di congurazione pivelli.ini come status_dir, e rendetene proprietario lutente del web server. Ad esempio: # mkdir -p /var/run/pivelli # chown www-data /var/run/pivelli Poi congurate il web server per rendere lo script visibile allurl http://192.168.0.2/aptconfig.xml. Nel caso di Apache 2.x, vi baster` aggiungere al le di congurazione (in uninstallazione standard di a Debian/Ubuntu ` /etc/apache2/sites-available/default): e ScriptAlias /aptconfig.xml /usr/bin/alice-cgi.py <Files /usr/bin/alice-cgi.py> Options +ExecCGI Order deny,allow Deny from all Allow from 192.168.0.0/255.255.255.0 </Files> Vericate aprendo lurl http://192.168.0.2/aptcong.xml?WINDWEB URL=/doc2/askcli: dovrebbe comparire un le XML che indica come Available tutte le numerazioni da voi congurate.
IPTables
Purtroppo, la base Aladino VoIP in mio possesso sembra leggere dal le di congurazione soltanto il numero telefonico, ignorando le altre impostazioni (dominio SIP, password, outbound proxy). Pertanto si rende necessario aggiungere il dominio wi.apt.telecomitalia.it a quelli gestiti da Asterisk, non utilizzare una password ed intercettare le comunicazioni verso loutbound proxy, che ` anche registration e proxy. Questultima cosa pu` essere fatta direttamente con il supporto di rete di Linux. Alla catena o PREROUTING della tabella nat di IPTables bisogna aggiungere lentry: Chain PREROUTING (policy ACCEPT 4090 packets, 302K bytes) pkts bytes target prot opt in out source stination 8 4201 REDIRECT udp -- eth0 any anywhere dir ports 5060 de80.11.22.33 udp dpt:sip re-
Se utilizzate lottimo Shorewall, questo risultato si pu` ottenere semplicemente aggiungendo al le o /etc/shorewall/rules la riga:
REDIRECT
loc
5060
udp
5060 -
80.11.22.33
(dove ovviamente 80.11.22.33 ` il vostro outbound proxy, come fornito dal router Alice e recuperato, e per esempio, da alice-client.py -a -v).
Asterisk
Modicate il le sip.conf per rendere utilizzabile il dominio wifi.apt.telecomitalia.it, aggiungendolo allopzione domains nella sezione [general]. Ad esempio: [general] domains=192.168.0.2,alternativa.xyz.net,wifi.apt.telecomitalia.it Nel le sip.conf o in un qualsiasi le da lui incluso, ad esempio sip-phones.d/aladino.conf, aggiungete le entry per i singoli client. Ad esempio: [204] type=peer context=default host=dynamic allow=alaw [205] type=peer context=default host=dynamic allow=alaw ` E importante specicare il codec (allow=alaw), o la comunicazione probabilmente non funzioner`. a A questo punto, siete pronti|
Note aggiuntive
Se avete pi` basi DECT o altri dispositivi compatibili con il sistema di Telecom Italia e desiderate u limitare la lista di numerazioni accessibili, specicatele nella sezione [local_lines] di pivelli.ini. Ogni indirizzo IP che abbia la propria riga di congurazione vedr` soltanto le numerazioni elencate su a quella riga. Gli altri vedranno solo le numerazioni elencate nella riga default=. Ovviamente ` possibile e elencare la stessa numerazione su pi` righe; un solo dispositivo alla volta, per`, potr` registrarla. u o a Se avete cordless DECT aggiuntivi, di qualsiasi tipo, e volete registrarli sulla base Aladino VoIP, potete farlo dalla pagina web interna della base DECT. Ad esempio, se alla base DECT ` stato assegnato e lindirizzo IP 192.168.0.91, la potrete congurare allindirizzo http://192.168.0.91.
Appendice tecnica
Architettura
Qualche ricerca su Internet suggerisce che il sistema Alice Voce funzioni in questo modo: il router Alice Gate crea due connessioni parallele (pi`, eventualmente, altre per la telegestione o altre funzionalit`) u a verso loperatore. Si presume che questo serva a isolare la rete IP su cui lavorano gli apparati di centrale da Internet e ad allocare ecacemente la banda destinata alle comunicazioni VoIP. Ciascun nodo della rete interna pu` comunicare soltanto con una delle due connessioni, e non eno trambe. Per default, un nodo della rete interna comunica con Internet. Quando desidera comunicare con la rete destinata al VoIP, deve usare le API messe a disposizione dal router agli indirizzi web:
http://router-ip/aptconfig.xml?WINDWEB_URL=%2Fdoc2%2Faskcli per ottenere un elenco XML delle numerazioni disponibili e del loro stato; http://router-ip/aptconfig.xml?WINDWEB_URL=%2Fdoc2%2Fsetcli&CLI=0212345678 per associarsi ad una numerazione; http://router-ip/aptconfig.xml?WINDWEB_URL=%2Fdoc2%2Fdelallcli per disassociarsi da Alice Voce. Questo ` anche il motivo per cui una macchina su cui gira Il Telefono di Alice non ` in grado di e e navigare.