Huge thanks to Joshua Colp for mirroring services

Call Completion: Asterisk Component

Share on Twitter Digg this story Click to view a printable version Tue, 23 Feb 2010 00:30:55 -0400

thumnail

Mark Michelson has posted details of a reviewboard entry for CCSS he has been working on for a while:

Review request for Asterisk Developers.


Summary
-------

This is it folks. CCSS is at a point where a review will be beneficial.

CCSS stands for Call Completion Supplementary Services. An admittedly out-of-date overview of the architecture can be found in the file doc/CCSS_architecture.pdf in the CCSS branch. Off the top of my head, the big differences between what is implemented and what is in the document are as follows:

1. We did not end up modifying the Hangup application at all.
2. The document states that a single call completion monitor may be used across multiple calls to the same device. This proved to not be such a good idea when implementing protocol-specific monitors, and so we ended up using one monitor per-device per-call.
3. There are some configuration options which were conceived after the document was written. These are documented in the ccss.conf.sample that is on this review request.

For some basic understanding of terminology used throughout this code, see the ccss.tex document that is on this review.

This implements CCBS and CCNR in several flavors.

First up is a "generic" implementation, which can work over any channel technology provided that the channel technology can accurately report device state. Call completion is requested using the dialplan application CallCompletionRequest and can be canceled using CallCompletionCancel. Device state subscriptions are used in order to monitor the state of called parties.

Next, there is a SIP-specific implementation of call completion. This method uses the methods outlined in draft-ietf-bliss-call-completion-06 to implement call completion using SIP signaling. There are a few things to note here:

  • Implementation of the draft required support for SIP PUBLISH. I attempted to write this in a generic-enough fashion such that if someone were to want to write PUBLISH support for other event packages, such as dialog-state or presence, most of the effort would be in writing callbacks specific to the event package.
  • A subportion of supporting PUBLISH reception was that we had to implement a PIDF parser. The PIDF support added is a bit minimal. I first wrote a validation routine to ensure that the PIDF document is formatted properly. The rest of the PIDF reading is done in-line in the call-completion-specific PUBLISH-handling code. In other words, while there is PIDF support here, it is not in any state where it could easily be applied to other event packages as is.

Finally, there are a variety of ISDN-related call completion protocols supported. These were written by Richard Mudgett, and as such I can't really say much about their implementation. I'm leaving it to Richard to add any comments he wants about this matter. The libpri component of call completion support is posted as review 522 on ReviewBoard.

The code added here is somewhat massive, so questions are welcome as much as critiques.
Happy reviewing!


Diffs
-----

/trunk/CHANGES 247295
/trunk/apps/app_dial.c 247295
/trunk/channels/chan_dahdi.c 247295
/trunk/channels/chan_local.c 247295
/trunk/channels/chan_sip.c 247295
/trunk/channels/sig_analog.h 247295
/trunk/channels/sig_analog.c 247295
/trunk/channels/sig_pri.h 247295
/trunk/channels/sig_pri.c 247295
/trunk/channels/sip/include/sip.h 247295
/trunk/configs/ccss.conf.sample PRE-CREATION
/trunk/configs/chan_dahdi.conf.sample 247295
/trunk/configure.ac 247295
/trunk/doc/tex/asterisk.tex 247295
/trunk/doc/tex/ccss.tex PRE-CREATION
/trunk/funcs/func_callcompletion.c PRE-CREATION
/trunk/include/asterisk/ccss.h PRE-CREATION
/trunk/include/asterisk/channel.h 247295
/trunk/include/asterisk/channelstate.h PRE-CREATION
/trunk/include/asterisk/devicestate.h 247295
/trunk/include/asterisk/frame.h 247295
/trunk/include/asterisk/manager.h 247295
/trunk/include/asterisk/rtp_engine.h 247295
/trunk/include/asterisk/xml.h 247295
/trunk/main/asterisk.c 247295
/trunk/main/ccss.c PRE-CREATION
/trunk/main/channel.c 247295
/trunk/main/xml.c 247295
/trunk/tests/test_amihooks.c 247295
/trunk/tests/test_utils.c 247295

