All of the following steps are required in order to enable HTTP Provisioning. Step One – Add access permissions for folders in nginx Add the following lines into /opt/pbxware/pw/etc/nginx/custom/00_tftp.conf. This will allow phones to access the tftp folder through HTTP requests (with authentication):
location /tftp { alias /tftp/; autoindex off; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/htpasswd_tftp; } # # Snom firmware support # Allowing Snom phones to take firmware files without # authentication . # location ~ ^/tftp/snom3xx/(.*.bin)$ { alias /tftp/snom3xx/$1; autoindex off; }
Step Two – Create a username and password for the 'tftp' folder access To generate a password and copy it into the 'htpasswd_tftp' file, execute the following lines in CLI:
$ cd /opt/pbxware/pw $ chroot . php $ <?php $ echo crypt("your-password") . "\n";
Then press CTRL+D and you will get the password. Now select it and copy to: $ nano etc/nginx/htpasswd_tftp ( CRTL+X and then Y , to confirm the saving )
The file should look like this: <USERNAME>:<PASSWORD>
e.g: test:$1$yxqzoKQG$xQNZcZELKwE36Myeh4Tfv1
Step Three – Create a folder where we will put the firmware files Navigate to the “tftp” folder and create a folder named “snom3xx” in it:
$ cd /opt/pbxware/pw/tftp $ mkdir snom3xx
Step Four – Create a generic file Now we need to create a file named 'snom320.htm', which will contain the default setting for all snom 320 phones, such as language, web language, time zone, date format, etc.
$ nano snom320.htm ( CRTL+X and then Y , to confirm the saving )
<html> <pre> # example snom general setting file # After each setting (before the colon) you can set a flag # General language and time configuration parameter language$: English web_language$: English timezone$: <TIMEZONE> date_us_format&: on time_24_format&: off </pre> </html>
Replace <TIMEZONE> with one of the following strings: http://wiki.snom.com/Settings/timezone Step Five – Downloading firmware and creating a firmware identification file The next step is to download the latest firmware into the 'snom3xx' folder and create a file which will tell our Snom phones the name of the newest (current) firmware we have in that folder:
$ cd snom3xx $ wget <URL OF THE FIRMWARE>
<URL OF THE FIRMWARE> is the URL for downloading firmware, and can be found on: http://wiki.snom.com/Snom320/Firmware
$ nano firmware.htm ( CTRL+X and then Y , to confirm the saving )
<html> <pre> firmware:http://<IP OF PBXWARE>/tftp/snom3xx/<NAME OF FW>.bin </pre> </html>
Replace the <IP OF PBXWARE> with your system’s IP or domain. Replace the <NAME OF FW> with the firmware file name from the download in the previous step.
Step Six – Create a PBXware Extension with Auto Provisioning Enabled (repeat for each phone) NOTE: First check if your Snom phone UAD is enabled and if you are able to select it when adding a new extension. If not, go to Settings → UADs, find your Snom phone and click on the Edit button. Then change the status from 'Not Active' to 'Active' and save it. Now you should be able to create a Snom UAD extension.
- Navigate to 'Settings: UAD'
- Click on 'Edit' next to your UAD/Phone type
- Set 'Status'='active'
- Click on 'Save'
- Navigate to 'Extensions'
- Click on 'Add Extension'
- Select your UAD/Phone type from the 'UAD' field
- Select the Extension location from the 'Location' field ('Local' - LAN, 'Remote' - outside of system LAN)
- Click on 'Next'
- Set the desired Extension number under the 'Extension' field
- Set the full user name under the 'Name' field
- Set the user email address under the 'E-mail' field (This email is used for various system notifications such as voice mail, etc.)
- Set 'Auto provisioning' to Yes
- Set the MAC Address of the phone under the 'MAC Address' field
- Select 'DHCP' settings as you need ( 'Yes' – if using DHCP in network, 'No' for manual IP configuration)
- Click on 'Save'
After all six steps are done, the auto provisioning is enabled for the phone you want to provision with the extension we created in the last step. Please be careful to use the correct UAD for the phones. Choosing the wrong UADs can cause the phone to be incorrectly provisioned (wrong data). Providing URL for Auto Provisioning to Phones There are two ways to send (provide) the URL information to Snom phones:
- Over DHCP Server (option 66) or
- Using Snom PNP Provisioning Server
DHCP Server Settings First of all you need to make sure that you have a DHCP server in your network and that it is enabled. Depending on which device or OS it is running, the option would look like:
option tftp-server-name "http://<USERNAME>:<PASSWORD>@<IP-OF-PBXWARE>/tftp/"; OR
option 66 "http://<USERNAME>:<PASSWORD>@<IP-OF-PBXWARE>/tftp/";
Replace <USERNAME> and <PASSWORD> with the one you used in the first steps of this 'How to'. Replace <IP-OF-PBXWARE> with your PBXware IP address or domain. Here is an example for a Linux based DHCP server:
Add Option 66 into the 'dhcpd.conf', and restart DHCP daemon.
$ nano /etc/dhcpd.conf ( CTRL+X and then Y , to confirm the saving )
option tftp-server-name "http://<USERNAME>:<PASSWORD>@<IP-OF-PBXWARE>/tftp/"; $ /etc/init.d/dhcpd restart
Snom multicast PnP Provisioning Server Plug & Play (PnP) provides a proprietary method for enabling "Auto Provisioning" on all snom VoIP phones EXCEPT snom m3,. By default (Parameter pnp config = on) the phones send SIP SUBSCRIBES messages to a multicast address. Any SIP server understanding that message may reply with a SIP NOTIFY message containing the Auto Provisioning Server URL where the phones can request their configuration from.
Snom development provides a tool (Python Script) which can be installed on any OS platform which is supported by Python.
Download from: http://sourceforge.net/projects/pnpserv/files/v1_0/pnpserv.py/download
Use of this tool can be on any PC in the same local network and is quite simple, by running it with only one parameter:
python pnpserv.py -u "http://<USERNAME>:<PASSWORD>@<IP-OF-PBXWARE>/tftp/"
This tool will send a SIP NOTIFY with the URL you provided in the -u parameter to all phones, which
will initiate a reboot of them for firmware updates and/or configuration files.
|