Thursday, March 22, 2007

Provisioning Polycom phones

Provisioning Polycom SIP phones can be a pain. There are some good examples on www.voip-info.org but I think a explanation would be a good idea. For an internal LAN setup TFTP is easiest, so I have everything setup as so: /tftpboot /tftpboot/contacts /tftpboot/logs /tftpboot/overrides The important thing is DO NOT touch sip.cfg, phone1.cfg and 000000000000.cfg, use it as reference only. Why you ask, so when new firmware comes out you just drop in the new file. So where do you make your changes then????
  1. MAC.cfg
  2. EXTEN.cfg
  3. 00000000000-directory.cfg
  4. contacts/MAC-directory.cfg
Here are some examples: MAC.cfg: <?xml version="1.0" standalone="yes"?> <!-- Default Master SIP Configuration File--> <!-- Edit and rename this file to <Ethernet-address>.cfg for each phone.--> <!-- $Revision: 1.14 $ $Date: 2005/07/27 18:43:30 $ --> <APPLICATION APP_FILE_PATH="sip.ld" CONFIG_FILES="300.cfg, site.cfg, phone1.cfg, sip.cfg" MISC_FILES="" LOG_FILE_DIRECTORY="/log" OVERRIDES_DIRECTORY="/overrides" CONTACTS_DIRECTORY="/contacts"/> EXTEN.cfg (300.cfg) <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- Per-phone configuration in this file --> <reginfo> <reg reg.1.displayName="First Last" reg.1.address="300" reg.1.label="300" reg.1.auth.userId="300" reg.1.auth.password="PASSWORD"/> </reginfo> <msg> <mwi msg.mwi.1.subscribe="300@default"/> </msg> site.cfg <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- Our local phone system common configuration in this file --> <localcfg> <server voIpProt.server.1.address="192.168.0.1"/> <SIP> <outboundProxy voIpProt.SIP.outboundProxy.address="192.168.0.1"/> </SIP> <TCP_IP> <SNTP tcpIpApp.sntp.daylightSavings.enable="1" tcpIpApp.sntp.resyncPeriod="86400" tcpIpApp.sntp.address="192.168.0.1" tcpIpApp.sntp.address.overrideDHCP="1" tcpIpApp.sntp.gmtOffset="-28800" tcpIpApp.sntp.gmtOffset.overrideDHCP="1" tcpIpApp.sntp.daylightSavings.enable="1" tcpIpApp.sntp.daylightSavings.fixedDayEnable="1" tcpIpApp.sntp.daylightSavings.start.month="3" tcpIpApp.sntp.daylightSavings.start.date="8" tcpIpApp.sntp.daylightSavings.start.time="2" tcpIpApp.sntp.daylightSavings.start.dayOfWeek="1" tcpIpApp.sntp.daylightSavings.start.dayOfWeek.lastInMonth="0" tcpIpApp.sntp.daylightSavings.stop.month="11" tcpIpApp.sntp.daylightSavings.stop.date="1" tcpIpApp.sntp.daylightSavings.stop.time="2" tcpIpApp.sntp.daylightSavings.stop.dayOfWeek="1" tcpIpApp.sntp.daylightSavings.stop.dayOfWeek.lastInMonth="0" /> </TCP_IP> <reg> <reg.1.callsPerLineKey="8"> </reg> <msg> <mwi msg.mwi.1.callBackMode="contact" msg.mwi.1.callBack="8500" /> </msg> <user_preferences up.oneTouchVoiceMail="1" /> <feature feature.1.enabled="1" feature.9.enabled="0" feature.10.enabled="1" feature.11.enabled="1" feature.12.enabled="1" /> <bitmap> <IP_400 bitmap.IP_400.61.name="Idle400.bmp"/> <IP_600 bitmap.IP_600.61.name="Idle600.bmp"/> </bitmap> <sound_effects se.stutterOnVoiceMail="0" /> <localcfg> contacts/MAC-directory.xml: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- $Revision: 1.2 $ $Date: 2004/12/21 18:28:05 $ --> <directory> <item_list> <item><fn>First</fn><ln>Last</ln><ct>301</ct><sd>1</sd><bw>1</bw></item> Some gotchas that I have run into:
  1. /tftpboot/contacts/00000000000-directory.xml does not get used it gets pulled from the /tftpboot/000000000000-directory.xml file (as of bootrom v3.2.2)
  2. The dhcp option to set the tftp server is option tftp-sever-name "tftp://192.168.41.1"
Take a look here if you need more info or more examples or email me. http://www.voip-info.org/wiki-Polycom+Phones#PolycomConfigFiles