[asterisk-app-dev] MWI implementation

Joshua Colp jcolp at digium.com
Wed Dec 4 12:19:40 CST 2013


Mark Michelson wrote:
> A while back, a discussion of a "blinky lights" proposal appeared on
> this list [1]. A wiki page [2] was created as a result of the discussion.
>
> We're now at the point where we plan to implement externally-initiated
> MWI in ARI and AMI. While the actual ARI approach has been agreed upon,
> the under the hood aspects have not been discussed yet, so I want to
> talk about it some.
>
> The current plan is to have Asterisk be a target for MWI updates.
> Asterisk can be told that the number of messages for a given mailbox has
> updated, and Asterisk will in turn notify interested parties (such as
> SIP phones) of the change. Asterisk will also persist the data (using
> sorcery) so that the data will be accessible if Asterisk is restarted.
> The current MWI state can also be retrieved externally.

What worries me about persisting this information is keeping it in sync 
with the outside world. If a mailbox goes away externally and the 
Asterisk instance is not running now the application has to do one of 
the following:

1. Keep a log of this fact and then ensure it is removed from Asterisk 
when it starts up

2. Destroy with hate any mailboxes it doesn't know about when Asterisk 
starts up (what about other applications?)

That seems like a lot of work, and potentially issue prone which brings 
me to...

Why are we persisting at all? Since this is completely externally driven 
there's going to be a chance no matter what that the information is 
stale. I would argue that not persisting and letting the external 
application feed it back in is better. This gives you a guarantee that 
the state is the same.

Thoughts?

-- 
Joshua Colp
Digium, Inc. | Senior Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at:  www.digium.com  & www.asterisk.org



More information about the asterisk-app-dev mailing list