Archivi tag: sip provider

Configurarazione di Asterisk per cheapvoip Italia (cheapnet.it)

Premessa

Dopo aver avuto a che fare con Asterisk durante le mie ultime attività lavorative, ho deciso di creare un piccolo testbed casalingo, in modo da approfondire bene il funzionamento di tale applicativo, al netto di alcune customizzazioni e configurazioni ad hoc ereditate dal campo. Infatti, secondo la mia opinione, il modo più rapido per riuscire a padroneggiare una determinata tecnologia consiste nella realizzazione ex novo dell’infrastruttura che ne fa uso (ovviamente su scala ridotta), configurando manualmente i vari software coinvolti (in questo caso Asterisk ed i telefoni VOIP utilizzati come client).

asteriskScelta del sip provider

Tra i diversi sip provider che ho passato al vaglio la scelta è ricaduta su cheapvoip Italia, sicuramente uno dei migliori in termini di costi/benefici.  E’ sufficiente registrarsi, scegliere il numero geografico per la nostra linea e pagare i 6 € di credito telefonico iniziale (il quale potrà essere ulteriormente incrementato in un secondo momento). I 6 € si riferiscono al piano tariffario Standard.

Una volta attivato l’account ed il numero geografico possiamo procedere con la configurazione del nostro PBX open source.

Configurazione di Asterisk

Per configurare Asterisk occorre operare dapprima sul file /etc/asterisk/sip.conf, inserendo le informazioni relative alla registrazione verso il provider. Occorre notare, inoltre, che tale registrazione è mandatoria per le chiamate in ingresso (inbound), mentre per quelle in uscita (outbound) non è richiesta. In particolare, sarà necessario aggiungere la seguente direttiva:

register => 6554XXXXXX:password@sip.cheapnet.it/6554XXXXXX

all’interno della sezione [general] del suddetto file di configurazione. Tale direttiva ha il seguente formato:

voipusername:voippassword@sipproxy/extension

dove voipusername ed extension coincidono (corrispondono semplicemente al numero VOIP fornitoci dal sip provider).

A questo punto possiamo definire gli interni da utilizzare, ad esempio il 7001 ed il 7002:

[7001]
type=friend
host=dynamic
context=from-sip
callerid=Test1 <7001>
secret=passaccount
context=internal

[7002]
type=friend
host=dynamic
context=from-sip
callerid=Test1 <7002>
secret=passaccount
context=internal

Bene, ora non ci resta che definire i parametri per le chiamate in ingresso ed in uscita:

[cheapvoip-inbound]
type=peer
username=6554XXXXXX@sip.cheapnet.it
secret=<vostra voippassword>
fromuser=6554XXXXXX
fromdomain=sip.cheapnet.it
host=sip.cheapnet.it
outboundproxy=sip.cheapnet.it
context=cheapvoip-in
insecure=port,invite
realm=sip.cheapnet.it
nat=yes
qualify=yes
regseconds=60
disallow=all
allow=alaw
allow=ulaw
allow=g729
[cheapvoip-outbound]
type=peer
callerid="Vostro identificativo testuale" <vostro numero geografico>
username=6554XXXXXX@sip.cheapnet.it
secret=pass
fromuser=6554XXXXXX
fromdomain=sip.cheapnet.it
host=sip.cheapnet.it
outboundproxy=sip.cheapnet.it
context=cheapvoip-in
insecure=port,invite
realm=sip.cheapnet.it
nat=yes
qualify=yes
regseconds=60
disallow=all
allow=alaw
allow=ulaw
allow=g72

Ho deciso di separare le chiamate in ingresso da quelle in uscita poichè, in quest’ultimo caso, voglio sovrascrivere il caller id di default creando una stringa ad hoc da usare come identificativo.

Salviamo le modifiche apportate al suddetto file e passiamo alla configurazione di /etc/asterisk/extensions.conf, che dovrà essere simile alla seguente:

[internal]

include => cheapvoip-in
include => cheapvoip-out

exten => 7001,1,Answer()
exten => 7001,2,Dial(SIP/7001,60)
exten => 7001,3,Hangup()

exten => 7002,1,Answer()
exten => 7002,2,Dial(SIP/7002,60)
exten => 7002,3,Hangup()

[cheapvoip-in]

exten =>  6554XXXXXX,1,Dial(SIP/7001&SIP/7002)

[cheapvoip-out]

exten => _X.,1,Dial(SIP/${EXTEN}@cheapvoip-outbound)

Nel contesto [internal] ho incluso le regole definite in [cheapvoip-out] e [cheapvoip-in]. Ho inoltre definito le actions per ciascun interno ed ho imposto la chiamata simultanea su entrambi in caso di telefonata proveniente dall’esterno:

Dial(SIP/7001&SIP/7002)

Infine, in caso di chiamata verso l’esterno, si dovrà procedere con l’inoltro della stessa verso il sip provider, sfruttando la configurazione definita in [cheapvoip-outbound] del file /etc/asterisk/sip.conf. Da notare che il pattern _X. rappresenta semplicemente una dialplan, dove _ indica il carattere che demarca l’inizio della stessa, X rappresenta tutti i digit da 0 a 9 e . indica una o più occorrenze di tali digit.

A configurazione ultimata sarà sufficiente ricaricare la configurazione di Asterisk mediante il comando:

[root@PBX ~]# service asterisk reload

Port forwarding

Per le chiamate in ingresso è necessario che il sip provider sia in grado di comunicare con il nostro PBX attraverso la porta 5060, protocollo UDP. Per fare ciò occorre consentire in ingresso tale tipologia di traffico sul nostro router (definendo anche le opportune regole di port forwarding). E’ bene restringere il filtro al solo IP sorgente  87.238.30.10 (sip.cheapnet.it).

 Client

Il client che ho utilizzato è un softphone scaricabile gratuitamente da Internet, ovvero Zoiper.

Fine del post, alla prossima.