From 5c0d247d69252caeed7be39aaeccd92e72d74fd0 Mon Sep 17 00:00:00 2001 From: "Joshua C. Colp" Date: Wed, 22 Jul 2020 06:41:59 -0300 Subject: [PATCH] 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 --- res/res_pjsip_registrar.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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",