Getting started - chan-sccp/chan-sccp GitHub Wiki
There's plenty of information available on the internet regarding usual SIP phones and how to connect them to Asterisk. However, when it comes to Cisco IP Phones, things start to get a little bit difficult.
Cisco IP Phones aren't meant to be controlled or connected to an Asterisk server – at least not via the Cisco-proprietary protocol called SCCP (Skinny Client Configuration Protocol). As far as I know, all Cisco 79XX support two different types of firmware: SCCP and SIP. So, why don’t we just use the SIP firmware and everything is alright?
Well: The main reason is integration and compatibility. While the SIP firmware does work great with Asterisk too, the SCCP protocol provides some really cool features that just don't even exist in the SIP protocol or they just don't work with Asterisk.
Also See:
This manual assumes that you have basic knowledge of using a terminal (Bash) and that you're already a bit axperienced when it comes to the Asterisk VoIP server.
To continue, make sure that you already have the following things:
-
Asterisk server (runs on a Raspberry Pi too)
The software that Runs and Manages the VoIP stuff. -
TFTP server (e.g. a Synology NAS, Raspberry Pi running tftpd-hpa, …)
Used to provision the Cisco phones with XML configs, firmware, ringtones and locale files. -
Cisco IP Phone (e.g. 7940, 7970, 8945, 6921 etc.)
Check the cisco specs to make sure the device is Skinny Protocol capable -
Phone power supply (aka: A Cisco Power Brick) (optional, but may be required if you are not able to flash the phone via PoE!)
Identify the model of your phone: Look at the upper right corner or on the back side of it:
Download the firmware for your device by looking up “cisco sccp firmware” on your favorite search engine. You should be able to find a link to Cisco pretty quickly. But be warned: You need to have a service contract with Cisco to be able to download the required firmware files.
Warning!
You might have to upgrade your firmware step-by-step, that means that you might not be able to directly “jump” to a new firmware version.
If the following fails, try to upgrade to an older version. (But not older than the firmware currently installed on the phone!)
Take note of the currently installed firmware before trying to upgrade.
Just power the phone up without an Ethernet cable plugged in, you’ll find the firmware version in the settings.
When looking for the firmware, make sure to only download the SCCP version! You can easily distinguish SIP and SCCP by the file names:
- File name of archive might contain “sccp” or start with P00
- File names (in archive) for 7940/7960 must start with “P00” or “SCCP” instead of “P0S“
Example file name of archive for 7940/7960: cmterm-7940-7960-sccp.8-1-2SR2.tar
... and for the 7970/7971: cmterm-7970_7971-sccp.9-4-2SR1-1.zip
Extract the archive and make sure to copy all of the files inside into the root directory (/) of your TFTP server.
Also See:
After you’ve copied the needed firmware files into the root of your TFTP directory, you’ll have to create some other files to let the phone know the required firmware version.
An example: For the 7940/7960, create the file OS79XX.TXT
and make sure that it contains the name of your downloaded firmware version without any file extension. (All your extracted firmware files should have that exact string at the beginning of the file name, just the extensions should vary!)
Here's an example of the version: P0030801SR02
Another example for the 7970/7971: A file called term70.default.loads
and/or term71.default.loads
should already be in your root directory because it’s been included in the downloaded archive.
Next, create the file XMLDefault.cnf.xml
- this file specifies the SCCP (Asterisk) server and the required firmware files.
Take a look at the example file here: conf/tftp/XMLDefault.cnf.xml
Make sure to replace the IP address in <processNodeName>
according to your Asterisk server's IP. Also, check that the loadInformation
for your phone matches your firmware version.
When booting, Cisco Phones try to pull a unique config file from the TFTP server for the MAC address of the device.
Naming convention with SCCP firmware: SEP<MACADDRESS>.cnf.xml
You have to create a file for each device with the MAC address. The MAC address is located on the back of the phone and/or in the settings of the phone. Write it down somewhere, you’ll need it a few times.
In this example, the file would be SEP00192FEEAXXX.cnf.xml
Example per-device config example files are available here:
- 7960: conf/tftp/SEP0000000000.cnf.xml_796x_template
- 7970: conf/tftp/SEP0000000000.cnf.xml_797x_template
Again, replace the IP address in processNodeName
in callManagerGroup
with the Asterisk server address.
Check out Cisco phone configuration files SEPXXXXXXXXX.cnf.xml for more information about the config parameters.
Trick: You can use softlinks or aliases instead of copying the template files for each device.
Also See:
The TFTP server should now be ready to serve all needed files.
Continue by reading the Building and Installation Guide.