Provision Polycom: Difference between revisions

From KlavoWiki
Jump to navigationJump to search
Line 465: Line 465:
= 202.cfg =
= 202.cfg =
=== voicemail ===
=== voicemail ===
To enable the messages mutton on the phone to call the mailbox.
To enable the messages button on the phone to call the mailbox.
<pre>
<pre>
from msg.mwi.1.subscribe=""
from msg.mwi.1.subscribe=""

Revision as of 13:25, 13 March 2011

To provision a Polycom Phone.

tftp setup

First create a user account making sure you use the same name as the password.

useradd PlcmSpIp
passwd PlcmSpIp
  1. Download the latest SIP and BootROM files form the Polycom WEB site and extract the ZIP files to the /home/PlcmSpIp folder.
  2. Setup DHCP with option 66 to point the IP or FQDN of the server you have created the PlcmSpIp user on.
  3. Now you need to install a TFTP server. Review the page Tftp on how to do so.
  4. Now the important part is to edit the cfg files in /home/PlcmSpIp

macaddress.cfg

<?xml version="1.0" standalone="yes"?>
<!-- Default Master SIP Configuration File-->
<!-- For information on configuring Polycom VoIP phones please refer to the -->
<!-- Configuration File Management white paper available from: -->
<!-- http://www.polycom.com/common/documents/whitepapers/configuration_file_management_on_soundpoint_ip_phones.pdf -->
<!-- $RCSfile: 000000000000.cfg,v $  $Revision: 1.21.20.3 $ -->

<APPLICATION APP_FILE_PATH="sip.ld" CONFIG_FILES="201.cfg, sip.cfg" MISC_FILES="" LOG_FILE_DIRECTORY="" OVERRIDES_DIRECTORY="" CONTACTS_DIRECTORY="" LICENSE_DIRECTORY="">


<APPLICATION_VVX1500 CONFIG_FILES_VVX1500="phone1.cfg, sip.cfg"/>

<!-- Change sip_vvx1500.cfg to sip_vvx1500_H323.cfg to enable H.323 if so licensed -->
<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_SPIP301 APP_FILE_PATH_SPIP301="sip_313.ld" CONFIG_FILES_SPIP301="phone1_313.cfg, sip_313.cfg"/>
<APPLICATION_SPIP501 APP_FILE_PATH_SPIP501="sip_313.ld" CONFIG_FILES_SPIP501="phone1_313.cfg, sip_313.cfg"/>
<APPLICATION_SPIP600 APP_FILE_PATH_SPIP600="sip_313.ld" CONFIG_FILES_SPIP600="phone1_313.cfg, sip_313.cfg"/>
<APPLICATION_SPIP601 APP_FILE_PATH_SPIP601="sip_313.ld" CONFIG_FILES_SPIP601="phone1_313.cfg, sip_313.cfg"/>
<APPLICATION_SSIP4000 APP_FILE_PATH_SSIP4000="sip_313.ld" CONFIG_FILES_SSIP4000="phone1_313.cfg, sip_313.cfg"/>

</APPLICATION>

