Skip to end of metadata
Go to start of metadata

Cisco 8800 series popular 3PCC phones include: Cisco 8841, 8851, 8861

Note: this article/configuration is not supported by Sangoma/FreePBX and use it at your own risk. I simply was trying to find some clear steps online on how to provision my Cisco 8800 series phones with EPM and couldn’t find any full instructions so decided to create them for those who want to use these great Cisco phones with their system.

3PCC means 3rd party call control. Cisco makes 2 versions of firmware for their 8800 series phones – an enterprise firmware (phones with the enterprise firmware only work with Cisco CallManager and won’t work with other systems). The 3PCC version is SIP compatible and works with any SIP PBX i.e. FreePBX etc. and can be provisioned with standard XML template format and has web UI for manual configuration of SIP credentials. You can tell which software vdersion a Cisco phone has from the phones’ status menu. You can also take a look at the PID VID label on the back; 3PCC phones have MPP or 3PCC or 3PW in the model number, i.e. CP-8861-3PW-NA-K9 V06 would be 3PCC compatible. CP-8861-K9 would be the enterprise version, so NOT 3PCC compatible. However, it is possible that your phone has been converted to enterprise firmware or 3PCC/vice versa so I always recommend turning the phone on and taking a look at the Software version under Settings>Product information of the phone. Regarding converting the firmware to 3PCC/enterprise/vice versa yourself, Cisco has made this impossible without buying licenses to do it, and in order to get licenses you need a Cisco contract, etc. $$$$$ thousands of dollars for this kind of conversion and is only meant to be done by large enterprises.

As a note, the 3PCC firmware for Cisco 8800 series phones is based on the older SPA series phones’ firmware, so the configuration is almost identical (the newer 8800 series have some more options)...

So once you’re sure your phone is 3PCC compatible and you want to get it provisioned with EPM, follow the below steps...

  1. Go to EPM and create a template for exactly Cisco SPA-508G phone. This is the SPA series phone that has 8 standard buttons you can configure in the same way you’d configure buttons on the 8800 series.
  2. Go to EPM>Basefile Edit, select the Cisco template you added and edit the SPA-508G template you just created.
  3. Now you are able to fully customize the settings of your Cisco phone as much as you want using the XML configuration tags. You can delete/add/edit any settings you need here.
    An XML open format configuration file sample is available here from Cisco
    And a list of available configuration parameters with explanations is available here from Cisco: XML reference guide for Cisco IP Multiplatform Phones
  4. Below is an example of the parameters I added to the basefile of my template:
<Call_Park_Serv ua="na">No</Call_Park_Serv>
<Group_Call_Pick_Up_Serv ua="na">No</Group_Call_Pick_Up_Serv>
<Cfwd_All_Serv ua="na">No</Cfwd_All_Serv>
<Cfwd_Busy_Serv ua="na">No</Cfwd_Busy_Serv>
<Cfwd_No_Ans_Serv ua="na">No</Cfwd_No_Ans_Serv>
<Phone-UI-User-Mode ua="na">Yes</Phone-UI-User-Mode>
<BXfer_On_Speed_Dial_Enable ua="na">Yes</BXfer_On_Speed_Dial_Enable>
<Send_Resp_To_Src_Port ua="na">Yes</Send_Resp_To_Src_Port>
<Host_Name ua="na">Phone Ext __line1Ext__</Host_Name>
<SIP_T1 ua="na">1</SIP_T1>
<Reg_Retry_Long_Intvl ua="na">60</Reg_Retry_Long_Intvl>
<Handle_VIA_received ua="na">Yes</Handle_VIA_received>
<Handle_VIA_rport ua="na">Yes</Handle_VIA_rport>
<Insert_VIA_received ua="na">Yes</Insert_VIA_received>
<Insert_VIA_rport ua="na">Yes</Insert_VIA_rport>
<Substitute_VIA_Addr ua="na">Yes</Substitute_VIA_Addr>
<NAT_Keep_Alive_Intvl ua="na">45</NAT_Keep_Alive_Intvl>
<Call_Appearances_Per_Line ua="na">10</Call_Appearances_Per_Line>
<Register_Expires_1_ ua="na">30</Register_Expires_1_>
<Proxy_Fallback_Intvl_1_ ua="na">600</Proxy_Fallback_Intvl_1_>
<Idle_Key_List ua="na">redial;cfwd;dnd;pickup;</Idle_Key_List>
<Off_Hook_Key_List ua="na">redial;cfwd;dnd;pickup;</Off_Hook_Key_List>
<Dialing_Input_Key_List ua="na">|1;dial|2;delchar|3;cancel|4;clear</Dialing_Input_Key_List>
<Hold_Key_List ua="na">resume|1;endcall|2;newcall|3;redial;cfwd;dnd;crdstart;crdstop;</Hold_Key_List>
<Preferred_Codec_1_ ua="na">G711u</Preferred_Codec_1_>
<Use_Pref_Codec_Only_1_ ua="na">Yes</Use_Pref_Codec_Only_1_>
<Attendant_Console_Call_Pickup_Code ua="na">**</Attendant_Console_Call_Pickup_Code>
<Call_Pickup_Code ua="na">**</Call_Pickup_Code>
<Connected_Key_List ua="na">hold|1;endcall|2;xfer|3;bxfer;xferLx|4;crdstart;crdstop;conf;confLx;park;phold;flash;</Connected_Key_List>
<Time_Zone ua="na">GMT-05:00</Time_Zone>
<Picture_Download_URL ua="rw">https://wallpaperaccess.com/full/360434.jpg</Picture_Download_URL>
<Phone_Background ua="rw">Download Picture</Phone_Background>

