[asterisk-dev] Subscription Persistence Issues

Joshua Colp jcolp at digium.com
Wed Feb 8 07:56:36 CST 2017


On Tue, Feb 7, 2017, at 03:16 PM, George Joseph wrote:
> Greetings All,
> 
> I've been working on the (many) issues with recreating inbound
> subscriptions after an asterisk restart.  I have an approach that works
> but
> has a drawback:  We can recreate the subscription on startup from the
> data
> we persist and can even send a NOTIFY to each subscriber BUT with the
> current version of pjproject, we can't actually set the expiration timer.
> I have a pjproject patch ready that allows us to set tie timer but the
> drawback is that this approach will only work with bundled pjproject or a
> patched version of your own.
> 
> There's an alternative though...   When asterisk restarts, instead of
> sending 'active' NOTIFYs to each subscriber, we could send
> 'terminate,probation' instead.  The RFCs say that a "client SHOULD retry
> at
> some later time".  While this approach will work with any version of
> pjproject there are issues here as well.  The first issue is the word
> 'SHOULD'.  There's no guarantee that the client will actually
> resubscribe.
> The second issue is the extra SUBSCRIBE/OK/NOTIFY/OK exchange between
> asterisk and the client at startup.  We can tell the client to retry not
> before a random interval similar to how we stagger sending OPTIONS
> messages
> at startup but it's still an extra 4 packets per subscription.

I don't trust clients enough to expect that this behavior will work for
everything. If we can do the work ourselves in a way that guarantees it
works for all clients I usually opt for doing that.

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



More information about the asterisk-dev mailing list