extension.cfg

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Example Per-phone Configuration File -->
<!-- $RCSfile: phone1.cfg,v $  $Revision: 1.121.4.5 $ -->
<phone>
  <reg 

       reg.1.auth.userId="201"
       reg.1.auth.password=""
       reg.1.server.1.address="192.168.1.1"
       reg.1.server.1.port="5060"
       reg.1.address="201"
       reg.1.label="201"
       reg.1.ringType="2"
       reg.1.lineKeys="4"

       reg.1.displayName=""
       reg.1.type="private"
       reg.1.lcs=""
       reg.1.csta=""
       reg.1.thirdPartyName=""
       reg.1.auth.optimizedInFailover=""
       reg.1.musicOnHold.uri=""
       reg.1.server.1.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.server.1.failOver.reRegisterOn=""
       reg.1.server.2.address=""
       reg.1.server.1.failOver.failBack.mode=""
       reg.1.server.1.failOver.failBack.timeout=""
       reg.1.server.2.port=""
       reg.1.server.2.transport="DNSnaptr"
       reg.1.server.2.expires=""
       reg.1.server.2.expires.overlap=""
       reg.1.server.2.register=""
       reg.1.server.2.retryTimeOut=""
       reg.1.server.2.retryMaxCount=""
       reg.1.server.2.expires.lineSeize=""
       reg.1.server.2.lcs=""
       reg.1.server.2.failOver.reRegisterOn=""
       reg.1.server.2.failOver.failRegistrationOn=""
       reg.1.outboundProxy.address=""
       reg.1.server.2.failOver.failBack.mode=""
       reg.1.server.2.failOver.failBack.timeout=""
       reg.1.outboundProxy.port=""
       reg.1.outboundProxy.transport=""
       reg.1.acd-login-logout="0"
       reg.1.outboundProxy.failOver.reRegisterOn=""
       reg.1.acd-agent-available="0"
       reg.1.outboundProxy.failOver.failRegistrationOn=""
       reg.1.outboundProxy.failOver.failBack.mode=""
       reg.1.outboundProxy.failOver.failBack.timeout=""
       reg.1.proxyRequire=""
       reg.1.callsPerLineKey=""
       reg.1.bargeInEnabled=""
       reg.1.serverFeatureControl.dnd=""
       reg.1.serverFeatureControl.cf=""
       reg.1.strictLineSeize=""
       reg.1.useCompleteUriForRetrieve="1"
       reg.1.tcpFastFailover=""
       reg.1.protocol.SIP=""
       reg.1.protocol.H323=""
       reg.1.server.H323.1.address=""
       reg.1.server.H323.1.port=""
       reg.1.server.H323.1.expires="" />

  <call>
    <donotdisturb call.donotdisturb.perReg="0" />

    <autoOffHook call.autoOffHook.1.enabled="0"
                 call.autoOffHook.1.contact=""
                 call.autoOffHook.1.protocol=""
                 call.autoOffHook.2.enabled="0"
                 call.autoOffHook.2.contact=""
                 call.autoOffHook.2.protocol=""
                 call.autoOffHook.3.enabled="0"
                 call.autoOffHook.3.contact=""
                 call.autoOffHook.3.protocol=""
                 call.autoOffHook.4.enabled="0"
                 call.autoOffHook.4.contact=""
                 call.autoOffHook.4.protocol=""
                 call.autoOffHook.5.enabled="0"
                 call.autoOffHook.5.contact=""
                 call.autoOffHook.5.protocol=""
                 call.autoOffHook.6.enabled="0"
                 call.autoOffHook.6.contact=""
                 call.autoOffHook.6.protocol="" />

    <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="55"
              divert.noanswer.1.contact=""
              divert.noanswer.2.enabled="1"
              divert.noanswer.2.timeout="55"
              divert.noanswer.2.contact=""
              divert.noanswer.3.enabled="1"
              divert.noanswer.3.timeout="55"
              divert.noanswer.3.contact=""
              divert.noanswer.4.enabled="1"
              divert.noanswer.4.timeout="55"
              divert.noanswer.4.contact=""
              divert.noanswer.5.enabled="1"
              divert.noanswer.5.timeout="55"
              divert.noanswer.5.contact=""
              divert.noanswer.6.enabled="1"
              divert.noanswer.6.timeout="55"
              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.1.applyToTelUriDial="1"
            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.2.applyToTelUriDial="1"
            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.3.applyToTelUriDial="1"
            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.4.applyToTelUriDial="1"
            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.5.applyToTelUriDial="1"
            dialplan.6.impossibleMatchHandling="0"
            dialplan.6.removeEndOfDial="1"
            dialplan.6.applyToUserSend="1"
            dialplan.6.applyToUserDial="1"
            dialplan.6.applyToCallListDial="0"
            dialplan.6.applyToDirectoryDial="0"
            dialplan.6.applyToTelUriDial="1">

    <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="1">
    <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=""
             attendant.ringType="1"
             attendant.behaviors.display.spontaneousCallAppearances.normal=""
             attendant.behaviors.display.spontaneousCallAppearances.automata=""
             attendant.behaviors.display.remoteCallerID.normal=""
             attendant.behaviors.display.remoteCallerID.automata=""
             attendant.resourceList.1.address="" attendant.resourceList.1.label="" attendant.resourceList.1.type=""
             attendant.resourceList.2.address="" attendant.resourceList.2.label="" attendant.resourceList.2.type=""
             attendant.resourceList.3.address="" attendant.resourceList.3.label="" attendant.resourceList.3.type=""
             attendant.resourceList.4.address="" attendant.resourceList.4.label="" attendant.resourceList.4.type=""
             attendant.resourceList.5.address="" attendant.resourceList.5.label="" attendant.resourceList.5.type=""
             attendant.resourceList.6.address="" attendant.resourceList.6.label="" attendant.resourceList.6.type=""
             attendant.resourceList.7.address="" attendant.resourceList.7.label="" attendant.resourceList.7.type=""
             attendant.resourceList.8.address="" attendant.resourceList.8.label="" attendant.resourceList.8.type=""
             attendant.resourceList.9.address="" attendant.resourceList.9.label="" attendant.resourceList.9.type=""
             attendant.resourceList.10.address="" attendant.resourceList.10.label="" attendant.resourceList.10.type=""
             attendant.resourceList.11.address="" attendant.resourceList.11.label="" attendant.resourceList.11.type=""
             attendant.resourceList.12.address="" attendant.resourceList.12.label="" attendant.resourceList.12.type=""
             attendant.resourceList.13.address="" attendant.resourceList.13.label="" attendant.resourceList.13.type=""
             attendant.resourceList.14.address="" attendant.resourceList.14.label="" attendant.resourceList.14.type=""
             attendant.resourceList.15.address="" attendant.resourceList.15.label="" attendant.resourceList.15.type=""
             attendant.resourceList.16.address="" attendant.resourceList.16.label="" attendant.resourceList.16.type=""
             attendant.resourceList.17.address="" attendant.resourceList.17.label="" attendant.resourceList.17.type=""
             attendant.resourceList.18.address="" attendant.resourceList.18.label="" attendant.resourceList.18.type=""
             attendant.resourceList.19.address="" attendant.resourceList.19.label="" attendant.resourceList.19.type=""
             attendant.resourceList.20.address="" attendant.resourceList.20.label="" attendant.resourceList.20.type=""
             attendant.resourceList.21.address="" attendant.resourceList.21.label="" attendant.resourceList.21.type=""
             attendant.resourceList.22.address="" attendant.resourceList.22.label="" attendant.resourceList.22.type=""
             attendant.resourceList.23.address="" attendant.resourceList.23.label="" attendant.resourceList.23.type=""
             attendant.resourceList.24.address="" attendant.resourceList.24.label="" attendant.resourceList.24.type=""
             attendant.resourceList.25.address="" attendant.resourceList.25.label="" attendant.resourceList.25.type=""
             attendant.resourceList.26.address="" attendant.resourceList.26.label="" attendant.resourceList.26.type=""
             attendant.resourceList.27.address="" attendant.resourceList.27.label="" attendant.resourceList.27.type=""
             attendant.resourceList.28.address="" attendant.resourceList.28.label="" attendant.resourceList.28.type=""
             attendant.resourceList.29.address="" attendant.resourceList.29.label="" attendant.resourceList.29.type=""
             attendant.resourceList.30.address="" attendant.resourceList.30.label="" attendant.resourceList.30.type=""
             attendant.resourceList.31.address="" attendant.resourceList.31.label="" attendant.resourceList.31.type=""
             attendant.resourceList.32.address="" attendant.resourceList.32.label="" attendant.resourceList.32.type=""
             attendant.resourceList.33.address="" attendant.resourceList.33.label="" attendant.resourceList.33.type=""
             attendant.resourceList.34.address="" attendant.resourceList.34.label="" attendant.resourceList.34.type=""
             attendant.resourceList.35.address="" attendant.resourceList.35.label="" attendant.resourceList.35.type=""
             attendant.resourceList.36.address="" attendant.resourceList.36.label="" attendant.resourceList.36.type=""
             attendant.resourceList.37.address="" attendant.resourceList.37.label="" attendant.resourceList.37.type=""
             attendant.resourceList.38.address="" attendant.resourceList.38.label="" attendant.resourceList.38.type=""
             attendant.resourceList.39.address="" attendant.resourceList.39.label="" attendant.resourceList.39.type=""
             attendant.resourceList.40.address="" attendant.resourceList.40.label="" attendant.resourceList.40.type=""
             attendant.resourceList.41.address="" attendant.resourceList.41.label="" attendant.resourceList.41.type=""
             attendant.resourceList.42.address="" attendant.resourceList.42.label="" attendant.resourceList.42.type=""
             attendant.resourceList.43.address="" attendant.resourceList.43.label="" attendant.resourceList.43.type=""
             attendant.resourceList.44.address="" attendant.resourceList.44.label="" attendant.resourceList.44.type=""
             attendant.resourceList.45.address="" attendant.resourceList.45.label="" attendant.resourceList.45.type=""
             attendant.resourceList.46.address="" attendant.resourceList.46.label="" attendant.resourceList.46.type=""
             attendant.resourceList.47.address="" attendant.resourceList.47.label="" attendant.resourceList.47.type="" />
  <roaming_buddies roaming_buddies.reg="" />
  <roaming_privacy roaming_privacy.reg="" />

  <user_preferences up.analogHeadsetOption="0"
                    up.offHookAction.none=""
                    up.pictureFrame.folder=""
                    up.pictureFrame.timePerImage=""
                    up.screenSaver.enabled="0"
                    up.screenSaver.waitTime="" />

  <acd acd.reg="" acd.stateAtSignIn="" />
