Anda di halaman 1dari 43

Chan_SCCP-[4.2.

0_RC2]
Generated by Doxygen 1.8.8
Wed Oct 8 2014 18:53:24

ii

CONTENTS

Contents
1

Chan_SCCP Documentation

1.1

What is Chan_SCCP

2.1

SCCP in relation to SIP/IAX/MGCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2

SCCP as a Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Building and Installation Guide

3.1

UNIX, BSD and Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.2

Precompiled for your Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.2.1

Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Building and Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.3
4

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

How to Setup Chan_SCCP

4.1

How to use the config file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.1.1

Sample config files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2

How to load the Chan_SCCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3

How to use RealTime Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3.1

MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3.2

MySQL 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3.3

MySQL 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3.4

PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3.5

Chan_SCCP Configuration for Realtime . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3.6

Loading information into the tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3.7

Using Realtime Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

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
Developers 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_SCCP 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.

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.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.

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

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.

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

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

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

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

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

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

; 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 its 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/XMLDefault.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
partys 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:
Dont 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 NAT 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/EyeballAnyfirewallWhitePaper.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.

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. Thats 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
/ logos)
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 dont/cant 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 its 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 SCCPSetMessage 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 originalCallingPartyName, originalCallingPartyNumber, originalCalledPartyName, originalCalledPartyNumber, lastRedirectingPartyName lastRedirectingPartyNumber, cgpnVoiceMailbox, cdpnVoiceMailbox, originalCdpnVoiceMailbox, lastRedirectingVoiceMailbox, 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.

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.

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. Cant 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

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

Supported Operating Systems to date

Status for various supported OSes ( Asterisk - Chan_SCCP ) on different CPUs (x86 / x86_64 / Sparc / Arm)
Please tell us if you have succesfully installed / ported chan_sccp to you platform if its 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. Well look into it and let you know
what we think. You cant 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

Anda mungkin juga menyukai