Cisco 8851 and FreePBX Configuration

Published 30 December 2019 | Updated 30 December 2019

See below the current configuration files for Cisco 8851 and FreePBX. So far this is just a dump of the config to help someone get started. I'll be providing more detail and a break down later.

It's worth noting I also had to downgrade the phone firmware to sip88xx.10-2-2-16 before this all would work.

I also found the following sites helpful:

Key points of note:

  • sshAccess / webAccess, `0` means on / enabled, contrary to what you might think.
  • daysDisplayNotActive indicates the days the displayOnTime will be used. It still turns off after the displayOnDuration expires.
<sshAccess>0</sshAccess>
<webAccess>0</webAccess>
<daysDisplayNotActive>1,7</daysDisplayNotActive> 
<displayOnTime>09:00</displayOnTime>
<displayOnDuration>01:00</displayOnDuration>
<displayIdleTimeout>00:10</displayIdleTimeout>

SEP<MAC>.cnf

<device> 
   <deviceProtocol>SIP</deviceProtocol> 
   <sshUserId>sshId</sshUserId> 
   <sshPassword>sshPassword</sshPassword> 
   <devicePool> 
      <dateTimeSetting> 
         <dateTemplate>D/M/YY</dateTemplate>
         <timeZone>GMT Standard/Daylight Time</timeZone>
         <ntps> 
            <ntp> 
               <name>0.uk.pool.ntp.org</name> 
               <ntpMode>Unicast</ntpMode> 
            </ntp>         
         </ntps> 
      </dateTimeSetting> 
      <callManagerGroup> 
         <members> 
            <member priority="0"> 
               <callManager> 
                  <ports> 
                     <ethernetPhonePort>2000</ethernetPhonePort> 
                     <sipPort>5160</sipPort> 
                     <securedSipPort>5161</securedSipPort> 
                  </ports> 
                  <processNodeName>freepbx.your.host</processNodeName> 
               </callManager> 
            </member> 
         </members> 
      </callManagerGroup> 
   </devicePool> 
   <sipProfile> 
      <sipProxies> 
         <backupProxy></backupProxy> 
         <backupProxyPort>5160</backupProxyPort> 
         <emergencyProxy></emergencyProxy> 
         <emergencyProxyPort></emergencyProxyPort> 
         <outboundProxy></outboundProxy> 
         <outboundProxyPort></outboundProxyPort> 
         <registerWithProxy>true</registerWithProxy> 
      </sipProxies> 
      <sipCallFeatures> 
         <cnfJoinEnabled>true</cnfJoinEnabled> 
         <callForwardURI>x-serviceuri-cfwdall</callForwardURI> 
         <callPickupURI>x-cisco-serviceuri-pickup</callPickupURI> 
         <callPickupListURI>x-cisco-serviceuri-opickup</callPickupListURI> 
         <callPickupGroupURI>x-cisco-serviceuri-gpickup</callPickupGroupURI> 
         <meetMeServiceURI>x-cisco-serviceuri-meetme</meetMeServiceURI> 
         <abbreviatedDialURI>x-cisco-serviceuri-abbrdial</abbreviatedDialURI> 
         <rfc2543Hold>false</rfc2543Hold> 
         <callHoldRingback>2</callHoldRingback> 
         <localCfwdEnable>true</localCfwdEnable> 
         <semiAttendedTransfer>true</semiAttendedTransfer> 
         <anonymousCallBlock>2</anonymousCallBlock> 
         <callerIdBlocking>2</callerIdBlocking> 
         <dndControl>0</dndControl> 
         <remoteCcEnable>true</remoteCcEnable> 
      </sipCallFeatures> 
      <sipStack> 
         <sipInviteRetx>6</sipInviteRetx> 
         <sipRetx>10</sipRetx> 
         <timerInviteExpires>180</timerInviteExpires> 
         <timerRegisterExpires>3600</timerRegisterExpires> 
         <timerRegisterDelta>5</timerRegisterDelta> 
         <timerKeepAliveExpires>120</timerKeepAliveExpires> 
         <timerSubscribeExpires>120</timerSubscribeExpires> 
         <timerSubscribeDelta>5</timerSubscribeDelta> 
         <timerT1>500</timerT1> 
         <timerT2>4000</timerT2> 
         <maxRedirects>70</maxRedirects> 
         <remotePartyID>false</remotePartyID> 
         <userInfo>None</userInfo> 
      </sipStack> 
      <autoAnswerTimer>1</autoAnswerTimer> 
      <autoAnswerAltBehavior>false</autoAnswerAltBehavior> 
      <autoAnswerOverride>true</autoAnswerOverride> 
      <transferOnhookEnabled>false</transferOnhookEnabled> 
      <enableVad>false</enableVad> 
      <dtmfAvtPayload>101</dtmfAvtPayload> 
      <dtmfDbLevel>3</dtmfDbLevel> 
      <dtmfOutofBand>avt</dtmfOutofBand> 
      <alwaysUsePrimeLine>false</alwaysUsePrimeLine> 
      <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail> 
      <kpml>3</kpml> 
      <phoneLabel>Phone</phoneLabel> 
      <stutterMsgWaiting>1</stutterMsgWaiting> 
      <callStats>false</callStats> 
      <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts> 
      <disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig> 
      <sipLines> 
         <line button="1" lineIndex="1">
            <featureID>9</featureID> 
            <featureLabel>200</featureLabel> 
            <proxy>USECALLMANAGER</proxy> 
            <port>5160</port> 
            <name>200</name> 
            <displayName>200</displayName> 
            <autoAnswer> 
               <autoAnswerEnabled>2</autoAnswerEnabled>
            </autoAnswer> 
            <callWaiting>3</callWaiting> 
            <authName>200</authName> 
            <authPassword>yourpass</authPassword> 
            <sharedLine>false</sharedLine> 
            <messageWaitingLampPolicy>1</messageWaitingLampPolicy> 
            <messagesNumber>*97</messagesNumber> 
            <ringSettingIdle>4</ringSettingIdle> 
            <ringSettingActive>5</ringSettingActive> 
            <contact>200</contact> 
            <forwardCallInfoDisplay> 
               <callerName>true</callerName> 
               <callerNumber>false</callerNumber> 
               <redirectedNumber>false</redirectedNumber> 
               <dialedNumber>true</dialedNumber> 
            </forwardCallInfoDisplay> 
         </line>
         <line button="3">
                <featureID>2</featureID>
                <featureLabel>Conference</featureLabel>
                <speedDialNumber>2000</speedDialNumber>
         </line>
         <line button="3">
                <featureID>2</featureID>
                <featureLabel>Conference (No PIN)</featureLabel>
                <speedDialNumber>2001</speedDialNumber>
         </line>
      </sipLines> 
      <voipControlPort>5160</voipControlPort> 
      <startMediaPort>16348</startMediaPort> 
      <stopMediaPort>20134</stopMediaPort> 
      <dscpForAudio>184</dscpForAudio> 
      <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy> 
      <dialTemplate>dialplan.xml</dialTemplate> 
      <softKeyFile></softKeyFile> 
   </sipProfile> 
   <commonProfile> 
      <phonePassword></phonePassword> 
      <backgroundImageAccess>true</backgroundImageAccess> 
      <callLogBlfEnabled>2</callLogBlfEnabled> 
   </commonProfile> 
   <loadInformation>SIP45.8-4-2S</loadInformation> 
   <vendorConfig> 
      <disableSpeaker>false</disableSpeaker> 
      <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset> 
      <pcPort>0</pcPort> 
      <settingsAccess>1</settingsAccess> 
      <garp>0</garp> 
      <voiceVlanAccess>0</voiceVlanAccess> 
      <videoCapability>0</videoCapability> 
      <autoSelectLineEnable>0</autoSelectLineEnable> 
      <webAccess>0</webAccess> 
	   <sshAccess>0</sshAccess>
	   <sshPort>22</sshPort>
      <daysDisplayNotActive>1,7</daysDisplayNotActive> 
      <displayOnTime>09:00</displayOnTime>
      <displayOnDuration>01:00</displayOnDuration>
      <displayIdleTimeout>00:10</displayIdleTimeout>
      <displayOnWhenIncomingCall>1</displayOnWhenIncomingCall>
      <spanToPCPort>1</spanToPCPort> 
      <loggingDisplay>1</loggingDisplay> 
      <loadServer></loadServer> 
   </vendorConfig> 
   <userLocale>
        <name>English_United_Kingdom</name>
        <!-- the name above is the exact name of the folder inside /tftpboot where the locale files are stored -->
        <uid>1</uid>
        <langCode>en_GB</langCode>
        <version>1.0.0.0-1</version>
        <winCharSet>iso-8859-1</winCharSet>
    </userLocale> 
   <networkLocale>English_United_Kingdom</networkLocale> 
   <networkLocaleInfo> 
      <name></name> 
      <uid></uid> 
      <version>1.0.0.0-1</version> 
   </networkLocaleInfo>
   <phoneServices>
        <provisioning>0</provisioning>
        <phoneService type="1" category="0">
            <name>Missed Calls</name>
            <url>Application:Cisco/MissedCalls</url>
            <vendor></vendor>
            <version></version>
        </phoneService>
        <phoneService type="2" category="0">
            <name>Voicemail</name>
            <url>Application:Cisco/Voicemail</url>
            <vendor></vendor>
            <version></version>
        </phoneService>
        <phoneService type="1" category="0">
            <name>Received Calls</name>
            <url>Application:Cisco/ReceivedCalls</url>
            <vendor></vendor>
            <version></version>
        </phoneService>
        <phoneService type="1" category="0">
            <name>Placed Calls</name>
            <url>Application:Cisco/PlacedCalls</url>
            <vendor></vendor>
            <version></version>
        </phoneService>
        <phoneService type="1" category="0">
            <name>Contacts</name>
            <!-- set the URL below to match your server DNS name, and edit the extension to match the correct extension for this file -->
            <url>http://freepbx.your.host/cisco/directory.php?xtn=200</url>
            <vendor></vendor>
            <version></version>
        </phoneService>
        <phoneService type="0" category="0">
            <name>Visual Voicemail</name>
            <url></url>
            <vendor></vendor>
            <version></version>
        </phoneService>
    </phoneServices>    
   <deviceSecurityMode>1</deviceSecurityMode> 
   <authenticationURL></authenticationURL> 
   <directoryURL></directoryURL> 
   <servicesURL></servicesURL> 
   <idleURL></idleURL> 
   <informationURL></informationURL> 
   <messagesURL></messagesURL> 
   <proxyServerURL></proxyServerURL> 
   <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig> 
   <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices> 
   <dscpForCm2Dvce>96</dscpForCm2Dvce> 
   <transportLayerProtocol>2</transportLayerProtocol> 
   <capfAuthMode>0</capfAuthMode> 
   <capfList> 
      <capf> 
         <phonePort>3804</phonePort> 
      </capf> 
   </capfList> 
   <certHash></certHash> 
   <encrConfig>false</encrConfig> 
