From 921b1a02c4d602fa1f3cd8ebd916956b4a5d4a08 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 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",