...

Interfacciare Asterisk ed Alice Voce

by user

on
Category: Documents
17

views

Report

Comments

Transcript

Interfacciare Asterisk ed Alice Voce
Interfacciare Asterisk ed Alice Voce
Introduzione
Seguendo questo tutorial è possibile configurare Asterisk per ricevere ed inviare chiamate tramite
Asterisk, su Linux, verso e da una linea Alice Voce.
Prerequisiti
1. Scheda di rete aggiuntiva
2. Python 2.x
3. I sorgenti di Asterisk, per ricompilarlo
Come fare
Installazione della scheda di rete
Dovrete collegare il vostro server Asterisk al router Alice Voce con una scheda ed un indirizzo IP riservati
esclusivamente al VoIP.
Il router Alice Gate, apparentemente, una volta attivato il servizio Alice Voce gestisce non una,
ma due connessioni diverse, forse su VC/VP (virtual channel/virtual path) diversi, e certamente con
indirizzi IP diversi.
Quale delle due connessioni sia impiegata per un certo IP della rete interna lo stabilisce l’associazione
ad un dato numero Alice Voce, e questa associazione non è fatta a livello di indirizzo IP, ma a livello di
MAC address -- l’indirizzo fisico della scheda di rete. Pertanto, se vorrete usare una scheda sola dovrete
rinunciare alla connettività verso Internet tramite Alice Gate. (Se avete un altro router con un altro
collegamento, e desiderate utilizzare quello, non è un problema).
Nota
È possibile che si riesca ad evitare di utilizzare due schede di rete utilizzando il pacchetto ebtables,
ma non ho compiuto esperimenti.
Una strada percorribile sarebbe: creare una interfaccia di rete dummy0 con il proprio indirizzo IP
sulla rete locale ed il proprio MAC address autonomo, e configurare il brouting, MAC SNAT e
MAC DNAT come in questo esempio.
Nel seguito, supporremo che la vostra scheda di rete per il VoIP si chiami eth1.
Patch e ricompilazione di Asterisk
Scompattare i sorgenti di Asterisk e portarsi nella loro directory. Applicare la patch fornita con:
patch -p0 < /percorso/sip-alice.diff
1
Procedere poi alla ricompilazione ed installazione come indicato nella documentazione di Asterisk.
Nota
La patch fornita è relativa alla versione 1.4.17 di Asterisk. È probabile che funzioni anche con
altre versioni, ma non è garantito; in questo caso può essere necessaria qualche piccola modifica.
Installazione del software
Scompattate il software ed installatelo con il classico comando:
# python setup.py install
File di configurazione
Il software fornito fa essenzialmente due cose:
1. dialoga con il router per attivare e disattivare le numerazioni VoIP;
2. crea automaticamente i files di configurazione per Asterisk.
Copiate i files di configurazione pivelli.ini e *_template.conf nella directory /etc/pivelli.
Modificate il file pivelli.ini secondo i commenti al suo interno.
Ricordatevi di impostare almeno l’interfaccia di rete con l’opzione bind_iface, ad es. bind_iface=eth1.
Indicare i numeri VoIP è facoltativo. Se volete gli automatismi all’attivazione delle numerazioni
VoIP, cioè la scrittura dei files di configurazione di Asterisk e l’impostazione delle route, attivate le
opzioni relative.
Test del software
Il comando alice-client.py va eseguito sempre come utente root, altrimenti non può scegliere l’interfaccia di rete giusta quando comunica con il router.
Eseguite il comando:
# alice-client.py --status
Comparirà una lista delle numerazioni VoIP disponibili, ed un valore True o False che indica se
sono disponibili per la registrazione oppure no.
Eseguite il comando:
# alice-client.py --enable-all --verbose
Comparirà un’elenco delle numerazioni abilitate ed il relativo proxy in uscita.
Ricordatevi di modificare il file degli hosts /etc/hosts, e di aggiungere la riga:
80.11.22.33 wifi.apt.telecomitalia.it
dove 80.11.22.33 è l’indirizzo IP del proxy come comunicato dal comando.
A questo punto, il gioco dovrebbe essere fatto!
2
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à)
verso l’operatore. Si presume che questo serva a isolare la rete IP su cui lavorano gli apparati di centrale
da Internet e ad allocare efficacemente la banda destinata alle comunicazioni VoIP.
Ciascun nodo della rete interna può comunicare soltanto con una delle due connessioni, e non entrambe. 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
navigare.
Con chi parliamo?
Un esame dei messaggi SIP scambiati riporta:
Server: SHS/rel-3_7_3m StarSIP/rel-2_7_3y
durante la fase di registrazione, e:
Server: SSW/0.0.0
alla terminazione di alcune richieste. Corrispondono all’architettura su switch di Classe 5 Italtel
descritta in numerosi documenti (esempi: 1, 2, 3, 4).
Patch di Asterisk
Usando Asterisk senza patch, la registrazione al proxy SIP appare impossibile per un misterioso UDB
Internal Error 1. Pare che in qualche punto la comunicazione tra SHS, StarSIP (le parti che gestiscono i messaggi SIP) e UDB (il DB universale con i dati degli utenti) si interrompa quando si usa un
Call-ID troppo lungo nel messaggio SIP.
Asterisk li genera utilizzando 32 caratteri random seguiti da ’@’ e l’identificativo dello host locale;
RFC 3261 non riporta esplicitamente limitazioni sulla lunghezza né nella sezione 8.1.1.4 né nella sezione
20.8.
Ad ogni modo, limitando i caratteri ad 8, diventa possibile registrarsi correttamente.
3
Fly UP