</device>

XMLDefault.xml

<Default> 
<callManagerGroup> 
    <members>  
       <member priority="0">  
          <callManager>  
             <ports>  
                <ethernetPhonePort>2000</ethernetPhonePort>  
                <mgcpPorts>  
                   <listen>2427</listen>  
                   <keepAlive>2428</keepAlive>  
                </mgcpPorts>  
             </ports>  
             <processNodeName></processNodeName>  
          </callManager>  
       </member>  
    </members>  
 </callManagerGroup>  
<loadInformation8 model="IP Phone 7940">P0S3-8-12-00</loadInformation8>  
<loadInformation7 model="IP Phone 7960">P0S3-8-12-00</loadInformation7> 
<loadInformation435 model="Cisco 7945">SIP45.8-4-2S</loadInformation435>
<loadInformation436 model="Cisco 7965">SIP45.8-4-2S</loadInformation436> 
<loadInformation30006 model="IP Phone 7970">SIP70.8-0-3S</loadInformation30006>
<loadInformation684 model="Cisco 8851">sip88xx.10-2-2-16</loadInformation684>
<authenticationURL></authenticationURL>  
<directoryURL></directoryURL>  
<idleURL></idleURL>  
<informationURL></informationURL>  
<messagesURL></messagesURL>  
<servicesURL></servicesURL>  
</Default>

