- Come funziona il nuovo provisioning di NethVoice 14 (Leopard)?
- Se ha problemi come si individuano? Dove posso guardare?


Link alle guide pubbliche


Sommario

- Fasi del provisioning

- Verificare la comunicazione con rps.nethesis.it (Falconieri)

- Verificare che il servizio di redirect (RPS) sia configurato

- Verificare lo stato dei provider RPS

- Tracciare le richieste HTTP di un singolo telefono

- Configurazione DHCP per NethSecurity

- Verificare il contenuto dei file serviti al telefono

- Ottenere la password di admin dei telefoni

- Verificare la configurazione dei tasti dei telefoni fisici da CTI

- Log di Tancredi


Sviluppo https://trello.com/c/cxdQaNvI/50-troubleshooting


Fasi del provisioning

Assumiamo che 

Redirect con RPS

Se il telefono supporta RPS (Redirect and Provisioning Service) questa è la sequenza attesa delle azioni che esso compie:

  1. Il telefono si collega al server RPS del proprio vendor (supportati: Fanvil, Snom, Yealink, Gigaset) e trasmette il proprio MAC
  2. Se il MAC è registrato l'RPS risponde con l'URL HTTP(S) di provisioning temporaneo. Questo contiene il token di sicurezza tok1, che identifica e autorizza il telefono.
  3. Il telefono si collega all'URL di provisioning temporaneo (tok1) e scarica la configurazione temporanea.
  4. La configurazione temporanea contiene l'URL di provisioning definitivo, che include tok2.
  5. Al successivo collegamento (almeno 10 minuti) viene utilizzato l'URL definitivo (tok2) e tok1 viene invalidato.
  6. Il provisioning è completato.

Redirect con DHCP

In alternativa, se il telefono non supporta RPS o non è registrato sull'RPS è possibile utilizzare il redirect via DHCP. Se NethVoice è anche il server DHCP della rete, la configurazione per il redirect DHCP è già pronta. In caso di un DHCP server esterno è invece necessario configurare OPTION 66 in base al MAC del telefono.


Configurazione del DHCP di NethVoice(192.168.5.214) nel caso sia da replicare su un server DHCP esterno :


GIGASET Opzione 114 "http://192.168.5.214/provisioning/%MACD.xml"

SNOM Opzione 66 "http://192.168.5.214"

            Opzione 67 "provisioning/{mac}.xml"

SANGOMA Opzione 66 "http://192.168.5.214/provisioning"

FANVIL Opzione 66 "http://192.168.5.214/provisioning/$mac.cfg"

YEALINK Opzione 66 "http://192.168.5.214/provisioning/$MAC.cfg"




dhcp-mac=set:gigaset,58:9E:C6:*:*:*

dhcp-mac=set:gigaset,7C:2F:80:*:*:*

dhcp-option=tag:gigaset,114,"http://192.168.5.214/provisioning/%MACD.xml"

dhcp-mac=set:snom,00:04:13:*:*:*

dhcp-option=tag:snom,66,"http://192.168.5.214"

dhcp-option=tag:snom,67,"provisioning/{mac}.xml"

dhcp-mac=set:sangoma,00:50:58:*:*:*

dhcp-option=tag:sangoma,66,"http://192.168.5.214/provisioning"

dhcp-mac=set:fanvil,0C:38:3E:*:*:*

dhcp-option=tag:fanvil,66,"http://192.168.5.214/provisioning/$mac.cfg"

dhcp-mac=set:yealink,00:15:65:*:*:*

dhcp-mac=set:yealink,80:5E:0C:*:*:*

dhcp-mac=set:yealink,80:5E:C0:*:*:*

dhcp-option=tag:yealink,66,"http://192.168.5.214/provisioning/$MAC.cfg"



