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: 19.0.0-rc1~357 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=921b1a02c4d602fa1f3cd8ebd916956b4a5d4a08;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 be40a20e68..44b59c153e 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",