Your SlideShare is downloading. ×

Pinana : Old proposal for distributed SIP states in Asterisk

1,449

Published on

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

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
1,449
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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

×