Provisioning Telefoni Grandstream

In Asterisk, nelle versioni recenti (questa procedura è basata su Asterisk versione 16 in Debian 10 e 11), è 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.

Asterisk è leggermente rognoso in quanto il suo web server interno non produce alcun log di nessun tipo, quindi il debugging è a dir poco impegnativo. Tcpdump è vostro amico.

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

Nota: questa operazione non è necessaria se usiamo il DHCP come indicato sotto, oppure se usiamo Apache e il DNS come indicato sotto

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

Nota: questa operazione non è necessaria se usiamo Apache e il DNS come indicato sotto, oppure se configuriamo i telefoni come indicato sopra

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.

Configurazione di Apache come proxy

Nota: questa operazione non è necessaria se usiamo il DHCP come indicato sopra, oppure se configuriamo i telefoni come indicato sopra

ATTENZIONE, IMPORTANTE: Se usate apache come proxy, le richieste di provisioning arriveranno ad Asterisk da 127.0.0.1, ed esso valorizzerà la variabile SERVER con 127.0.0.1. Questo romperà completamente la vostra configurazione se usate "SERVER" dentro ai files di template. Suggerisco quindi di usare valori hardcoded nel file di template al posto della variabile SERVER se volete usara Apache come proxy

Se per qualche motivo non volete o non potete pastrocchiare con il DHCP, potete fare un altro accrocchio con Apache come proxy. Tuttavia vi serve per forza avere l'accesso al DNS della LAN. I telefoni per default fanno il provisioning dall' url "http://fm.grandstream.com/gs". Se riusciamo a fare in modo che sia il nostro server Asterisk a rispondere a quell'URL, possiamo fare il provisioning senza dover inserire opzioni nel DHCP (e senza modificare a mano ogni telefono). Tuttavia dobbiamo comunque mettere mano al DNS locale.

Asterisk/Provisioning Grandstream (last edited 2021-12-02 11:55:25 by Kurgan)