Vai ai contenuti

Vita Da Zazu

Pensieri, idee strampalate, accrocchi e pazzie

Archivio

Tag: Voip

Il GNR Virtuale di Eutelia è un prodotto molto interessante, in pratica si tratta di un Account Voip sul quale poggia un radicale telefonico da 10 a 100 numeri; per maggiori dettagli sulle specifiche, questo il link di riferimento:

Eutelia GNR Virtuale

In questo articolo vi illustrerò come configurare correttamente il GNR su Elastix;

naturalmente, questa configurazione con pochi accorgimenti si può tranquillamente adattare ad una installazione Standard di Asterisk priva di interfacce di gestione.

– Se vogliamo usare la selezione passante occorre avere almeno una linea ADSL con IP fisso, altrimenti, per una policy di sicurezza non è possibile uscire con gli interni.

– Contrattualmente, per poter usare gli interni del GNR in uscita occorre avere la selezione passante abilitata, altrimenti le chiamate usciranno sempre dal numero capofila.

Passiamo ora alla configurazione di base per gestire la NAT, che a meno di avere un modem, sussiste con un qualsiasi router ADSL:

apriamo l’interfaccia web di Elastix e spostiamoci nel menù PBX > Tools > Asterisk file editor, qui cerchiamo il file sip_general_custom.conf e lo andiamo a modificare inserendo questo contenuto:

stunaddr=stun.voip.eutelia.it:3478
localnet=172.16.10.0/255.255.255.0
bindport=5060
externrefresh=120
language=it
t38pt_udptl=yes

il parametro stunaddr fa sì che lo stun decreti qual’è il nostro IP pubblico;
localnet è necessario per far conoscere ad asterisk la nostra rete locale e in base a questa decide quando applicare le impostazioni per la NAT;
bindport indica la porta sulla quale il nostro server è in ascolto;
t38pt_udptl attiva globalmente il supporto T.38 per il passaggio dei fax.

Al posto dello stunaddr possiamo usare alternativamente altri due parametri, ma la scelta dello STUN, in alcune situazioni si rivela sempre più funzionale quindi io lo adotto a priori, anche in caso di IP fisso:

externip=XXX.XXX.XXX.XXX
externhost=www.mioindirizzo.it

Per attivare queste impostazioni di rete serve un restart di Asterisk:

dal menù PBX > Tools > Asterisk-Cli scriviamo il comando “core restart now”  seguito dal tasto “Esegui”

 __________________________________________________________________________

Andiamo ora a configurare il nostro Trunk:

Andiamo in PBX > PBX Configuration > Trunks :

Clicchiamo Add SIP Trunk

Trunk Description: Eutelia1

Outbound Caller ID: 0123456789 <— Qui va inserito il capofila del nostro GNR

CID Options: Allow Any CID

[…]

Trunk Name: Eutelia1

PEER Details:

type=peer
srvlookup=yes
secret=XXXXXXXXXXX
regseconds=60
realm=voip.eutelia.it
qualify=yes
port=5060
outboundproxy=voip.eutelia.it
nat=yes
insecure=port,invite
host=voip.eutelia.it
;fromuser=0123456789
fromdomain=voip.eutelia.it
disallow=all
directmedia=no
defaultuser=0123456789
context=from-pstn-toheader
dtmfmode=info
allow=ulaw&alaw&gsm&g726&ilbc

USER Context: from-pstn-toheader

svuotiamo il contenuto di USER Details

 

Register String:

0123456789:XXXXXXXXXX:0123456789@voip.eutelia.it:5060/s

Clicchiamo “Submit Changes

* l’uso del contesto from-pstn-toheader ci permette di gestire l’ ingresso di tutti i numeri del GNR;

 __________________________________________________________________________

Configuriamo un interno:

nel menù PBX > PBX Configuration > Extensions click su Add Extension selezioniamo Generic SIP device e click su “Submit”

User Extension  200

Display Name  Utente

Outbound CID  0123456789  <— Qui va inserito il numero di telefono che vogliamo usare in uscita. possiamo selezionare un numero qualsiasi di quelli nel nostro GNR.

Ring Time 45

