From 7846f73432224cc78e0687e32fcf220b37844afe Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Wed, 17 Jun 2015 07:04:39 -0300 Subject: res_pjsip_mwi: Set up unsolicited MWI upon registration. The res_pjsip_mwi previously required a reload to set up the proper subscriptions to allow unsolicited MWI to work. This change makes it so the act of registering will also cause this to occur. This is particularly useful if realtime is involved as no reload needs to occur within Asterisk to cause the MWI information to get sent. ASTERISK-25180 #close Change-Id: Id847b47de4b8b3ab8858455ccc2f07b0f915f252 --- res/res_pjsip/location.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'res/res_pjsip') diff --git a/res/res_pjsip/location.c b/res/res_pjsip/location.c index 37f39ba30..d87410d3b 100644 --- a/res/res_pjsip/location.c +++ b/res/res_pjsip/location.c @@ -53,6 +53,7 @@ static void contact_destroy(void *obj) struct ast_sip_contact *contact = obj; ast_string_field_free_memory(contact); + ao2_cleanup(contact->endpoint); } /*! \brief Allocator for contact */ @@ -228,7 +229,8 @@ struct ast_sip_contact *ast_sip_location_retrieve_contact(const char *contact_na } int ast_sip_location_add_contact(struct ast_sip_aor *aor, const char *uri, - struct timeval expiration_time, const char *path_info, const char *user_agent) + struct timeval expiration_time, const char *path_info, const char *user_agent, + struct ast_sip_endpoint *endpoint) { char name[MAX_OBJECT_FIELD * 2 + 3]; RAII_VAR(struct ast_sip_contact *, contact, NULL, ao2_cleanup); @@ -256,6 +258,8 @@ int ast_sip_location_add_contact(struct ast_sip_aor *aor, const char *uri, ast_string_field_set(contact, user_agent, user_agent); } + contact->endpoint = ao2_bump(endpoint); + return ast_sorcery_create(ast_sip_get_sorcery(), contact); } -- cgit v1.2.3