From: Joshua C. Colp Date: Wed, 22 Jul 2020 09:41:59 +0000 (-0300) Subject: res_pjsip_registrar: Don't specify an expiration for static contacts. X-Git-Tag: 13.36.0-rc1~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5c0d247d69252caeed7be39aaeccd92e72d74fd0;p=thirdparty%2Fasterisk.git res_pjsip_registrar: Don't specify an expiration for static contacts. Statically configured contacts on an AOR don't have an expiration time so when adding them to the resulting 200 OK if an endpoint registers ensure they are marked as such. ASTERISK-28995 Change-Id: I9f0e45eb2ccdedc9a0df5358634a19ccab0ad596 --- diff --git a/res/res_pjsip_registrar.c b/res/res_pjsip_registrar.c index 571b0e9a34..625f812634 100644 --- a/res/res_pjsip_registrar.c +++ b/res/res_pjsip_registrar.c @@ -233,7 +233,11 @@ static int registrar_add_contact(void *obj, void *arg, int flags) if (parsed && (PJSIP_URI_SCHEME_IS_SIP(parsed) || PJSIP_URI_SCHEME_IS_SIPS(parsed))) { pjsip_contact_hdr *hdr = pjsip_contact_hdr_create(tdata->pool); hdr->uri = parsed; - hdr->expires = ast_tvdiff_ms(contact->expiration_time, ast_tvnow()) / 1000; + if (!ast_tvzero(contact->expiration_time)) { + hdr->expires = ast_tvdiff_ms(contact->expiration_time, ast_tvnow()) / 1000; + } else { + hdr->expires = PJSIP_EXPIRES_NOT_SPECIFIED; + } pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr *) hdr); } else { ast_log(LOG_WARNING, "Skipping invalid Contact URI \"%.*s\" for AOR %s\n",