In caso di redirect DHCP il telefono effettua i seguenti passi:

  1. Il telefono ottiene dal server DHCP l'URL di provisioning HTTP, mediante OPTION 66 o 114.
  2. Il telefono richiede la configurazione identificandosi con il proprio MAC address. La configurazione generata dinamicamente contiene l'URL di provisioning definitivo (tok2).
  3. Al successivo collegamento (almeno 10 minuti) viene utilizzato l'URL definitivo (tok2) e tok1 viene invalidato.
  4. Il provisioning e completato.

Priorità dei metodi di redirect

I telefoni cercano l'URL del server HTTP per completare il provisioning con diversi protocolli. Supportiamo RPS e DHCP. La seguente tabella mostra la priorità dei due protocolli supportati.


vendormetodo primariometodo secondarioaltri metodi non supportati
FanvilRPSDHCPPnP
SnomRPS³DHCPPnP
YealinkRPSDHCPPnP
GigasetDHCP¹RPSPnP
SangomaDHCPRPS²PnP


1) Per i telefoni Gigaset assicurarsi che in rete non ci sia un server DHCP che fornisce OPTION 66 o OPTION 114 che vanno in override all'RPS. Qualora fosse presente è necessario che sia configurato per i telefoni Gigaset (MAC 7C:2F:80:*:*:*) a fornire l'URL corretto, o che sia disabilitato. Vedi Configurazione DHCP per NethSecurity.

2) Il servizio RPS di Sangoma non è configurabile da Leopard: è necessario accedere direttamente al portale di Sangoma https://wiki.freepbx.org/display/PHON/Redirect+Service

3) Il servizio RPS di Snom (SRAPS) sembra non effettuare correttamente il redirect se tra il telefono e l'host provisioning.snom.com c'è un HTTP proxy (NethSecurity/Squid, ad esempio). Tuttavia i modelli più recenti di Snom utilizzano https:// e non sono pertanto soggetti a questa limitazione. Vedi https://helpdesk.snom.com/support/tickets/34872. Nel caso di Web proxy con NethSecurity è possibile configurare un bypass per destinazione su provisioning.snom.com.


Verificare la comunicazione con rps.nethesis.it (Falconieri)

Quando un telefono viene aggiunto all'inventory NethVoice invia a rps.nethesis.it (istanza Falconieri) la richiesta di associare il MAC del telefono all'URL di provisioning presso il Vendor (produttore) del telefono stesso.

La traccia della comunicazione tra NethVoice e Falconieri è contenuta nel file di log 

/var/log/pbx/www-error.log

Esempio di riga di log in caso di registrazione avvenuta con successo:

[21-Feb-2020 14:27:25 Europe/Rome] [NOTICE] Registered MAC 7C-2F-80-BC-D3-C3 with Falconieri RPS. Raw response: <empty> 

Esempio di riga di log in caso di registrazione fallita:

[21-Feb-2020 12:39:29 Europe/Rome] [ERROR] Unexpected HTTP response from Falconieri RPS gateway: 500 - <empty>

Nota: nel log è contenuto anche un comando shell per riprodurre la chiamata HTTP PUT verso Falconieri


Verificare che il servizio di redirect (RPS) sia configurato

Per verificare che un certo Vendor abbia ricevuto l'impostazione del provisioning remoto per un dato MAC address è necessario accedere alla console RPS del Vendor stesso.


- Fanvil https://fdps.fanvil.com

- Sangoma https://portal.sangoma.com (non supportato da Leopard/Falconieri)

- Gigaset https://prov.gigaset.net/Editor/#loginPage

- Yealink https://dm.yealink.com/reseller/login

- Snom https://sraps.snom.com


Le credenziali aggiornate dei rispettivi Vendor sono disponibili nel repository privato nethesis/falconieri-deploy.


Verificare lo stato dei provider RPS

Accedere alla dashboard su Grafana con le proprie credenziali di nethservice.nethesis.it

https://metrics.nethesis.it/d/1uyA_jnGk/rps-providers-quality?orgId=1


Tracciare le richieste HTTP di un singolo telefono

