DISTRIBUTED CALL STATES
Making Asterisk blinking lamps scale
!
V 3 - 2010-07-03
Olle E. Johansson * oej@edvina.net
Copyrig...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
REQUIREMENTS
• Ability to share de...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
ASTERISK VERSION
• Trunk ( to be i...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
CALL STATES IN SIP
• SIP uses Subs...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
ASTERISK CURRENT
SUPPORT
• Asteris...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
IDEA
SIP
Presence server
ast01
* a...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
QUEUES
SIP
Presence server
ast01
*...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
NEW QUEUE
ARCHITECTURE?
ast01
* Qu...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
OFFLOADING ASTERISK
ast01
*
ast03
...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
BENEFITS
• Using a SIP presence se...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
POTENTIAL ISSUES
• Using a proprie...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
TO BE TESTED
• Can we potentially ...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
REALTIME SUPPORT.
• If a new devic...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
PUBLISH DEVICE STATES
• Create a s...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
PUBLISHING EXT STATES
• We need to...
© Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved.
Blinking
lamps
CONFIGURATION OF
MAPPING
[contextn...
Upcoming SlideShare
Loading in …5
×

Pinana : Old proposal for distributed SIP states in Asterisk

2,016 views

Published on

An old proposal on how to create distributed states in Asterisk. This was never completed.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,016
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Pinana : Old proposal for distributed SIP states in Asterisk

  1. 1. DISTRIBUTED CALL STATES Making Asterisk blinking lamps scale ! V 3 - 2010-07-03 Olle E. Johansson * oej@edvina.net Copyright Edvina AB, Sollentuna, Sweden 2008-2009.All rights reserved. SIP
 Security
  2. 2. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps REQUIREMENTS • Ability to share device states between Asterisk servers • Ability to subscribe to status of devices in local Asterisk server as well as remote (as long as they exist in the dial plan) • Ability to get remote device status in dialplan, like local device states
  3. 3. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps ASTERISK VERSION • Trunk ( to be integrated) • Asterisk 1.4/Edvx • Other versions depends on sponsor’s needs
  4. 4. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps CALL STATES IN SIP • SIP uses Subscribe/Notify with the Dialog-info event package to distribute call states • A user agent updates the presence server with PUBLISH SUBSCRIBE Send me updates NOTIFY Here’s a requested update PUBLISH Here’s my changed status
  5. 5. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps ASTERISK CURRENT SUPPORT • Asterisk 1.4 has support for a variety of event packages for subscriptions, including dialog-info • Asterisk 1.6 added remote subscriptions, where Asterisk subscribes for mailbox notifications (only) • Asterisk trunk has limited support for PUBLISH for other event types (call completion/camp-on).
  6. 6. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps IDEA SIP Presence server ast01 * ast02 * Asterisk 02 subscribes to remote
 SIP device status. exten => 1234,hint,sip-dialog:sip:oej@ast01.edvina.net Asterisk 01 publishes device
 status updates to presence server. [general] presenceserver=pres.edvina.net presencedomain=edvina.net ! [presence] ; Publish a single extension publish = 1234,sip:1234@edvina.net ; Publish a complete context ; Changes in the context won’t be published publishcontext = internal, edvina.net ! !
  7. 7. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps QUEUES SIP Presence server ast01 * ast02 * Asterisk 02 subscribes to remote
 SIP device status. Asterisk 01 publishes device
 status updates to presence server. If you want Mary to join the support queue as a full member, you need to add remote device state ! exten => mary,hint,remote-sip-blah-blah exten => mary,1,dial(sip/ast02/mary) ! ! Arne bertil Cecilia Mary John Piggy Queue:
 support
  8. 8. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps NEW QUEUE ARCHITECTURE? ast01 * Queue:
 support ast02 * ast03 * One server handles queues,
 the other servers handles all the agents. SIP Presence server
  9. 9. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps OFFLOADING ASTERISK ast01 * ast03 * Asterisk publishes call states to presense
 server, Phones subscribe to presense server directly instead of Asterisk. SIP Presence server
  10. 10. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps BENEFITS • Using a SIP presence server scales • Other devices can subscribe directly to status with the presence server • We can add some extra data - Asterisk-specific - to the presence items • It’s standardized
  11. 11. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps POTENTIAL ISSUES • Using a proprietary distributed event system might make it easier to add Asterisk functionality and support legacy systems, like flash operator panel
  12. 12. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps TO BE TESTED • Can we potentially create a dialplan that can handle remote call pickup? • Asterisk supports invite with replaces today. Can we force such an action in the dialplan and have Asterisk pickup a remote SIP call? • Yes, provided we send the Asterisk channel ID as call-id • How would this work with manager events/actions? • We need to spend more time on scenarious here • Manager support considered out of scope for this first project
  13. 13. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps REALTIME SUPPORT. • If a new device activates, based on realtime database, will we have to know that and publish the state? • Can be done for SIP devices in the SIP channel I think • Using regcontext= we can hook into that part and publish the state • We need to check how the server aggregates states from different servers • If a phone reboots, it may register on server A and still have registration on server B.When the registration expires, the state changes - AFTER the other server has said that everything is fine... Food for thought.
  14. 14. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps PUBLISH DEVICE STATES • Create a subdomain for device states in presence server • Using dialog-info • Publish to devicename@domain • SIP/323-3xyy@devicestates.mydomain.org • Simple prefix-based filters in sip-presense.conf
  15. 15. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps PUBLISHING EXT STATES • We need to map exten@context to a SIP uri • Per extension • Default mapping per context - map to SIP domain • Realtime support a requirement • Maybe add a ”pubhint” in dialplan for XMPP and SIP • exten => olle,pubhint,sip-pidf,sip:oej@edvina.net • exten => anna, pubhint, sip-dinfo,sips:anna@pinapalmera.org • exten => brad,pubhint,xmpp,xmpp:marquis42@deepspace9.trek
  16. 16. © Copyright Edvina AB, Sollentuna, Sweden July 2010.All rights reserved. Blinking lamps CONFIGURATION OF MAPPING [contextname] outboundproxy=<peer or domain> defaultdomain=edvina.net urimap=1236474,sip:ross@mydomain.com urimap=12922,sips:lars@otherdomain.se sip-publish.conf

×