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
This commit is contained in:
Joshua C. Colp 2020-07-22 06:41:59 -03:00 committed by Kevin Harwell
parent d9ae902f52
commit 99eafe5771
1 changed files with 5 additions and 1 deletions

View File

@ -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",