Come installare una centralina voip su linea isdn: patton e elastix

Se si ha una linea ISDN (penso che per altre tipologie di linee serva solo cambiare la tipologia di patton) e si vuole farsi una centralina da sè, servono i seguenti componenti:
– Un computer anche vecchio, con capacità ridotte, roba che con 100 euro la compri su ebay. Questo computer sarà la centralina.
– Un gateway particolare che prende la linea ISDN e la passa a voip (come il patton)
– un software da usarsi in un pc detto “softphone” con cui il pc fa anche da telefono, oppure dei telefoni voip, che sonodiversi da quelli tradizionali, io ho fatto un po’ fatica nei negozi “offline”, ma mi sono trovato abbastanza bene su voipshop.it

Per prima cosa quindi serve scaricare elastix, che sarà il software che fa da centralina.
http://www.elastix.org/
Una volta che si è messo elastix su un cd (o magari da cd lo si è passato su chiavetta), si installa elastix sul pc che servirà da centralina (sto computer dovrà quindi stare acceso giorno e notte di solito).

Se al computer della centralina ci si attacca un monitor, si avvia il pc e si può accede come root per configurare l’ip:
ifconfig eth0 192.168.1.88

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0
Poi da un altro computer, che sia temporaneamente collegato in rete con la centralina, si accede via web digitando l’indirizzo ip di elastix ossia 192.168.1.88.
User: admin
pw: palosanto
(Così nel 2010)

Si va sulla sezione “pbx”, poi in “extension”, poi:
Device “generic sip device” submit
e lì si mettono “user extension”: il numero dell’interno scelto,
“Display name”: il nome in parole di chi usa il telefono e
“secret” che è la password e se non serve diversamente la si mette uguale al numero dell’interno (se il centralino elastix non sarà collegato ad internet si può fare così. Se invece sarà collegato ad internet servirà mettere una password seria).

Si crea la quantità di estensioni che servono e poi si configurano i softphones, che sono dei programmi che funzionano su un computer e che ti permettono di rispondere al telefono dal computer. Purchè il computer però sia connesso alla centralina e questo di solito vuol dire collegare la centralina a internet. Software così possono essere 3cx oppure zoiper o altri.
Se, non si usano softphones, si configureranno i telefoni voip (che si sono comprati) seguendo il libretto di istruzioni.

