Even though many people really like the Cisco 7940/7960 phones and want to use them with third-party IP PBX platforms such as 3CX, trixbox CE, and trixbox Pro, Cisco does not want you to do this and it is an unsupported configuration. Secondly, the phones are extremely picky about their configuration files and only a small number of firmware versions will even work correctly. Add to that the fact that you have to have a Cisco support contract to even get the firmware files and these phones can quickly go from a big savings if you bought them used on eBay, to a huge expense in just trying to make them work. All that aside, let’s roll up our sleeves and get these phones working with 3CX.
I always recommend staying away from these phones and using the newer SPA5xx series phones which are supported for use with third-party IP PBX systems. If you still want to go for it, then this is the guide for you.
In order to get these phones setup, you will need to be using a DHCP server that will push out Option 66 to the phones. This is fairly simple if you are using Microsoft’s DHCP server. However, not all small routers that act as DHCP servers can offer DHCP Scope Options, if your DHCP cannot, you will need to solve that problem before continuing. The DHCP Server will need to have Option 66 set to the IP Address of the phone system or other tftp server in order for the phone to pick up it’s configuration files.
Secondly, you will need a tFTP server running as the phones will not pull their configuration files from a web server like many other phones will. If you need a tFTP server for Windows, we have a guide to setting up a tFTP server that explains how.
There isn’t anything very difficult in setting up the extension under 3CX, you simply need to create a new extension or edit an existing one. The authentication ID and Password contain the information we will need to create our configuration files. Also check the Other tab and make sure the SIP ID is the same as the extension number.
There are no other setting that need to be configured, we just need to go and create our configuration files next.
The Configuration Files
With the DHCP server working, the tFTP server installed and ready, and the extension configured, we now need to create the configuration files. I prefer using NotePad++ to edit the files under Windows. There are two files we need to create, SIPDefault.cnf and then a config file for each individual phone. SIPDefault.cnf contains global settings that every phone will use and the second file contains settings specific to each phone.
In this sample file we are only concerned with the first three settings. The first line of the file, image_version, sets what firmware version we are going to use. This needs to match either the firmware version already loaded on the phone or the firmware version that you have available in the tftp folder for the phone to upgrade to. Our configuration was tested with 8.3.0 firmware.
The second setting, messages_uri sets the extension number that the phone will dial to access the voicemail system. With 3CX this will be 999 unless you have changed it from the default.
The third setting, proxy1_address, sets the IP address for the phone system so the phone knows where to send it’s registration information. The rest of the file should go unchanged.
# Extension to dial for voicemail
# Proxy Server
cnf_join_enable : 1
Each phone requires its own configuration file based on the MAC address of the phone. If our MAC address is 00175989A49E, then our configuration file will be named SIP00175989A49E.cnf. For the Cisco 7960 phones, this is a pretty easy file to configure and you basically repeat the same information for each of the available lines that you want to configure.
With 3CX the extension is used for everything except for the password so long as your SIP ID and Authentication ID match your extension number. The line1_password is the Authentication Password.
Multiple Line Appearances
If you multiple lines on the phone to be active, you need to create entries in the configuration file for each available line. The following is a complete configuration from a working 3CX configuration showing three of the six lines configured as extension 210.
The hardest part of this procedure can simply be getting the right firmware files and getting them installed on the phone. Usually if the phones still won’t work then you may have a typo in one of the files and the phones are very unforgiving of any errors in the configuration files. Once you have the firmware loaded, using these examples should help you get the phones registered easily with 3CX.