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