Asterisk ideas eventsystem

Work in progress, no documentation at all.

What happens in Asterisk?


  • There is support for watching a device's status within asterisk, but it's fairly undocumented and maybe not extensible enough
  • A lot of people want platforms for the reception, being able to see which lines (devices) are occupied (talking) and which are free
  • Some SIP phones use SIP SUBSCRIBE for this, the support for SIP SUBSCRIBE in Asterisk is not documented

Requirements


  • Asterisk needs a protocol-independent method of reporting off hook, in-use, voicemail waiting, etc though a simple event driven subsystem.
  • Asterisk needs to be able to relay events between servers. For example, if server1 is voicemail only server, and server2 is the softswitch, a SIP phone connected to server2 needs to be relayed the voicemail waiting notification. You could think of this as a SUBSCRIBE/NOTIFY service between servers, server 2 would tell server 1 it wants to watch for a MWI from the voicemail server for mailbox X. It could be done using SIP, IAX, or a new protocol that is more light weight and only designed for notification relaying.
  • Using SIP SUBSCRIBE as an example, not only do we need support for SIP phones to be able to monitor whether or not another SIP phone is on a call...we need to be able to monitor if a phone using SCCP, MGCP, H323, or IAX is on the phone from SIP....or vice versa.

Not totally related, but some what linked in my mind:
  • As part of the cleanup code designed to detect if a user is on the phone, we need to comeup with a new busy detection mode. Having a voicemail greeting for when you are on the phone doesn't work on a multi-line phone mapped to a single account. Since monitoring for a busy status will need to know if only 1 call is in progress, it makes sense to move Dial over as well to atleast recognize 3 states: Available, Busy with available lines, and Busy. The middle option of course would allow the line to ring with call waiting, but signal busy upon timeout instead of no-answer. While not directly related, it appears it could take advantage of changes to be made to channel/phone monitoring required for the items above.
  • Caveat: SIP phones are really autonomous and support multiple lines. There's no way for asterisk to judge if one or several lines is in use out there, without the phone support Asterisk subscribing to event notificiation from the phone. With a working outgoinglimit, we can judge if asterisk has an active call out to the phone or not.
-- Hmm, not necessarily true. We could have a method of allowing Asterisk to associate a number of sip extensions with a single handset. Perhaps an entry in sip.conf like 'HandsetID=xxx'. Each sip entry with the same handsetid would be identified by Asterisk as the same handset and if any of those extensions are busy then the handset is busy.



What's in there today?


References



  • UserPageOej
  • UserPageAtacomm
Work in progress, no documentation at all.

What happens in Asterisk?


  • There is support for watching a device's status within asterisk, but it's fairly undocumented and maybe not extensible enough
  • A lot of people want platforms for the reception, being able to see which lines (devices) are occupied (talking) and which are free
  • Some SIP phones use SIP SUBSCRIBE for this, the support for SIP SUBSCRIBE in Asterisk is not documented

Requirements


  • Asterisk needs a protocol-independent method of reporting off hook, in-use, voicemail waiting, etc though a simple event driven subsystem.
  • Asterisk needs to be able to relay events between servers. For example, if server1 is voicemail only server, and server2 is the softswitch, a SIP phone connected to server2 needs to be relayed the voicemail waiting notification. You could think of this as a SUBSCRIBE/NOTIFY service between servers, server 2 would tell server 1 it wants to watch for a MWI from the voicemail server for mailbox X. It could be done using SIP, IAX, or a new protocol that is more light weight and only designed for notification relaying.
  • Using SIP SUBSCRIBE as an example, not only do we need support for SIP phones to be able to monitor whether or not another SIP phone is on a call...we need to be able to monitor if a phone using SCCP, MGCP, H323, or IAX is on the phone from SIP....or vice versa.

Not totally related, but some what linked in my mind:
  • As part of the cleanup code designed to detect if a user is on the phone, we need to comeup with a new busy detection mode. Having a voicemail greeting for when you are on the phone doesn't work on a multi-line phone mapped to a single account. Since monitoring for a busy status will need to know if only 1 call is in progress, it makes sense to move Dial over as well to atleast recognize 3 states: Available, Busy with available lines, and Busy. The middle option of course would allow the line to ring with call waiting, but signal busy upon timeout instead of no-answer. While not directly related, it appears it could take advantage of changes to be made to channel/phone monitoring required for the items above.
  • Caveat: SIP phones are really autonomous and support multiple lines. There's no way for asterisk to judge if one or several lines is in use out there, without the phone support Asterisk subscribing to event notificiation from the phone. With a working outgoinglimit, we can judge if asterisk has an active call out to the phone or not.
-- Hmm, not necessarily true. We could have a method of allowing Asterisk to associate a number of sip extensions with a single handset. Perhaps an entry in sip.conf like 'HandsetID=xxx'. Each sip entry with the same handsetid would be identified by Asterisk as the same handset and if any of those extensions are busy then the handset is busy.



What's in there today?


References



  • UserPageOej
  • UserPageAtacomm
Created by: oej, Last modification: Thu 14 of Dec, 2006 (22:54 UTC) by bsutton
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+