[svn-commits] file: branch file/pjsip-outbound-publish r420253 - /team/file/pjsip-outbound-...
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Wed Aug 6 13:21:42 CDT 2014
Author: file
Date: Wed Aug 6 13:21:39 2014
New Revision: 420253
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=420253
Log:
Incorporate feedback.
Modified:
team/file/pjsip-outbound-publish/res/res_pjsip_outbound_publish.c
team/file/pjsip-outbound-publish/res/res_pjsip_publish_asterisk.c
Modified: team/file/pjsip-outbound-publish/res/res_pjsip_outbound_publish.c
URL: http://svnview.digium.com/svn/asterisk/team/file/pjsip-outbound-publish/res/res_pjsip_outbound_publish.c?view=diff&rev=420253&r1=420252&r2=420253
==============================================================================
--- team/file/pjsip-outbound-publish/res/res_pjsip_outbound_publish.c (original)
+++ team/file/pjsip-outbound-publish/res/res_pjsip_outbound_publish.c Wed Aug 6 13:21:39 2014
@@ -597,8 +597,7 @@
if (publish->state->client) {
return 0;
- } else if (!publish->state->client &&
- pjsip_publishc_create(ast_sip_get_pjsip_endpoint(), &opt, ao2_bump(publish), sip_outbound_publish_callback,
+ } else if (pjsip_publishc_create(ast_sip_get_pjsip_endpoint(), &opt, ao2_bump(publish), sip_outbound_publish_callback,
&publish->state->client) != PJ_SUCCESS) {
ao2_ref(publish, -1);
return -1;
@@ -684,9 +683,14 @@
pjsip_tx_data *tdata;
if (publish->state->destroy) {
- if (publish->state->sending &&
- pjsip_publishc_unpublish(publish->state->client, &tdata) == PJ_SUCCESS) {
- pjsip_publishc_send(publish->state->client, tdata);
+ if (publish->state->sending) {
+ publish->state->sending = NULL;
+ if (!ast_sip_push_task(NULL, send_unpublish_task, ao2_bump(publish->state))) {
+ return;
+ }
+ ast_log(LOG_WARNING, "Could not send unpublish message on outbound publish '%s'\n",
+ ast_sorcery_object_get_id(publish));
+ ao2_ref(publish->state, -1);
}
/* Once the destroy is called this callback will not get called any longer, so drop the publish ref */
pjsip_publishc_destroy(publish->state->client);
@@ -975,7 +979,7 @@
ast_sorcery_object_field_register(ast_sip_get_sorcery(), "outbound-publish", "to_uri", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_outbound_publish, to_uri));
ast_sorcery_object_field_register(ast_sip_get_sorcery(), "outbound-publish", "outbound_proxy", "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct ast_sip_outbound_publish, outbound_proxy));
ast_sorcery_object_field_register(ast_sip_get_sorcery(), "outbound-publish", "expiration", "3600", OPT_UINT_T, 0, FLDSET(struct ast_sip_outbound_publish, expiration));
- ast_sorcery_object_field_register(ast_sip_get_sorcery(), "outbound-publish", "max_auth_attempts", "5", OPT_UINT_T, 0, FLDSET(struct ast_sip_outbound_publish, max_auth_attempts));
+ ast_sorcery_object_field_register(ast_sip_get_sorcery(), "outbound-publish", "max_auth_attempts", "5", OPT_UINT_T, 0, FLDSET(struct ast_sip_outbound_publish, max_auth_attempts));
ast_sorcery_object_field_register_custom(ast_sip_get_sorcery(), "outbound-publish", "outbound_auth", "", outbound_auth_handler, NULL, NULL, 0, 0);
ast_sorcery_reload_object(ast_sip_get_sorcery(), "outbound-publish");
Modified: team/file/pjsip-outbound-publish/res/res_pjsip_publish_asterisk.c
URL: http://svnview.digium.com/svn/asterisk/team/file/pjsip-outbound-publish/res/res_pjsip_publish_asterisk.c?view=diff&rev=420253&r1=420252&r2=420253
==============================================================================
--- team/file/pjsip-outbound-publish/res/res_pjsip_publish_asterisk.c (original)
+++ team/file/pjsip-outbound-publish/res/res_pjsip_publish_asterisk.c Wed Aug 6 13:21:39 2014
@@ -39,9 +39,9 @@
/*** DOCUMENTATION
<configInfo name="res_pjsip_publish_asterisk" language="en_US">
- <synopsis>SIP resource for inbound Asterisk event publications</synopsis>
+ <synopsis>SIP resource for inbound and outbound Asterisk event publications</synopsis>
<description><para>
- <emphasis>Inbound Asterisk event publication</emphasis>
+ <emphasis>Inbound and outbound Asterisk event publication</emphasis>
</para>
<para>This module allows <literal>res_pjsip</literal> to send and receive Asterisk event publications.</para>
</description>
@@ -356,6 +356,7 @@
asterisk_publisher_devstate_cb, ao2_bump(datastore));
if (!publisher_state->device_state_subscription) {
ast_sip_publish_client_remove_datastore(client, "asterisk-devicestate-publisher");
+ ao2_ref(datastore, -1);
return -1;
}
@@ -430,6 +431,7 @@
asterisk_publisher_mwistate_cb, ao2_bump(datastore));
if (!publisher_state->mailbox_state_subscription) {
ast_sip_publish_client_remove_datastore(client, "asterisk-mwi-publisher");
+ ao2_ref(datastore, -1);
return -1;
}
@@ -572,8 +574,10 @@
}
cached = stasis_cache_dump(ast_device_state_cache(), NULL);
- ao2_callback(cached, OBJ_NODATA, cached_devstate_cb, datastore);
- ao2_ref(cached, -1);
+ if (cached) {
+ ao2_callback(cached, OBJ_NODATA, cached_devstate_cb, datastore);
+ ao2_ref(cached, -1);
+ }
ao2_ref(client, -1);
ao2_ref(datastore, -1);
@@ -662,8 +666,10 @@
}
cached = stasis_cache_dump(ast_mwi_state_cache(), NULL);
- ao2_callback(cached, OBJ_NODATA, cached_mwistate_cb, datastore);
- ao2_ref(cached, -1);
+ if (cached) {
+ ao2_callback(cached, OBJ_NODATA, cached_mwistate_cb, datastore);
+ ao2_ref(cached, -1);
+ }
ao2_ref(client, -1);
ao2_ref(datastore, -1);
More information about the svn-commits
mailing list