NethVoice: configurazione dell'IP locale¶
In fase di provisioning, l'IP usato come IP del centralino è l'IP della prima rete green
(rete locale).
Questo può essere modificato da linea di comando, per esempio se si hanno reti green multiple.
Se si desidera forzare un determinato indirizzo IP, esempio 192.168.123.11
, utilizzare i seguenti comandi:
config setprop nethvoice LocalIP 192.168.123.11
signal-event nethserver-nethvoice14-update
NethVoice: configurazione del transport PJSIP¶
In NethVoice il modulo chan_pjsip di Asterisk è configurato per stare in ascolto su tutti gli indirizzi di tutte le reti green. È possibile che sia necessario cambiare questa configurazione in situazioni particolari. Se si desidera che chan_pjsip stia in ascolto anche sulle RED ed i loro alias, eseguire i comandi:
config setprop nethvoice PJSIPBind all
signal-event nethserver-nethvoice14-update
Se invece si desidera fare delle personalizzazioni maggiori, come ad esempio escludere una rete green, è possibile farlo dall'interfaccia della configurazione avanzata: Show Advanced Settings e fare le opportune modifiche.
. Sarà poi necessario abilitare le configurazioni avanzateNota
Se la visualizzazione delle configurazioni avanzate è abilitata, le impostazioni di transport non verranno più sovrascritte in caso di aggiornamento o modifica delle interfacce di rete.
NethVoice: configurazione rubrica¶
La rubrica di NethVoice è la Rubrica Centralizzata di NethService NG. Vedere nella documentazione di NethService NG come popolarla e integrarla con la rubrica del NethCTI e i Numeri Rapidi.
I telefoni vengono collegati alla rubrica di NethVoice automaticamente se configurati tramite il provisioning, altrimenti per i modelli che lo supportano è possibile configurare una rubrica di tipo LDAP. I parametri da utilizzare per i vari modelli sono:
Parametri comuni¶
- Indirizzo del server:
Indirizzo IP o nome centralino
- Base:
dc=phonebook,dc=nh
- Attributi nome LDAP:
cn o
- Attributi numero LDAP:
telephoneNumber mobile homePhone
- Porta:
389
per NethServer Enterprise 610389
per NethServer Enterprise 7- Filtro ricerca nomi LDAP:
(&(telephoneNumber=*)(sn=%))
per NethServer Enterprise 6(|(cn=%)(o=%))
per NethServer Enterprise 7- Filtro ricerca numeri LDAP:
(&(telephoneNumber=%)(sn=*))
per NethServer Enterprise 6(|(telephoneNumber=%)(mobile=%)(homePhone=%))
per NethServer Enterprise 7- Protocollo:
Version3
Sangoma¶
Parametri aggiuntivi:
Ricerca LDAP per chiamate in ingresso: Off
Risultati di ordinamento LDAP: On
Snom¶
Parametri aggiuntivi:
LDAP su TLS: off
Ordina Risultati: on
Predici Testo: on
Fai una query iniziale: on
Yealink¶
Parametri aggiuntivi:
Battute massime (1-32000): 50
Mostra nome LDAP: %cn %o
Ricerca LDAP per chiamate in ingresso: Disabilitato
Ricerca LDAP in uscita: Disabilitato
Risultati di ordinamento LDAP: Abilitato
NethVoice: collegamenti remoti¶
Due o più NethVoice remoti, cioè non nella stessa rete posso essere collegati tra di loro tramite dei fasci iax. Si utilizza il protocollo IAX sia per le sue caratteristiche di semplicità, richiede solo la porta 4569 UDP, sia per il brillante comportamento in caso di nat, sia per le performance su chiamate multiple.
Se possibile è sempre indicato collegare le varie sedi remote con vpn tra di loro, in modo da far passare il traffico voce su di esse.
Configurazione Fasci IAX¶
Avendo permesso, tramite o la vpn e/o l'eventuale configurazione delle reti fidate, il traffico tra i due NethVoice, bisogna a questo punto configurare i fasci iax. In pratica i centralini per interfacciarsi devono scambiarsi uno username e password che autorizza il collegamento.
Avvertimento
L'utente è univoco, deve essere utilizzato per un solo collegamento, in caso di collegamento tra diversi NethVoice utilizzare username diversi per ogni fascio IAX.
Ecco un esempio pratico:
Nota
Nel caso la VPN sia instaurata direttamente dal NethVoice, sul centralino remoto può essere necessario indicare l'ip del punto punto della vpn e non l'indirizzo della rete green.
Esempio configurazione fasci IAX per connessione tra due NethVoice¶
Sede A¶
Impostazioni in Uscita¶
Nome fascio: SedeA
Dettagli PEER:
host=IP_SEDE_B
username=utenteB
secret=passwordB
type=peer
qualify=60000
Impostazioni in Ingresso¶
Contesto UTENTE: utenteA
Dettagli UTENTE:
secret=passwordA
type=user
context=from-intracompany
Sede B¶
Impostazioni in Uscita¶
Nome fascio: SedeB
Dettagli PEER:
host=IP_SEDE_A
username=utenteA
secret=passwordA
type=peer
qualify=60000
Impostazioni in Ingresso¶
Contesto UTENTE: utenteB
Dettagli UTENTE:
secret=passwordB
type=user
context=from-intracompany
Configurazione Rotte in Uscita¶
L'ultima configurazione da effettuare è nelle rotte in uscita. Quello che dobbiamo fare è indicare al NethVoice come raggiungere gli interni remoti.
Le possibilità possono essere anche qui due:
Interni delle due sedi sovrapposti¶
Se i due NethVoice hanno la numerazione di interni sovrapposta, stessi interni in entrambi i centralini, si deve creare una rotta in uscita con il pattern di chiamata che includa gli interni remoti e un prefisso.
Il prefisso fa instradare la chiamata non per l'interno locale ma per l'interno remoto.
Ovviamente l'unico fascio da utilizzare sarà quello IAX precedentemente creato per il collegamento infra sede.
Ricordarsi di spuntare Rotta Intra-Aziendale se si vuole inviare al centralino remoto anche il nome del chiamante oltre che il numero, in modo che il chiamato sul display del telefono lo visualizzi.
Interni delle due sedi non sovrapposti¶
Nel caso che gli interni dei due NethVoice collegati siano ben distinti, non ci si deve preoccupare di distinguere con un prefisso la rotta in uscita.
É necessario quindi creare una rotta con il pattern degli interni remoti e indicare il fascio iax di collegamento precedentemente creato.
Ricordarsi di spuntare Rotta Intra-Aziendale se si vuole inviare al centralino remoto anche il nome del chiamante oltre che il numero, in modo che il chiamato sul display del telefono lo visualizzi.
NethCTI: attivazione debug¶
Di default il file di log riporta solamente messaggi di warning ed errori. È possibile innalzare il livello di debug per avere maggiori informazioni:
config setprop nethcti-server LogLevel info
signal-event nethcti-server3-update
Avvertimento
Innalzando il livello la dimensione del file di log aumenta rapidamente.
Per ripristinare il livello di default:
config setprop nethcti-server LogLevel warn
signal-event nethcti-server3-update
NethCTI: telefoni con modalità Click2Call¶
La modalità "Click2Call" di NethCTI consente un utilizzo semplificato dei telefoni fisici. In generale, quando si utilizza NethCTI con associato un telefono fisico, é necessario sollevare la cornetta quando si effettuano chiamate.
Esistone tre diverse modalità di Click2Call, di seguito elencate e i telefoni supportati sono:
NethPhone
Yealink
Snom
Sangoma
Fanvil
Modalità "Click2Call manuale"¶
É la modalità base utilizzata con qualsiasi telefono fisico non supportato. Quando l'utente finale effettua una chiamata, come prima operazione dovrà sollevare la cornetta del dispositivo telefonico e successivamente verrà messo in comunicazione con la destinazione.
Attivazione:
config setprop nethcti-server AutoC2C disabled
signal-event nethcti-server3-update
Modalità "Click2Call automatico"¶
É la modalità che semplifica l'utilizzo del telefono fisico. Consente di bypassare l'uso della cornetta sfruttando ad esempio il vivavoce del telefono o delle cuffie audio direttamente indossate dall'utente. La modalità "automatica" è attiva di default e prevede che il centralino telefonico e i telefoni fisici siano presenti all'interno della stessa rete LAN aziendale e che possano comunicare direttamente tramite il protocollo HTTP.
La modalità è attiva di default.
Disattivazione:
config setprop nethcti-server AutoC2C disabled
signal-event nethcti-server3-update
Riattivazione:
config setprop nethcti-server AutoC2C enabled
signal-event nethcti-server3-update
Modalità "Click2Call cloud"¶
La modalità "Click2Call cloud" è uguale alla modalità click2call automatico, con l'unica differenza che deve essere abilitato nel caso in cui il centralino telefonico è stato installato in qualche piattaforma cloud esterna all'azienda, mentre i telefoni fisici sono presenti nella propria rete LAN aziendale. In questo scenario il centralino non è in grado di comunicare direttamente con i telefoni e quindi viene richiesta l'attivazione della modalità "cloud".
In questo modo, anche se il centralino è esterno alla rete aziendale, l'utente finale potrà gestire il proprio telefono fisico presente in locale tramite NethCTI. Questa funzionalità è realizzata grazie a un terzo componente: Nethifier.
Le due modalità "click2call automatico" e "click2call cloud" sono mutuamente esclusive.
La modalità "click2call cloud" è disabilitata di default.
Nota
La modalità "Click2Call cloud" prevede obbligatoriamente l'uso dell'applicazione Nethifier (vedi sezione apposita)
Attivazione:
config setprop nethcti-server AutoC2C cloud
signal-event nethcti-server3-update
Disattivazione:
config setprop nethcti-server AutoC2C disabled
signal-event nethcti-server3-update
NethCTI: utilizzo di un server chat esterno¶
È possibile configurare un server chat presente su un'altra macchina:
config setprop nethcti-server JabberUrl <BOSH_URL>
signal-event nethcti-server3-update
Per esempio:
config setprop nethcti-server JabberUrl https://nethserver.mydomain.it/http-bind
signal-event nethcti-server3-update
Per ripristinare il default:
config setprop nethcti-server JabberUrl ""
signal-event nethcti-server3-update
Nota
Il server chat specificato deve supportare XMPP su protocollo BOSH. NethServer lo supporta di default.
NethCTI: configurazione di un prefisso telefonico¶
È possibile configurare un prefisso telefonico per qualsiasi chiamata:
config setprop nethcti-server Prefix <PREFISSO>
signal-event nethcti-server3-update
Per ripristinare il default:
config setprop nethcti-server Prefix ""
signal-event nethcti-server3-update
NethCTI: configurazione Softphone WebRTC¶
Il softphone WebRTC utilizza il Gateway Janus installato direttamente nel centralino telefonico.
Janus-gateway può operare in tre differenti modalità di NAT:
STUN (default)
ICE
1:1 (NAT)
Per la configurazione del NAT e delle opzioni, sono disponibili quattro proprietà sotto la chiave janus-gateway del database di configurazione:
NatMode: <stun|ice|1:1>
StunServer: indirizzo del server STUN da usare. Il default è stun1.l.google.com. Viene ignorato se la modalità non è STUN
StunPort: porta del server STUN. Il default è 19302. Viene ignorato se la modalità non è STUN
PublicIP: è l'indirizzo IP pubblico del server su cui è in esecuzione janus-gateway. Viene ignorato se la modalità non è 1:1
In alcuni scenari d'utilizzo l'audio delle telefonate potrebbe non funzionare e conseguentemente le chiamate vengono terminate automaticamente dal centralino dopo un certo intervallo temporale. In questi casi è necessario configurare correttamente il WebRTC in base all'architettura di rete utilizzata.
Esempio
Nel caso si utilizzi un centralino in cloud dietro NAT, è necessario configurare il WebRTC come segue:
config setprop janus-gateway NatMode 1:1
config setprop janus-gateway PublicIP <DOMAIN OR PUBLIC IP>
signal-event nethserver-janus-update
Configurazione interfacce per STUN e ICE
È possibile scegliere quale interfaccia di rete utilizzare per l'utilizzo dei candidati ICE. Come comportamento di default Janus cerca di utilizzare tutte le interfacce di rete, tranne:
vmnet*: utilizzata da VMware
tun* e tap*: usate per le VPN
virb*: usata per KVM
vb-*: usata dal container di NethServer AD
È possibile modificare il comportamento di default elencando esplicitamente le interfacce da usare o quelle da escludere. È possibile farlo tramite le seguenti due proprietà:
ICEEnforceList: lista dei nomi delle interacce separati da virgola da usare per l'ICE gathering. Per esempio "e0,e1"
ICEIgnoreList: lista dei nomi delle interacce separati da virgola da escludere dall'ICE gathering. Janus userà tutte le altre interfacce eccetto queste. Per esempio "e3,vmnet,10.0.0".
Esempio di configurazione:
config setprop janus-gateway ICEIgnoreList "e3,vmnet,10.0.0"
signal-event nethserver-janus-update
NethCTI: disattivazione della gestione eventi dei fasci¶
È possibile disabilitare la gestione degli eventi dei fasci all'interno di NethCTI Server come segue:
config setprop nethcti-server TrunksEvents "disabled"
signal-event nethcti-server3-update
Per riabilitarli:
config setprop nethcti-server TrunksEvents "enabled"
signal-event nethcti-server3-update
Nota
I fasci rimangono pienamente funzionanti: la disattivazione riguarda solamente NethCTI Server.
Tale disattivazione comporta solamente la non visualizzazione delle chiamate nella schermata dei "fasci" lato NethCTI Client.
NethCTI: effettuare chiamate in maniera non autenticata¶
NethCTI offre la possibilità di fare telefonate invocando una particolare API senza autenticazione: astproxy/unauthe_call.
Questa funzionalità è disabilitata di default per motivi di sicurezza.
Per l'attivazione eseguire:
config setprop nethcti-server UnautheCall enabled
signal-event nethcti-server3-update
per disabilitarla:
config setprop nethcti-server UnautheCall disabled
signal-event nethcti-server3-update
Una volta attivata è possibile effettuare una telefonata invocando la REST API astproxy/unauthe_call.
Di default solamente gli indirizzi appartenenti alle "Trusted Networks" sono abilitati all'utilizzo della API. È comunque possibile personalizzare tale lista eseguendo:
config setprop nethcti-server UnautheCallAddress "192.168.5.60 192.168.6.60/255.255.255.0 192.168.4.0/24"
signal-event nethcti-server3-update
È consentito l'inserimento di campi multipli separati da uno spazio vuoto, è possibile specificare un singolo indirizzo IP o un range, sia tramite netmask sia utilizzando la notazione CIDR.
Avvertimento
Se la funzionalità viene abilitata, chiunque potrà eseguire telefonate da qualsiasi interno verso qualsiasi destinazione tramite richieste HTTP POST, ma solo dagli indirizzi indicati nella lista ottenuta col seguente comando "config getprop nethcti-server UnautheCallAddress".
NethCTI: disabilitare l'autenticazione¶
Avvertimento
L'autenticazione è ABILITATA di default. Una volta disabilitata, sarà possibile eseguire il login a NethCTI inserendo solamente il nome utente!
È possibile disabilitare l'autenticazione nella seguente maniera:
config setprop nethcti AuthenticationEnabled false
config setprop nethcti-server AuthenticationEnabled false
signal-event nethcti3-update
signal-event nethcti-server3-update
per riabilitarla:
config setprop nethcti AuthenticationEnabled true
config setprop nethcti-server AuthenticationEnabled true
signal-event nethcti3-update
signal-event nethcti-server3-update
NethCTI: personalizzare il messaggio di fallito login per utenti non configurati¶
Un utente non configurato non ha il permesso di accedere a NethCTI. In questo caso è possibile personalizzare il messaggio di warning visualizzato dopo un tentativo di login. Procedere nella seguente maniera:
creare il template custom del file /usr/share/cti/customizable/login-user-noconfig.html:
mkdir -p /etc/e-smith/templates-custom/usr/share/cti/customizable/login-user-noconfig.html
cp /etc/e-smith/templates/usr/share/cti/customizable/login-user-noconfig.html/10base /etc/e-smith/templates-custom/usr/share/cti/customizable/login-user-noconfig.html/
personalizzare il contenuto del template custom /etc/e-smith/templates-custom/usr/share/cti/customizable/login-user-noconfig.html/10base
eseguire l'evento nethcti3-update
signal-event nethcti3-update
Per ripristinare il messaggio originale:
rm -f /etc/e-smith/templates-custom/usr/share/cti/customizable/login-user-noconfig.html/10base
signal-event nethcti3-update
NethCTI: eseguire uno script al termine di una chiamata¶
È possibile configurare NethCTI Server per eseguire uno script al termine di ogni chiamata. Lo script verrà invocato tramite i seguenti parametri così come ricevuti da Asterisk stesso:
"source, channel, endtime, duration, amaflags, uniqueid, callerid, starttime, answertime, destination, disposition, lastapplication, billableseconds, destinationcontext, destinationchannel, accountcode"
Esempio:
./<SCRIPT_PATH> '200' 'PJSIP/200-00000000' '2019-01-17 18:05:13' '10' 'DOCUMENTATION' '1547744703.0' '"Alessandro Polidori" <200>' '2019-01-17 18:05:03' '2019-01-17 18:05:09' '201' 'ANSWERED' 'Dial' '3' 'ext-local' 'PJSIP/201-00000001' '201'
Per attivare l'esecuzione di uno script eseguire:
config setprop nethcti-server CdrScript <SCRIPT_PATH>
config setprop nethcti-server CdrScriptTimeout 5000
signal-event nethcti-server3-update
Il secondo comando è opzionale e consente di stabilire un timeout (espresso in msec) per l'esecuzione dello script: il default è 5 secondi. Inoltre è lo stesso parametro che influenzerà anche lo script eseguito per ogni chiamata in ingresso dall'esterno (vedi sotto).
Per disattivarlo eseguire:
config setprop nethcti-server CdrScript ""
config setprop nethcti-server CdrScriptTimeout 5000
signal-event nethcti-server3-update
Nota
Lo script deve essere eseguibile dall'utente "asterisk" e si consiglia di configurare opportunamente i permessi del file.
Se si volesse usare uno script personalizzato per inviare i dettagli delle chiamate ad un servizio esterno utilizzando un'API, è possibile prendere spunto dallo script di esempio /usr/src/nethvoice/samples/send_cdr_data.php
NethCTI: eseguire uno script per ogni chiamata in ingresso dall'esterno¶
È possibile configurare NethCTI Server per eseguire uno script per ogni chiamata in ingresso dall'esterno. Lo script verrà invocato tramite i seguenti parametri così come ricevuti da Asterisk stesso:
"callerNum, uniqueId"
Esempio:
./<SCRIPT_PATH> '3331234567' '1532343425.123'
Per attivare l'esecuzione di uno script eseguire:
config setprop nethcti-server CdrScriptCallIn <SCRIPT_PATH>
config setprop nethcti-server CdrScriptTimeout 5000
signal-event nethcti-server3-update
Il secondo comando è opzionale e consente di stabilire un timeout (espresso in msec) per l'esecuzione dello script: il default è 5 secondi. Inoltre è lo stesso parametro che influenzerà anche lo script eseguito al termine di una chiamata (vedi sopra).
Per disattivarlo eseguire:
config setprop nethcti-server CdrScriptCallIn ""
config setprop nethcti-server CdrScriptTimeout 5000
signal-event nethcti-server3-update
Nota
Lo script deve essere eseguibile dall'utente "asterisk" e si consiglia di configurare opportunamente i permessi del file.