Instructions for getting most Cisco phones to work on FreePBX

Phones covered (Cisco SPA phones NOT covered):

Obsolete phones - the list is located in the following Reddit post:

https://www.reddit.com/r/Cisco/comments/1ksqxkk/what_are_the_ucm_options_for_older_phones/

All “Obsolete” phones can only run Cisco “Enterprise firmware”

There are 2 families of Enterprise firmware - SIP and SCCP. Within these families there are many versions but in general phone firmware is simple enough that as long as the phone has SIP firmware on it, you are OK

Note that the vast majority of “obsolete phones” floating around on Fleabay have SCCP firmware loaded in them, in particular, models that have a model number with 9 as the second digit, 7911, 8941, etc. will be like this. That’s because those phones shipped with SCCP firmware on them and Cisco later released SIP firmware for them.

Note that getting these models running requires a lot of research because Cisco changed from unsigned to signed firmware and changed the phone’s bootloader, and you have to incrementally update these phones if they are running the oldest firmware - and many of the incremental firmware update files are hard to find. More info on specific models is at the end of this post. Note also that the oldest phones the 79xx series such as the models featured in the TV show “The Office”, also require special PoE and will only power up when connected to a Cisco PoE switch or a 48v AC adapter. See the following for firmware update notes:

Current phones - the list is located in the readme for CUCM 15:

Current phones (the x8xx series) can run either Enterprise firmware OR they can be reloaded with 3PCC/MPP firmware if you buy a license from Cisco for them. Cisco never released SCCP firmware for them.

The vast majority of model x8xx phones on Ebay are running Enterprise SIP firmware.

Note that as of this writing Cisco provides firmware for virtually every phone they have ever made, and supports all of those phones with CUCM 15, the current version. For “Obsolete” phones you have to download and install a separate COP file into CUCM 15 for the firmware. This firmware is only accessible under service contract with UCM 15 from Cisco’s website, however many of the Cisco firmware files are available on various archive sites.

The COP file is located here:

https://software.cisco.com/download/home/286331940/type/282074299/release/15.0(1.10000)EOL

Don’t post public requests for firmware files to this forum. Technically Cisco prohibits phone firmware redistribution, however in practice they really don’t care because modern Cisco phone systems are all “Smartlicense, subscription” based systems, and paying the “yearly service contract fee” entitles you to all files included with CUCM, and Cisco includes all of it’s own current phone’s firmware in CUCM and it’s obsolete phone firmware in the separate download file referenced in the reddit discussion post above. See that for information on where to get the collection of “obsolete” firmware if you have a CUCM pbx.

Buying a Cisco service contract on a phone entitles you to both 3PCC/MPP and Enterprise firmware but you cannot just load 3PCC on an Enterprise phone. You must have a license for the phone also. Information on doing that is located here:

and here:

Convert Cisco 7800 and 8800 series IP phones between Enterprise and MPP Firmware - Cisco

Conversion license costs are roughly around $40-$50 depending on the retailer you buy the license from.

It is a lot easier for a novice to configure a MPP/3PCC Cisco phone on FreePBX, and the MPP/3PCC firmware makes the phone work similarly to VoIP phones from HP/Polycom, and others.

It is a lot easier for a smaller installation (a few hundred phones or less) to use MPP/3PCC firmware on Cisco phones with FreePBX/Asterisk as this eliminates the need for a provisioning server since each phone has a webinterface that can be used to configure the phone

The 3PCC/MPP firmware handles networks better where a NAT device is mucking about with SIP and is in between the PBX and the phone

In general for “greenfield” installations, Cisco phones should be selected that either have 3PCC/MPP firmware loaded from the factory, or are upgraded once the phone is purchased and tested.

If you get the idea I’m telling you point blank to buy an upgrade to your Cisco phone to 3PCC/MPP firmware if it supports it - I am.

Beware spending excessive amounts of money for used Cisco phones that have been converted to 3PCC. The reason is that Cisco is now currently selling “virtual cloud phone systems” that offer FREE conversion to 3PCC for Cisco phones. However, this “free” license IS LOCKED to Cisco’s virtual PBX and CANNOT be used with FreePBX. If the “free Webex-Cloud-Calling” license applied to the phone was earlier than 11.3.3 then it will have destroyed the phones original Enterprise license and a new “reversion” to Enterprise firmware license will have to be purchased. If later for certain phones then the phone can be fixed by just flashing Enterprise firmware back on to the phone.