</phone>

sip.cfg

The following changes to sip.cfg will increase the users’ experience.

url dialing

This is so that the CID is the actual CID set in Asterisk and not exten@IP_address.

from feature.9.name="url-dialing" feature.9.enabled="1"
to   feature.9.name="url-dialing" feature.9.enabled="0"

time zone

Set the required time zone. The field tcpIpApp.sntp.resyncPeriod is the amount of secdons that the telephone should resync its time from the NTP server.

from tcpIpApp.sntp.resyncPeriod="86400" tcpIpApp.sntp.address="" 
to   tcpIpApp.sntp.resyncPeriod="21600" tcpIpApp.sntp.address="ntp.bri.connect.com.au" 

from  tcpIpApp.sntp.gmtOffset=""
to    tcpIpApp.sntp.gmtOffset="36000"  <-- in secdons  i.e. GMT +10 = 36000

from  tcpIpApp.sntp.daylightSavings.enable="1"
to    tcpIpApp.sntp.daylightSavings.enable="0"

If you are in an area that has day light savings then you also need to set these appropriate settings

tcpIpApp.sntp.address.overrideDHCP="0" tcpIpApp.sntp.gmtOffset="36000" tcpIpApp.sntp.gmtOffset.overrideDHCP="0"
tcpIpApp.sntp.daylightSavings.enable="0" tcpIpApp.sntp.daylightSavings.fixedDayEnable="0" 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"

language

To set the language of the handset.

from lcl.ml.lang=""
to   lcl.ml.lang="English_United_Kingdom"

miscellaneous settings

from feature.1.name="presence" feature.1.enabled="0"
to   feature.1.name="presence" feature.1.enabled="1"

from up.welcomeSoundOnWarmBootEnabled="0"
to   up.welcomeSoundOnWarmBootEnabled="1"

from up.oneTouchVoiceMail="0"
to   up.oneTouchVoiceMail="1"

from prov.polling.enabled="0"
to   prov.polling.enabled="1"

from prov.polling.period="86400"
to   prov.polling.period="21600"

202.cfg

voicemail

To enable the messages button on the phone to call the mailbox.

from msg.mwi.1.subscribe=""
     msg.mwi.1.callBackMode="registration"
     msg.mwi.1.callBack=""

to   msg.mwi.1.subscribe=""
     msg.mwi.1.callBackMode="contact"
     msg.mwi.1.callBack="9999"

reference

A PDF from Polycom on some and more of these features in PDF format is avaiable. Please refer to Technical Bulletin 43565.