Koozali.org: home of the SME Server
Obsolete Releases => SME VoIP (Asterisk, SAIL etc) => Topic started by: compsos on August 02, 2008, 10:47:04 AM
-
Hi
For anyone else who may have these phones. We found that the provisioning system built in trashes the configuration files and therefore the phones on restarting. The Polycoms are looking for the files in a different format.
Any other experiences comments greatly appreciated.
So far this is working for us.
- yum --enablerepo=smecontribs install smeserver-tftp-server
- Download the firmware files from Polycom for your phone
- cd /tftpboot
- Expand the firmware in the /tftpboot directory
- pico sip.cfg "enter your local settings and save as a XXX.cfg
- mkdir -p overrides contacts logs
- touch logs/macaddress-boot.log "macaddress = for each phone to be connected"
- touch logs/macaddress-app.log
- touch logs/macaddress-appflash.log
- touch contacts/macaddress-directory.xml
- pico 00000000.cfg "just change settings for system not a particular ext"
- note: Change the name of the sip.cfg file to XXX.cfg to avoid an over write as this file is way different to the Sail generated file
- cp 00000000.cfg overrides/macaddress-phone.cfg "for each ext"
- cp phone1.cfg phoneExt.cfg "for each ext"
- pico phoneExt.cfg "Edit for each ext"
- Start the phone and set the ServerMenu to TrivalFTP
- Set the ServerAddr to xxx.xxx.xxx.xxx
- Exit from Menu and Save and Reboot Phone
The result of tail -f /var/log/messages should look like this as the phone restarts
Aug 2 17:09:31 server dhcpd: DHCPDISCOVER from 00:04:f2:17:94:05 via eth0
Aug 2 17:09:31 server dhcpd: DHCPOFFER on 192.168.0.x to 00:04:f2:17:94:05 via eth0
Aug 2 17:09:36 server dhcpd: DHCPREQUEST for 192.168.0.x (192.168.0.1) from 00:04:f2:17:94:05 via eth0
Aug 2 17:09:36 server dhcpd: DHCPACK on 192.168.0.x to 00:04:f2:17:94:05 via eth0
Aug 2 17:09:38 server in.tftpd[7920]: RRQ from 192.168.0.x filename 2345-12200-002.bootrom.ld
Aug 2 17:09:38 server in.tftpd[7921]: RRQ from 192.168.0.x filename 0004f2179405.cfg
Aug 2 17:09:38 server in.tftpd[7922]: RRQ from 192.168.0.x filename 2345-12200-002.sip.ld
Aug 2 17:09:38 server in.tftpd[7923]: RRQ from 192.168.0.x filename phone5001.cfg
Aug 2 17:09:38 server in.tftpd[7924]: RRQ from 192.168.0.x filename XXX.cfg
Aug 2 17:09:40 server in.tftpd[7925]: RRQ from 192.168.0.x filename overrides/0004f2179405-phone.cfg
Aug 2 17:09:40 server in.tftpd[7926]: RRQ from 192.168.0.x filename contacts/0004f2179405-directory.xml
Aug 2 17:09:44 server in.tftpd[7931]: RRQ from 192.168.0.x filename SoundPointIPWelcome.wav
Aug 2 17:09:44 server in.tftpd[7939]: WRQ from 192.168.0.x filename log/0004f2179405-app.log
The Provisioning Window for each Extension
["$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.-->
<!-- $RCSfile: 000000000000.cfg,v $ $Revision: 1.14.22.4 $ -->
<APPLICATION APP_FILE_PATH="sip.ld" CONFIG_FILES="phone5000.cfg, XXX.cfg" MISC_FILES="" LOG_FILE_DIRECTORY="/log" OVERRIDES_DIRECTORY="/overrides"
CONTACTS_DIRECTORY="/contacts" LICENSE_DIRECTORY="">
<APPLICATION_SPIP300 APP_FILE_PATH_SPIP300="sip_212.ld" CONFIG_FILES_SPIP300="phone1_212.cfg, sip_212.cfg"/>
<APPLICATION_SPIP500 APP_FILE_PATH_SPIP500="sip_212.ld" CONFIG_FILES_SPIP500="phone1_212.cfg, sip_212.cfg"/>
</APPLICATION>
]
["$mac-phone.cfg"
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Example Per-phone Configuration File -->
<!-- $RCSfile: phone1.cfg,v $ $Revision: 1.83.2.2 $ -->
<phone5000>
<reg reg.1.displayName="Name" reg.1.address="5000" reg.1.label="Name" reg.1.type="private" reg.1.lcs="" reg.1.csta="" reg.1.thirdPartyName="" reg.1.auth.userId="" reg.1.auth.password="" reg.1.auth.optimizedInFailover="" reg.1.server.1.address="DomainName" reg.1.server.1.port="" reg.1.server.1.transport="DNSnaptr" reg.1.server.2.transport="DNSnaptr" reg.1.server.1.expires="" reg.1.server.1.expires.overlap="" reg.1.server.1.register="" reg.1.server.1.retryTimeOut="" reg.1.server.1.retryMaxCount="" reg.1.server.1.expires.lineSeize="" reg.1.server.1.lcs="" reg.1.outboundProxy.address="" reg.1.outboundProxy.port="" reg.1.outboundProxy.transport="" reg.1.acd-login-logout="0" reg.1.acd-agent-available="0" reg.1.proxyRequire="" reg.1.ringType="2" reg.1.lineKeys="" reg.1.callsPerLineKey="" reg.1.serverFeatureControl.dnd="" reg.1.serverFeatureControl.cf="" reg.2.displayName="" reg.2.address="" reg.2.label="" reg.2.type="private" reg.2.lcs="" reg.2.csta="" reg.2.thirdPartyName="" reg.2.auth.userId="" reg.2.auth.password="" reg.2.auth.optimizedInFailover="" reg.2.server.1.address="" reg.2.server.1.port="" reg.2.server.1.transport="DNSnaptr" reg.2.server.2.transport="DNSnaptr" reg.2.server.1.expires="" reg.2.server.1.expires.overlap="" reg.2.server.1.register="" reg.2.server.1.retryTimeOut="" reg.2.server.1.retryMaxCount="" reg.2.server.1.expires.lineSeize="" reg.2.outboundProxy.address="" reg.2.outboundProxy.port="" reg.2.outboundProxy.transport="" reg.2.acd-login-logout="0" reg.2.acd-agent-available="0" reg.2.proxyRequire="" reg.2.ringType="2" reg.2.lineKeys="" reg.2.callsPerLineKey="" reg.2.serverFeatureControl.dnd="" reg.2.serverFeatureControl.cf="" reg.3.displayName="" reg.3.address="" reg.3.label="" reg.3.type="private" reg.3.lcs="" reg.3.csta="" reg.3.thirdPartyName="" reg.3.auth.userId="" reg.3.auth.password="" reg.3.auth.optimizedInFailover="" reg.3.server.1.address="" reg.3.server.1.port="" reg.3.server.1.transport="DNSnaptr" reg.3.server.2.transport="DNSnaptr" reg.3.server.1.expires="" reg.3.server.1.expires.overlap="" reg.3.server.1.register="" reg.3.server.1.retryTimeOut="" reg.3.server.1.retryMaxCount="" reg.3.server.1.expires.lineSeize="" reg.3.outboundProxy.address="" reg.3.outboundProxy.port="" reg.3.outboundProxy.transport="" reg.3.acd-login-logout="0" reg.3.acd-agent-available="0" reg.3.proxyRequire="" reg.3.ringType="2" reg.3.lineKeys="" reg.3.callsPerLineKey="" reg.3.serverFeatureControl.dnd="" reg.3.serverFeatureControl.cf="" reg.4.displayName="" reg.4.address="" reg.4.label="" reg.4.type="private" reg.4.lcs="" reg.4.csta="" reg.4.thirdPartyName="" reg.4.auth.userId="" reg.4.auth.password="" reg.4.auth.optimizedInFailover="" reg.4.server.1.address="" reg.4.server.1.port="" reg.4.server.1.transport="DNSnaptr" reg.4.server.2.transport="DNSnaptr" reg.4.server.1.expires="" reg.4.server.1.expires.overlap="" reg.4.server.1.register="" reg.4.server.1.retryTimeOut="" reg.4.server.1.retryMaxCount="" reg.4.server.1.expires.lineSeize="" reg.4.outboundProxy.address="" reg.4.outboundProxy.port="" reg.4.outboundProxy.transport="" reg.4.acd-login-logout="0" reg.4.acd-agent-available="0" reg.4.proxyRequire="" reg.4.ringType="2" reg.4.lineKeys="" reg.4.callsPerLineKey="" reg.4.serverFeatureControl.dnd="" reg.4.serverFeatureControl.cf="" reg.5.displayName="" reg.5.address="" reg.5.label="" reg.5.type="private" reg.5.lcs="" reg.5.csta="" reg.5.thirdPartyName="" reg.5.auth.userId="" reg.5.auth.password="" reg.5.auth.optimizedInFailover="" reg.5.server.1.address="" reg.5.server.1.port="" reg.5.server.1.transport="DNSnaptr" reg.5.server.2.transport="DNSnaptr" reg.5.server.1.expires="" reg.5.server.1.expires.overlap="" reg.5.server.1.register="" reg.5.server.1.retryTimeOut="" reg.5.server.1.retryMaxCount="" reg.5.server.1.expires.lineSeize="" reg.5.outboundProxy.address="" reg.5.outboundProxy.port="" reg.5.outboundProxy.transport="" reg.5.acd-login-logout="0" reg.5.acd-agent-available="0" reg.5.proxyRequire="" reg.5.ringType="2" reg.5.lineKeys="" reg.5.callsPerLineKey="" reg.5.serverFeatureControl.dnd="" reg.5.serverFeatureControl.cf="" reg.6.displayName="" reg.6.address="" reg.6.label="" reg.6.type="private" reg.6.lcs="" reg.6.csta="" reg.6.thirdPartyName="" reg.6.auth.userId="" reg.6.auth.password="" reg.6.auth.optimizedInFailover="" reg.6.server.1.address="" reg.6.server.1.port="" reg.6.server.1.transport="DNSnaptr" reg.6.server.2.transport="DNSnaptr" reg.6.server.1.expires="" reg.6.server.1.expires.overlap="" reg.6.server.1.register="" reg.6.server.1.retryTimeOut="" reg.6.server.1.retryMaxCount="" reg.6.server.1.expires.lineSeize="" reg.6.outboundProxy.address="" reg.6.outboundProxy.port="" reg.6.outboundProxy.transport="" reg.6.acd-login-logout="0" reg.6.acd-agent-available="0" reg.6.proxyRequire="" reg.6.ringType="2" reg.6.lineKeys="" reg.6.callsPerLineKey="" reg.6.serverFeatureControl.dnd="" reg.6.serverFeatureControl.cf=""/>
<call>
<donotdisturb call.donotdisturb.perReg="0"/>
<autoOffHook call.autoOffHook.1.enabled="0" call.autoOffHook.1.contact="" call.autoOffHook.2.enabled="0" call.autoOffHook.2.contact="" call.autoOffHook.3.enabled="0" call.autoOffHook.3.contact="" call.autoOffHook.4.enabled="0" call.autoOffHook.4.contact="" call.autoOffHook.5.enabled="0" call.autoOffHook.5.contact="" call.autoOffHook.6.enabled="0" call.autoOffHook.6.contact=""/>
<missedCallTracking call.missedCallTracking.1.enabled="1" call.missedCallTracking.2.enabled="1" call.missedCallTracking.3.enabled="1" call.missedCallTracking.4.enabled="1" call.missedCallTracking.5.enabled="1" call.missedCallTracking.6.enabled="1"/>
<serverMissedCall call.serverMissedCall.1.enabled="0" call.serverMissedCall.2.enabled="0" call.serverMissedCall.3.enabled="0" call.serverMissedCall.4.enabled="0" call.serverMissedCall.5.enabled="0" call.serverMissedCall.6.enabled="0"/>
<callWaiting call.callWaiting.ring="beep"/>
</call>
<divert divert.1.contact="" divert.1.autoOnSpecificCaller="1" divert.1.sharedDisabled="1" divert.2.contact="" divert.2.autoOnSpecificCaller="1" divert.2.sharedDisabled="1" divert.3.contact="" divert.3.autoOnSpecificCaller="1" divert.3.sharedDisabled="1" divert.4.contact="" divert.4.autoOnSpecificCaller="1" divert.4.sharedDisabled="1" divert.5.contact="" divert.5.autoOnSpecificCaller="1" divert.5.sharedDisabled="1" divert.6.contact="" divert.6.autoOnSpecificCaller="1" divert.6.sharedDisabled="1">
<fwd divert.fwd.1.enabled="1" divert.fwd.2.enabled="1" divert.fwd.3.enabled="1" divert.fwd.4.enabled="1" divert.fwd.5.enabled="1" divert.fwd.6.enabled="1"/>
<busy divert.busy.1.enabled="1" divert.busy.1.contact="" divert.busy.2.enabled="1" divert.busy.2.contact="" divert.busy.3.enabled="1" divert.busy.3.contact="" divert.busy.4.enabled="1" divert.busy.4.contact="" divert.busy.5.enabled="1" divert.busy.5.contact="" divert.busy.6.enabled="1" divert.busy.6.contact=""/>
<noanswer divert.noanswer.1.enabled="1" divert.noanswer.1.timeout="60" divert.noanswer.1.contact="" divert.noanswer.2.enabled="1" divert.noanswer.2.timeout="60" divert.noanswer.2.contact="" divert.noanswer.3.enabled="1" divert.noanswer.3.timeout="60" divert.noanswer.3.contact="" divert.noanswer.4.enabled="1" divert.noanswer.4.timeout="60" divert.noanswer.4.contact="" divert.noanswer.5.enabled="1" divert.noanswer.5.timeout="60" divert.noanswer.5.contact="" divert.noanswer.6.enabled="1" divert.noanswer.6.timeout="60" divert.noanswer.6.contact=""/>
<dnd divert.dnd.1.enabled="0" divert.dnd.1.contact="" divert.dnd.2.enabled="0" divert.dnd.2.contact="" divert.dnd.3.enabled="0" divert.dnd.3.contact="" divert.dnd.4.enabled="0" divert.dnd.4.contact="" divert.dnd.5.enabled="0" divert.dnd.5.contact="" divert.dnd.6.enabled="0" divert.dnd.6.contact=""/>
</divert>
<dialplan dialplan.1.impossibleMatchHandling="0" dialplan.1.removeEndOfDial="1" dialplan.1.applyToUserSend="1" dialplan.1.applyToUserDial="1" dialplan.1.applyToCallListDial="0" dialplan.1.applyToDirectoryDial="0" dialplan.2.impossibleMatchHandling="0" dialplan.2.removeEndOfDial="1" dialplan.2.applyToUserSend="1" dialplan.2.applyToUserDial="1" dialplan.2.applyToCallListDial="0" dialplan.2.applyToDirectoryDial="0" dialplan.3.impossibleMatchHandling="0" dialplan.3.removeEndOfDial="1" dialplan.3.applyToUserSend="1" dialplan.3.applyToUserDial="1" dialplan.3.applyToCallListDial="0" dialplan.3.applyToDirectoryDial="0" dialplan.4.impossibleMatchHandling="0" dialplan.4.removeEndOfDial="1" dialplan.4.applyToUserSend="1" dialplan.4.applyToUserDial="1" dialplan.4.applyToCallListDial="0" dialplan.4.applyToDirectoryDial="0" dialplan.5.impossibleMatchHandling="0" dialplan.5.removeEndOfDial="1" dialplan.5.applyToUserSend="1" dialplan.5.applyToUserDial="1" dialplan.5.applyToCallListDial="0" dialplan.5.applyToDirectoryDial="0" dialplan.6.impossibleMatchHandling="0" dialplan.6.removeEndOfDial="1" dialplan.6.applyToUserSend="1" dialplan.6.applyToUserDial="1" dialplan.6.applyToCallListDial="0" dialplan.6.applyToDirectoryDial="0">
<digitmap dialplan.1.digitmap="" dialplan.1.digitmap.timeOut="" dialplan.2.digitmap="" dialplan.2.digitmap.timeOut="" dialplan.3.digitmap="" dialplan.3.digitmap.timeOut="" dialplan.4.digitmap="" dialplan.4.digitmap.timeOut="" dialplan.5.digitmap="" dialplan.5.digitmap.timeOut="" dialplan.6.digitmap="" dialplan.6.digitmap.timeOut=""/>
<routing>
<server dialplan.1.routing.server.1.address="" dialplan.1.routing.server.1.port="" dialplan.2.routing.server.1.address="" dialplan.2.routing.server.1.port="" dialplan.3.routing.server.1.address="" dialplan.3.routing.server.1.port="" dialplan.4.routing.server.1.address="" dialplan.4.routing.server.1.port="" dialplan.5.routing.server.1.address="" dialplan.5.routing.server.1.port="" dialplan.6.routing.server.1.address="" dialplan.6.routing.server.1.port=""/>
<emergency dialplan.1.routing.emergency.1.value="" dialplan.1.routing.emergency.1.server.1="" dialplan.2.routing.emergency.1.value="" dialplan.2.routing.emergency.1.server.1="" dialplan.3.routing.emergency.1.value="" dialplan.3.routing.emergency.1.server.1="" dialplan.4.routing.emergency.1.value="" dialplan.4.routing.emergency.1.server.1="" dialplan.5.routing.emergency.1.value="" dialplan.5.routing.emergency.1.server.1="" dialplan.6.routing.emergency.1.value="" dialplan.6.routing.emergency.1.server.1=""/>
</routing>
</dialplan>
<msg msg.bypassInstantMessage="0">
<mwi msg.mwi.1.subscribe="" msg.mwi.1.callBackMode="registration" msg.mwi.1.callBack="" msg.mwi.2.subscribe="" msg.mwi.2.callBackMode="registration" msg.mwi.2.callBack="" msg.mwi.3.subscribe="" msg.mwi.3.callBackMode="registration" msg.mwi.3.callBack="" msg.mwi.4.subscribe="" msg.mwi.4.callBackMode="registration" msg.mwi.4.callBack="" msg.mwi.5.subscribe="" msg.mwi.5.callBackMode="registration" msg.mwi.5.callBack="" msg.mwi.6.subscribe="" msg.mwi.6.callBackMode="registration" msg.mwi.6.callBack=""/>
</msg>
<nat nat.ip="" nat.signalPort="" nat.mediaPortStart="" nat.keepalive.interval=""/>
<attendant attendant.uri="" attendant.reg=""/>
<roaming_buddies roaming_buddies.reg=""/>
<roaming_privacy roaming_privacy.reg=""/>
</phone5000>
]
-
Hi,
If you send us copies of your provisioning data we'll retrofit it into the next SARK release.
Send to admin@selintra.com
thanks
S
-
i've another idea
i added two sections in Polycom X01 provisionig description
Polycom IP X01 Polycom Range of IP phones SIP
["$mac-app.log"
This file will be overwitten after each COMMIT
]
[$mac-boot.log
This file will be also overwitten after each COMMIT
]
Remeber just add not replace!!!!!!!!!!
It only creates files such as 000000000000-app.log and 000000000000-boot.log
after creation of each extension just copy it to Log file as compsos write above
bbialy
-
HI guys,
How about I do you all a how-to on exactly how the extensible provisioning works and then you should be able to build your own Polycom support. You can then bounce it back to us and we'll load it into the database for the next release.
Good idea?
Jeff
-
Let's TRY
Maciej
-
http://www.aelintra.com/docs/cgi-bin/view/Main/DocChapter255
I think that the entity you have all been missing/confused about is the Descriptor. Not surprising when you figure that we've never really documented it until now :).
Anyhow, using these guidelines you should be able to automate your Polycom provisioning. If you have any problems with this then post back here and we'll do our best to help.
First one to do Polycoms this way gets a couple of our unbelievably cool (patented design) SARK mousemats. These are not the usual cheap foam rubber items but high quality non-slip plastic with ace graphics and a complete guide to all of the SARK feature codes. They really are too kool for skool and just the thing for your desktop. :)
Best
Jeff