[asterisk-commits] mmichelson: branch 13 r429571 - /branches/13/res/res_pjsip_pubsub.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Dec 15 09:37:06 CST 2014


Author: mmichelson
Date: Mon Dec 15 09:36:57 2014
New Revision: 429571

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=429571
Log:
Activate persistent subscriptions when they are recreated.

Prior to this change, recreating persistent subscriptions would
create the subscription but would not activate it. This led to subscriptions
being listed in the "NULL" state by diagnostics and not sending NOTIFYs
when expected.

Review: https://reviewboard.asterisk.org/r/4261


Modified:
    branches/13/res/res_pjsip_pubsub.c

Modified: branches/13/res/res_pjsip_pubsub.c
URL: http://svnview.digium.com/svn/asterisk/branches/13/res/res_pjsip_pubsub.c?view=diff&rev=429571&r1=429570&r2=429571
==============================================================================
--- branches/13/res/res_pjsip_pubsub.c (original)
+++ branches/13/res/res_pjsip_pubsub.c Mon Dec 15 09:36:57 2014
@@ -1289,6 +1289,9 @@
 	return sub_tree;
 }
 
+static int generate_initial_notify(struct ast_sip_subscription *sub);
+static int send_notify(struct sip_subscription_tree *sub_tree, unsigned int force_full_state);
+
 /*! \brief Callback function to perform the actual recreation of a subscription */
 static int subscription_persistence_recreate(void *obj, void *arg, int flags)
 {
@@ -1377,6 +1380,10 @@
 		}
 		sub_tree->persistence = ao2_bump(persistence);
 		subscription_persistence_update(sub_tree, &rdata);
+		if (generate_initial_notify(sub_tree->root)) {
+			pjsip_evsub_terminate(sub_tree->evsub, PJ_TRUE);
+		}
+		send_notify(sub_tree, 1);
 	} else {
 		ast_sorcery_delete(ast_sip_get_sorcery(), persistence);
 	}




More information about the asterisk-commits mailing list