[asterisk-dev] Implementation of Broadsoft Sip Access in Asterisk to enable SLA for Sipura/Linksys
grossi at cv.med.nyu.edu
Tue Jan 1 11:09:24 CST 2008
I started out this summer implementing Asterisk SLA for the Sipura/Linksys
handsets. My strategy was to make Asterisk compatible with the Broadworks
sip access side extensions; this would allow the Sipura shared extensions to
be compatible Asterisk SLA.
Currently I have full SLA compatability with SPA942's working as well as
integration with other (AASTRA 53i) SLA compatible phones. I have described
my implementation strategy below for developer comments, before I post the
code as a potential feature patch.
Listed below are modifications of Asterisk in chan_sip.c and pbx.h to
accommidate rudimentary implementation of Broadsoft Extensions. The
specifications in "BROADWORKS SIP ACCESS SIDE EXTENSIONS INTERFACE
SPECIFICATIONS -RELEASE 13.0" were used, with the short term goal of
achieving SLA functionality for Sipura phones (tested on SPA942's).
AST_EXTENSION_REQLINESEIZE was added to ast_extension_states. A Broadsoft
shared extension can request a line seize.
Added subscriptiontype of CALL_INFO. The Call-Info header is specified in
Added to the sip_user configuration and sip_pvt declarations "notify_exten"
as discussed earlier in the fall on the developers list. Originally this was
going to be used due to lack of a subscription setup on the Sipura phones;
Current firmware does generate a subscription to the peer exten
automatically now for "shared" extensions. I am using this variable to
specifically direct the incoming call when a SLA is already active,
otherwise the INVITE generated by the broadsoft generates an "incomplete
address" from Asterisk. Should this field be renamed to "sla_connect" ?
Transmit_state_notify subroutine was added and modified to handle CALL_INFO
. Also added state "LINE_SEIZE" used by Broadsoft and
AST_EXTENSION_REQLINESEIZE handler was added. When a Broadsoft Shared
extension requests a line seize, it is automatically granted. When other
Broadsoft Shared extensions are sent a notification, there are told that the
call is on "hold" (not private). This allows them to join into the SLA (by
generating an INVITE) if their line key is hit.
Handle_request_invite subroutine was modified. When a Broadsoft Shared
extension attempts to INVITE into an active shared call, the address was
incomplete. This is checked for and the address is "completed" using the
information from the "notify_exten" variable.
Handle_request_subscribe subroutine was modified. Deal with subscription for
Line-Seize event and for Call-info subscriptions. Uses Call-info as the
subscription type for Linksys user agents.
I would appreciate any feedback.
Eugene A. Grossi, M.D.
Professor of Cardiothoracic Surgery
New York University School of Medicine
Suite 9-V; 530 First Avenue
New York, NY 10016
ph (212) 263-7452
grossi at cv.med.nyu.edu
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 2512 bytes
Desc: not available
Url : http://lists.digium.com/pipermail/asterisk-dev/attachments/20080101/6d5c7a48/attachment.doc
More information about the asterisk-dev