secret  XXXXXXXXX

dtmfmode  rfc2833

Language Code  it

Clicchiamo il tasto Submit

tutti i parametri non citati sono opzionali e non necessari ad un funzionamento base dell’interno

adesso occorre rientrare nell’utente appena creato e modificarlo;

click in alto a destra su Utente <200> e modifichiamo due parametri:

canreinvite  yes
nat  no

e di nuovo click su Submit;

questa modifica è consigliabile per tutti i telefoni che risiedono all’interno della nostra rete interna;

se dobbiamo registrare un telefono remoto in pubblica (via internet), i due parametri devono rimanere esattamente al contrario canreinvite no e  nat yes.

 __________________________________________________________________________

Configurazione delle rotte in ingresso:

entriamo nella sezione PBX > PBX Configuration > Inbound Routes

creiamo ad esempio una rotta in ingresso per il numero 0123456789

Description: 200

DID Number: 0123456789
Set Destination
Extensions:  <200> Utente

con questo settaggio abbiamo impostato che una chiamata entrante sul numero 0123456789 viene inoltrata all’interno 200

 __________________________________________________________________________

Configurazione delle rotte in uscita:

nella sezione PBX > PBX Configuration > Outbound Routes

Route Name:  tutto
Dial Patterns  XX.
Trunk Sequence  SIP/Eutelia1

click su Submit Changes

questa regola farà uscire dal nostro GNR tutte le chiamate di qualunque genere.

non resta che fare click sulla banda rosa in alto     Apply Configuration Changes Here      per confermare tutte le modifiche.

adesso abbiamo un  semplice centralino con un configurazione di base in grado di gestire correttamente il nostro GNR virtuale Eutelia.

Buone telefonate a tutti.

A seguito di un aggiornamento di Asterisk e qui sono stato stupido per non aver prima fatto un backup :roll:, ricordate bambini, il backup è una cosa importante, più delle forbici dalla punta arrotondata!

Insomma, mi sono ritrovato con il mio centralino casalingo che non effettuava più chiamate uscenti da nessun account VOIP;

dato che prima funzionava, poi ha smesso, 2+2=3,5… la colpa è dell’aggiornamento!

Quindi, armato di pazienza e anche di tempo, perché ho perso 4 o 5 giorni dietro al problema bestemmiofero, sono giunto a riscrivere una configurazione funzionante anche nell’ultima relase di asterisk…

vado qui ad illustrare:

sip.conf   pre-aggiornamento sip.conf post-aggiornamento
[general]
bindport=5060
context=incoming
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
disallow=all
allow=ulaw
qualify=yes
language=it
dtmfmode=info
localnet=172.16.10.0/24
rtptimeout=60
rtpholdtimeout=300

;messagenet
register => 5xxxxxx:YYYYYYYY@sip.messagenet.it:5061
/messagenet

;chepnet
register => 6969xxxxxx:YYYYYYYY@sip.cheapnet.it
/cheapnet

[cheapnet]
type=peer
defaultuser=6969xxxxxx
fromuser=6969xxxxxx
secret=YYYYYYYY
host=sip.cheapnet.it
port=5060
insecure=port,invite
context=incoming
nat=yes
srvlookup=yes
canreinvite=no
disallow=all
allow=gsm
allow=ulaw
allow=alaw
allow=g726
allow=ilbc

[messagenet]
type=peer
defaultuser=5xxxxxx
fromuser=5xxxxxx
secret=YYYYYYYY
host=sip.messagenet.it
port=5061
insecure=port,invite
context=incoming
nat=yes
srvlookup=yes
canreinvite=no
disallow=all
allow=gsm
allow=ulaw
allow=alaw
allow=g726
allow=ilbc

[general]
bindport=5060
context=incoming
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
disallow=all
allow=ulaw
language=it
dtmfmode=info
localnet=172.16.10.0/24
rtptimeout=60
rtpholdtimeout=300

;messagenet
register => 5xxxxxx:YYYYYYYY@sip.messagenet.it:5061
/messagenet

;chepnet
register => 6969xxxxxx:YYYYYYYY@sip.cheapnet.it
/cheapnet

