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