Provisioning Telefoni Grandstream

In Asterisk, nelle versioni recenti (questa procedura è basata su Asterisk versione 16), è possibile fare il provisioning dei telefoni (limitato) direttamente basandosi sulle configurazioni di Asterisk e un template. Questo permette di ridurre il tempo di deployment e di avere di fatto un solo file di configurazione che descrive tutto quello che c'e` da sapere sulla configurazione degli interni e anche dei telefoni. Il setup è un pochino complicato, ma il risultato è valido, e soprattutto se avete molti telefoni è comodo.

Per ottenere il risultato voluto occorre:

Nota: in Asterisk deve essere caricato il modulo res_phoneprov, che in Debian / Devuan c'è di default, quindi non occorre fare nulla.

Altra nota: io uso questa roba in rete locale. Su internet occorre pensare bene ai rischi di sicurezza. Uno che riesca a scaricare una config di un telefono tramite gli URL di provisioning ha accesso alle password...

Configurazione di Asterisk

In Asterisk occorre modificare divesi files:

Configurazione di un template per il telefono

Occorre ora creare una directory "phoneprov" dentro a /usr/share/asterisk (ovviamente Asterisk deve poter leggerne il contenuto) e poi ci metteremo dentro i files di template. Nel nostro esempio, il template è uno solo, e si chiama "gxp2130.xml".

Questo è un esempio di template nel file /usr/share/asterisk/phoneprov/gxp2130.xml

Collaudo

Ora, se dopo aver dato l'ennesimo reload ad asterisk, andiamo con un browser a http://<nome o ip del server>:8080/phoneprov/cfg112233445566.xml dovremmo vedere il template XML di qui sopra, con dentro però tutti i valori sostituiti nel template, in modo da essere personalizzato per il nostro interno di prova che ha questo mac address.

Una cosa PESSIMA di questo sistema è che non esiste alcun log del server http contenuto in Asterisk (se c'è, io non l'ho trovato) per cui se qualcosa non va, auguri a capire perché.

Configurazione dei telefoni

Ora dovremo solo dire ai telefoni dove si trova il server del provisioning. Per farlo, possiamo andare nella loro interfaccia web e indicare l' URL del "config server" come http://<nome o ip del server>:8080/phoneprov/ oppure possiamo andare sul server DHCP della LAN (quello da cui i telefoni prendono l' indirizzo ip) e definire una opzione speciale, che viene usata solo dai telefoni Grandstream, ove indicargli da dove fare il provisioning.

Configurazione del DHCP

Se non vogliamo configurare tutti i telefoni uno per uno come indicato sopra, dovremo aggiungere al nostro server DHCP l'opzione numero 66, ovvero "tftp-server-name" (anche se usiamo http), oppure in alternativa la 43, che pero` richiede un encoding più complesso.

Come farlo, dipende dal server DHCP che usate. Cosa metterci dentro, invece, è la stringa http://<nome o ip del server>:8080/phoneprov.