[cheapnet]
type=peer
defaultuser=6969xxxxxx@sip.cheapnet.it
fromuser=6969xxxxxx
secret=YYYYYYYY
host=sip.cheapnet.it
fromdomain=sip.cheapnet.it
outboundproxy=sip.cheapnet.it
realm=sip.cheapnet.it
port=5060
regseconds=60
insecure=port,invite
context=incoming
qualify=yes
nat=yes
srvlookup=yes
canreinvite=no
directmedia=no
disallow=all
allow=gsm
allow=ulaw
allow=alaw
allow=g726
allow=ilbc

[messagenet]
type=peer
defaultuser=5xxxxxx@sip.messagenet.it
fromuser=5xxxxxx
secret=YYYYYYYY
host=sip.messagenet.it
fromdomain=sip.messagenet.it
outboundproxy=sip.messagenet.it
realm=sip.messagenet.it
port=5061
regseconds=60
insecure=port,invite
context=incoming
qualify=yes
nat=yes
srvlookup=yes
canreinvite=no
directmedia=no
disallow=all
allow=gsm
allow=ulaw
allow=alaw
allow=g726
allow=ilbc

per completezza questo è quanto serve dentro extensions.conf affinché quanto scritto sopra funzioni:

[incoming]

exten => cheapnet,1,Dial(SIP/INTERNO)
exten => messagenet,1,Dial(SIP/INTERNO)

[outgoing]

exten => _53.,1,Dial(SIP/${EXTEN}@messagenet)
exten => _XXX.,1,Macro(dial-failover,SIP/${EXTEN}@messagenet,SIP/${EXTEN}@cheapnet)

[macro-dial-failover]

exten => s,1,Dial(${ARG1})
exten => s,2,Goto(s-${DIALSTATUS},1)
exten => s-CONGESTION,1,Dial(${ARG2})

GXP2000-pic

Ok, se sei arrivato qui hai tentato di aggiornare il firmware di un GXP-2000 e qualcosa è andato storto. :(

Non è detto che un aggiornamento fallito comporti l’aver “brickato” definitivamente il telefono…

come capire se il nostro telefono è recuperabile?

i sintomi di un brick reversibile sono:

  • led tutti accesi e luce MWI lampeggiante;
  • una scritta sullo schermo ci informa che sta tentando il recovery del firmware via TFTP.

In queste condizioni il nostro telefono può essere resuscitato;

armati di buona volontà iniziamo ad allestire la sala operatoria:

personalmente uso OpenSUSE come sistema operativo, quindi alcuni dei comandi usati saranno prettamente validi solo su questa distribuzione.

Ci occorrerà un server TFTP:

# zypper in atftp

ora dobbiamo configurare ed attivare il server TFTP;

per prima cosa occorre creare la cartella “root” del nostro server (per comodità io l’ho creata sul mio desktop):

$ mkdir /home/zazu/Scrivania/tftp

ora scarichiamo dal sito della Granstream l’ultimo firmware disponibile per il GXP2000 e scompattiamo il tutto dentro la nostra cartella “tftp”, i files strettamente necessari sono: “boot55.bin” e “gxp2000.bin” ma per sicurezza meglio metterli tutti 😉

adesso dobbiamo avviare il server, lo facciamo molto semplicemente con questo comando:

# atftpd --daemon /home/zazu/Scrivania/tftp/

per verificarne il funzionamento, con “netstat -natup | grep 69″ possiamo verificare l’esistenza del server tftp in ascolto.

PASSO 2

Configuriamo la rete e abbassiamo SuSEfirewall.

Consiglio di mettere uno switch tra noi e il telefono per evitare di perdere le configurazioni della nostra scheda di rete;

i parametri da impostare sono i seguenti:

# rcSuSEfirewall2 stop
# ifconfig eth0 168.75.215.188 netmask 0.0.0.0 up
# route add default gw 168.75.215.188

Adesso accendiamo il nostro Grandstream (collegato allo switch) e se tutto è corretto questo inizierà il recovery  TFTP  e sarà in grado di recuperare il firmware dal nostro computer

quando avrà finito sarà diventato nuovamente funzionante :)

WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera