From 21965111210c1bca5542f33e51634339940ea002 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", -- 2.47.2