[asterisk-bugs] [JIRA] (ASTERISK-21455) New SIP Channel Driver - Implement CCSS
Matt Jordan (JIRA)
noreply at issues.asterisk.org
Tue Apr 16 11:52:03 CDT 2013
Matt Jordan created ASTERISK-21455:
--------------------------------------
Summary: New SIP Channel Driver - Implement CCSS
Key: ASTERISK-21455
URL: https://issues.asterisk.org/jira/browse/ASTERISK-21455
Project: Asterisk
Issue Type: New Feature
Security Level: None
Components: Channels/chan_gulp
Reporter: Matt Jordan
Inclusion of Call Completion Supplementary Services requires the Publication APIs drafted on the Asterisk wiki. See [Event Subscription and Publication Design page|https://wiki.asterisk.org/wiki/display/AST/Event+Subscription+and+Publication+Design] and ASTERISK-21452 for more information.
This task is to add CCSS support for {{chan_gulp}}. This should include all of the CCSS types supported by Asterisk - Call Completion Busy Subscriber (CCBS), Call Completion No Response (CCNR), and Call Completion Not Logged In (CCNL).
*NOTE*
CCSS was implemented relatively recently in {{chan_sip}} (Asterisk 1.8) and much of it can be ported over to {{chan_gulp}}. The primary points of change will be the interaction with the SIP stack - however, the interaction with the CCSS core should be able to be used relatively unchanged.
At a minimum, this entails:
* Create a new resource module that registers itself as an Event Publication Agent for events "call-completion", media-type "application/call-completion".
* Add the ability to send SIP NOTIFY requests with the appropriate event package for CCSS
* Register the module as a call completion agent via {{ast_cc_agent_register}}.
** During an {{init}} callback, register the channel as a channel that is attempting call completion.
** During a {{start_offer_timer}} callback, schedule a callback that will automatically fail the call completion if fired.
** During a {{stop_offer_timer}} callback, cancel the scheduled callback created in {{start_offer_timer}}
** During a {{respond}} callback, respond with either a 200 OK to the pending request or an appropriate error code. This should also send a SIP NOTIFY request containing the CCSS event package.
** During a {{status_request}} callback, convert the agent's status to a device state and return the appropriate value.
** During a {{start_monitoring}} callback, punt.
** During a {{callee_available}} callback,
* Register the module to monitor call completion via {{sip_cc_monitor_callbacks}}.
** In a {{request_cc}} callback, create a new SUBSCRIBE request for the specified URI. This *must* schedule a callback for {{ast_cc_available_timer_expire}}.
** In a {{suspend}} callback, PUBLISH a CC event as 'closed'
** In an {{unsuspend}} callback, PUBLISH a CC event as 'open'
** In a {{cancel_available_timer}} callback, cancel the monitoring. This should cancel the subscription for {{ast_cc_available_timer_expire}}.
* Add checks for CCNR when we get a 18x response to a SIP INVITE
* Add checks for CCBS when we get a 486, 600, or 603 response to a SIP INVITE
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the asterisk-bugs
mailing list