I telefoni tentano di raggiungere il server HTTP di provisioning tramite HTTP (porta 80) o HTTPS (porta 443). Eventuali proxy HTTP potrebbero ostacolare la comunicazione, in particolare se richiedono l'autenticazione.

In NethVoice le richieste HTTP effettuate dai telefoni sono contenute in

/var/log/httpd/access_log
/var/log/httpd/ssl_access_log


Configurazione DHCP per NethSecurity

Questo è un template-custom per NethSecurity, nel caso svolga il ruolo di DHCP server della rete e sia necessario configurare OPTION 66 in maniera specifica per i telefoni IP supportati. Sostituire l'IP 192.168.11.1 con l'IP di NethVoice.

Modificare il file cat /etc/e-smith/templates-custom/etc/dnsmasq.conf/80tftp_tancredi

#
# 80tftp_tancredi
#
dhcp-mac=set:gigaset,58:9E:C6:*:*:*
dhcp-mac=set:gigaset,7C:2F:80:*:*:*
dhcp-option=tag:gigaset,114,&quot;http://192.168.11.1/provisioning/%MACD.xml&quot;
dhcp-mac=set:snom,00:04:13:*:*:*
dhcp-option=tag:snom,66,&quot;http://192.168.11.1&quot;
dhcp-option=tag:snom,67,&quot;provisioning/{mac}.xml&quot;
dhcp-mac=set:sangoma,00:50:58:*:*:*
dhcp-option=tag:sangoma,66,&quot;http://192.168.11.1/provisioning&quot;
dhcp-mac=set:fanvil,0C:38:3E:*:*:*
dhcp-option=tag:fanvil,66,&quot;http://192.168.11.1/provisioning/$mac.cfg&quot;
dhcp-mac=set:yealink,00:15:65:*:*:*
dhcp-mac=set:yealink,80:5E:0C:*:*:*
dhcp-mac=set:yealink,80:5E:C0:*:*:*
dhcp-option=tag:yealink,66,&quot;http://192.168.11.1/provisioning/$MAC.cfg&quot;


Verificare il contenuto dei file serviti al telefono

Nei file di log di Apache sono contenute le richieste effettuate dai telefoni. E' necessario identificare mediante il MAC del telefono ricercato le righe contententi le sue richieste. In particolare il token di sicurezza è un requisito per riprodurre le richieste del telefono.  I file di log di Apache rilevanti sono i seguenti:

/var/log/httpd/access_log
/var/log/httpd/ssl_access_log

Si può quindi procedere con un comando curl simile:

curl -v http://$(hostname)/provisioning/18269552035e4e6a3fe41790.24557487/0c383e09d487.cfg


Ottenere la password di admin dei telefoni

La password di admin dei telefoni è generata in maniera casuale al momento dell'installazione di NethVoice. E' visibile da interfaccia di amministrazione (nuovo wizard) sotto Modelli > Impostazioni di Default

In alternativa è possibile ottenere la password con questo comando:

# grep -R ^adminpw /var/lib/tancredi/data

Verificare la configurazione dei tasti dei telefoni fisici da CTI

NethCTI Client: come faccio a configurare i tasti dei telefoni fisici ?

Click sull'icona utente (in alto a destra) -> Impostazioni -> Dispositivi

NethCTI Client: nell'elenco dei telefoni fisici non è presente il pulsante per configurare i tasti fisici

Log di Tancredi

Il log dell'applicazione riporta 

/var/log/tancredi/tancredi.log

È possibile aumentarne la verbosità, per esempio nel caso in cui si sviluppano dei template o le API, modificando il parametro loglevel nel file /etc/tancredi.conf


Nel caso si verifichino errori di PHP di qualsiasi genere, questi vengono scritti nel log di PHP-FPM

/var/opt/rh/rh-php*/log/php-fpm/tancredi.log
/var/opt/rh/rh-php*/log/php-fpm/tancredi-slow.log


Le richieste HTTP sono sempre disponibili nel log di Apache del default virtual host:

/var/log/httpd/access_log
/var/log/httpd/ssl_access_log