When chan_sip receives a SUBSCRIBE request with no "Expires" header it
processes the request as an unsubscribe. This is incorrect, per RFC3264
when the "Expires" header is missing a default expiry should be used.
ASTERISK-18140
Change-Id: Ibf6dcd4fdd07a32c2bc38be1dd557981f08188b5
p->lastinvite = seqno;
}
if (!p->needdestroy) {
- p->expiry = atoi(sip_get_header(req, "Expires"));
+ const char *expires_str = sip_get_header(req, "Expires");
+
+ if (ast_strlen_zero(expires_str)) {
+ p->expiry = default_expiry;
+ } else {
+ p->expiry = atoi(expires_str);
+ }
/* check if the requested expiry-time is within the approved limits from sip.conf */
if (p->expiry > max_subexpiry) {