7970/7971 SCCP - Berlios v8.x Support
Since the SIP firmware is buggy when dealing with the 7970/7971 series cisco phones, particularly versions above 8.02SR1; I've decided to start this thread to enlist help and ultimately a solution to integrating the more stable and fully functioning Berlios SCCP drivers into trixbox and configuration examples and functionality into the endpoint manager and freepbx. Hopefully this week there will be exact directions on how to install the sccp driver by the end of the week perhaps even core functionality to getting a working 7970 depending on how much time I have. If anyone has any advice or can donate expertise at all please feel free to do so.
Here are the complete instructions to installing the berlios sccp with trixbox 1.2.1. This was done on a fresh install of the trixbox 1.2.1 iso and a trixbox-update.sh update command
Login as root
cd /usr/src/
wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.12.1.tar...
wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.9.1.tar.gz
wget http://ftp.digium.com/pub/libpri/releases/libpri-1.2.3.tar.gz
wget http://ftp.digium.com/pub/asterisk/releases/asterisk-addons-1.2.4...
wget http://ftp.digium.com/pub/asterisk/releases/asterisk-sounds-1.2.1...
tar -zxvf asterisk-1.2.12.1.tar.gz
tar -zxvf zaptel-1.2.9.1.tar.gz
tar -zxvf libpri-1.2.3.tar.gz
tar -zxvf asterisk-addons-1.2.4.tar.gz
tar -zxvf asterisk-sounds-1.2.1.tar.gz
mv asterisk-1.2.12.1 asterisk
mv zaptel-1.2.9.1 zaptel
mv libpri-1.2.3 libpri
mv asterisk-addons-1.2.4 asterisk-addons
mv asterisk-sounds-1.2.1 asterisk-sounds
rm -rf asterisk-1.2.12.1.tar.gz
rm -rf zaptel-1.2.9.1.tar.gz
rm -rf libpri-1.2.3.tar.gz
rm -rf asterisk-addons-1.2.4.tar.gz
rm -rf asterisk-sounds-1.2.1.tar.gz
yum -y install kernel-devel
cd zaptel
make clean
make linux26
make install
cd ..
cd libpri
make clean
make
make install
cd ..
cd asterisk
make clean
make
make install
cd ..
cd asterisk-addons
make clean
make
make install
cd ..
cd asterisk-sounds
make clean
make
make install
cd ..
wget ftp://ftp.berlios.de/pub/chan-sccp/chan_sccp-20060408.tar.bz2
tar -jxvf chan_sccp-20060408.tar.bz2
cd chan_sccp-20060408
make clean
make install
n
n
nano /etc/asterisk/modules.conf
add the line:
noload => chan_skinny.so
noload => app_trunkisavail.so
load => chan_sccp.so
edit the file for your phone and you are off
/etc/asterisk/sccp.conf
Soon to have information on how to setup your phone for sccp.
Okay and here is the next part although I need alot of help from whoever developed freepbx and or knows how to set things up in the extensions_additional.conf file or knows dial plans extremely well as I'm not versed in either very well.
The next thing required after you install as the previous post states you must do the following set up the sccp.conf for your phone. To add a second phone just copy the first device and change the name and information accordingly for that phone
Also note that this shows more than one line as a sample. The device autologin= is linked to the id= This is how it picks up what lines for what device.
; (SCCP*)
;
; An implementation of Skinny Client Control Protocol (SCCP)
;
; Sergio Chersovani (mlists@c-net.it)
; http://chan-sccp.belios.de
;
[general]
servername = Asterisk ; show this name on the device registration
keepalive = 60 ; phone keep alive message evey 60 secs. Used to check the voicemail
debug = 1 ; console debug level. 1 => 10
context = from-internal
dateFormat = D.M.Y ; M-D-Y in any order. Use M/D/YA (for 12h format)
bindaddr = 0.0.0.0 ; replace with the ip address of the asterisk server (RTP important param)
port = 2000 ; listen on port 2000 (Skinny, default)
disallow=all ; First disallow all codecs
;allow=alaw ; Allow codecs in order of preference
allow=ulaw ;
firstdigittimeout = 16 ; dialing timeout for the 1st digit
digittimeout = 8 ; more digits
;digittimeoutchar = # ; you can force the channel to dial with this char in the dialing state
autoanswer_ring_time = 1 ; ringing time in seconds for the autoanswer, the default is 0
autoanswer_tone = 0x32 ; autoanswer confirmation tone. For a complete list of tones: grep SKINNY_TONE sccp_protocol.h
; not all the tones can be played in a connected state, so you have to try.
remotehangup_tone = 0x32 ; passive hangup notification. 0 for none
transfer_tone = 0 ; confirmation tone on transfer. Works only between SCCP devices
callwaiting_tone = 0x2d ; sets to 0 to disable the callwaiting tone
musicclass=default ; Sets the default music on hold class
language=en ; Default language setting
;accountcode=skinny ; accountcode to ease billing
deny=0.0.0.0/0.0.0.0 ; Deny every address except for the only one allowed.
permit=10.1.1.0/255.255.255.0 ; Accept class C 192.168.1.0
; You may have multiple rules for masking traffic.
; Rules are processed from the first to the last.
; This General rule is valid for all incoming connections. It's the 1st filter.
localnet = 10.1.1.0/255.255.255.0 ; All RFC 1918 addresses are local networks
;externip = 1.2.3.4 ; IP Address that we're going to notify in RTP media stream
;externhost = mydomain.dyndns.org ; Hostname (if dynamic) that we're going to notify in RTP media stream
; externrefresh = 60 ; expire time in seconds for the hostname (dns resolution)
dnd = on ; turn on the dnd softkey for all devices. Valid values are "off", "on" (busy signal), "reject" (busy signal), "silent" (ringer = silent)
rtptos = 184 ; sets the default rtp packets TOS
echocancel = on ; sets the phone echocancel for all devices
silencesuppression = off ; sets the silence suppression for all devices
;callgroup=1,3-4 ; We are in caller groups 1,3,4. Valid for all lines
;pickupgroup=1,3-5 ; We can do call pick-p for call group 1,3,4,5. Valid for all lines
;amaflags = ; Sets the default AMA flag code stored in the CDR record
trustphoneip = no ; The phone has a ip address. It could be private, so if the phone is behind NAT
; we don't have to trust the phone ip address, but the ip address of the connection
tos = 0x68 ; call control packets tos (0x68 Assured forwarding)
;earlyrtp = none ; valid options: none, offhook, dial, ringout. default is none.
; The audio strem will be open in the progress and connected state.
private = on ; permit the private function softkey
mwilamp = on ; Set the MWI lamp style when MWI active to on, off, wink, flash or blink
mwioncall = on ; Set the MWI on call.
blindtransferindication = ring ; moh or ring. the blind transfer should ring the caller or just play music on hold
;protocolversion = 3 ; skinny version protocol. Just for testing. 2 to 6
cfwdall = on ; activate the callforward ALL stuff and softkeys
cfwdbusy = on ; activate the callforward BUSY stuff and softkeys
[devices]
type = 7970 ; device type (see below)
autologin = 1,2 ; lines list. You can add an empty line for an empty button (7960, 7970, 7940, 7920)
description = Phone7970 ; internal description. Not important
keepalive = 60 ; set 0 to disable the keepalive check.
;tzoffset = +2
transfer = on ; enable or disable the transfer capability. It does remove the transfer softkey
park = on ; take a look to the compile howto. Park stuff is not compiled by default
speeddial = 5,ext5
speeddial = 6,ext6 ; you can add an empty speedial if you want an empty button (7960, 7970, 7920)
;speeddial = 1000,name ; speeddial number and name
cfwdall = on ; activate the callforward stuff and softkeys
cfwdbusy = on
dtmfmode = outofband ; inband or outofband. outofband is the native cisco dtmf tone play.
; Some phone model does not play dtmf tones while connected (bug?), so the default is inband
imageversion = SCCP70.8-0-4SR1S ; useful to upgrade old firmwares (the ones that do not load *.xml from the tftp server)
deny=0.0.0.0/0.0.0.0 ; Same as general
permit=10.1.1.20/255.255.255.255 ; This device can register only using this ip address
dnd = on ; turn on the dnd softkey for this device. Valid values are "off", "on" (busy signal), "reject" (busy signal), "silent" (ringer = silent)
trustphoneip = no ; The phone has a ip address. It could be private, so if the phone is behind NAT
; we don't have to trust the phone ip address, but the ip address of the connection
;earlyrtp = offhook ; valid options: none, offhook, dial, ringout. default is none.
; The audio strem will be open in the progress and connected state.
private = on ; permit the private function softkey for this device
mwilamp = on ; Set the MWI lamp style when MWI active to on, off, wink, flash or blink
mwioncall = on ; Set the MWI on call.
device => SEP0016C7AEE0A7 ; device name SEP
[lines]
id = 1 ; future use
pin = 1234 ; future use
label = 1 ; button line label (7960, 7970, 7940, 7920)
description = 1 ; top diplay description
context = from-internal
incominglimit = 2 ; more than 1 incoming call = call waiting.
transfer = on ; per line transfer capability. on, off, 1, 0
mailbox = 2 ; voicemail.conf (syntax: vmbox[@context][:folder])
vmnum = *97 ; speeddial for voicemail administration, just a number to dial
cid_name = sample ; caller id name
cid_num = 2121234567
trnsfvm = 1 ; extension to redirect the caller (e.g for voicemail)
secondary_dialtone_digits = 9 ; digits for the secondary dialtone (max 9 digits)
secondary_dialtone_tone = 0x22 ; outside dialtone
musicclass=default ; Sets the default music on hold class
language=en ; Default language setting
;accountcode=79501 ; accountcode to ease billing
rtptos = 184 ; sets the the rtp packets TOS for this line
echocancel = on ; sets the phone echocancel for this line
silencesuppression = on ; sets the silence suppression for this line
;callgroup=1,3-4 ; We are in caller groups 1,3,4. Valid for this line
;pickupgroup=1,3-5 ; We can do call pick-p for call group 1,3,4,5. Valid for this line
;amaflags = ; Sets the default AMA flag code stored in the CDR record for this line
line => 1
id = 2 ; future use
pin = 1234 ; future use
label = 2 ; button line label (7960, 7970, 7940, 7920)
description = 2 ; top diplay description
context = from-internal
incominglimit = 2 ; more than 1 incoming call = call waiting.
transfer = on ; per line transfer capability. on, off, 1, 0
mailbox = 2 ; voicemail.conf (syntax: vmbox[@context][:folder])
vmnum = *97 ; speeddial for voicemail administration, just a number to dial
cid_name = ; caller id name
cid_num = 2121234567
trnsfvm = 2 ; extension to redirect the caller (e.g for voicemail)
secondary_dialtone_digits = 9 ; digits for the secondary dialtone (max 9 digits)
secondary_dialtone_tone = 0x22 ; outside dialtone
musicclass=default ; Sets the default music on hold class
language=en ; Default language setting
;accountcode=79501 ; accountcode to ease billing
rtptos = 184 ; sets the the rtp packets TOS for this line
echocancel = on ; sets the phone echocancel for this line
silencesuppression = on ; sets the silence suppression for this line
;callgroup=1,3-4 ; We are in caller groups 1,3,4. Valid for this line
;pickupgroup=1,3-5 ; We can do call pick-p for call group 1,3,4,5. Valid for this line
;amaflags = ; Sets the default AMA flag code stored in the CDR record for this line
line => 2
; phone types
; 12 -- Cisco IP Phone 12SP+ (or other 12 variants)
; 30 -- Cisco IP Phone 30VIP (or other 30 variants)
; 7902 -- Cisco IP Phone 7902G
; 7905 -- Cisco IP Phone 7905G
; 7910 -- Cisco IP Phone 7910
; 7912 -- Cisco IP Phone 7912G
; 7935 -- Cisco IP Conference Station 7935
; 7936 -- Cisco IP Conference Station 7936
; 7920 -- Cisco IP Wireless Phone 7920
; 7940 -- Cisco IP Phone 7940
; 7960 -- Cisco IP Phone 7960
; 7970 -- Cisco IP Phone 7970
; 7914 -- Cisco IP Phone 7960 with a 7914 addon
; ata -- Cisco ATA-186 or Cisco ATA-188
; kirk -- Kirk telecom ip phones
Next file that you will need to include in the tftpboot directory
SEPMACADDRESS.xml.conf
As far as setting up extensions and voicemail,
Open freepbx and create a custom extension with any extension number you like, preferably the same as that you used for the sccp line. Under the "Dial' box enter in "SCCP/extnumber" without the quotes and set up voicemail as you would do normally.
Deal with the extension as you would any other in freepbx, You're done :)
Here is some edited code for the asterisk_info.php to allow you to have a quick look at your sccp info as you do with sip currently
the file can be found in /var/www/html/maint/
Asterisk Info: <? echo `hostname`; echo " (".$SERVER_ADDR.")"; ?>
<?
$arr = array(
"Version" => "asterisk -r -x 'show version'",
"SCCP Version" => "asterisk -r -x 'sccp show version'",
"Uptime" => "asterisk -r -x 'show uptime'",
"Active Channel(s)" => "asterisk -r -x 'sip show channels'",
"Active SCCP Channel(s)" => "asterisk -r -x 'sccp show channels'",
"SCCP Registry" => "asterisk -r -x 'sccp show devices'",
"SCCP Sessions" => "asterisk -r -x 'sccp show sessions'",
"Sip Registry" => "asterisk -r -x 'sip show peers'",
"Sip Peers" => "asterisk -r -x 'sip show registry'",
"IAX2 Sip Registry" => "asterisk -r -x 'iax2 show registry'",
"IAX2 Peers" => "asterisk -r -x 'iax2 show peers'",
"Subscribe/Notify" => "asterisk -r -x 'show hints'",
"Zaptel driver info" => "asterisk -r -x 'zap show channels'",
"Conference Info" => "asterisk -r -x 'meetme'",
"Voicemail users" => "asterisk -r -x 'show voicemail users'",
"SCCP Lines" => "asterisk -r -x 'sccp show lines'",
"NTP peers" => "ntpq -p"
);
foreach ($arr as $key => $value) {
?>
| <? echo $key; ?> | |
|
<?
}
?>
Update, do to trixbox updates which downgrade the kernel and disable the command yum -y install kernel-devel the following is needed instead:
rpm -ivh --force http://mirror.centos.org/centos/4.3/updates/i386/RPMS/kernel-deve...
cd /usr/src/kernels/2.6.9-34.0.2.EL-i686/include/linux
mv spinlock.h spinlock.h.old
wget http://www.kennonsoft.org/projects/trixbox/spinlock.h
cd .. /usr/src/
this should be done before the steps to downloading all the packages.
mikeymike wrote:
You will want to add the Geoff Robertson patch to the Chan_SCCP code BEFORE compiling. This will allow meetme application to run without Crashing the asterisk server.
I will post the code shortly.
As far as I understand there is no such patch nor is it necessary with the berlios version of the sccp driver. Also I have run this driver with meetme and had no crashs, errors, etc. If you have more information to go on that you would need said patch or you have said patch please post the information
Hi,
I have tried the same instructions here to setup cisco 7970G with sccp SCCP70.8-0-4SR1S firmware with no success!
I always get this message:
Asterisk1*CLI>
-- SCCP: Accepted connection from 192.168.5.104
-- SCCP: Using ip 192.168.5.110
-- SEP001A2F63D87C: Rejecting device: Ip address denied
-- SCCP: Alarm Message: Severity: Critical (0), 32: Name=SEP001A2F63D87C Load= SCCP70.8-0-4SR1S : Invalid SCCP message! : Invali [0/0]
-- SCCP: Alarm Message: Severity: Critical (0), 32: Name=SEP001A2F63D87C Load= SCCP70.8-0-4SR1S : Invalid SCCP message! : Invali [0/0]
i have disabled the deny and allow checkout just to make sure it get accepted!
Is this error due to config file or chan_sip and asterisk ?
Any help thanks!
the error is in your sccp.conf file. just make sure there is an allow for the ip address of that phone under the device's config if it's that much trouble. or make sure you have an allow for the subnet. otherwise by default i believe it denies all if you remove everything.


Member Since:
2006-06-03