featurepolicy.xml

<!-- featurepolicy.xml -->
<featurePolicy name="Feature Policy">
    <versionStamp>c1b05fde-ef64-11e5-9ce9-5e5517507c66</versionStamp>
    <featureDef name="Redial">
        <id>7</id>
        <enable>true</enable>
    </featureDef>
    <featureDef name="Call PickUp">
        <id>10</id>
        <enable>true</enable>
    </featureDef>
    <featureDef name="Divert (Alerting)">
        <id>3</id>
        <enable>true</enable>
    </featureDef>
    <featureDef name="Quality Reporting Tool">
        <id>15</id>
        <enable>true</enable>
    </featureDef>
</featurePolicy>

softkeys.xml

<!-- softkeys.xml -->
<softKeyCfg>
    <versionStamp>c1b05fde-ef64-11e5-9ce9-5e5517507c66</versionStamp>
    <typeSoftKey>
        <softKeyDef keyID="Undefined">
            <tag>0</tag>
            <eventID>0</eventID>
            <helpID>0</helpID>
        </softKeyDef>
        <softKeyDef keyID="Redial">
            <tag>1</tag>
            <eventID>1</eventID>
            <helpID>301</helpID>
        </softKeyDef>
        <softKeyDef keyID="NewCall">
            <tag>2</tag>
            <eventID>2</eventID>
            <helpID>302</helpID>
        </softKeyDef>
        <softKeyDef keyID="Hold">
            <tag>3</tag>
            <eventID>3</eventID>
            <helpID>303</helpID>
        </softKeyDef>
        <softKeyDef keyID="&lt;&lt;">
            <tag>8</tag>
            <eventID>8</eventID>
            <helpID>308</helpID>
        </softKeyDef>
        <softKeyDef keyID="CFwdAll">
            <tag>5</tag>
            <eventID>5</eventID>
            <helpID>305</helpID>
        </softKeyDef>
        <softKeyDef keyID="EndCall">
            <tag>9</tag>
            <eventID>9</eventID>
            <helpID>309</helpID>
        </softKeyDef>
        <softKeyDef keyID="Resume">
            <tag>10</tag>
            <eventID>10</eventID>
            <helpID>310</helpID>
        </softKeyDef>
        <softKeyDef keyID="Answer">
            <tag>11</tag>
            <eventID>11</eventID>
            <helpID>311</helpID>
        </softKeyDef>
        <softKeyDef keyID="PickUp">
            <tag>17</tag>
            <eventID>17</eventID>
            <helpID>317</helpID>
        </softKeyDef>
        <softKeyDef keyID="QRT">
            <tag>75</tag>
            <eventID>22</eventID>
            <helpID>322</helpID>
        </softKeyDef>
        <softKeyDef keyID="Select">
            <tag>78</tag>
            <eventID>29</eventID>
            <helpID>329</helpID>
        </softKeyDef>
        <softKeyDef keyID="iDivert">
            <tag>80</tag>
            <eventID>31</eventID>
            <helpID>331</helpID>
         </softKeyDef>
        <softKeyDef keyID="Record">
            <tag>7747</tag>
            <eventID>74</eventID>
            <helpID>374</helpID>
        </softKeyDef>
    </typeSoftKey>
 
    <softKeySets>
        <softKeySet id="On Hook">
            <softKey keyID="Redial" />
            <softKey keyID="NewCall" />
            <softKey keyID="PickUp" />
            <softKey keyID="CFwdAll" />
        </softKeySet>
        <softKeySet id="Off Hook">
            <softKey keyID="Redial" />
            <softKey keyID="EndCall" />
        </softKeySet>
        <softKeySet id="Off Hook With Feature">
            <softKey keyID="Redial" />
            <softKey keyID="EndCall" />
        </softKeySet>
        <softKeySet id="Digits After First">
            <softKey keyID="&lt;&lt;" />
            <softKey keyID="EndCall" />
        </softKeySet>
        <softKeySet id="Ring Out">
            <softKey keyID="Undefined" />
            <softKey keyID="EndCall" />
        </softKeySet>
        <softKeySet id="Connected">
            <softKey keyID="Hold" />
            <softKey keyID="EndCall" />
            <softKey keyID="Record" />
            <softKey keyID="QRT" /> 
        </softKeySet>
        <softKeySet id="Connected No Feature">
            <softKey keyID="Undefined" />
            <softKey keyID="EndCall" />
        </softKeySet>
        <softKeySet id="Connected Transfer">
            <softKey keyID="Undefined" />
            <softKey keyID="EndCall" />
            <softKey keyID="Transfer" />
        </softKeySet>
        <softKeySet id="On Hold">
            <softKey keyID="Resume" />
            <softKey keyID="NewCall" />
        </softKeySet>
        <softKeySet id="Ring In">
            <softKey keyID="Answer" />
            <softKey keyID="iDivert" />
        </softKeySet>
    </softKeySets>
</softKeyCfg>

List.xml

<CiscoIPPhoneImageList>
<ImageItem Image="TFTP:/Desktops/800x480x24/P1-Thumb.png" URL="TFTP:/Desktops/800x480x24/P1.png"/> 
<ImageItem Image="TFTP:/Desktops/800x480x24/P2-Thumb.png" URL="TFTP:/Desktops/800x480x24/P2.png"/> 
<ImageItem Image="TFTP:/Desktops/800x480x24/P5-Thumb.png" URL="TFTP:/Desktops/800x480x24/P5.png"/> 
</CiscoIPPhoneImageList>