Here are some of my notes and sample conf files for SCCP.
Main chan_sccp
- Current v4 Stable via SourceForge http://sourceforge.net/projects/chan-sccp-b/ concentrating on asterisk 1.6.2, 1.8.x, 1.10.x and above integration. We have just issued V3.1.3 stable for all versions up to 1.6.2.
- Mailing list https://sourceforge.net/projects/chan-sccp-b/lists/chan-sccp-b-discussion
Old driver downloads (outdated/dead projects)
- Main website http://chan-sccp.sourceforge.net
- Download latest code from http://sourceforge.net/projects/chan-sccp/
NOTE
It’s worth noting that if you don’t have firmware for your Cisco phone for whatever reason, you don’t actually have to have one on the TFTP server – you can just use the one already installed on the phone. You don’t need to create the file OS79XX.txt, just XMLDefault.cnf.xml or SEP<MAC>.cnf.xml if you want to configure individual phones. Otherwise, the process is the same.
Install Instructions
- 1. Install a TFTP server some where on your network. You will need this to upload the firmware to the 7920.
- 2. Create OS7920.txt and enter the Asterisk server ip address in XMLDefault.cnf.xml, which comes in the tar file, and place these two files along with the firmware or bin file on the TFTP server.
- 3. If you are configuring a 7960 to work with Asterisk and SCCP you will also need to create SEP<MAC>.cnf.xml and place on the TFTP server, the 7960 (SCCP firmware 5.0.5) will continuously reboot until it finds this file.
XMLDefault.cnf.xml ** Not needed if you have a SEPMAC.cnf.xml for each phone
<callManagerGroup>
<members>
<member priority=”0″>
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
</ports>
<processNodeName>insert_the_asterisk_server_ip</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
</Default>
OS7920.TXT
Create the file with the above command and enter the correct Firmware Binary file name (ie cmterm_7920.3.3-01-07)
- 3. Configure the 7920 to look to your TFTP server.
- 4. On the Asterisk server you will need to modify the hosts, modules.conf, sccp.conf and extensions.conf files.
/etc/hosts
Needed for RTP service (ie 192.168.0.41 MYPBX)
/etc/asterisk/modules.conf
noload => chan_skinny.so
load => chan_sccp.so
; You need this to stop the loading of Skinny, a part of Asterisk server.
…
; The seccond line starts chan_sccp on astrisk start.
/etc/asterisk/sccp.conf (V2 format, for V3 and above check out the http://sourceforge.net/projects/chan-sccp-b/ website)
[general]
keepalive = 30 ; IMPORTANT: 5secs. lead to trouble with
; 7960
context = internal
dateFormat = D.M.YA ; M-D-Y in any order (5 chars max)
bindaddr = 192.168.1.200 ; replace with the ip address of the asterisk server
port = 2000 ; listen on port 2000 (Skinny, default)
debug = 0
accountcode=skinny ; accountcode to ease billing
callwaiting_tone = 0x2d ; sets to 0 to disable the callwaiting tone
language=en ; Default language setting this setting also sets the voicemailbox language
echocancel = on ; sets the phone echocancel for all devices
silencesuppression = off ; sets the silence suppression for all devices
cfwdall = on ; activate the callforward ALL stuff and softkeys
cfwdbusy = on ; activate the callforward BUSY stuff and softkeys
private = no ; permit the private function softkey
dnd = on ; turn on the dnd softkey for all devices. Valid values are "off", "on" (busy signal), "reject" (busy signal), "silent" (ringer = silent)
mwioncall = on ; Set the MWI on call lamp signal on phone
[devices]
type = 7905
description = Bedroom
tzoffset = 0
autologin = 6004
device => SEPxxxxxxxxxxxx
type = 7960
description = Office
tzoffset = 0
autologin = 6000
speeddial = 6001,6001,6001@internal
speeddial = 6004,6004,6004@internal
device => SEPxxxxxxxxxxxx
type = 7960
description = LivingRoom ; internal description. Not important
tzoffset = 0
autologin = 6001 ; lines list. You can add an empty line for an empty
speeddial = 6000,6000,6000@internal ; you can add an empty speedial if you want an empty
speeddial = 6004,6004,6004@internal
device => SEPxxxxxxxxxxxx
; This is an example config with multiple phones
; 08/2005 Stefan Gofferje
[lines]
id = 6000 ; future use
pin = 1234 ; future use
label = 6000 ; button line label (7960, 7970, 7940, 7920)
description = Office ; top diplay description
context = client_int_unrestricted
callwaiting = 1
incominglimit = 2 ; more than 1 incoming call = call waiting
mailbox = 1000 ; voicemail.conf (syntax: vmbox[@context][:folder])
vmnum = 8500 ; speeddial for voicemail administration, just a number to dial
cid_name = Office ; caller id name
cid_num = 6000
line => 6000
id = 6001
pin = 1234
label = 6001
description = LivingRoom
context = client_int_unrestricted
callwaiting = 1
incominglimit = 2
mailbox = 1000
vmnum = 8500
cid_name = Living Room
cis_num = 6001
line => 6001
id = 6004
pin = 1234
label = 6004
description = Bedroom
context = client_int_unrestricted
callwaiting = 1
incominglimit = 2
mailbox = 1000
vmnum = 8500
cid_name = Bedroom
cid_num = 6004
line => 6004
/etc/asterisk/extensions.conf
exten => 2123,2,Dial(SCCP/Wireless)
exten => 2123,3,Voicemail,u2123
SEP<MAC>.cnf.xml
<device>
<devicePool>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
</ports>
<processNodeName>Asterisk IP here</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
</devicePool>
<versionStamp>{Jan 01 2002 00:00:00}</versionStamp>
<loadInformation></loadInformation>
<userLocale>
<name>English_United_States</name>
<langCode>en</langCode>
</userLocale>
<networkLocale>United_States</networkLocale>
<idleTimeout>0</idleTimeout>
<authenticationURL></authenticationURL>
<directoryURL></directoryURL>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesURL></messagesURL>
<proxyServerURL></proxyServerURL>
<servicesURL></servicesURL>
</device>
NOTES:
- 1. If the 7920 can call but the other person can not hear you this will most likely be an RTP problem. You may want to try some of the things I found to fix the problem:
- A) Look at entry 127.0.0.1 in the Hosts file. For some reason I found on mine that I had the server name included with the entry.
- B) If you have installed additional software for linux you may need to reinstall the support for SCCP.
- C) Make sure that the bind ip address in sccp.conf is the ip address for *. 0.0.0.0 will NOT work.
7921G Note on using a brand new device
If you are using a brand new 7921G make sure the firmware version doesnt contain the string MFG.A.7.loads
It wont have full functionality and you will need to find a production version i.e 1.1.1
All the data above works for the 7921G, of course replacing the 7920 text with 7921.
You can get the phone to upgrade via tftp by putting the new version of firmware into the line load information.
<loadInformation>CP7921G-1.1.1</loadInformation>
you will also need chan-sccp-b svn (March 2008) for the device to show correctly in asterisk (im using 1.4.13 with svn pulled -06/03/08 dod)
I had to turn power save off in wifi for it to be stable with the airport extreme n
7960s with OLD firmware
I’ve come accross a few 7960s with extremely old firmware. (P003P301)
The process for upgrading these works much differently than newer firmware version. A version this old uses binary config files like the 12SP.
In order to get something this old upgraded you’ll have to follow this guide to create a config file: Configuring Cisco 12SP phones with Asterisk
Simply (well, if you know hex) replace the IP with that of your asterisk server then save the config file as SEP<mac>.cnf (NO .xml!) and drop it in your TFTP directory.
You will then have to add an imageversion directive to sccp.conf.
Example
description = LivingRoom
tzoffset = 0
autologin = 6001
speeddial = 6000,6000,6000@internal
speeddial = 6004,6004,6004@internal
imageversion=P00308000500
device => SEPxxxxxxxxxxxx
Save your sccp.conf then unload/load chan_sccp.so and reboot the phone.
It will then download SEPmac.cnf, connect to asterisk, download the new firmware off your TFTP server, reboot again, then register to your asterisk server.
You will then be ready to go.
7975G
Having run into ‘auth fail’ errors trying to get a phone to load SIP firmware, I went ahead with the chan_sccp.so from chan-sccp.org in Asterisk with immediate success. The only stumbling blocks were making sure to use a sccp_v3.conf in /etc/asterisk, and not sccp.conf. Set a bindaddr, and configure bindport to 2000, and then review the deny and permit rules. Also you should make sure to ‘noload chan_skinny.so’ in /etc/modules.conf to avoid conflicts with the sccp protocol.