Vai ai contenuti

Vita Da Zazu

Pensieri, idee strampalate, accrocchi e pazzie

Archivio

Tag: centralino

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.

Lavorando in un’azienda multisede, dopo aver sostituito tutti i vecchi centralini analogici con Asterisk, la prima richiesta fatta è:

si può far sì che le nostre telefonate infra-sede siano gratuite?

La risposta è ovviamente si 😮 (a patto che le sedi da collegare abbiano una connessione adsl, o comunque a banda larga ma questo è un altro discorso)

dopo un minimo di studio della problematica sono arrivato alla scelta di IAX come protocollo di interconnessione asterisk to asterisk.

Oltre ad essere il protocollo nativo di asterisk, iax ha anche altri vantaggi; per esempio:

  • può incapsulare tutto il traffico in un unico canale;
  • usa una sola porta di comunicazione;
  • l’attraversamento delle NAT è nativo, e non da problemi;
  • permette di selezionare il punto di arrivo nel dialplan di destinazione  sin dall’origine….

…e comunque tante altre piccole funzionalità che nell’insieme lo rendono imbattibile.

INSOMMA COME SI INTERCONNETTONO DUE CENTRALINI IN MANIERA SEMPLICE?

la soluzione è stata più semplice del previsto e l’idea di base è paragonabile a quella su cui si basa una VPN

ma veniamo al sodo:

abbiamo due centralini (Homer e Marge) di cui vado ad illustrare iax.conf:

HOMER MARGE
iax.conf:

[general]

bindport=4569
bindaddr=0.0.0.0
language=it
bandwidth=medium
disallow=all
allow=gsm
allow=alaw
allow=ulaw
jitterbuffer=no
forcejitterbuffer=no
autokill=yes
requirecalltoken=no
;maxcallnumbers=512
mailboxdetail=yes

[marge]
type=friend
username=homer
secret=<password>
auth=plaintext
host=marge.mydomain.it
context=fromiax
peercontext=fromiax
qualify=yes
trunk=yes

iax.conf:

[general]

bindport=4569
bindaddr=0.0.0.0
language=it
bandwidth=medium
disallow=all
allow=gsm
allow=alaw
allow=ulaw
jitterbuffer=no
forcejitterbuffer=no
autokill=yes
requirecalltoken=no
;maxcallnumbers=512
mailboxdetail=yes

[homer]
type=friend
username=marge
secret=<password>
auth=plaintext
host=homer.mydomain.it
context=fromiax
peercontext=fromiax
qualify=yes
trunk=yes

Le righe da inserire in extensions.conf a questo punto sono abbastanza semplici e logiche;

occorre una riga nel contesto di uscita con un prefisso di nostro gradimento (99) per chiamare gli interni dell’altro e una riga per le chiamate entranti:

HOMER MARGE
extensions.conf

[outgoing]

[…]

exten => _99XXX,1,Dial(IAX2/marge/${EXTEN:2})

[…]

[fromiax]
exten => _X.,1,Goto(outgoing,${EXTEN},1)

extensions.conf

[outgoing]

[…]

exten => _99XXX,1,Dial(IAX2/homer/${EXTEN:2})

[…]

[fromiax]
exten => _X.,1,Goto(outgoing,${EXTEN},1)

Le chiamate “fromiax” le redirigo in outgoing perché nel mio caso questo è anche il contesto in cui si trovano gli interni.

Ora si pone un piccolo problema:

come distinguere chi chiama dall’altra sede?

Se la reception nella sede “Marge” chiama un interno nella sede “Homer” quest’ultimo vedrà arrivare una chiamata da “Reception”, indistinto dalla reception locale;

questo effetto collaterale può generare molta confusione e per ovviare a ciò ho pensato ad una piccola macro, questa imposta il CallerID a seconda della sede di provenienza, extensions.conf quindi andrà così modificato:

HOMER MARGE
extensions.conf

[outgoing]

[…]

exten => _99XXX,1,Macro(set-iax-callerid,IAX2/marge/${EXTEN:2})

[…]

[fromiax]
exten => _X.,1,Goto(outgoing,${EXTEN},1)

[macro-set-iax-callerid]

;aggiunge un TAG di riconoscimento al CID dei chiamanti
; ARG1 è l’estensione da chiamare

exten => s,1,Set(CALLERID(name)=${CALLERID(name)} – Homer)
exten => s,2,Dial(${ARG1})

extensions.conf

[outgoing]

[…]

exten => _99XXX,1,Macro(set-iax-callerid,IAX2/homer/${EXTEN:2})

[…]

[fromiax]
exten => _X.,1,Goto(outgoing,${EXTEN},1)

[macro-set-iax-callerid]

;aggiunge un TAG di riconoscimento al CID dei chiamanti
; ARG1 è l’estensione da chiamare

exten => s,1,Set(CALLERID(name)=${CALLERID(name)} – Marge)
exten => s,2,Dial(${ARG1})

buon asterisk a tutti.

informazioni d base tratte da: astrecipes.net

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