Enterprise firmware AND MPP/3PCC firmware will BOTH work with FreePBX with some important differences as follows:

  1. Enterprise firmware WILL NOT support multiple line appearances/BLF keys on the phones. There IS a patch to do this, the USECALLMANAGER patch, however you would have to compile Asterisk from scratch and then apply the patch and then install FreePBX with the “noasterisk” option. This is a big consideration for using the model x9xx phones since these ONLY support Enterprise firmware.

  2. Newer versions of FreePBX may end up dropping support for the chan_sip configuration interface required by the patch, thus making all extension configuration in newer FreePBX versions for extensions requiring the patch, done manually in configuration files at the command line of the FreePBX system.

  3. Clicking the red “Apply” button in FreePBX does NOT reset the extensions on the USECALLMANAGER patch, nor does “core restart now” reset them to apply changes. It also causes phones using that patch to de-register BLF keys. Only stopping and restarting Asterisk applies those changes properly.

  4. Enterprise firmware will NOT support multi-extension paging with one exception noted below. With the Cisco PBXes, paging is done via multicasting on the network, FreePBX does not support this. 3PCC/MPP firmware is compatible with FreePBX paging. There’s a commercial add-on module for FreePBX called Page Pro that supports multicast paging but nobody has tried it with Enterprise firmware on these phones. There is also a program someone wrote for multicast paging outside of FreePBX, listed below.

  5. 3PCC/MPP phones can be individually configured via webinterface on the phone, Enterprise phones cannot. Enterprise phones can only be configured via TFTP using SEPMAC XML configuration files

  6. 3PCC/MPP phones can ALSO be bulk configured via TFTP XML files but the format for those is completely different than for the Enterprise firmware.

  7. Certain SEPMAC configuration file changes WILL NOT be read by the phone unless it is factory reset

  8. Enterprise firmware uses DHCP server option 150 for Cisco-specific phones to point them to the TFTP server.

  9. Enterprise firmware limits the extension SIP password length. The oldest firmware is limited to 8 characters in the phone password

  10. SSH into the phone’s command line works on all models other than the 79x0 models but it uses old ciphers so use the command:

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -o HostKeyAlgorithms=+ssh-rsa -c aes128-cbc -o MACs=hmac-md5 [email protected]

  1. for the Cisco videphone models, the cameras in the older 8945’s are 4:3 aspect ratio the newer 88xx videophones phones use an HD camera that is 16:9

  2. There are multiple reports that using the Cisco Enterprise firmware with Asterisk only works reliably if the phone is configured to register using TCP

  3. There is no support in EPM for configuring either 3PCC/MPP or Enterprise Cisco phones. There is a standalone GUI for configuring the Enterprise phones called the Cisco Provisioning Manager, see the link at the bottom of this post.

  4. The phones Directory button using Enterprise firmware does not directly support directory lookups via LDAP however the Directory button under 3PCC/MPP firmware does. Enterprise uses a fixed XML format for a directory that is limited to a max of 32 entries. The CUCM approach with Enterprise firmware is for the UCM to make LDAP queries and present the output to the phone. Schemes are documented below that can dynamically generate the directory XML using LDAP queries or SQL queries into the FreePBX Asterisk database for the Enterprise firmware.

Notes on configuration file examples:

Basic templates for Enterprise SEPMAC files are located at these URLs:

Note that as you study the SEPMAC examples you will note that they are quite similar this is because as Cisco has added features to the Enterprise firmware over the years they have just added keywords to the basic SEPMAC file. These files are mostly interchangeable.

Note that commenting out or deleting the <loadInfirmation> line in the SEPMAC file will cause the phone to NOT attempt to update firmware but instead will use the firmware loaded on the phone. This is important to do if you don’t have the firmware files. It is required for certain models and the 7914 sidecar, and is not required for other sidecar models.

Basic templates for 3PCC/MPP XML configuration files are located here:

Official Cisco documentation and support for 3PCC/MPP firmware to LDAP query a directory such as a Microsoft Active Directory.:

Also:
[Configure directory service for phones 9800 and 8875 (BroadWorks)]

Cisco IP Conference Phone Multiplatform Phone Administration Guide - Corporate and Personal Directory Setup [Cisco IP Phone 7800 Series with Multiplatform Firmware] - Cisco

Notes on individual Cisco phone model quirks:

7940/7960 These are the oldest phones and use a completely different configuration file layout documented here: Appendix A - Configuring SIP Phones - Cisco
7941/7961 These and all later 79xx model phones use the SEPMAC configuration file. Note that factory resetting this model reformats the flash so you MUST have the phone’s firmware available on the TFTP server.
7914 Sidecar This only works with SIP firmware on a 7961 model. Other models like the 7941, 7960, that show compatibility with the sidecar are only compatible using SCCP firmware on the phone.
6900 series Any of these running version 8 firmware must be updated to 9.0.3 or later first before being updated to current firmware
8941 These phones will crash when making video calls if they are running version 9.4.x firmware

Other notes and resources:

Note that Cisco did release an actual softphone application that runs under Windows called Cisco Communicator. It is configured the same way the deskphones are configured in that it pulls a SEPMAC file from the TFTP server. However, the TFTP server must have a patch added to it, or the softphone application will not read the file. This is documented here:

Fun with Cisco’s IP Communicator softphone application - FreePBX / Endpoints - FreePBX Community Forums

Note that Contacts and Directory buttons exist on many Cisco phone models. Note with some phone models it is critical to set the webserver to issue a Doctype XML using .htaccess or the phone will not read the directory XML file. A discussion to enable these buttons is located here:

Contacts/Phonebook on Cisco 7900 series - FreePBX / Endpoints - FreePBX Community Forums

An example using PHP to query an LDAP server and format the output into something a Cisco 7940 phone can display is here - note the phone output section is 7940-specific, (although the php LDAP section could be adapted to other phone models) see the prior URL for all other Cisco Enterprise phones:

CISCO LDAP XML Directory - VoIP-Info

Discussions on paging with Cisco phones are located here:

Getting paging to work with a Cisco 8851 - FreePBX / Endpoints - FreePBX Community Forums
Paging / Intercom not auto answering Cisco 7975 - FreePBX / Endpoints - FreePBX Community Forums
Cisco 7940-7960 auto-answer config - VoIP-Info

Code and video for Cisco phone with Enterprise firmware paging outside of FreePBX

GitHub - Wriar/Cisco-RTP-MultiCast-Streamer: .NET RTP multicast streaming application to page Cisco Phones/Collaboration Endpoints.
Cisco MultiCast Paging using CiscoRTPStreamer (Open Source)

Standalone Cisco Phone with Enterprise firmware provisioning server:

GitHub - Wriar/Cisco-Provisioning-Server: An open-source node server to provision Cisco phones and devices.

5 Likes