5. PLEASE NOTE: Most of the time your Cisco phone won’t work with FreePBX unless you set the option to only use G711u codec. This is setup in the above exampple settings but in case you want to see it, you must add the following parameters to be able to make/receive calls:

<Preferred_Codec_1_ ua=”na”>G711u</Preferred_Codec_1_>
<Use_Pref_Codec_Only_1_ ua=”na”>Yes</Use_Pref_Codec_Only_1_>

In my above template modifications I changed many things I wanted to such as call appearances per line, call pickup code (note that by default in the SPA508G basefile there is already a parameter for call pickup code which is **# but that doesn’t work so you need to edit it to be the call pickup code of your system, and mine is **), I changed which keys show up on the screens etc.

6. NOTE the 8800 series Cisco phones have 10 programmable buttons and the SPA508G phone template only allows you to program 8 of those buttons from the front end (remember, we’re programming a phone that has 2 more buttons than the template), so if you want to use the last 2 buttons you have to add them manually. This can be done without too much pain as follows:

Example – adding 9th button (repeat for 10th button but replace 9 with 10):

<Extended_Function_9_>fnc=blf+sd+cp;sub=123@$PROXY;nme=Receptionist-123</Extended_Function_9_>
<Extension_9_>Disabled</Extension_9_>

Note above extended function I’ve specified the 9th key to function as a BLF (blf), speed dial (sd) and call pickup (cp) button for ext 123 which is receptionist (example) and I’ve set the name to display on the button (nme) to be Reception-123. Modify to fit your extension and display name requirements.

7. Once you’re done customizing your configuration parameters of the basefile, scroll to the bottom and select option to “Save and Rebuild Configs”

8. Now you can go on to actually provisioning the phone with the server.

1- Make sure the phone is reset to factory defaults and go to the Web UI of the phone (find it’s IP address first and then go to it)
2- click on “Admin Login” and then “Advanced” in the top-right
3- go to “Voice”>”Provisioning”
4- enter your provisioning server information according to the info you specified in the template provisioning settings. E.g. if you set your phone to use External TFTP address then you would enter the following into Profile Rule: tftp://YOURSERVERADDRESS/spa$MA.xml
Note – I find that these Cisco phones provision much better/reliably with TFTP rather than HTTP.
5- above Profile Rule you will need to set the profile authentication type as what you have configured; EPM has authentication disabled by default so if this is your case you’d select the option for “Disabled” in the Cisco setting.
6- click “Submit All Changes” and your phone should reboot and provision with EPM.

Tips/notes for configuration of Cisco 8800 series phones using the SPA508G template (reference above example configuration for the mentioned configuration parameters):

  • I recommend you turn off the call park feature as it doesn’t work well (see my example configuration parameters above)
  • The __background__ configuration variable from EPM won’t work with the 8800 series phones because it adds .bmp to the end of the image; you need to specify an external address for background image if you want to use it
  • I recommend you set Call Appearances Per Line to the maximum (10) so that you can have one line key for the active calls and use the remaining 9 keys for BLFs etc.
  • If you want to be able to press on a BLF key and have the call blind transferred to that destination set the Bxfer On Speed Dial Enable to yes