Nel caso dei softphones Si deve definire:
l’user (Che è uno degli user indicati nelle estensioni: uno degli interni), la password dell’user, il nome dell’utente (magari uguale a quello scritto nell’estensione elastix, e soprattutto l’ip o il dominio dove trovare la centralina pbx (l’indirizzo ip di elastix).

Nel caso dei telefoni voip sicuramente si dovrà configurare almeno anche l’indirizzo ip del telefonino.
A questo punto la rete interna è fatta.

Poi serve collegarsi con l’esterno per questo ad esempio io, avendo una linea isdn, ho usato il dispositivo patton 4552 con software versione R5.3

Per difetto il patton ha l’ip 192.168.1.1 quindi servirà raggiungerlo e collegandosi con un pc al patton e, da internet si digita “192.168.1.1” questo funziona se l’indirizzo ip, e maschera del pc consente si raggiungere il 192.168.1.1, ma questa è un’altra storia.
Si accede scrivendo
User: “.” (ossia: un punto)
password: -niente-.

Si può cambiare l’indirizzo ip tramite interfaccia web (network->lan) si clicca su “import” e si importa il file di configurazione che può essere anche un file txt, il testo di un esempio di questo file che deve però essere un txt lo trovate qui. Questa configurazione vincola l’indirizzo ip o il nome server del patton e l’utente e la password.
Nel mio caso alla configurazione che ho trovato in un sito, ho modificato l’indirizzo ip sul file di configurazione usando il codice di una altra configurazione che impostava un ip statico e poi ho dovuto attivare da web la porta bri 0/0 (da advanced gui->bri) che era rimasta disattivata.

In generale servirà guardare nel file di configurazione se l’ip del server SIP (elastix) coincide con l’ip di elastix che stiamo usando.

La porta bri0/0, detta “line”, per la terminologia delle telecomunicazioni, è la TE (terminale) che riceve la NT (la porta di uscita isdn) della borchia ISDN.

La porta bri 0/1 detta “phone” funge da NT e serve per attaccarci un telefono ISDN direttamente (se si vuole). In questo caso se correttamente configurata, il telefono – secondo quanto letto in un manuale – dovrebbe alimentarsi con la rete isdn per cui funzionerebbe anche in assenza di elettricità.

La luce “Line” sul davanti del patton si accende quando è attiva la connessione con la linea isdn.

La luce “voip” sul davanti del patton si accende quando è in corso una chiamata voip.

Infine serve che elastix (o meglio il suo nucleo: asterisk) mandi tutte le chiamate esterne verso il patton e che le riceva tutte dirgendole verso l’interno dal patton.

Per questo si deve creare un trunk sip (questa “deviazione”) e poi configurare la rotta in ingresso e quella in uscita.
Per fare questo: si va all’indirizzo web di elastix, si clicca sopra su “unembedded freePBX” per difetto si accede con User: admin e password: admin.

Si va su “Trunk”, “add sip Trunk” e si devono mettere 3 cose: la casella “maximun channel” che , se si hanno 2 linee isdn, verrà impostata a “2”, il trunk name, ad esempio 10000, poi su peer details si aggiungono questi dati:
username=10000
type=friend
secret=10000
dtmfmode=inband
insecure=very&very
host=dynamic
context=from-pstn
qualify=yes
disallow=all
allow=ulaw&alaw
canreinvite=no

Si salva e si confermano le modifiche.

DAl menu di freePBX Si va su “inbond Routes”: si va in fondo alla pagina e si sceglie il destinatario. Eventualmente sarà preliminarmente necessario definire un gruppo sulla sezione “Gruppi” che contenga tutti gli interni così che quando facciamo la rotta di ingresso le chiamate squillino su tutti gli interni.

Se si ha un numero apposito per il fax (analogico quindi): non è immediato collegare il fax al patton e quindi alla centralina.
Se si ha il fax nello stesso numero del telefono non saprei come risolvere il problema.
Se invece il fax ha un numero apposito, può essere risolto, senza collegarlo alla centralina e al patton così:
il fax può venire collegato dalla borchia tramite l’uscita analogica. Se il numero di squilli è superiore a 1 la chiamata entra anche nella centralina facendo suonare comunque anche gli altri telefoni. Per evitare questa cosa quindi si aggiunge una rotta in entrata con “Selezione Passante” pari a 0xxxxxxx (n. di fax) e con destinazione “Hangup” (chiudi conversazione).
Non si può scegliere l’opzione “play ringtones until hangup” perchè la centralina prende in carico la chiamata comunque e senza far squillare telefonini ma tagliando fuori il fax.

Dal menu di freePBX Si va su “outbound routes” si inserisce “route name”: un nome per questa rotta di uscita, il “dial pattern”, la regola per riconoscere cosa mandare fuori:
si può selezionare 0|X. che vuol dire che tutti i numeri che cominciano con 0 devono essere diretti fuori a partire (simbolo “|”) dal numero successivo che può essere un numero da 0 a 9 (simbolo “X”) e può essere seguito da qualsiasi numero (simbolo “.”). Infine si inserisce il trunk sequance scegliendo tra quelli diponibili il SIP/10000 che è il nostro.
Si salva e si conferma (freePBX si riavvia)
Volendo si può riavviare da interfaccia WEB anche il patton per essere più sicuri (comando “reload”).

E’ importante che esista un fascio (trunk) con il nome utente del patton (10000) perchè nonostante non ci sia nessuna rotta in uscita che lo usa se no dice:
“the number you have dialed is…”
in questo fascio è stato messo come stringa di registrazione: SIP/10000/$OUTNUM$

PER IMPOSTARE IP STATICO AUTOMATICO (in modo che accendendosi non usi il dhcp)
modificare il file /etc/sysconfig/network-scripts/ifcfg-eth0 col comando “vi”. Premere “i” per passare in modalità “inserisci”, infine “esc” per passare in modalità comando e da lì o “ZZ” senza invio, oppure “:x” (battendo invio) per salvare e chiudere; il comando :q o meglio :quit per uscire senza salvare, il comando :q! per uscire forzosamente
Inserire queste informazioni:
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
HWADDR (dovrebbe già essere compilato)
IPADDR=192.168.1.88 (l’ip di elastix)
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
GATEWAY=192.168.1.89 (l’ip del patton)
TYPE=Ethernet
NOZEROCONF=yes

Inoltre per registrare un messaggio (andare su system recordings e seguire le istruzioni), possono esserci problemi: infatti nel mio caso, nonostante seguissi le istruzioni indicate nella pagina “system recordings” dava l’errore: error impossibile salvare il file …. permission denied”
L’errore dipendeva dal fatto che la cartella /var/lib/asterisk/sounds/custom (o qualcosa del genere, è indicato nel messaggio di errore) era di proprietà di root mentre si deve cambiare il proprietario da root a asterisk, per cui
“chown asterisk /var/lib/..”
per verificare se è quello il problema c’è il solito comando ls -alt oppure ls -altd

Si può poi “giocare” per far funzionare una serie di funzioni interessanti. Si fa tutto accedendo da un browser all’indirizzo di elastix, nel nostro caso 192.168.1.88 ed entrando in embedded PBX (vedi sopra per password)

Per fare la funzione “callback” ad esempio, per essere richiamato dopo che si fa uno squillo serve:
-andare nella sezione IVR -> dare un nome.
Scegliere un annuncio. (eventualmente andare su “registrazioni di sistema” per registrarne uno da telefono).
Deve essere attivo “attiva chiamata diretta” e poi si inseriscono le opzioni, cosa fare in caso di scelta 0 (inoltrare a tizio), in caso di scelta 1 (inoltrare a caio) e via così.
Se servono + opzioni, basta cliccare il tasto “+ opzioni”.

-Callback-> inserire descrizione.
Mettere come ritardo prima del callback 20 secondi. Questo perchè il telefono continua a squillare anche dopo che la centralina ha buttato giù (problema dovuto alla cattiva gestione delle due linee isdn).
E selezionare come destinazione dopo il callback un IVR.
Questo perchè selezionando un interno o un gruppo di chiamata funziona solo se l’ufficio risponde prima di chi viene richiamato. Altrimenti cade la linea.
-Rotte in entrata -> inserire descrizione lasciare libero il DID (che identificherebbe uno dei due numeri della linea isdn), inserire nal numero ID chiamante il numero che si vuole.
E poi selezionare “rotta con priorità ID”.
Si va sotto in “sorgente” e si selezione un callback

Se uno vuol fare che quando si chiama un interno si chiama anche un numero esterno si usa la sezione “Seguimi”, selezionando l’interno voluto e aggiungendo nella lista presente (dovrebbe esserci solo l’interno richiesto) il numero esterno seguito da #

Per la casella vocale (segreteria telefonica) va impostato da “interni”. Si seleziona uno degli interni. E nelle opzioni si seleziona “abilitato” in “casella vocale”.
Solo ora comparirà tra le opzioni per indirizzare le chiamare assieme a “phonebook, interni, hang up, gruppi di chiamata” anche “casella vocale” (voicemail).
Quindi giacchè in “chiamate in entrata” io indirizzo verso il gruppo 600(TUTTI) vado nel gruppo600 e seleziono in “destinazione se nessuna risposta”->casella vocale.
Esiste anche la possibilità di fare dei gruppi di caselle vocali (menu a sinistra del pbx)

Per tirare su una telefonata che non è stata presa (ad esempio perchè si era al telefono) è sufficiente comporre ** per tirar su (pick up) la telefonata.
Il comando più usato è però *8 che è il pick up generale della centralina. Per farlo funzionare è necessario andare su ciascuno degli interni e alle voci pickupgroup e callgroup inserire lo stesso numero su tutti gli interni (ad esempio si può inserire il numero “1”) (vedi “codici servizi”)

I suoni “standard” del sistema possono essere trovati facendo “locate *.gsm” dal prompt di elastix.
Per cambiare i suoni da inglese a italiano:
((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
Scarica i 4 file da qui:
http://www.voip.ammdomus.it/index.php?option=com_content&view=category&layout=blog&id=3&Itemid=4

asterisk-core-sounds-it-gsm-1.4.15-mm20090405.tar.gz
asterisk-core-sounds-it-alaw-1.4.15-mm20090405.tar.gz
asterisk-core-sounds-it-sln16-1.4.15-mm20090405.tar.gz
asterisk-core-sounds-it-wav-1.4.15-mm20090405.tar.gz

INSTALLAZIONE
==========
Fatto il download del file, copiatelo in root o in tmp e quindi digitate il seguente comando:

tar -pxvf [nome-file-messaggi] -C /var/lib/asterisk/sounds/ (fallo per tutti e 4 i file)

una volta scompattati i file nella cartella sistemi i permessi con questo comando:
chown asterisk.asterisk /var/lib/asterisk/sounds/ -R

Poi modifica questo:
vi /etc/asterisk/asterisk.conf
ed aggiungi nella sezione [options]:
languageprefix=yes

Dovrebbe essere apposto, riavvia asterisk col comando:
amportal restart

se ancora non funziona in italiano, riavvia tutto…

poi in realtà bisogna aprire il file
vi /etc/asterisk/sip_general_custom.conf [era vuoto, prima di inserire language=it]
si inserisce

language=it

si salva

Si riavvia

/etc/init.d/asterisk restart

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

Se si vuole registrare le telefonate: o su richiesta o sempre o mai. Lo si decide dalla pagina di ciascun interno (per le chiamate in ingresso e per quelle in uscita). L’opzione “su richiesta” significa che si può registrare una chiamata schiacciando il tasto corrispettivo indicato in “codici servizi” (*1). Se si sceglie “sempre” vengono registrate sutte le chiamate.
Affinchè tutto questo funzioni, in impostazioni generali alle voci “Opzioni Asterisk per le chiamate” e “Opzioni Asterisk per le chiamate in uscita” siano presenti i valori w e/o W, e deve essere disabilitata la voce “Extension Recording Override”.
La cartella predefinita è /var/spool/asterisk/monitor.

Nella casella “Extension Recording Override” c’è la possibilità di inserire la cartella in cui mettere le registrazioni. Ma la cartella che si sceglie deve essere compatibile con i permessi dell’utente asterisk (non può essere una cartella di proprietà di root)

Per poter “togliere” le registrazioni dal computer quando fossero in abbondanza, ho installato SAMBA
per installare samba: intanto ho messo come DNS un router collegato alla rete che può essere collegato a elastix, mettiamo l’indirizzo 192.168.1.1, modificando il file /etc/resolv.conf con “vi” aggiunto stringa

nameserver 192.168.1.1

Quindi ci si collega alla rete internet si installa samba con il comando “yum -y install samba”.
Una volta installato ho fatto una copia di sicurezza del file di configurazione “/etc/samba/smb.conf”, chiamandolo smboriginale.conf, e sul file /etc/samba/smb.conf ho cancellato tutto quelo che era presente e ho inserito queste righe:

[global]
workgroup = WORKGROUP
server string = “samba server”
local master = no
domain master = no
preferred master = no
password server = None
guest ok = yes
guest account = root
security = SHARE
dns proxy = no

[share]
path = /
guest ok = yes
writeable = yes
create mask = 0777

Dopodichè è importante ricordarsi di avviare samba: /etc/init.d/smb start (oppure restart quando si modifica il file di configurazione).

Il percorso delle registrazioni previsto automaticamente da elastix è: /var/spool/asterisk/monitor.
Quindi ho modificato la configurazione di samba mettendo come guest account asterisk e come cartella condivisa appunto (path) al posto di “/”, quella delle registrazioni. writeable serve lasciarlo a “yes” per permettere al computer che si collega di poter cancellare le registrazioni. Infine per far sì che samba si avvii automaticamente all’avvio di elastix, c’è il comando “chkconfig smb on”

Piccolo tutoria di “vi”:
si entra in modalità comando. Per poter scrivere schiacciare “i”. Si modifica il testo.
Per poter uscire serve tornare in modalità comando. Per farlo si schiaccia “esc”.
Il comando di “salva e esci” è: “ZZ”,
se si vuole uscire solo se non sono state effettuate modifiche: “:q”,
se si vuole fare l’uscita incondizionata (quindi senza salvare modifiche): “:q!”.
Per altri comandi (copia incolla etc) da dare in modalità comando vedi una guida.

Per inserire una segreteria telefonica con messaggio registrato e senza che dica quale estensione si è chiamato etc etc:
Andare su voiceMail Blast oppure “gruppi di caselle vocali”
Scegliere un numero
Mettere una descrizione (segreteria)
in etichetta audio si selezione il messaggio che si è registrato nella sezione “registrazioni di sistema”
Scegliere una estensione verso cui indirizzare la casella di posta (quindi almeno una estensione deve avere nelle proprie opzioni abilitata la casella vocale di posta)
E poi io ho selezionato “gruppo caselle predefinito”
Infine si va nella sezione “GRUPPI DI CHIAMATA”, scegliendo il gruppo che interessa (ad esempio il 600 che abbiamo scelto essere il gruppo che chiama tutti) e su “destinazione se nessuna risposta” si sceglie
Gruppi di caselle vocali e si seleziona il numero della casella vocale.
Siccome poi per impostazione di default la segreteria direbbe “+if this is correct press uno” (schiacci 1 e fa bip) serve togliere questa cosa come vien detto qua di seguito.

[Per conoscenza il messaggio che viene usato se non si usa i gruppi di caselle vocali ma se si usa direttamente una casella di un interno è composto così: it/vm-theperson “La persona all’interno” + numero + it/vm-extension “l’interno” + it/vm-isunavail “non è disponibile” + it/vm-intro “prego lasciare un messaggio dopo il segnale acustico al termine abbassare il ricevitore o premere cancelletto”]. Per togliere quel pezzetto e mettere subito il bip:
fonte: http://www.store.elastix.org/en/component/kunena/3-help/44475-vmblast-remove-qpress-1-if-correctq.html
add
Code:

[app-vmblast]
include => app-vmblast-custom
exten => vmblast,1(digits),ExecIf($[“${DIGITS}” != “”],SayDigits,${DIGITS})
exten => vmblast,n(msg),ExecIf($[“${MSG}” != “”],Background,${MSG})
exten => vmblast,n,VoiceMail(${GRPLIST:1},s)
exten => 1,n,Hangup

; end of [app-vmblast]

to

/etc/asterisk/extensions_override_freepbx.conf

Ho fatto vim /etc/asterisk/extensions_override_freepbx.conf e inserito il codice.
Per inserire la parentesi graffa (non so se sia uguale con vi) si deve digitare
:dig
Si guarda quale coppia di caratteri forma la parentesi graffa
Nel mio caso { era (! e } era !)
schiaccia “q” per uscire
una volta schiacciato “i” per scrivere, si deve sciacciare ctrl+k e poi la coppia di caratteri, e appare la graffa
esc per uscire dalla modalità scrittura
:q! per uscire senza salvare
:wq per salvare e uscire

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: