This is an automatically generated e-mail. To reply, visit:

(Updated Jan. 7, 2015, 11:49 a.m.)

Review request for Asterisk Developers and Mark Michelson.


Updated to use ast_shutting_down().

Repository: Asterisk


If you do a 'core (shutdown|restart) graceful' persistent subscriptions won't 
survive.  If you do a 'core (shutdown|restart) now' or asterisk terminates for 
some reason, they do.  Here's why...

When asterisk shuts down gracefully, it sends a 'NOTIFY/terminated' to 
subscribers for each subscription.  This not only tells the subscribers that 
the dialog/state machine is done, it also frees the last reference to the 
subscription tree which causes the persistent subscription to get deleted from 
astdb.  When asterisk restarts, nothing's left.  Just preventing the delete 
from astdb doesn't work because we already told the subscriber to terminate the 
dialog so we can't restart it even if it was still in astdb.  Everything works 
OK if asterisk terminates unexpectedly because we never send the 'terminated' 
message so on restart, the subscription is still in astdb and the subscriber is 
none the wiser.

This patch suppresses the sending of 'NOTIFY/terminated' on shutdown for 
persistent connections.  To do this, I've had to add a new 
AST_OPT_FLAG_SHUTTING DOWN to options so we know that a shut down is in 

Diffs (updated)

  branches/13/res/res_pjsip_pubsub.c 430336 

Diff: https://reviewboard.asterisk.org/r/4318/diff/


Lots of before and after Wireshark testing with Digium, Grandstream, Unidata 
and soft phones.  Now when asterisk comes back up, it sends NOTIFY/active 
messages with updated expires to persistent subscribers which all return OK and 
further notifies are processed correctly.


George Joseph

-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:

Reply via email to