Diff: https://reviewboard.asterisk.org/r/523/diff


Testing
-------

Too much to list :)

For a decent look at the tests executed, see the "Testing Done" section of review request 410.

Those tests have all been run using combinations of generic, SIP, and ISDN agents and monitors.


Thanks,

Mark


You haven't voted yet! Vote:
Current Rating: 9/10 (2 votes)

Comments (Click to post)

Comments
Name:
Subject:
Website:
Message: 

Similar Articles (Based on Title)

Astricon Conference Call Consists of Bing Bong - September 23, 2004
Having been holding on the Astricon conference for nearly an hour, I've heard a collection of bing bong...

Link: Hammer Call Analyzer - October 6, 2004
Hammer Call Analyzer is a protocol analyzer for H.323 (H.225, H.245), Megaco (H.248), MGCP, RFC 2833, T.38, RTP, RTCP, SIP, SIP-T, Skinny (SCCP)*, NCS, TCP, UDP, IP, ISDN (Q.921, Q.931), SS7 (ISUP, TUP, MTP2), CCITT/ITU and JNTT variant support

Digium announces breakthrough VoIP Call Routing Technology - October 23, 2004
I thought I'd post Digium's press release on DUNDi.

*-Dev: BOUNTY: Call Parking Fix - April 21, 2005
ManxPower has posted details of a bounty for a bugfix.

tectonic: MySchool uses Asterisk to run call centre - May 4, 2005
The MySchool system in South Africa is now using Asterisk for its call center.

AstMasters: Call for Mac Computers - May 23, 2005
The AstMasters site is asking for old Mac computers to give to developers who would like to work on OSX parts of Asterisk.

Asterisk based Call Accounting software - May 24, 2005
Looks like I missed this one when it came through, luckily someone responded to it today.

Cisco Call Manager And Asterisk for Voicemail - May 27, 2005
Shaun Ewing has posted detail of a pdf he's written for integrating Cisco Call Manager And Asterisk.

Canadian firm scores with open source call center - June 2, 2005
SearchEnterpriseLinux.com has published an article about Aheeva and Asterisk.

Georges Karam: Asterisk Call Center Strategies - June 16, 2005
Georges Karam is discussing contact centres using Asterisk

IPSwitchBoard shows Call Charges - July 17, 2005
Thorben Jensen has posted details of the latest version of IPSwitchBoard.

*-Dev: Astricon 2005 :: Call for speakers and Asterisk projects - July 22, 2005
Olle has posted a call for people to help out with Astricon 2005 in Anaheim, California October 12-14 2005.

techtarget: Linux, open source power call center for Katrina, Rita victims - September 25, 2005
Techtarget has an article on Asterisk being used for Katrina, Rita victims.

AstriCon 2005 - Last Call for Anaheim - October 7, 2005
Steve and Olle have posted the last call for Astricon punters.

*-Dev: Astricon Developer Meeting Conference Call - October 12, 2005
Jeremy McNamara has posted info about a conf room he has set up for the dev meeting for Astricon.


Original Content (C) 2004-2010 Matt Riddell
Back 5  Feed Add
to
Google Subscribe with Bloglines
Go to today

Icons by: FastIcon.com


Asterisk and Kamailio (openser) realtime integration
August 5, 2010 Average Vote: 10
Daniel-Constantin Mierla posted a writeup on combining Asterisk and Kamailio.

AstriDevCon: October 29th, Washington DC
August 23, 2010 Average Vote: 10
John Todd has posted a note about the AstriDevCon conference which occurs within the Astricon conference.

VoIP-Info: FFasterisk Video file converter
August 25, 2006 Average Vote: 10
The wiki has a link to a new piece of software for converting video to the format required for Asterisk.

Code Review: SRTP support for Asterisk
March 12, 2009 Average Vote: 10
Terry Wilson has moved his SRTP branch onto the Digium review board.

The Everything Asterisk Video Collection
August 5, 2010 Average Vote: 10
Steven Sokol has posted a blog entry on Asterisk Video Resources.

