SCCP-HOWTO2

Here are some of my notes and sample conf files for SCCP.

Main chan_sccp


Old driver downloads (outdated/dead projects)


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
<Default>
<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
echo -n "cmterm_7920.3.3-01-05" > 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

(ip address) (server name)
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,1,SetCalledParty("Wireless" <2123>)
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
type = 7960
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.

See also

Configuring Cisco 12SP phones with Asterisk
chan_sccp-b

Created by: czmok, Last modification: Thu 28 of Jun, 2012 (10:10 UTC) by ddegroot


Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+

Page Changes | Comments

 

Featured -

Search: