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

Chan_SCCP

  • Upload
    paatry

  • View
    242

  • Download
    8

Embed Size (px)

DESCRIPTION

Open SCCP

Citation preview

  • 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.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    2 What is Chan_SCCP 1

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

    2.2 SCCP as a Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    3 Building and Installation Guide 2

    3.1 UNIX, BSD and Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    3.2 Precompiled for your Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    3.2.1 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    3.3 Building and Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    4 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

    4.9 Troubles using VOIP and SCCP through a Firewall (NAT) . . . . . . . . . . . . . . . . . . . . . . 13

    4.10 Shared Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    5 How To 14

    5.1 Shared Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

    6 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

    7 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 How to to use Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    8 Reporting Issues/Problems 26

    8.1 Report Issues/Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    8.2 Generating a Debug Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    8.3 Generating a Backtrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    9 Supported Operating Systems to date 27

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

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

    14 File Documentation 30

    14.1 00_Index.doc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    14.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    14.7 50_Frequently_Asked_Questions.doc File Reference . . . . . . . . . . . . . . . . . . . . . . . . 34

    14.7.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    14.8 55_Reporting_Issues_Problems.doc File Reference . . . . . . . . . . . . . . . . . . . . . . . . . 35

    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

    14.13AUTHORS File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    14.14LICENSE File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    Index 39

    1 Chan_SCCP Documentation

    1.1 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 providesa 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 deliversbetter 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 CONTENTS

    2.1 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 areSeveral 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 thismoment 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 hardwarephone.

    2.2 SCCP as a Protocol

    The Skinny Client Control Protocol (SCCP, or short Skinny) is a proprietary network terminal control protocol orig-inally 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 Skinnyclient and the Cisco CallManager. Examples of skinny clients include the Cisco 7900 series of IP phones, Cisco IPCommunicator softphone and the 802.11b wireless Cisco 7920.

    Skinny is a lightweight protocol which allows for efficient communication with Asterisk. The SCCP Protocol is alower 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 man-agement procedures are carried out on a per protocol service basis, that is, network management procedures atSCCP 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) withother Skinny clients or an H.323 terminal. SCCP is a stimulus-based protocol and is designed as a communicationsprotocol 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

    3.2 Precompiled for your Platform

    On http://chan-sccp-b.sourceforge.net/download.shtml you can find links to lot of precom-piled versions of chan-sccp-b. You can just at the specific repository file specific to your platform to your system andinstall 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 runningconfigure

    $ ./configure$ make$ make install

    For source code maintainers it is important to know that when you change something in one of the Makefile.am filesor 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 standardasterisk 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 currentlyspecified "sccp" as the default context, you will either have to add the sccp context to your dialplan in the correctlocations 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 isactually 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 addingsomething like "exten => 98021,hint,SCCP/98021" in the default context (or possibly "from-internal" for FreePBXusers). You will have to use the same context when definining the speeddial button below. You can also createthese 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, mustmatch 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 showhints" command. Anything that generates a hint can be monitored using the buttons. The following states arerecognized: .... Custom state processing (see Asterisk documentation for more information) is also possible usingthis 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 withcontrib/gen_sccpconf/gen_sccpconf)

    ;=========================================================================================;; general definitions;;=========================================================================================[general]servername = Asteriskkeepalive = 60debug = 1context = defaultdateformat = D.M.Ybindaddr = 0.0.0.0port = 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=allallow=alawallow=ulawallow=g729firstdigittimeout = 16digittimeout = 8autoanswer_ring_time = 1autoanswer_tone = 0x32remotehangup_tone = 0x32transfer_tone = 0transfer_on_hangup = offcallwaiting_tone = 0x2dmusicclass=defaultlanguage=endeny=0.0.0.0/0.0.0.0permit=192.168.1.0/255.255.255.0dndFeature = onsccp_tos = 0x68sccp_cos = 4audio_tos = 0xB8audio_cos = 6video_tos = 0x88video_cos = 5echocancel = onsilencesuppression = offprivate = oncallanswerorder=oldestfirstdirected_pickup_modeanswer = onhotline_enabled=yes ;can devices without configuration registerhotline_context=default ; context for hotlinehotline_extension=111 ; extension will be dialed on offHook

    ;=========================================================================================;; actual definitions;;=========================================================================================[SEP001122334455]description = Phone Number Oneaddon = 7914devicetype = 7940park = offbutton = speeddial,Helpdesk, 98112, 98112@hints ; Add SpeedDial to Helpdeskbutton = line, 98011,default ; Assign Line 98011 to Device and use this as default linebutton = empty ; Assign an Empty Buttonbutton = line, 98012 ; Assign Line 98012 to Devicebutton = speeddial,Phone 2 Line 1, 98021, 98021@hints ; Add SpeedDial to Phone Number Two Line 1cfwdall = offtype = devicekeepalive = 60;tzoffset = +2transfer = onpark = oncfwdall = offcfwdbusy = offcfwdnoanswer = offdirected_pickup = ondirected_pickup_context = defaultdirected_pickup_modeanswer = ondeny=0.0.0.0/0.0.0.0permit=192.168.1.5/255.255.255.255dndFeature = ondirectrtp=offearlyrtp = progressprivate = onmwilamp = onmwioncall = offsetvar=testvar=valuecfwdall = on

    [98011]id = 1000type = line

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

  • 6 CONTENTS

    pin = 1234label = Phone 1 Line 1description = Line 98011mailbox = 10011cid_name = MY CIDcid_num = 98011accountcode=79011callgroup=1,3-4pickupgroup=1,3-5;amaflags =context = defaultincominglimit = 2transfer = onvmnum = 600meetme = onmeetmeopts = qxdmeetmenum = 700trnsfvm = 1000secondary_dialtone_digits = 9secondary_dialtone_tone = 0x22musicclass=defaultlanguage=enechocancel = onsilencesuppression = offsetvar=testvar2=my valuednd = rejectparkinglot = myparkspace

    [98012]id = 1001type = linepin = 4356label = Phone 1 Line 2description = Line 98012mailbox = 10012cid_name = MY LINE 2cid_num = 98012accountcode=79002callgroup=1,4-9pickupgroup=1,3-9echocancel = offcontext = defaultincominglimit = 2transfer = onvmnum = 600trnsfvm = 1000secondary_dialtone_digits = 9secondary_dialtone_tone = 0x22musicclass=defaultlanguage=enechocancel = onsilencesuppression = offsilencesuppression = ondnd = silent

    [SEP002244668800]description = Phone Number Twodevicetype = 7960park = offbutton = speeddial,Helpdesk, 98112 ; Add SpeedDial to Helpdesk (without hint)button = line, 98021button= feature,Private Call,privacy,callpresent ;set channel variable SKINNY_PRIVATE to 1 if feature is enabledbutton= feature,DND Busy,DND,busy ;set dnd status to busybutton= feature,DND Silent,DND,silent ;set dnd status to silentbutton= feature,Record calls,monitor ;record calls using automon (asterisk >= 1.6 only)button= feature,call forward to *54,cfwdAll,*54 ;forward all calls to *54button = speeddial,Phone 1 Line 1, 98011, 98011@hintsbutton = 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 = devicekeepalive = 60;tzoffset = +2transfer = onpark = oncfwdall = offcfwdbusy = offcfwdnoanswer = offdirected_pickup = ondirected_pickup_context = defaultdirected_pickup_modeanswer = ondeny=0.0.0.0/0.0.0.0permit=192.168.1.5/255.255.255.255dnd = ondirectrtp=offearlyrtp = progressprivate = onmwilamp = onmwioncall = offsetvar=testvar=valuecfwdall = on

    [98021]id = 1000type = linepin = 1234label = Phone 2 Line 1description = Line 98021mailbox = 10021cid_name = MY CIDcid_num = 98021accountcode=79021callgroup=1,3-4pickupgroup=1,3-5context = defaultincominglimit = 2transfer = onvmnum = 600trnsfvm = 1000secondary_dialtone_digits = 9secondary_dialtone_tone = 0x22musicclass=defaultlanguage=enechocancel = onsilencesuppression = offsetvar=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.soload => 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] ; use general in extconfig.conf and the databasename

    ;dbhost = 10.11.12.13;dbport = 3306dbsock = /var/lib/mysql/mysql.sock ; Either use dbsock or dbhost/dbport combination.

    ; dbsock is preferred when the database is on thelocal machine

    ; The location of mysql.sock may vary from systemto system (please check)

    [asterisk]dbname = asteriskdbuser = asteriskdbpass = asterisk_password

    From Asterisk 10 and up

    /etc/asterisk/res_config_mysql.conf:

    [general];dbhost = 10.11.12.13;dbport = 3306dbsock = /var/lib/mysql/mysql.sock ; Either use dbsock or dbhost/dbport combination.

    ; dbsock is preferred when the database is on thelocal machine

    ; The location of mysql.sock may vary from systemto system (please check)

    requirements=warn ; Needs to be specified since asterisk 1.8, cannotbe left out

    [asterisk]dbname = asteriskdbuser = asteriskdbpass = 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 buttonconfigtable

    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=5432dbsock = /tmp ; Either use dbsock or dbhost/dbport combination.

    ; dbsock is preferred when the database is on thelocal machine

    ; The location of postgresql socket may vary fromsystem 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 9

    requirements=warn ; Needs to be specified since asterisk 1.8, cannotbe left out

    [asterisk]dbname=asteriskdbuser=asteriskdbpass=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 ; datebasetable for deviceslinetable=sccpline ; datebasetable for lines

    /etc/asterisk/extconfig.conf: for mysql v4:

    [settings]sccpdevice => mysql,asterisk,sccpdevicessccpline => mysql,asterisk,sccplines

    for mysql v5:

    [settings]sccpdevice => mysql,asterisk,sccpdeviceconfig ; make use of the sccpdeviceconfig view instead of

    sccpdevicesccpline => mysql,asterisk,sccpline

    or for postgresql:

    [settings]sccpdevice => pgsql,asterisk,sccpdeviceconfigsccpline => 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(121,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 itwill 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 SEP010102030404orrealtime load sccpline name 123

    sccp reset SEP010102030404orsccp 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 tftp-server and rename the file to XMLDefault.cnf.xml. If you like you can make soft links/shortcuts to this file for everydevice you have in the form of SEP[macaddr].cnf.xml files. For devices with specific settings you can copy yourXMLDefault.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 Hot to change the firmware to SCCP 11

    4.6.3 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 beseperated 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:

    2000

    10.31.150.1

    SCCP11.8-5-2SSCCP11.8-5-2SS00105000300

    P00308010100P00308010100

    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/cmelabel.html

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

  • 12 CONTENTS

    4.8 Asterisk Clustering and DUNDi Lookup

    DUNDi is a peer-to-peer system for locating Internet Gateways to telephony services. Unlike traditional centralizedservices (such as the remarkably simple and concise ENUM standard), DUNDi is fully distributed with no centralizedauthority 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 extensionfor a given peer/line which registers with the server. If the context is not specified in extension.conf, then it will bedynamically 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) [SCCP]98011@1 => 1. Noop(98099) [SCCP]

    -= 2 extensions (2 priorities) in 1 context. =-

    This gives this PBX a dedicated context that we can map DUNDi lookup requests to. When a DUNDi lookuprequests location information for extension 98011, this PBX will reply "yes, the extension is active here and this isthe contact address".

    We do not have to insert a [sccpregistration] in the extensions.conf because it will be created automatically as soonas 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, soplease 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=frienddbsecret=dundi/secretcontext=incomingdundi

    In the DUNDi [mappings] section, we specify what [context] in extensions.conf we want to allow DUNDi requestaccess 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) 13

    4.9 Troubles using VOIP and SCCP through a Firewall (NAT)

    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 trafficpassing through NAT. Conventional VoIP protocols only deal with the signalling of a telephone connection. Theaudio traffic is handled by another protocol and to make matters worse, the port on which the audio traffic is sentis random. The NAT router may be able to handle the signalling traffic, but it has no way of knowing that the audiotraffic 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 callingpartys 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 otherend will stop as one would expect. However, the calling party will not hear the called party (one way audio) and thecalled 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-trivialand 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 thetunnel.

    Put Asterisk on the Firewall and make it the go-between / proxy. See next point. (For SCCP: set directrtp=offin your config).

    Use a Firewall Connection Tracking Plugin which records outgoing VOIP Connections and Maps there returnRTP connections. For example for iptables this plugin is called: nf_nat_sip.ko or nf_nat_h323.ko. At thismoment 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 ofRTP ports for this phone.

    Put a SIP-Proxy on the Firewall and reroute the packets. You could use for example : SER (Sip ExpressRouter), 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 NATwithout 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 behindNAT]

    [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: TheSIP Protocol and Firewall Traversal]

    [http://www.newport-networks.com/whitepapers/nat-traversal1.html: NewportNetworks White Paper NAT Traversal for Multimedia over IP]

    [http://www.eyeball.com/technology/whitepapers/EyeballAnyfirewallWhitePaper.pdf: White Paper: NAT Traversal for VoIP and Internet Communications using STUN, TURN andICE]

    [http://sipath.sf.net/: Use a SIP- and RTP-Proxy combination on your NAT/Firewall/Router - asdone 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 betweenthem. You can for example hold a line on one device and use resume on another to pick the line up there. Or evensteal 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 suffixor subscriptionId to the extension number to be able to call a specific device using "@" and if you like an extracallerid_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 canadd "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 usedwhen a secretary is supposed to handle all incoming calls on a shared line. Only when the extension including thesuffix/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 15

    5.1 Shared Lines

    Shared lines is simple, and is activated readily by registering multiple phones on the same line. Thats all, no extraoptions required. What happens is that all phones on a shared line "see" the calls of the other phones and viceversa. If you have a call on a shared line, just press "hold" on one phone and resume that call with "resume" onanother phone.

    Earlier, without shared lines, registering multiple phones on the same line lead to an error that the line was alreadyin 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 addingbuttons: 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 = [, 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 tospecify 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 thedevice 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 isthe 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 = line, 519button = line, 520@01: Phone1button = line, 521@02: Phone1!silentbutton = line, 522@03: Phone1, defaultbutton = emptybutton = speeddial, "Cantine", 332, 332@hintsbutton = service, "Asterisk", "www.asterisk.org"button = feature, "privacy callpresent", privacy, callpresentbutton = feature, "callforward busy", cfwdbusy, 529button = feature, "DND busy", "DND", "busy"button = 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 CONTENTS

    5.3 How to use Dynamic SpeedDials (now on by default)

    Dynamic SpeedDials give additional information about the status of the lines assigned the speeddial. The Icondisplayed 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 parametersduring compilation

    ./configure --disable-speeddial

    disable-dynamic-speeddial = Do not use any dynamic speeddial disable-dynamic-speeddial-cid = Do not displaythe 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 ispicked up or the "New Call" Button is pressed. No number has to be given. This works even on devices which haveno 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 beable to only call one number, or for unprovisioned phones to only be able to call the helpdesk to get their phoneset up. If hotline_enabled = yes, any device which is not included in the configuration explicitly will be allowed toregistered 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 endpointsand 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 anumber 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 adevice 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=softkeysetonhook = redial,newcall,cfwdall,dndconnected = hold,endcall,park,select,cfwdall,cfwdbusy,idivertonhold = resume,newcall,endcall,transfer,confrn,select,dirtrfr,idivertringin = answer,endcall,idivertoffhook = redial,endcall,private,cfwdall,cfwdbusy,pickup,gpickup,meetme,bargeconntrans = hold,endcall,transfer,confrn,park,select,dirtrfr,cfwdall,cfwdbusydigitsfoll = back,endcallconnconf = hold,endcall,joinringout = endcall,transfer,cfwdall,idivertoffhookfeat = redial,endcallonhint = pickup,barge

    The [mysoftkeyset] section about contains the state of the phone as the first part (before the equal sign) and thesoftbuttons shown during this state in the second part.

    Multiple softkey set can be created and attached to different devices.

    5.7.1 These are the softkeys available

    5.7.1.1 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 berestored 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 thenumber 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 heldline 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 theHold 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 duringtransfer

    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 callyour 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 previoussetting 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 CONTENTS

    5.7.1.8 How to use the BackSpace (

  • 5.8 Reload Howto 19

    5.7.1.18 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 thiscan be done: Option 1: You Already have to Lines Occupied (One is active and the other Held), which you would liketo put in a Conference; Simple Press the Conference Button Option 2: You have one line Occupied and would like tocall Someone else and Join them all into a Conference; Press the Conference Button and you will be asked for the3 party number which need to be added to the conference, once this line is connected, you press the ConferenceButton 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 mutestatus. If you are the moderator of this conference you have the ability to mute/unmute and kick members out of theconference.

    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 youare 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 thiscan be done: Option 1: You Already have to Lines Occupied (One is active and the other Held), which you would liketo put in a Conference; Simple Press the Conference Button Option 2: You have one line Occupied and would like tocall Someone else and Join them all into a Conference; Press the Conference Button and you will be asked for the3 party number which need to be added to the conference, once this line is connected, you press the ConferenceButton 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 usingthe 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 isequivalent 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 andupdate 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 CONTENTS

    5.9 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 andsccp 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 op-tions

    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 theoptions

    the first param can be either "current", "parent" or a line name assigned to the line. "parent" refers to the line whoforwarded 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 theoptions

    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 thechannel is of type SCCP before calling this function !

    Within the dialplan you can use the function SCCPCHANNEL to retrieve information about an SCCP channel likethis:

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

    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" ) Sets the name and number of the called party before using the DIALstatement, 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( [,timeout]) Send a Message to the Calling Device (and remove aftertimeout, 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 enable-devstate-feature. This will make chan-sccp-b report back the device_state back to asterisk, to be used by forexample 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 setand 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 thestandard deviatoin between the timing of the entered numbers. If the all fall withing the same pattern (about100 milliseconds per digit) with a std-dev les then 3.5 we can assume the numbers are not entered by handand 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 digittimoutis 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 andyou 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 downor pressing re-dial. The individual buttonpresses are still send over the line in seperate tcp packets, but when werecognize that the buttonpresses arrive in a monotonous stream with equidistant timing between the buttons, weassume that the number was dialed before picking up the receive and start the call immediatly instead of waiting formore 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 deviceregisters. The new protocol handler always tries to use the highest possible sccp protocol version the device iscapable 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 samecode is used for any asterisk version. The pbx specific code is handled by pbx_impl which should be seen as asingular/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 havea 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 CONTENTS

    7.1.1 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 compileyour 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 compilethe application. If you need any specific functionality, or need to specify a location of for example your asteriskinstallatin you can use "\code./configure --help\endcode" to figure out the switches you need. To Read more aboutusing ./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 anew 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&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 corre-sponding 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 yourphones 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 portsmaller 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 througha 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 ofthe 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 doset you debug levels according to the issue you have. Otherwise we have to wade through piles of uninformativemessages 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 25

    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

  • 26 CONTENTS

    7.3.1 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 => 101,hint,SCCP/101exten => 102,hint,SCCP/102exten => 103,hint,SCCP/103exten => 104,hint,SCCP/104exten => 105,hint,SCCP/105exten => 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 muchinformation 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 issometimes scarce. Other users of chan_sccp are very welcome to answer any questions if they know the answerof 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 27

    8.2 Generating a Debug Report

    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 geta list of all debug categories when you type "sccp debug". Try to match your problem area with one or moreof 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 asteriskwith the -g option

    9 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 CONTENTS

    9.2 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 debugall" 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 somethingimplemented and are willing to pay. Just send a Message via: MailingList. Well look into it and let you knowwhat we think. You cant wait until it is implemented, why not give the sources a look over. Read the documentationand start coding yourself. You could even become a member of the development team if you like. Have a look hereSend 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 contactingone 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 refcountrules 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

    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 31

    14.2.1 Detailed Description

    An implementation of Skinny Client Control Protocol (SCCP)

    Author

    Diederik de Groot

    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

    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

    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 33

    14.5 35_How_To.doc File Reference

    SCCP New Feature Documentation.

    14.5.1 Detailed Description

    SCCP New Feature Documentation.

    Contains Documentation about Present Features.

    Author

    Diederik de Groot

    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

    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

    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 35

    14.8 55_Reporting_Issues_Problems.doc File Reference

    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

    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

    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

    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 37

    14.11 80_Consulted_Documentation.doc File Reference

    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

    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

    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, 3010_What_Is_Chan_SCCP.doc, 3020_Building_and_Installation_Guide.doc, 3130_Setup_Guide.doc, 3235_How_To.doc, 3340_New_Features.doc, 3350_Frequently_Asked_Questions.doc, 3455_Reporting_Issues_Problems.doc, 3560_Supported_Operating_Systems.doc, 3570_Sources_Explained.doc, 3680_Consulted_Documentation.doc, 3790_Developers_Guide.doc, 37

    AUTHORS, 38

    LICENSE, 38

    1 Chan_SCCP Documentation1.1 Introduction

    2 What is Chan_SCCP2.1 SCCP in relation to SIP/IAX/MGCP2.2 SCCP as a Protocol

    3 Building and Installation Guide3.1 UNIX, BSD and Linux3.2 Precompiled for your Platform3.2.1 Prerequisites

    3.3 Building and Installation

    4 How to Setup Chan_SCCP4.1 How to use the config file4.1.1 Sample config files

    4.2 How to load the Chan_SCCP4.3 How to use RealTime Database4.3.1 MySQL4.3.2 MySQL 4.04.3.3 MySQL 5.04.3.4 PostgreSQL4.3.5 Chan_SCCP Configuration for Realtime4.3.6 Loading information into the tables4.3.7 Using Realtime Database

    4.4 Setting up a DHCP Server4.5 What does a Sample SEP[MacAddr].cnf.xml Look Like4.6 Dialplan Sample4.6.1 How to Dial an SCCP Phone from your dialplan4.6.2 How to Dial an SCCP Phone with a different ring4.6.3 Dial a line and have the phone Auto Answer

    4.7 Hot to change the firmware to SCCP4.8 Asterisk Clustering and DUNDi Lookup4.8.1 DUNDI Dynamic Awareness (original author: J.R.Richardson)4.8.2 DUNDI Configuration

    4.9 Troubles using VOIP and SCCP through a Firewall (NAT)4.10 Shared Lines

    5 How To5.1 Shared Lines5.2 Phone Buttons5.3 How to use Dynamic SpeedDials (now on by default)5.4 How to use the hotline option5.5 How to use the adhoc option (PLAR)5.6 Soft Keys Howto5.7 Softkey Configuration5.7.1 These are the softkeys available

    5.8 Reload Howto5.9 How to use dialplan functions5.9.1 SCCPDEVICE5.9.2 SCCPLINE5.9.3 SCCPCHANNEL5.9.4 Generic CHANNEL5.9.5 SCCPSetCodec5.9.6 SCCPSetCalledParty5.9.7 SCCPSetMessage

    5.10 How to use devicestate5.10.1 Custom Device State

    5.11 Digit timeout and dialing

    6 New Features in V4.16.1 New Config Parser6.2 Emulated EnBloc Dialing for older devices6.3 New SCCP Protocol Handler / Protocol Version6.4 Rewritten RTP Handling6.5 Support for multiple asterisk version in one code base

    7 Frequently Asked Questions7.1 A. Compilation7.1.1 A1. How to Compile7.1.2 A2. Compilation Errors

    7.2 B. Troubleshooting7.3 C. Dialplan7.3.1 How to to use Hints