Chan_SCCP-[4.2.0_RC2] Generated by Doxygen 1.8.8 Wed Oct 8 2014 18:53:24

Chan_SCCP-[4.2.0_RC2]
Generated by Doxygen 1.8.8
Wed Oct 8 2014 18:53:24
ii
CONTENTS
Contents
1
2
3
Chan_SCCP Documentation
1
1.1
1
What is Chan_SCCP
1
2.1
SCCP in relation to SIP/IAX/MGCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2.2
SCCP as a Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Building and Installation Guide
2
3.1
UNIX, BSD and Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
3.2
Precompiled for your Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3.2.1
Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Building and Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3.3
4
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How to Setup Chan_SCCP
3
4.1
How to use the config file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4.1.1
Sample config files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4.2
How to load the Chan_SCCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
4.3
How to use RealTime Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
4.3.1
MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
4.3.2
MySQL 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
4.3.3
MySQL 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
4.3.4
PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
4.3.5
Chan_SCCP Configuration for Realtime . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
4.3.6
Loading information into the tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
4.3.7
Using Realtime Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
4.4
Setting up a DHCP Server
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
4.5
What does a Sample SEP[MacAddr].cnf.xml Look Like . . . . . . . . . . . . . . . . . . . . . . . .
10
4.6
Dialplan Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
4.6.1
How to Dial an SCCP Phone from your dialplan . . . . . . . . . . . . . . . . . . . . . . .
10
4.6.2
How to Dial an SCCP Phone with a different ring
. . . . . . . . . . . . . . . . . . . . . .
10
4.6.3
Dial a line and have the phone Auto Answer . . . . . . . . . . . . . . . . . . . . . . . . .
11
4.7
Hot to change the firmware to SCCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
4.8
Asterisk Clustering and DUNDi Lookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
4.8.1
DUNDI Dynamic Awareness (original author: J.R.Richardson) . . . . . . . . . . . . . . . .
12
4.8.2
DUNDI Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
Troubles using VOIP and SCCP through a Firewall (NAT) . . . . . . . . . . . . . . . . . . . . . .
13
4.9
4.10 Shared Lines
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How To
5.1
Shared Lines
14
14
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
CONTENTS
6
7
8
9
iii
5.2
Phone Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
5.3
How to use Dynamic SpeedDials (now on by default) . . . . . . . . . . . . . . . . . . . . . . . . .
16
5.4
How to use the hotline option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
5.5
How to use the adhoc option (PLAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
5.6
Soft Keys Howto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
5.7
Softkey Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
5.7.1
These are the softkeys available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
5.8
Reload Howto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
5.9
How to use dialplan functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
5.9.1
SCCPDEVICE
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
5.9.2
SCCPLINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
5.9.3
SCCPCHANNEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
5.9.4
Generic CHANNEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
5.9.5
SCCPSetCodec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
5.9.6
SCCPSetCalledParty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
5.9.7
SCCPSetMessage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
5.10 How to use devicestate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
5.10.1 Custom Device State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
5.11 Digit timeout and dialing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
New Features in V4.1
22
6.1
New Config Parser
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
6.2
Emulated EnBloc Dialing for older devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
6.3
New SCCP Protocol Handler / Protocol Version
. . . . . . . . . . . . . . . . . . . . . . . . . . .
23
6.4
Rewritten RTP Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
6.5
Support for multiple asterisk version in one code base . . . . . . . . . . . . . . . . . . . . . . . .
23
Frequently Asked Questions
23
7.1
A. Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
7.1.1
A1. How to Compile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
7.1.2
A2. Compilation Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
7.2
B. Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
7.3
C. Dialplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
7.3.1
26
How to to use Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reporting Issues/Problems
26
8.1
Report Issues/Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
8.2
Generating a Debug Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
8.3
Generating a Backtrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
Supported Operating Systems to date
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
27
iv
CONTENTS
9.1
Linux Based Operating Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
9.2
BSD Based Operating Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
9.3
Commercial Operating Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
10 Sources Explained
28
11 Consulted Documentation
28
12 Information for Developers
29
12.1 You found a Bug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
12.2 Sending Feature Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
12.3 Send us a Patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
12.4 Becoming a Developer in out Team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
12.5 Get familiar and follow the sccp locking and refcounting rules . . . . . . . . . . . . . . . . . . . .
29
13 File Index
30
13.1 File List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14 File Documentation
30
14.1 00_Index.doc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.1.1 Detailed Description
30
30
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
14.2 10_What_Is_Chan_SCCP.doc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
14.2.1 Detailed Description
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
14.3 20_Building_and_Installation_Guide.doc File Reference . . . . . . . . . . . . . . . . . . . . . . .
31
14.3.1 Detailed Description
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
14.4 30_Setup_Guide.doc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
14.4.1 Detailed Description
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
14.5 35_How_To.doc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
14.5.1 Detailed Description
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
14.6 40_New_Features.doc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
14.6.1 Detailed Description
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.7 50_Frequently_Asked_Questions.doc File Reference
33
. . . . . . . . . . . . . . . . . . . . . . . .
34
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
14.8 55_Reporting_Issues_Problems.doc File Reference . . . . . . . . . . . . . . . . . . . . . . . . .
35
14.7.1 Detailed Description
14.8.1 Detailed Description
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
14.9 60_Supported_Operating_Systems.doc File Reference . . . . . . . . . . . . . . . . . . . . . . .
35
14.9.1 Detailed Description
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
14.1070_Sources_Explained.doc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
14.10.1 Detailed Description
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
14.1180_Consulted_Documentation.doc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . .
37
14.11.1 Detailed Description
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
14.1290_Developers_Guide.doc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
1 Chan_SCCP Documentation
1
14.12.1 Detailed Description
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
14.14LICENSE File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
14.13AUTHORS File Reference
Index
1
1.1
39
Chan_SCCP Documentation
Introduction
Welcome to the documentation for the chan_sccp Project.
On these pages here, you can find the documented source code, the change log. and more.
To get started have a look at the pages:
• What is Chan_SCCP
• Building and Installation Guide
• How to setup the chan_sccp Module
• How to ...
• What is new in this version (V4/Trunk)
• Frequently Asked Questions
• Consulted Documentation
• Supported Operating Systems / Notes
• Reporting Problems / Issues
• Developer’s Guide
• Sources Explained
• Meet the Authors
• Developed under the GNU License
SVN Change Log
See http://sourceforge.net/projects/chan-sccp-b/ for more information about the Chan_SC←CP project. Please do not directly contact any of the maintainers of this project for assistance; the project provides
a web site, mailing lists and IRC channels for your use.
2
What is Chan_SCCP
Chan_SCCP is a replacement Channel Driver for chan_skinny in the Asterisk Channel Driver Library. It delivers
better performance, scalability, interoperability and functionality than either chan_skinny or chan_sip on a SCCP/←Skinny capable phone. It is still under heavy development but a stable release is also available for you to use.
To read more about asterisk, you can find a nice introduction here.
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
2
2.1
CONTENTS
SCCP in relation to SIP/IAX/MGCP
There are several methods to communicate with a VOIP Server. Next to the well known SIP Protocol there are
Several others like: MGCP, IAX, IAX2, SS7 and SCCP. The SCCP protocol is sometimes refered to as SKINNY.
Several VOIP Phone Resellers have create phones that use the SCCP Protocol. The most well known at this
moment is CISCO, but there are others like Kirk, Ixia, Symbol Techologies, SocketIP, Digium and Nokia.
IPBlue markets a software phone (soft phone) which uses SCCP for signaling and emulates a Cisco 7960 hardware
phone.
2.2
SCCP as a Protocol
The Skinny Client Control Protocol (SCCP, or short Skinny) is a proprietary network terminal control protocol originally developed by Selsius Corporation. The term "Skinny" reflects that SCCP is a simple and uncomplicated
("lightweight") protocol requiring relatively little computer processing.
The SCCP technology is now owned and defined by Cisco Systems, Inc. as a messaging system between a Skinny
client and the Cisco CallManager. Examples of skinny clients include the Cisco 7900 series of IP phones, Cisco IP
Communicator softphone and the 802.11b wireless Cisco 7920.
Skinny is a lightweight protocol which allows for efficient communication with Asterisk. The SCCP Protocol is a
lower level protocol when compared to for example SIP. It works on Layer 3/4 of the OSI Layer Model.
The SCCP protocol layer supports connectionless and connection-oriented protocol services, and network management procedures are carried out on a per protocol service basis, that is, network management procedures at
SCCP are independently treated for connectionless and for connection-oriented protocol services.
It uses the Real-time Transport Protocol (RTP) over UDP-transport for the bearer traffic (real-time audio stream) with
other Skinny clients or an H.323 terminal. SCCP is a stimulus-based protocol and is designed as a communications
protocol for hardware endpoints and other embedded systems, with significant CPU and memory constraints.
3
Building and Installation Guide
• Precompiled for your Platform
• Prerequisites
• Building and Installation
• How to use the config file
• How to load the Chan_SCCP
• How to use RealTime Database
• Setting up a DHCP Server
• What does a Sample SEP[MacAddr].cnf.xml Look Like
• Dialplan Sample
• Hot to change the firmware to SCCP
• Asterisk Clustering and DUNDi Lookup
• Troubles using VOIP and SCCP through a Firewall (NAT)
• Shared Lines
3.1
UNIX, BSD and Linux
These instructions are valid for most UNIX-like operating systems, including BSD and Linux variants.
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
3.2
Precompiled for your Platform
3.2
Precompiled for your Platform
3
On http://chan-sccp-b.sourceforge.net/download.shtml you can find links to lot of precompiled versions of chan-sccp-b. You can just at the specific repository file specific to your platform to your system and
install chan-sccp-b from there.
3.2.1
Prerequisites
The following prerequisites are required:
• A bourne shell (/bin/sh) that is capable of running the supplied configure script.
• Installed version of Asterisk starting at version 1.2
• Make sure you have the following installed on your system:
– The GNU C compiler or another supported C compiler.
– The make program
– autoconf (2.6.0)
– automake (1.10)
– libtool (2.2.2)
– m4 (1.4.5)
3.3
Building and Installation
Build instructions:
• Download the Chan_SCCP sources.
• Extract the source tree to a clean directory.
• To get started with configure please run (run "./configure --help" to get a list of all the possible configure flags)
• Some of the configure switches have changed during the latest development, please check before running
configure
$ ./configure
$ make
$ make install
For source code maintainers it is important to know that when you change something in one of the Makefile.am files
or configure.ac you should run ./tools/bootstrap.sh before commiting to the repository.
4
How to Setup Chan_SCCP
This contains detailed instructions about setting up chan_sccp.
• How to use the config file
• How to use the config file
• How to load the Chan_SCCP
• How to use RealTime Database
• Setting up a DHCP Server
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
4
CONTENTS
• What does a Sample SEP[MacAddr].cnf.xml Look Like
• Dialplan Sample
• Hot to change the firmware to SCCP
• Asterisk Clustering and DUNDi Lookup
• Troubles using VOIP and SCCP through a Firewall (NAT)
• Shared Lines
4.1
How to use the config file
Please check out ./conf/sccp.conf for all possible sccp configuration parameters. This new config file uses standard
asterisk templating to keep your config file shorter and easier to manager. For an untemplated version check-out
./conf/sccp_simple.conf
4.1.1
Sample config files
Make sure you pay attention to the CONTEXT used in the config file, it must match your dialplan. We have currently
specified "sccp" as the default context, you will either have to add the sccp context to your dialplan in the correct
locations or change the default sccp context to something that matches your dialplan.
Also check the deny/permit entries to make sure they cover your network/devices and check if the bindaddr is
actually reachable from the addresses you have permitted to connect.
When using hinted speeddials it is important to provide the necessary hints in your dialplan by simply adding
something like "exten => 98021,hint,SCCP/98021" in the ’default’ context (or possibly "from-internal" for FreePBX
users). You will have to use the same context when definining the speeddial button below. You can also create
these hints in a seperate context called hints for example
[hints]
exten => 98021,hint,SCCP/98021
That way you can refer to them in a button definition like (notice the context used to create hints in the dialplan, must
match the context specified in the button definition)
button = speeddial,Phone 2 Line 1, 98021, 98021@hints
Monitoring non-SCCP devices is possible by reviewing the hint status in the Asterisk CLI using the "core show
hints" command. Anything that generates a hint can be monitored using the buttons. The following states are
recognized: .... Custom state processing (see Asterisk documentation for more information) is also possible using
this methodology.
(For more information about hints check How to to use Hints here)
Sample Config File (Always use one from the conf direct as a starting point, or you can generate a config file with
contrib/gen_sccpconf/gen_sccpconf)
;=========================================================================================
;
; general definitions
;
;=========================================================================================
[general]
servername = Asterisk
keepalive = 60
debug = 1
context = default
dateformat = D.M.Y
bindaddr = 0.0.0.0
port = 2000
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
4.1
How to use the config file
5
disallow=all
allow=alaw
allow=ulaw
allow=g729
firstdigittimeout = 16
digittimeout = 8
autoanswer_ring_time = 1
autoanswer_tone = 0x32
remotehangup_tone = 0x32
transfer_tone = 0
transfer_on_hangup = off
callwaiting_tone = 0x2d
musicclass=default
language=en
deny=0.0.0.0/0.0.0.0
permit=192.168.1.0/255.255.255.0
dndFeature = on
sccp_tos = 0x68
sccp_cos = 4
audio_tos = 0xB8
audio_cos = 6
video_tos = 0x88
video_cos = 5
echocancel = on
silencesuppression = off
private = on
callanswerorder=oldestfirst
directed_pickup_modeanswer = on
hotline_enabled=yes ;can devices without configuration register
hotline_context=default ; context for hotline
hotline_extension=111 ; extension will be dialed on offHook
;=========================================================================================
;
; actual definitions
;
;=========================================================================================
[SEP001122334455]
description = Phone Number One
addon = 7914
devicetype = 7940
park = off
button = speeddial,Helpdesk, 98112, 98112@hints
; Add SpeedDial to Helpdesk
button = line, 98011,default ; Assign Line 98011 to Device and use this as default line
button = empty ; Assign an Empty Button
button = line, 98012 ; Assign Line 98012 to Device
button = speeddial,Phone 2 Line 1, 98021, 98021@hints ; Add SpeedDial to Phone Number Two Line 1
cfwdall = off
type = device
keepalive = 60
;tzoffset = +2
transfer = on
park = on
cfwdall = off
cfwdbusy = off
cfwdnoanswer = off
directed_pickup = on
directed_pickup_context = default
directed_pickup_modeanswer = on
deny=0.0.0.0/0.0.0.0
permit=192.168.1.5/255.255.255.255
dndFeature = on
directrtp=off
earlyrtp = progress
private = on
mwilamp = on
mwioncall = off
setvar=testvar=value
cfwdall = on
[98011]
id = 1000
type = line
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
6
CONTENTS
pin = 1234
label = Phone 1 Line 1
description = Line 98011
mailbox = 10011
cid_name = MY CID
cid_num = 98011
accountcode=79011
callgroup=1,3-4
pickupgroup=1,3-5
;amaflags =
context = default
incominglimit = 2
transfer = on
vmnum = 600
meetme = on
meetmeopts = qxd
meetmenum = 700
trnsfvm = 1000
secondary_dialtone_digits = 9
secondary_dialtone_tone = 0x22
musicclass=default
language=en
echocancel = on
silencesuppression = off
setvar=testvar2=my value
dnd = reject
parkinglot = myparkspace
[98012]
id = 1001
type = line
pin = 4356
label = Phone 1 Line 2
description = Line 98012
mailbox = 10012
cid_name = MY LINE 2
cid_num = 98012
accountcode=79002
callgroup=1,4-9
pickupgroup=1,3-9
echocancel = off
context = default
incominglimit = 2
transfer = on
vmnum = 600
trnsfvm = 1000
secondary_dialtone_digits = 9
secondary_dialtone_tone = 0x22
musicclass=default
language=en
echocancel = on
silencesuppression = off
silencesuppression = on
dnd = silent
[SEP002244668800]
description = Phone Number Two
devicetype = 7960
park = off
button = speeddial,Helpdesk, 98112
; Add SpeedDial to Helpdesk (without hint)
button = line, 98021
button= feature,Private Call,privacy,callpresent ;set channel variable SKINNY_PRIVATE to 1 if feature is enabl
button= feature,DND Busy,DND,busy ;set dnd status to busy
button= feature,DND Silent,DND,silent ;set dnd status to silent
button= feature,Record calls,monitor ;record calls using automon (asterisk >= 1.6 only)
button= feature,call forward to *54,cfwdAll,*54 ;forward all calls to *54
button = speeddial,Phone 1 Line 1, 98011, 98011@hints
button = speeddial,Phone 1 Line 2, 98012, 98012@hints
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
4.2
How to load the Chan_SCCP
7
type = device
keepalive = 60
;tzoffset = +2
transfer = on
park = on
cfwdall = off
cfwdbusy = off
cfwdnoanswer = off
directed_pickup = on
directed_pickup_context = default
directed_pickup_modeanswer = on
deny=0.0.0.0/0.0.0.0
permit=192.168.1.5/255.255.255.255
dnd = on
directrtp=off
earlyrtp = progress
private = on
mwilamp = on
mwioncall = off
setvar=testvar=value
cfwdall = on
[98021]
id = 1000
type = line
pin = 1234
label = Phone 2 Line 1
description = Line 98021
mailbox = 10021
cid_name = MY CID
cid_num = 98021
accountcode=79021
callgroup=1,3-4
pickupgroup=1,3-5
context = default
incominglimit = 2
transfer = on
vmnum = 600
trnsfvm = 1000
secondary_dialtone_digits = 9
secondary_dialtone_tone = 0x22
musicclass=default
language=en
echocancel = on
silencesuppression = off
setvar=testvar2=my value
For more config samples look in the conf directory in the root of the project. Here you will find sccp.conf, sccp_←simple.conf and sccp_short.conf
4.2
How to load the Chan_SCCP
The chan_sccp module can be loaded using the following lines in asterisk module.conf:
noload => chan_skinny.so
load => chan_sccp.so
the skinny module is not allowed to be loaded, is it conflicts with chan_sccp.
A valid sccp.conf configfile has to be available in the asterisk configuration directory.
4.3
How to use RealTime Database
4.3.1
MySQL
Asterisk setup
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
8
CONTENTS
Up till Asterisk 1.6
/etc/asterisk/res_mysql.conf or /etc/asterisk/res_config_mysql.conf:
[general]
name
;dbhost = 10.11.12.13
;dbport = 3306
dbsock = /var/lib/mysql/mysql.sock
; use general in extconfig.conf and the database
; Either use dbsock or dbhost/dbport combination.
; dbsock is preferred when the database is on the
local machine
; The location of mysql.sock may vary from system
to system (please check)
[asterisk]
dbname = asterisk
dbuser = asterisk
dbpass = asterisk_password
From Asterisk 10 and up
/etc/asterisk/res_config_mysql.conf:
[general]
;dbhost = 10.11.12.13
;dbport = 3306
dbsock = /var/lib/mysql/mysql.sock
; Either use dbsock or dbhost/dbport combination.
; dbsock is preferred when the database is on the
local machine
; The location of mysql.sock may vary from system
to system (please check)
requirements=warn
be left out
; Needs to be specified since asterisk 1.8, cannot
[asterisk]
dbname = asterisk
dbuser = asterisk
dbpass = asterisk_password
4.3.2
MySQL 4.0
Read trunk/conf/mysql-v4.sql into your mysql 4.0 database
mysql -p asterisk < conf/mysql-v4.sql
(To upgrade from a previous database version checkout trunk/conf/database_updates)
4.3.3
MySQL 5.0
Starting with mysql version 5.0 you can also use trunk/conf/mysql-v5.sql, here you have a seperate buttonconfig
table
mysql -p asterisk < conf/mysql-v5.sql
(To upgrade from a previous database version checkout trunk/conf/database_updates)
4.3.4
PostgreSQL
Asterisk setup
[general]
;dbhost=10.11.12.13
;dbport=5432
dbsock = /tmp
; Either use dbsock or dbhost/dbport combination.
; dbsock is preferred when the database is on the
local machine
; The location of postgresql socket may vary from
system to system (please check)
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
4.3
How to use RealTime Database
requirements=warn
be left out
9
; Needs to be specified since asterisk 1.8, cannot
[asterisk]
dbname=asterisk
dbuser=asterisk
dbpass=password
Buttons are configured in a seperate table called buttonconfig:
postgresql asterisk < conf/postgresql.sql
4.3.5
Chan_SCCP Configuration for Realtime
Add the following lines to the sccp.conf file
devicetable=sccpdevice
linetable=sccpline
; datebasetable for devices
; datebasetable for lines
/etc/asterisk/extconfig.conf: for mysql v4:
[settings]
sccpdevice => mysql,asterisk,sccpdevices
sccpline => mysql,asterisk,sccplines
for mysql v5:
[settings]
sccpdevice => mysql,asterisk,sccpdeviceconfig
sccpdevice
sccpline => mysql,asterisk,sccpline
; make use of the sccpdeviceconfig view instead of
or for postgresql:
[settings]
sccpdevice => pgsql,asterisk,sccpdeviceconfig
sccpline => pgsql,asterisk,sccplines
4.3.6
Loading information into the tables
Connect to the dabase
insert into sccpdevices (type,description,tzoffset,mwilamp,mwioncall,pickupexten,pickupmodeanswer,privacy,
name) values ("7975","My 1st Phone",0,"outofband","on","on","on","on","full","SEP010102030404");
insert into sccplines (id,pin,label,description,context,incominglimit,transfer,mailbox,vmnum,cid_name,
cid_num,trnsfvm,secondary_dialtone_digits,secondary_dialtone_tone,musicclass,language,accountcode,audio_tos,
audio_cos,video_tos,video_cos,echocancel,silencesuppression,callgroup,pickupgroup,amaflags,setvar,name) VALUES(12
1,212,"Line 121","Line 121",internal,2,on,121,88121,"My Name",121,89121,10,"0x22","default","en",121,"0xB8",
6,"0x88",5,"on","off","1,3-5","3-5","","",121);
insert into buttonconfig (device,instance,type,name,options) VALUES("SEP010102030404",1,"line",121,);
insert into buttonconfig (device,instance,type,name,options) VALUES("SEP010102030404",2,"speeddial","friend
","122,122@hints");
insert into buttonconfig (device,instance,type,name,options) VALUES("SEP010102030404",3,"feature","dnd","
busy");
insert into buttonconfig (device,instance,type,name,options) VALUES("SEP010102030404",4,"feature","cfwdbusy
","122");
4.3.7
Using Realtime Database
Devices / Lines and Buttonconfigs are now loaded from the database. If you add a device to the sccpdevice table it
will automatically be read during the device registration fase. No need to unload/load the chan_sccp module.
When you change any information in the database for a specific device which you want to reset to update it’s status.
You can use the standard asterisk realtime function to reload information
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
10
CONTENTS
realtime load sccpdevice name SEP010102030404
or
realtime load sccpline name 123
sccp reset SEP010102030404
or
sccp restart SEP010102030404
4.4
Setting up a DHCP Server
dhcpd.conf:
option cisco-tftp code 150 = array of ip-address;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.128 192.168.100.200;
default-lease-time 86400;
max-lease-time 172800;
option domain-name-servers 192.168.100.2;
option routers 192.168.100.1;
}
host phone1 {
hardware ethernet 00:0c:ce:3a:88:ca;
fixed-address 192.168.100.100;
option cisco-tftp 192.168.100.2;
}
4.5
What does a Sample SEP[MacAddr].cnf.xml Look Like
We have added a couple of example files in the directory conf/tftp conf/tftp/XMLDefault.cnf.xml_797x conf/tftp/XM←LDefault.cnf.xml_796x conf/tftp/XMLDefault.cnf.xml_791x
You can choose one of these files and adapt it to your network/devices. You can then copy the file to your tftpserver and rename the file to XMLDefault.cnf.xml. If you like you can make soft links/shortcuts to this file for every
device you have in the form of SEP[macaddr].cnf.xml files. For devices with specific settings you can copy your
XMLDefault.cnf.xml file to a new SEP[macaddr].cnf.xml file and set the specific settings for this device.
4.6
Dialplan Sample
4.6.1
How to Dial an SCCP Phone from your dialplan
Dial(SCCP/998,120)
4.6.2
How to Dial an SCCP Phone with a different ring
Dial(SCCP/198/ringer=inside,120)
ringer= values:
• outside
• inside
• feature
• silent
• urgent
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
4.7
4.6.3
Hot to change the firmware to SCCP
11
Dial a line and have the phone Auto Answer
The Dial Command consist of the Channel type, Extension(Number), Options and Timeout. They can either be
seperated by slash or comma. Dial(ChannelType/Extension/Options/Timeout)
Dial(SCCP/9291/aa=1w, 120)
aa= values:
• 1w: 1way. MIC is oFF
• 2w: 2ways. MIC is ON
• 1wb: 1way and reject cause: busy
• 1wu: 1way and reject cause: unavailable
• 1wc: 1way and reject cause: congestion
• 2wb: 2way and reject cause: busy
• 2wu: 2way and reject cause: unavailable
• 2wc: 2way and reject cause: congestion
4.7
Hot to change the firmware to SCCP
• Copy the SCCP Firmware to your tftp directory
• Set the Firmware version in OS79XX.TXT. It should containt only on line, like this:
P00308010100
• Set the XMLDefault.cnf.xml to should contain every used device and it firmware. It should look like this:
<Default>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
</ports>
<processNodeName>10.31.150.1</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
<loadInformation6 model="IP Phone 7910">SCCP11.8-5-2S</loadInformation6>
<loadInformation6 model="IP Phone 7911">SCCP11.8-5-2S</loadInformation6>
<loadInformation124 model="Addon 7914">S00105000300</loadInformation124>
<loadInformation9 model="IP Phone 7935"></loadInformation9>
<loadInformation8 model="IP Phone 7940">P00308010100</loadInformation8>
<loadInformation7 model="IP Phone 7960">P00308010100</loadInformation7>
<loadInformation20000 model="IP Phone 7905"></loadInformation20000>
<loadInformation30008 model="IP Phone 7902"></loadInformation30008>
<loadInformation30007 model="IP Phone 7912"></loadInformation30007>
</Default>
For more information check out :
• http://www.cisco.com/en/US/products/hw/phones/ps379/products_tech_←-
note09186a0080094584.shtml
• http://www.cisco.com/en/US/docs/voice_ip_comm/cucme/command/reference/cmeallht.←-
pdf
• http://www.cisco.com/en/US/docs/voice_ip_comm/cucme/admin/configuration/guide/cmelab
html
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
12
4.8
CONTENTS
Asterisk Clustering and DUNDi Lookup
DUNDi is a peer-to-peer system for locating Internet Gateways to telephony services. Unlike traditional centralized
services (such as the remarkably simple and concise ENUM standard), DUNDi is fully distributed with no centralized
authority whatsoever.
4.8.1
DUNDI Dynamic Awareness (original author: J.R.Richardson)
If regcontext is specified in sccp.conf chan-sccp-b will dynamically create and destroy a NoOp priority 1 extension
for a given peer/line which registers with the server. If the context is not specified in extension.conf, then it will be
dynamically created when an chan-sccp-b agent registers.
Example sccp.conf:
[general]
regcontext=sccpregistration
Once the phones, in this example 98011 and 98012 register with your asterisk server1, a context of [sccpregistration]
appears and the "show dialplan" command at the asterisk CLI> will produce:
server1*CLI> dialplan show sccpregistration
[ Context ’sccpregistration’ created by ’SCCP’ ]
’98011’ =>
1. Noop(98011)
’98011@1’ =>
1. Noop(98099)
-= 2 extensions (2 priorities) in 1 context. =-
[SCCP]
[SCCP]
This gives this PBX a dedicated context that we can map DUNDi lookup requests to. When a DUNDi lookup
requests location information for extension 98011, this PBX will reply "yes, the extension is active here and this is
the contact address".
We do not have to insert a [sccpregistration] in the extensions.conf because it will be created automatically as soon
as the first line/extension registration occurs.
4.8.2
DUNDI Configuration
In this example we will use IAX2 to make DUNDi Switch connections. There are a lot of ways to set this up, so
please check the DUNDi documentation. We use a simple context in iax.conf which is common for all PBX servers,
like this:
iax.conf:
[priv]
type=friend
dbsecret=dundi/secret
context=incomingdundi
In the DUNDi [mappings] section, we specify what [context] in extensions.conf we want to allow DUNDi request
access to. This is how the cluster sees any available SCCP Agents in the [sccpregistration] context on this PBX.
dundi.conf
[mappings]
priv => sccpregistration,0,IAX2,priv:${SECRET}@10.10.10.10.1/${NUMBER},nopartial]
For the rest of the DUNDi implementation in a clustered environment please check out:
• http://atlaug.com/stuff/Presentations/Astricon06/JR_Richardson_Whitepaper.←-
pdf
• http://www.voip-info.org/wiki/view/Asterisk+DUNDi+Call+Routing
• http://leifmadsen.com/papers/dundi-intro.pdf
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
4.9
Troubles using VOIP and SCCP through a Firewall (NAT)
4.9
Troubles using VOIP and SCCP through a Firewall (NAT)
13
What is this NAT and why does this cause problems with VOIP, RTP and sound ?
In addition, the way in which conventional VoIP protocols are designed is also posing a problem to VoIP traffic
passing through NAT. Conventional VoIP protocols only deal with the signalling of a telephone connection. The
audio traffic is handled by another protocol and to make matters worse, the port on which the audio traffic is sent
is random. The NAT router may be able to handle the signalling traffic, but it has no way of knowing that the audio
traffic is related to the signalling and should hence be passed to the same device the signalling traffic is passed to.
As a result, the audio traffic is not translated properly between the address spaces.
At first, for both the calling and the called party everything will appear just fine. The called party will see the calling
party’s Caller ID and the telephone will ring while the calling party will hear a ringing feedback tone at the other end.
When the called party picks up the telephone, both the ringing and the associated ringing feedback tone at the other
end will stop as one would expect. However, the calling party will not hear the called party (one way audio) and the
called party may not hear the calling party either (no audio).
The issue of NAT Traversal is a major problem for the widespread deployment of VOIP. Yet, the issue is non-trivial
and there are no simple solutions. In general terms there are two ways to deal with this problem:
• Don’t use NAT, i.e. public ip-addresses for a your phone (not a solution)
• Build a tunnel between the networks that need to communicate with each other, No NAT Required over the
tunnel.
• Put Asterisk on the Firewall and make it the go-between / proxy. See next point. (For SCCP: set directrtp=off
in your config).
• Use a Firewall Connection Tracking Plugin which records outgoing VOIP Connections and Maps there return
RTP connections. For example for iptables this plugin is called: nf_nat_sip.ko or nf_nat_h323.ko. At this
moment in time we do not have a version for sccp, yet. (But for SIP and H323 it works very well).
Other works arounds:
• Use static ip-address on your phones and creates forwards in your firewall for the SCCP port and a block of
RTP ports for this phone.
• Put a SIP-Proxy on the Firewall and reroute the packets. You could use for example : SER (Sip Express
Router), SIPProxd or RTPProxy.
• Use a STUN Server: http://www.voip-info.org/wiki/view/STUN, http://tools.←-
ietf.org/html/draft-ietf-sipping-nat-scenarios-13
• Find and IAX2 provider instead of SIP. IAX can encapsulate RTP with its packets and therefor traverse NAT
without any problems.
You can find more infomation about VOIP and NAT here
• [http://www.snom.com/whitepapers/FAQ-03-10-20-cs.pdf: Operating phones behind
NAT]
• [http://www.cisco.com/warp/public/788/voip/voip-nat.html: VOIP traversal of N←AT and firewall]
• [http://www.intertex.se/upfiles/IntertexSIPWhitePaper.pdf: White Paper: The
SIP Protocol and Firewall Traversal]
• [http://www.newport-networks.com/whitepapers/nat-traversal1.html:
Networks White Paper NAT Traversal for Multimedia over IP]
Newport
• [http://www.eyeball.com/technology/whitepapers/EyeballAnyfirewallWhite←Paper.pdf: White Paper: NAT Traversal for VoIP and Internet Communications using STUN, TURN and
ICE]
• [http://sipath.sf.net/: Use a SIP- and RTP-Proxy combination on your NAT/Firewall/Router - as
done by the SIPatH Project]
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
14
CONTENTS
4.10
Shared Lines
Shared lines are lines used by several devices at the same time providing easy handling of phone calls between
them. You can for example hold a line on one device and use resume on another to pick the line up there. Or even
steal a line from another device using the Intercept button.
To set up a shared line, you just define the same extension/line number on multiple devices. You can add a suffix
or subscriptionId to the extension number to be able to call a specific device using "@" and if you like an extra
callerid_name behind ":", like this:
[SEP00000001]
...
button = line, 900@1:Kitchen
...
[SEP00000002]
...
button = line, 900@2:LivingRoom!silent
...
If you now create the relevant entries in your dialplan you can either call 900, 9001, 9002 using this example:
_9XX =>{
Dial(SCCP/${EXTEN});
};
_90XX =>{
Set(extension=${EXTEN:0:3});
Set(suffix=${EXTEN:3:1});
Dial(SCCP/${extension}@${suffix});
};
To add a default suffix to a line (so all device using that line, will also be accessible via the default suffix) you can
add "defaultSubscriptionId_number = " to the line definition in sccp.conf.
When "silent" is added to the subscriptionId this line will not ring if the shared line is called, this can be used
when a secretary is supposed to handle all incoming calls on a shared line. Only when the extension including the
suffix/subscriptionId is called will this line ring.
5
How To
• How to use Shared Lines on a device
• How to set Phone Buttons on a device (softkeys)
• How to use the Hotline option on a device
• How to use the adhoc option on a line (PLAR)
• How to use Dynamic SpeedDials
• How to use the Soft Keys on the Phone
• How to use Reload
• How to use Dialplan Function
• How to use device state
• How does digit timeout and dialing work
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
5.1
Shared Lines
5.1
Shared Lines
15
Shared lines is simple, and is activated readily by registering multiple phones on the same line. That’s all, no extra
options required. What happens is that all phones on a shared line "see" the calls of the other phones and vice
versa. If you have a call on a shared line, just press "hold" on one phone and resume that call with "resume" on
another phone.
Earlier, without shared lines, registering multiple phones on the same line lead to an error that the line was already
in use. Now, you simply get a shared line.
5.2
Phone Buttons
We do not use the different autologin, speeddial options any longer, instead trunk uses a unified scheme for adding
buttons: Each button is added to the phone in the order as specified in the config file by specifying a "button"
assignment. The syntax is button = <empty|line|speeddial|feature|service>[, name[, option1[, option2]]]
buttons come in the following flavours:
• empty: Empty button (no options)
• line: Registers the line with identifier specified as [name]
• speeddial: Adds a speeddial with label [name] and [option1] as number Optionally, [option2] can be used to
specify a hint by extension@context as usual.
• service: Adds a service url
• Feature buttons have an on/off status represented on the device with a tick-box and can be used to set the
device in a particular state. Currently Possible [option1],[option2] combinations:
– privacy,callpresent = Make a private call, number is suppressed
– privacy,hint = Make a private call, hint is suppressed
– cfwdall,number = Forward all calls
– cfwbusy,number = Forward on busy
– cfwnoaswer,number = Forward on no-answer (not implemented yet)
– DND,busy = Do-not-disturb, return Busy signal to Caller
– DND,silent = Do-not-disturb, return nothing to caller
– monitor = Record Calls using AutoMon (asterisk 1.6.x only)
– devstate,custom_devstate = Device State Feature Button (asterisk 1.6.1 and up). custom_devstate is
the name of the custom devicestate to be toggled (How to use devicestate)
– hold = To be implemented
– transfer = To be implemented
– multiblink = To be implemented
– mobility = To be implemented
– conference = To be implemented
In a configuration file this could look like:
button
button
button
button
button
button
button
button
button
button
button
=
=
=
=
=
=
=
=
=
=
=
line, 519
line, 520@01: Phone1
line, 521@02: Phone1!silent
line, 522@03: Phone1, default
empty
speeddial, "Cantine", 332, 332@hints
service, "Asterisk", "www.asterisk.org"
feature, "privacy callpresent", privacy, callpresent
feature, "callforward busy", cfwdbusy, 529
feature, "DND busy", "DND", "busy"
feature, "Record Calls", monitor
For more information about hints check How to to use Hints here
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
16
5.3
CONTENTS
How to use Dynamic SpeedDials (now on by default)
Dynamic SpeedDials give additional information about the status of the lines assigned the speeddial. The Icon
displayed changes to indicate "IDLE", "DND", "IN USE" and "RINGING". In the latest version this feature is
To use Normal SpeedDials(olod behaviour) instead of Dynamic SpeedDials you need to use a configure parameters
during compilation
./configure --disable-speeddial
–disable-dynamic-speeddial = Do not use any dynamic speeddial –disable-dynamic-speeddial-cid = Do not display
the calledid information on the dynamic speeddial
Dynamic SpeedDial is now switched on by default !!.
5.4
How to use the hotline option
Setting the hotline Feature on a device, will make it connect to a predefined extension as soon as the Receiver is
picked up or the "New Call" Button is pressed. No number has to be given. This works even on devices which have
no entry in the config file or realtime database.
The hotline function can be used in different circumstances, for example at a door, where you want people to be
able to only call one number, or for unprovisioned phones to only be able to call the helpdesk to get their phone
set up. If hotline_enabled = yes, any device which is not included in the configuration explicitly will be allowed to
registered as a guest device. All such devices will register on a single shared line called "hotline".
For example:
- hotline_enabled=yes
- hotline_context=default
- hotline_extension=111
This will add a Hotline on all phones, dialing 111 via context default.
5.5
How to use the adhoc option (PLAR)
Adhoc Number or Private-line automatic ringdown (PLAR): Adhoc/PLAR circuits have statically configured endpoints
and do not require the user dialing to connect calls.
• The adhocNumber is dialed as soon as the Phone is taken off-hook or when the new-call button is pressed
• The adhocNumber will not be dialed when choosing a line; so when you choose a line you can enter a
number manually.
For example adding this to the line configuration:
adhocNumber = 818
Will automatically dial 818 as soon as the Receiver is picked up or the new call button is pressed.
5.6
Soft Keys Howto
5.7
Softkey Configuration
You can create several softkeyset in you config for use on different devices. You can assign these softkeyset to a
device using: softkeyset = name_of_softkeyset in the device section of the config. (Softkey explanations
/ logo’s)
for example:
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
5.7
Softkey Configuration
17
[SEP001122334455]
devicetype=7960
...
softkeyset = mysoftkeyset
[mysoftkeyset]
type=softkeyset
onhook
= redial,newcall,cfwdall,dnd
connected
= hold,endcall,park,select,cfwdall,cfwdbusy,idivert
onhold
= resume,newcall,endcall,transfer,confrn,select,dirtrfr,idivert
ringin
= answer,endcall,idivert
offhook
= redial,endcall,private,cfwdall,cfwdbusy,pickup,gpickup,meetme,barge
conntrans
= hold,endcall,transfer,confrn,park,select,dirtrfr,cfwdall,cfwdbusy
digitsfoll = back,endcall
connconf
= hold,endcall,join
ringout
= endcall,transfer,cfwdall,idivert
offhookfeat = redial,endcall
onhint
= pickup,barge
The [mysoftkeyset] section about contains the state of the phone as the first part (before the equal sign) and the
softbuttons shown during this state in the second part.
Multiple softkey set can be created and attached to different devices.
5.7.1
5.7.1.1
These are the softkeys available
How to use the Redial Softkey
Using the Redial Button you can Redial the last Called Number on this Line or Device
The last number called is stored in Asterisks local database (AstDB) before a module unload, so the state can be
restored to previous setting on a module reload or restart of Asterisk.
5.7.1.2
How to use the NewCall Softkey
Using the New Call Button you can initiate a new Call just like picking up the receiver. You can either type in the
number to be called before or afterwards.
5.7.1.3
How to use the Hold Softkey
Using the Hold Button you can hold the current line and undertake some other action You can later resume the held
line use How to use the Resume Softkey
5.7.1.4
How to use the Resume Softkey
Using the Resume Button you can resume a previously help line which has been put on hold using How to use the
Hold Softkey
5.7.1.5
How to use the Transfer Softkey
Using the Transfer Button you can Transfer the Currentline to another Number You can also use a speeddial during
transfer
5.7.1.6
How to use the End Call Softkey
Using the End Call Button you can End the Call on the Current Line
5.7.1.7
How to use the Do Not Disturb (DND) Softkey
Using the Do Not Disturb (DND) Button you set your device/line to the Do Not Disturb Status. When receiving a call
your phone will not ring and the People Call You Will get a Busy Signal
The status of DND is stored in Asterisks local database (AstDB), so the state of DND can be restored to previous
setting on a module reload or restart of Asterisk.
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
18
5.7.1.8
CONTENTS
How to use the BackSpace (<<) Softkey
Using the backspace (<<) Button you can erase the last entered digit/character
5.7.1.9
How to use the Answer Softkey
Using the Answer Button you can Answer an Incoming Call
5.7.1.10
How to use the select softkey
The "Select" softkey is used for bridging two channels (redirect). Select your first channel and press the select
softkey. On the display this channel is marked with a checkmark. By selecting the second channel, it is also marked
with a checkmark and DirTrFr (How to use the DirTrfr) is enabled. Press this key to bridge both channels.
5.7.1.11
How to use the DirTrfr
When two channels have been selected using the Select SoftKey (How to use the select softkey) then using the
DirTrfr SoftKey can be used to Connect Both Lines to one another (bridging both channels).
5.7.1.12
How to use the Call Forward All Button
Using this Button you can set the current line / device to forward all incoming call to another number This number
can be another SCCP/SIP/IAX Device or even an external number (if permitted to call externally)
The status of CallForward is stored in Asterisks local database (AstDB), so the state can be restored to previous
setting on a module reload or restart of Asterisk.
5.7.1.13
How to use the Call Forward if Busy Button
Using this Button you can set the current line / device to forward incoming calls when busy to another number This
number can be another SCCP/SIP/IAX Device or even an external number (if permitted to call externally)
The status of CallForward is stored in Asterisks local database (AstDB), so the state can be restored to previous
setting on a module reload or restart of Asterisk.
5.7.1.14
How to use the Call Forward if No-Answer Button
Using this Button you can set the current line / device to forward incoming calls when you don’t/can’t answer to
another number This number can be another SCCP/SIP/IAX Device or even an external number (if permitted to call
externally)
The status of CallForward is stored in Asterisks local database (AstDB), so the state can be restored to previous
setting on a module reload or restart of Asterisk.
5.7.1.15
How to use the Park Button
Using the Park Button make it possible to Send a Call to the Asterisk Parking Lot Channels parked in the Parking
Lot can be Picked-Up by Another Phone Using the Pickup Button or the Pickup Number Configured in features.conf
under pickupexten
5.7.1.16
How to use the Transfer Button
Using the Transfer Button gives you the possibily to Transfer the Current Line to a New Number After pressing the
Transfer button you are asked to Enter a New Number to which the Line will have to be transfered
5.7.1.17
How to use the Private Button
Using the Private Button before dialing a New Outside Line will Prevent the Number dialed to be monitored by
Devices that use a HINT. It does not prevent the number turning up in Asterisk Logging or the Console Window.
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
5.8
Reload Howto
5.7.1.18
19
How to use the Conference Button
Using the Conference Button makes it possible to set up a Simple Three Way Conference. There are two ways this
can be done: Option 1: You Already have to Lines Occupied (One is active and the other Held), which you would like
to put in a Conference; Simple Press the Conference Button Option 2: You have one line Occupied and would like to
call Someone else and Join them all into a Conference; Press the Conference Button and you will be asked for the
3 party number which need to be added to the conference, once this line is connected, you press the Conference
Button Again and the Conference Starts.
5.7.1.19
How to use the Conference List Button
Using the Conference List Button shows you a list of members of the current conference you are in with the mute
status. If you are the moderator of this conference you have the ability to mute/unmute and kick members out of the
conference.
5.7.1.20
How to use the Join Button
Using the Join Button makes it possible to Add another member/line to an already running Conference When you
are in a conference and you receive an Incoming Call you can join this channel/line to the running Conference
5.7.1.21
How to use the Barge Button
Using the Barge Button makes it possible to listen in on an On-Going Call on another Line / Device
5.7.1.22
How to use the Conference Barge Button
Using the Barge Button makes it possible to listen in on an On-Going Conference on another Channel
5.7.1.23
How to use the Meetme Button
Using the Conference Button makes it possible to set up a Simple Three Way Conference. There are two ways this
can be done: Option 1: You Already have to Lines Occupied (One is active and the other Held), which you would like
to put in a Conference; Simple Press the Conference Button Option 2: You have one line Occupied and would like to
call Someone else and Join them all into a Conference; Press the Conference Button and you will be asked for the
3 party number which need to be added to the conference, once this line is connected, you press the Conference
Button Again and the Conference Starts.
See also
sk_conference
5.7.1.24
How to use the Pickup Button
Using the Pickup Button Makes it possible to Pickup a Parked Call from the Parking Lot This is equivalent to using
the keys defined in features.conf under pickupexten
5.7.1.25
How to use the Group Pickup Button
Using the GroupPickup Button Makes it possible to Pickup a Ringing Line in defined in your PickupGroup This is
equivalent to using the keys defined in features.conf under pickupexten
5.8
Reload Howto
When chan-sccp-b has been configured with the –with-dynamic-config during the build fase. The new "sccp reload"
function will be availble in from the CLI inside asterisk. When run, chan_sccp-b will reload the sccp.conf file and
update all it’s structures. When necessary phones will be sent a reset to make them reload their configuration.
When a phone is currently in used, but would need to be reset, it will reset as soon as the current call is hungup.
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
20
5.9
CONTENTS
How to use dialplan functions
We have added new dialplan functions SCCPDEVICE SCCPDEVICE, SCCPLINE SCCPLINE and nf_sccp_←dialplan_sccpchannel SCCPCHANNEL to provide the ability to ask information about sccp device, sccp lines and
sccp channels.
And SCCPSetCodec SCCPSetCodec, SCCPSetCalledParty SCCPSetCalledParty and SCCPSetMessage SCC←PSetMessage to provide the ability to change chan_sccp behaviour while prosessing dialplan requests.
5.9.1
SCCPDEVICE
Usage: SCCPDEVICE([deviceId|current],[option]); Use: core show functions SCCPDEVICE to find out all the options
the first param can be either "current" or a device ID like "SEP????????????"
the second param defines the information to be retrieved and can be on of these: ip, id, status, description, config←_type, skinny_type, tz_offset, image_version, accessory_status, registration_state codecs, state, lines_registered,
lines_count, last_number, capability, early_rtp, channel_count, supported_protocol_version used_protocol_version,
mwi_light, dynamic|realtime, active_channel, transfer_channel, conference_id, allow_conference, conf_play_←general_announce, allow_conference, conf_play_part_announce, conf_mute_on_entry, conf_music_on_hold_←class, current_line button_config, pending_update, pending_delete, chanvar[varname], codec[codecname]
Within the dialplan you can use the function SCCPDEVICE to retrieve information about an SCCP Device like this:
Set(my_ip=${SCCPDEVICE(current,ip)});
Set(my_id=${SCCPDEVICE(current,id)});
Set(my_codecs=${SCCPDEVICE(current,codecs)});
Set(my_codec_g792=${SCCPDEVICE(current,codec[g792])});
Set(my_button_config=${SCCPDEVICE(current,button_config)});
Set(other_button_config=${SCCPDEVICE(SEP001122334455,button_config)});
to put the information of a/the device in a dialplan variable.
5.9.2
SCCPLINE
Usage: SCCPLINE([current|parent|linename],[option]); Use: core show functions SCCPLINE to find out all the
options
the first param can be either "current", "parent" or a line name assigned to the line. "parent" refers to the line who
forwarded the call to you and is only filled if this channel has been forwarded.
the second param defines the information to be retrieved and can be on of these: id, name, description, label,
vmnum, trnsfvm, meetme, meetmenum, meetmeopts, context, language, accountcode, musicclass, amaflags,
callgroup, pickupgroup, cid_name, cid_num, incoming_limit, channel_count, dynamic|realtime, pending_delete,
pending_update, regexten, regcontext, adhoc_number, newmsgs, oldmsgs, num_lines, lines, chanvar[varname]
Within the dialplan you can use the function SCCPLINE to retrieve information about an SCCP Line like this:
Set(my_line_name=${SCCPDEVICE(current,name)});
Set(my_line_descr=${SCCPLINE(current,description)});
Set(my_line_devices=${SCCPLINE(current,devices)});
Set(parent_line_id=${SCCPLINE(parent,id)});
Set(other_line_id=${SCCPLINE(98011,id)});
Set(other_line_devices=${SCCPLINE(98011,devices)});
to put the information of a/the line in a dialplan variable.
5.9.3
SCCPCHANNEL
Usage: SCCPCHANNEL([current|callid],[option]); Use: core show functions SCCPCHANNEL to find out all the
options
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
5.9
How to use dialplan functions
21
the first param can be either "current" or a callid assigned to the channel.
the second param defines the information to be retrieved and can be on of these: callid, format, isCodecFix,
codecs, capability, calledPartyName, calledPartyNumber, callingPartyName, callingPartyNumber originalCalling←PartyName, originalCallingPartyNumber, originalCalledPartyName, originalCalledPartyNumber, lastRedirecting←PartyName lastRedirectingPartyNumber, cgpnVoiceMailbox, cdpnVoiceMailbox, originalCdpnVoiceMailbox, last←RedirectingVoiceMailbox, passthrupartyid, state, previous_state, calltype, dialed_number, device, line, answered←_elsewhere, privacy, monitorEnabled, parent, recvip, peerip
De carefull with SCCPCHANNEL, When calling this you must provide a valid SCCP Channel. So check if the
channel is of type SCCP before calling this function !
Within the dialplan you can use the function SCCPCHANNEL to retrieve information about an SCCP channel like
this:
Set(my_channel_callid=${SCCPCHANNEL(current,callid)});
Set(my_channel_device=${SCCPCHANNEL(current,device)});
Set(my_channel_line=${SCCPCHANNEL(current,line)});
Set(my_channel_capability=${SCCPCHANNEL(current,capability)});
Set(my_channel_called=${SCCPCHANNEL(current,calledPartyName)});
Set(my_channel_calling=${SCCPCHANNEL(current,callingPartyName)});
Set(my_channel_state=${SCCPCHANNEL(current,state)});
Set(my_channel_calltype=${SCCPCHANNEL(current,calltype)});
Set(my_channel_dialed_number=${SCCPCHANNEL(current,dialed_number)});
Set(other_channel_dialed_number=${SCCPCHANNEL(4,dialed_number)});
to put the information of the/a channel in a dialplan variable.
5.9.4
Generic CHANNEL
Generic Dialplan Cmd CHANNEL information provided when used with an SCCP channel.
Usage: CHANNEL([option]);
Possible Options:
• recvip: Current IP-Addres of the Connection to the Phone
• peerip: Real IP-Address of the Phone in question (Could be different if the phone is on a Natted Connection)
• from: device type
• useragent: device name (a.k.a SEP00123456789)
Dialplan function to manipulate sccp channels and dial commands are:
5.9.5
SCCPSetCodec
Usage: SCCPSetCodec(codec) Sets the preferred codec for dialing out with the next DIAL statemnet using an sccp
channel.
SCCPSetCodec(codec) is now deprecated in favour of generic channel method ’Set(CHANNEL(codec)=alaw)’.
Please do not use SCCPSetCodec anymore.
5.9.6
SCCPSetCalledParty
Usage: SCCPSetCalledParty("name" <ext>) Sets the name and number of the called party before using the DIAL
statement, only usefull when dialing an SCCP Channel.
Previous function name SetCalledParty(codec) is now deprecated in favour of SCCPSetCalledParty.
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
22
CONTENTS
5.9.7
SCCPSetMessage
Usage: SCCPSetMessage(<message text> [,timeout]) Send a Message to the Calling Device (and remove after
timeout, if timeout is ommited will stay until next/empty message.
Previous function name SetMessage(codec) is now deprecated in favour of SCCPSetMessage.
5.10
How to use devicestate
When chan-sccp-b is used with asterisk 1.6.1 and up, you have the option to use configure directive –enabledevstate-feature. This will make chan-sccp-b report back the device_state back to asterisk, to be used by for
example the Dialplan DEVICE_STATE function as such:
exten => s,1,NoOp(My phone state is currently ${DEVICE_STATE(SCCP/98011)})
5.10.1
Custom Device State
If you add a new devstate button to you sccp.conf like so, you will have a new custom device state which can be set
and monitored
button = feature, Coffee is Ready, devstate, coffee
When you press this button the device state will go from NOT_INUSE to INUSE and back again
You can then switch the feature devstate button on and of from the dialplan with
exten => s,1,Set(DEVICE_STATE(Custom:coffee)=INUSE)
To signal everyone that the coffee is ready.
From the console(CLI) this can be handled via:
devstate change Custom:coffee INUSE
The new phones models with lighted buttons will nicely light up their buttons upon "INUSE".
You can read more about customer device states here.
5.11
Digit timeout and dialing
Dialing changes:
• When entering the number with the receiver down, and then pressing dial or picking up, we calculate the
standard deviatoin between the timing of the entered numbers. If the all fall withing the same pattern (about
100 milliseconds per digit) with a std-dev les then 3.5 we can assume the numbers are not entered by hand
and emulate enbloc dialing and reduce the total digittimeout to 2000 milliseconds (2 secs after the last digit).
The following two rules still apply.
• Matching of number uses regcontext group specified in sccp.conf first, if a full match is found, the digittimout
is halved.
• If a full match is found in the dialplan, and no other dialplan entries would match, dialing starts immediatly.
6
New Features in V4.1
• New Config Parser
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
6.1
New Config Parser
23
• Emulated EnBloc Dialing for older devices
• New SCCP Protocol Handler
• Rewritten RTP Handling
• Support for multiple asterisk version in one code base
6.1
New Config Parser
The new config parser in V4.1 allows you to verify your sccp.conf for use with chan-sccp-b. If you set debug =
core,config in the beginning of the config file and issue "sccp reload" in CLI, the sccp.conf file will be loaded and
you will get output per line about it status and interpretation.
You can also reload with a different sccp.conf file if you like, i.e. "sccp reload sccp.test.conf"
In the contrib directory you will find gen_sccpconf.c which allows you to generate several file types (conf / sql / xml).
The information is directly generated from the sccp sources and will therefor always produce a correct sample file.
6.2
Emulated EnBloc Dialing for older devices
Emulated Enbloc dialing has been added to make older phones react faster when dialing with the receiver down
or pressing re-dial. The individual buttonpresses are still send over the line in seperate tcp packets, but when we
recognize that the buttonpresses arrive in a monotonous stream with equidistant timing between the buttons, we
assume that the number was dialed before picking up the receive and start the call immediatly instead of waiting for
more digits to arrive. This negates the secundairy digit waiting.
6.3
New SCCP Protocol Handler / Protocol Version
Protocol version does not have to be set anymore in sccp.conf and is extrapolated automatically when the device
registers. The new protocol handler always tries to use the highest possible sccp protocol version the device is
capable of handling.
6.4
Rewritten RTP Handling
RTP handling and codec dissemination has been completely rewritten in V4.1.
6.5
Support for multiple asterisk version in one code base
With V4.1 multiple versions os Asterisk are supported on one code base. On the chan-sccp-b side the same
code is used for any asterisk version. The pbx specific code is handled by pbx_impl which should be seen as a
singular/stable API for dealing with asterisk.
7
Frequently Asked Questions
Here, you can find the answers to a few frequently asked questions. For up to date Help, Faq, Bug Reporting have
a look here: http://sourceforge.net/projects/chan-sccp-b/support.
7.1
A. Compilation
Compilation related issues.
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
24
7.1.1
CONTENTS
A1. How to Compile
Q: How to Compile chan_sccp-b
A: We are using the standard autoconf/automake principle. This means the only thing you have to do to compile
your application is run:
./configure
./make
./make install
To get everything install using the default values. It will try and determine all the relevant dependecies and compile
the application. If you need any specific functionality, or need to specify a location of for example your asterisk
installatin you can use "\code./configure --help\endcode" to figure out the switches you need. To Read more about
using ./configure, read the INSTALL document in the root of this project directory.
7.1.2
A2. Compilation Errors
Q: How to solve compilations errors
A: First try to work out what ./configure is complaining about, when it is. I normally tries to be as explicit as possible.
If you get errors trying to start configure, first try to resolve it using "\code./reconf\endcode", it will try and build a
new configure application for your machine (autoconf, automake and m4 are required).
If nothing helps, send a message to our bug page via http://sourceforge.net/tracker/?group_←id=186378&amp;atid=917045. Please include config.log when sending a bug about configure/make
Q: How to solve compilations errors
A: First try to work out what ./configure is complaining about, when it is. I normally tries to be as explicit as possible.
If you get errors trying to start configure, first try to resolve it
7.2
B. Troubleshooting
Q. Can’t dial-in or dial-out of an SCCP Phone
A. Check the context which has been set in the sccp.conf or realtime tables. Please make sure you have a corresponding context in your dialplan (extensions.conf / extenstions.ael). You can also change the sccp.conf context(s)
to a context you already use in your dialplan (like default / from-internal-users).
Q. No audio when calling or being called
A. Normally this comes down to the need for in-direct rtp traffic, because there is a firewall between your
phones which is performing Network Address Translations (NAT). You can check this via: http://www.←amibehindnat.com. Simple solution: Turn directrtp=off in you sccp.conf or realtime tables and try again.
Also check your settings for sccp.conf: externip and localnet In rtp.conf you can make the block of used rtp port
smaller and forward this whole block of UDP ports to your asterisk box.
Read more here: Troubles using VOIP and SCCP through a Firewall (NAT) Troubles using VOIP and SCCP through
a Firewall (NAT)
Q. No DMTF at all
A. Set directrtp=off in your sccp.conf or realtime tables and give it another try. Remember to set RFC2833 in any of
the connecting channel drivers.
Q. No DMTF during calls
A. Set earlyrtp=on, progress or ringout in your sccp.conf or realtime tables and try again.
Q. How do i report an Issue or Problem i have
A. You can find detailed information about reporting problems/issues here: Reporting Issues/Problems. Please do
set you debug levels according to the issue you have. Otherwise we have to wade through piles of uninformative
messages to get to the correct location. And try to describe you issue as exact as possible.
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
7.3
C. Dialplan
7.3
C. Dialplan
Q: How do you dial an SCCP from your dialplan
A: Use a dial statement like this
Dial(SCCP/998,120)
Q: How to Dial an SCCP Phone with a different ring
A: Added ringer=inside to the dial statement
Dial(SCCP/198/ringer=inside,120)
ringer= values:
- outside
- inside
- feature
- silent
- urgent
.
Q: Dial a line and have the phone Auto Answer (Used for Paging for example)
A: add the following to your dial statement to page lines 9291 and 9292 with one way audio
Dial(SCCP/9291/aa=1w&SCCP/9292/aa=1w, 120)
aa= values:
• 1w: 1way audio (MIC on other side is OFF).
• 2w: 2way audio (MIC on other side is ON).
• 1wb: 1way and reject cause: busy
• 1wu: 1way and reject cause: unavailable
• 1wc: 1way and reject cause: congestion
• 2wb: 2way and reject cause: busy
• 2wu: 2way and reject cause: unavailable
• 2wc: 2way and reject cause: congestion
Q: Get infomation about the SCCP device or line from the dialplan.
A: use the SCCPDEVICE, SCCPLINE and SCCPCHANNEL functions.
example:
Set(my_ip=${SCCPDEVICE(current,ip)});
to set the variable my_ip to the ip-address of the current device.
example:
Set(some_ip=${SCCPDEVICE(SEP001B54CA6543,cidname)});
to set the variable some_ip to the cidname of the device with Mac-Address 00:1B:54:CA:65:43.
see How to use dialplan functions How to use dialplan functions
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
25
26
7.3.1
CONTENTS
How to to use Hints
Q: How to use Hints
A: To use a hinted speeddial you will also need an hint entry in your dialplan, which could look like:
extension.conf:
[hints]
exten
exten
exten
exten
exten
exten
=>
=>
=>
=>
=>
=>
101,hint,SCCP/101
102,hint,SCCP/102
103,hint,SCCP/103
104,hint,SCCP/104
105,hint,SCCP/105
200,hint,SCCP/101&SCCP/102
// Secretaties
or
extension.ael (in AEL2 format):
context hints {
hint(SCCP/101) _101 => NoOp(hint);
hint(SCCP/102) _102 => NoOp(hint);
hint(SCCP/103) _103 => NoOp(hint);
hint(SCCP/104) _104 => NoOp(hint);
hint(SCCP/105) _105 => NoOp(hint);
hint(SCCP/101&SCCP/102) _200 => NoOp(hint);
};
Once these hints have been configured you can use them in a speedial entry in your sccp.conf like:
button = speeddial, "Secretaries", 200, 200@hints
8
Reporting Issues/Problems
Please read this section carefully before reporting any issues / problems
8.1
Report Issues/Problems
When reporting problems / issues via the sourceforge mailinglist or bug/issue report pages please include as much
information as possible. And try to describe you problem/issue as acquarate as possible.
At least include the following information:
• Operating System
• Installed version of Asterisk
• Installed version of chan_scpp. When using the trunk version, please include the svn revision number.
• Asterisk Debug Report (see Generating a Debug Report section)
• In case of registration errors, also include the TFTP Files which are used by the device
• In case of dialplan issues, include the part of the dialplan in question.
When reporting issues/problems be patient. We will try and get back to you as soon as possible, but time is
sometimes scarce. Other users of chan_sccp are very welcome to answer any questions if they know the answer
of course.
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
8.2
Generating a Debug Report
8.2
Generating a Debug Report
27
To generate a debug report please take the following steps:
• switch on the "all" section in logger.conf.
• Restart Asterisk
• In cli (asterisk -rvvvvvvvvvvv) enter: sccp debug device,channel,line,event (or more or event all). You can get
a list of all debug categories when you type "sccp debug". Try to match your problem area with one or more
of the debug categories.
• Reproduce the error you encountered.
• When done, stop asterisk
• Attach the /var/log/asterisk/all (might be stored in a different location on your os) file to your error/issue report.
A less exact method is to cut and paste the information from CLI.
8.3
Generating a Backtrace
To generate a backtrace after asterisk produced a so called core dump
• find the location of the core dump (current working directory, /tmp, /var/log/asterisk)
• either use:
– the contrib/generate_backtrace script
– or, manually execute:
gdb --batch --silent --quiet -ex "set height 0" -ex "set pagination off" -ex "bt" -ex "quit" /usr/sbin/
asterisk /tmp/core
whereby you have to replace the paths to the asterisk executable and the core file.
If asterisk did not dump a core file, you might need to switch this on first in /etc/asterisk/asterisk.conf or start asterisk
with the -g option
9
Supported Operating Systems to date
Status for various supported OSes ( Asterisk - Chan_SCCP ) on different CPU’s (x86 / x86_64 / Sparc / Arm)
Please tell us if you have succesfully installed / ported chan_sccp to you platform if it’s not in the list yet
9.1
Linux Based Operating Systems
• OpenSuSE
• Debian
• Ubuntu / MintLinux
• Fedora
• RedHat
• Centos
• Embedded OS:
– OpenWRT
– Horstbox
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
28
9.2
CONTENTS
BSD Based Operating Systems
• OpenBSD
• FreeBSD
• NetBSD
9.3
Commercial Operating Systems
• IBM Aix
• Oracle/Sun Solaris
• Apple OS-X
• HP-UX
• HP Tru64
10
Sources Explained
You will find some background information to the sources provided by us. Please follow one of the following Links
Sccp Config / Reload:
• sccp_config
Sccp Hint Handling:
• hint_update
Refcounting:
• sccp_refcount
11
Consulted Documentation
The following documents have been useful to us:
• http://www.asterisk.org/community/documentation
• https://wiki.asterisk.org/wiki/display/AST/Home
– https://wiki.asterisk.org/wiki/display/AST/Roadmap
– https://wiki.asterisk.org/wiki/display/AST/Asterisk+1.8+Documentation
– https://wiki.asterisk.org/wiki/display/AST/Asterisk+10+Documentation
– https://wiki.asterisk.org/wiki/display/AST/Asterisk+11+Documentation
– https://wiki.asterisk.org/wiki/display/AST/Configuration+and+Operation
– http://doxygen.asterisk.org/1.6.2/index.html
– http://doxygen.asterisk.org/1.8/index.html
– http://doxygen.asterisk.org/trunk/index.html
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
12 Information for Developers
29
• http://www.asteriskdocs.org/
• http://www.stack.nl/∼dimitri/doxygen/manual/index.html
• http://www.aosabook.org/en/asterisk.html
• http://hisown.com/Talks/VoIP%20-%20Excerpt%20(SCCP).pdf
• http://www.javvin.com/protocolSCCP.html
• http://www.cisco.com/en/US/products/hw/phones/ps379/products_tech_←-
note09186a0080094584.shtml
12
Information for Developers
On this page, people who want to contribute can find information.
12.1
You found a Bug
You found a bug, please report it via : BugReport. Please try to describe the bug you found as clearly as possible.
Please give us a step by step procedure to reproduce the error. Give us some thing to work with, like "sccp debug
all" logging, asterisk logging, protocol analyzer pcap files etc.
12.2
Sending Feature Requests
You have a new Feature which you think would be a wonderfull addition to chan_sccp. Or you need something
implemented and are willing to pay. Just send a Message via: MailingList. We’ll look into it and let you know
what we think. You can’t wait until it is implemented, why not give the sources a look over. Read the documentation
and start coding yourself. You could even become a member of the development team if you like. Have a look here
Send us a Patch and here Becoming a Developer in out Team.
12.3
Send us a Patch
You found an error and fixed it or you wrote some new functionality ? Please submit a patch to: PatchList.
Please include a description of your patch and if necessary how to apply it.
12.4
Becoming a Developer in out Team
Our project can always use more testers, documentors, developers, project managers. Why not apply by contacting
one of our Project Admin members (authors).
12.5
Get familiar and follow the sccp locking and refcounting rules
Please check out the refcounted object types used by chan-sccp-b to see when and how the are used (see: sccp←_refcount).
When submitting patches or developing within the chan-sccp-b team, regard, follow and obey by these refcount
rules at all times:
• sccp_refcount
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
30
CONTENTS
13
File Index
13.1
File List
Here is a list of all files with brief descriptions:
AUTHORS
38
LICENSE
38
14
File Documentation
14.1
00_Index.doc File Reference
An implementation of Skinny Client Control Protocol (SCCP)
14.1.1
Detailed Description
An implementation of Skinny Client Control Protocol (SCCP)
Author
Diederik de Groot <dkgroot [at] talon.nl>
Since
2009-11-12 Main Documentation
Note
This program is free software and may be modified and distributed under the terms of the GNU Public License.
Version
Revision
4721
Date
$date$
Contains extra comments for Doxygen.
You could read the documentation from this file; but it would probably be easier to go to http←-
://chan-sccp-b.sourceforge.net
Definition in file 00_Index.doc.
14.2
10_What_Is_Chan_SCCP.doc File Reference
An implementation of Skinny Client Control Protocol (SCCP)
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
14.3
20_Building_and_Installation_Guide.doc File Reference
14.2.1
31
Detailed Description
An implementation of Skinny Client Control Protocol (SCCP)
Author
Diederik de Groot <dkgroot [at] talon.nl>
Since
2009-11-12 Main Documentation
Note
This program is free software and may be modified and distributed under the terms of the GNU Public License.
Version
Revision
1369
Date
$date$
Contains extra comments for Doxygen.
You could read the documentation from this file; but it would probably be easier to go to http←-
://chan-sccp-b.sourceforge.net
Definition in file 10_What_Is_Chan_SCCP.doc.
14.3
20_Building_and_Installation_Guide.doc File Reference
An implementation of Skinny Client Control Protocol (SCCP)
14.3.1
Detailed Description
An implementation of Skinny Client Control Protocol (SCCP)
Author
Diederik de Groot <dkgroot [at] talon.nl>
Since
2009-11-12 Main Documentation
Note
This program is free software and may be modified and distributed under the terms of the GNU Public License.
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
32
CONTENTS
Version
Revision
1369
Date
$date$
Contains extra comments for Doxygen.
You could read the documentation from this file; but it would probably be easier to go to http←-
://chan-sccp-b.sourceforge.net
Definition in file 20_Building_and_Installation_Guide.doc.
14.4
30_Setup_Guide.doc File Reference
An implementation of Skinny Client Control Protocol (SCCP)
14.4.1
Detailed Description
An implementation of Skinny Client Control Protocol (SCCP)
Author
Diederik de Groot <dkgroot [at] talon.nl>
Since
2009-11-12 Main Documentation
Note
This program is free software and may be modified and distributed under the terms of the GNU Public License.
Version
Revision
1369
Date
$date$
Contains extra comments for Doxygen.
You could read the documentation from this file; but it would probably be easier to go to http←-
://chan-sccp-b.sourceforge.net
Definition in file 30_Setup_Guide.doc.
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
14.5
35_How_To.doc File Reference
14.5
35_How_To.doc File Reference
33
SCCP New Feature Documentation.
14.5.1
Detailed Description
SCCP New Feature Documentation.
Contains Documentation about Present Features.
Author
Diederik de Groot <dkgroot [at] talon.nl>
Since
2009-11-12
Note
This program is free software and may be modified and distributed under the terms of the GNU Public License.
You could read the documentation from this file; but it would probably be easier to go to http←-
://chan-sccp-b.sourceforge.net
Version
Revision
4314
Date
$date$
Definition in file 35_How_To.doc.
14.6
40_New_Features.doc File Reference
SCCP New Feature Documentation.
14.6.1
Detailed Description
SCCP New Feature Documentation.
Contains extra documentation about new Features.
Author
Diederik de Groot <dkgroot [at] talon.nl>
Since
2009-11-12
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
34
CONTENTS
Note
This program is free software and may be modified and distributed under the terms of the GNU Public License.
You could read the documentation from this file; but it would probably be easier to go to http←-
://chan-sccp-b.sourceforge.net
Version
Revision
4337
Date
$date$
Definition in file 40_New_Features.doc.
14.7
50_Frequently_Asked_Questions.doc File Reference
An implementation of Skinny Client Control Protocol (SCCP)
14.7.1
Detailed Description
An implementation of Skinny Client Control Protocol (SCCP)
Author
Diederik de Groot <dkgroot [at] talon.nl>
Since
2009-11-12 Main Documentation
Note
This program is free software and may be modified and distributed under the terms of the GNU Public License.
Version
Revision
-1
Date
$date$
Contains extra comments for Doxygen.
You could read the documentation from this file; but it would probably be easier to go to http←-
://chan-sccp-b.sourceforge.net
Definition in file 50_Frequently_Asked_Questions.doc.
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
14.8
55_Reporting_Issues_Problems.doc File Reference
14.8
55_Reporting_Issues_Problems.doc File Reference
35
An implementation of Skinny Client Control Protocol (SCCP)
14.8.1
Detailed Description
An implementation of Skinny Client Control Protocol (SCCP)
Author
Diederik de Groot <dkgroot [at] talon.nl>
Since
2009-11-12 Main Documentation
Note
This program is free software and may be modified and distributed under the terms of the GNU Public License.
Version
Revision
-1
Date
$date$
Contains extra comments for Doxygen.
You could read the documentation from this file; but it would probably be easier to go to http←-
://chan-sccp-b.sourceforge.net
Definition in file 55_Reporting_Issues_Problems.doc.
14.9
60_Supported_Operating_Systems.doc File Reference
An implementation of Skinny Client Control Protocol (SCCP)
14.9.1
Detailed Description
An implementation of Skinny Client Control Protocol (SCCP)
Author
Diederik de Groot <dkgroot [at] talon.nl>
Since
2009-11-12 Main Documentation
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
36
CONTENTS
Note
This program is free software and may be modified and distributed under the terms of the GNU Public License.
Version
Revision
-1
Date
$date$
Contains extra comments for Doxygen.
You could read the documentation from this file; but it would probably be easier to go to http←-
://chan-sccp-b.sourceforge.net
Definition in file 60_Supported_Operating_Systems.doc.
14.10
70_Sources_Explained.doc File Reference
An implementation of Skinny Client Control Protocol (SCCP)
14.10.1
Detailed Description
An implementation of Skinny Client Control Protocol (SCCP)
Author
Diederik de Groot <dkgroot [at] talon.nl>
Since
2009-11-12 Main Documentation
Note
This program is free software and may be modified and distributed under the terms of the GNU Public License.
Version
Revision
-1
Date
$date$
Contains extra comments for Doxygen.
You could read the documentation from this file; but it would probably be easier to go to http←-
://chan-sccp-b.sourceforge.net
Definition in file 70_Sources_Explained.doc.
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
14.11
80_Consulted_Documentation.doc File Reference
14.11
80_Consulted_Documentation.doc File Reference
37
An implementation of Skinny Client Control Protocol (SCCP)
14.11.1
Detailed Description
An implementation of Skinny Client Control Protocol (SCCP)
Author
Diederik de Groot <dkgroot [at] talon.nl>
Since
2009-11-12 Main Documentation
Note
This program is free software and may be modified and distributed under the terms of the GNU Public License.
Version
Revision
-1
Date
$date$
Contains extra comments for Doxygen.
You could read the documentation from this file; but it would probably be easier to go to http←-
://chan-sccp-b.sourceforge.net
Definition in file 80_Consulted_Documentation.doc.
14.12
90_Developers_Guide.doc File Reference
An implementation of Skinny Client Control Protocol (SCCP)
14.12.1
Detailed Description
An implementation of Skinny Client Control Protocol (SCCP)
Author
Diederik de Groot <dkgroot [at] talon.nl>
Since
2009-11-12 Main Documentation
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
38
CONTENTS
Note
This program is free software and may be modified and distributed under the terms of the GNU Public License.
Version
Revision
-1
Date
$date$
Contains extra comments for Doxygen.
You could read the documentation from this file; but it would probably be easier to go to http←-
://chan-sccp-b.sourceforge.net
Definition in file 90_Developers_Guide.doc.
14.13
AUTHORS File Reference
14.14
LICENSE File Reference
Generated on Wed Oct 8 2014 18:53:24 for Chan_SCCP-[4.2.0_RC2] by Doxygen
Index
00_Index.doc, 30
10_What_Is_Chan_SCCP.doc, 30
20_Building_and_Installation_Guide.doc, 31
30_Setup_Guide.doc, 32
35_How_To.doc, 33
40_New_Features.doc, 33
50_Frequently_Asked_Questions.doc, 34
55_Reporting_Issues_Problems.doc, 35
60_Supported_Operating_Systems.doc, 35
70_Sources_Explained.doc, 36
80_Consulted_Documentation.doc, 37
90_Developers_Guide.doc, 37
AUTHORS, 38
LICENSE, 38