[asterisk-bugs] [JIRA] (ASTERISK-29704) PJSIP treats SUBSCRIBE with Expires 0 as invalid

Niksa Baldun (JIRA) noreply at issues.asterisk.org
Mon Oct 25 02:55:49 CDT 2021


Niksa Baldun created ASTERISK-29704:
---------------------------------------

             Summary: PJSIP treats SUBSCRIBE with Expires 0 as invalid
                 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