summaryrefslogtreecommitdiff
path: root/res/res_pjsip_registrar.c
diff options
context:
space:
mode:
Diffstat (limited to 'res/res_pjsip_registrar.c')
-rw-r--r--res/res_pjsip_registrar.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/res/res_pjsip_registrar.c b/res/res_pjsip_registrar.c
index 58f4b3214..adfa40844 100644
--- a/res/res_pjsip_registrar.c
+++ b/res/res_pjsip_registrar.c
@@ -537,7 +537,12 @@ static int rx_task(void *data)
ast_string_field_set(contact_update, user_agent, user_agent);
}
- ast_sip_location_update_contact(contact_update);
+ if (ast_sip_location_update_contact(contact_update)) {
+ ast_log(LOG_ERROR, "Failed to update contact '%s' expiration time to %d seconds.\n",
+ contact->uri, expiration);
+ ast_sorcery_delete(ast_sip_get_sorcery(), contact);
+ continue;
+ }
ast_debug(3, "Refreshed contact '%s' on AOR '%s' with new expiration of %d seconds\n",
contact_uri, aor_name, expiration);
ast_test_suite_event_notify("AOR_CONTACT_REFRESHED",