[asterisk-dev] remote MWI

Doug G Asterisk at isgcom.com
Tue Feb 14 14:50:48 MST 2006


>From BUG 6303 Looks like a nice solution, Anyone try it out?


Overview:
This is like bugs 0004371 and 0004236. We wanted to have a push model
for voicemail but we didn't want to have to make 20 configuration
changes just to have remote MWI (which is a problem with the patch in
0004371).
Configuration is quite easy and only requires modification of
voicemail.conf
A remote mailbox looks like this:

[context]
1234 => peername/

This means if any device checks mailbox 1234 at context, it will get the
last known status of the mailbox 1234 at context on the peer 'peername'.
This is actually a shortcut notation.

The full syntax is
1234 => IAX2/peername/mailbox at context
so the mailbox name doesn't have to map 1-to-1

There is also support for patterns
_XXXX => peername/
Any device that checks a 4 digit mailbox in that context will get the
last known status of that mailbox on 'peername'.

How it works:
When a peer becomes available, the client sends all the subscriptions to
the server. If any mailbox changes matching a subscription, it's sent
back to the subscriber.

Known Problems:
If you restart the server (asterisk that's hosting voicemail) really
fast, the client will stop receiving voicemail updates. This basically
happens due to the way IAX works. The client doesn't realize that the
server ever went away so it doesn't realize that it needs to
resubscribe. Restarting the client quickly has a similiar issue. The
remote peer doesn't expect for the sequence ids to be reset. So when it
receives a packet from the client, it thinks it has already seen it and
just acks it and doesn't process it. As a workaround, I have an option
'resubscribe_mins' that will cause the client to resubscribe every n
minutes. [This undermines the whole idea of using push notifications
though...]

The bad news:
Since we plan to use this in production, the patch is against 1.2.1. I
have not looked into updating it to the trunk.  
Additional Information    




More information about the asterisk-dev mailing list