Voip-Forum: Lots of new articles
March 12, 2005 Average Vote: 10
Oej's Voip-Forum.com site has posted lots of new news articles while I've been away. Hopefully you found them via the asterisk-docs site. If not I've bookmarked them for you.

Interview with Mark Spencer
November 26, 2004 Average Vote: 9.9
We have managed to get an interview with Mark Spencer AKA Markster. Mark Spencer is the creator of Asterisk and by far the most active developer.

Asterisk and Kamailio realtime integration tutorial
May 24, 2010 Average Vote: 9.9
Daniel-Constantin Mierla has posted a link to a tutorial on integrating Asterisk and Kamailio using realtime.

Asterisk IPv6 update
February 1, 2010 Average Vote: 9.8
Olle has posted an update on IPV6 in Asterisk and a link to a blog post of his.

Proposal for T.38 transparent gateway design in Asterisk
April 29, 2010 Average Vote: 9.8
Kevin Fleming has posted a proposed design for a transparent T.38 gateway for Asterisk:

Back to life
July 21, 2010 Average Vote: 9.8
Hey all - I am back online after some pretty big projects which have taken all my time. Will be updating the Asterisk news over the next few days.

GUI changes from Trixbox, FreePBX, 2600hz, BlueBox
September 1, 2010 Average Vote: 9.8
Ok, bear with me on this one. If you understand all the ramifications, FreePBX has split to a new project called BlueBox contained within the 2600hz project. This obviously has implications for Trixbox that uses FreePBX to provide quite a bit of functionality.

Announcing Adhearsion 0.8.5
August 25, 2010 Average Vote: 9.8
Ben Klang has posted a note about the latest release of Adhearsion - a framework for developing Asterisk based solutions using Ruby.

app_swift v2.0 released
July 21, 2010 Average Vote: 9.8
Like a few of these news stories that I will be posting over the next couple of days this is a little old - hope it is not something you have already seen. This one is for a new version of the app_swift text-to-speech module for Asterisk 1.2, 1.4, and 1.6.

Monitoring Asterisk with Munin
January 7, 2010 Average Vote: 9.7
I had a few requests for these munin plugins after some discussion on one of the Asterisk lists and thought people might like them.


libpri 1.4.11.4 Now Available
September 3, 2010
The Asterisk Development Team has announced the release of libpri 1.4.11.4.

New CDR Stats Package
September 1, 2010
This one has been a long time coming. A new CDR stats package from Star2Billing to replace the 7 year old stalwart for viewing Asterisk call detail records.

GUI changes from Trixbox, FreePBX, 2600hz, BlueBox
September 1, 2010
Ok, bear with me on this one. If you understand all the ramifications, FreePBX has split to a new project called BlueBox contained within the 2600hz project. This obviously has implications for Trixbox that uses FreePBX to provide quite a bit of functionality.

RazorQuotePBP Asterisk Payment Module
August 31, 2010
RazorQuote has sent us a press release about the launch of RazorQuotePBP, a native Asterisk module that allows any Asterisk connected device to accept credit card payments.

CloudVox: Install an open source Asterisk phone app and get 250 dollars
August 30, 2010
CloudVox is running a competition for people to receive 250 dollars for writing up some documentation for Open Source applications on CloudVox - first in first served.

AstriCon approaches
August 25, 2010
John Todd has posted a note about the upcoming AstriCon conference in Washington, DC, and the innovation awards.

Announcing Adhearsion 0.8.5
August 25, 2010
Ben Klang has posted a note about the latest release of Adhearsion - a framework for developing Asterisk based solutions using Ruby.

Asterisk 1.8.0-beta4 Now Available
August 25, 2010
The Asterisk Development Team has announced the release of Asterisk 1.8.0-beta4.

AstriDevCon: October 29th, Washington DC
August 23, 2010
John Todd has posted a note about the AstriDevCon conference which occurs within the Astricon conference.

The XV Commandments of IVR
August 17, 2010
An update on the 15 tips for creating effective IVR systems by Allison Smith - the Voice of Asterisk.