[asterisk-bugs] [JIRA] (ASTERISK-29704) res_pjsip_pubsub: Treats SUBSCRIBE with Expires 0 as invalid when it is valid
Joshua C. Colp (JIRA)
noreply at issues.asterisk.org
Mon Oct 25 04:56:49 CDT 2021
[ https://issues.asterisk.org/jira/browse/ASTERISK-29704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joshua C. Colp updated ASTERISK-29704:
--------------------------------------
Summary: res_pjsip_pubsub: Treats SUBSCRIBE with Expires 0 as invalid when it is valid (was: PJSIP treats SUBSCRIBE with Expires 0 as invalid)
> res_pjsip_pubsub: Treats SUBSCRIBE with Expires 0 as invalid when it is valid
> -----------------------------------------------------------------------------
>
> Key: ASTERISK-29704
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-29704
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Resources/res_pjsip_pubsub
> Affects Versions: 18.7.1
> Environment: Debian Linux 10
> Reporter: Niksa Baldun
>
> When res_pjsip receives SUBSCRIBE request with Expires=0, it responds with with 400 Bad request. Excerpt from res_pjsip_pubsub.c:
> {code}
> if (expires_header->ivalue == 0) {
> ast_debug(1, "Subscription request from endpoint %s rejected. Expiration of 0 is invalid\n",
> ast_sorcery_object_get_id(endpoint));
> pjsip_endpt_respond_stateless(ast_sip_get_pjsip_endpoint(), rdata, 400, NULL, NULL, NULL);
> return PJ_TRUE;
> }
> {code}
> However, Expires of 0 is perfectly valid. Relevant text from RFC 3265, section 3.1.1:
> {quote}
> A natural consequence of this scheme is that a SUBSCRIBE with an
> "Expires" of 0 constitutes a request to unsubscribe from an event.
> In addition to being a request to unsubscribe, a SUBSCRIBE message
> with "Expires" of 0 also causes a fetch of state; see section
> 3.3.6.
> {quote}
> Therefore, a SUBSCRIBE with Expires=0 should cause one NOTIFY to be sent, and remove the subscription if it exists.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list