Nano CUBE SUBSCRIBE-NOTIFY Passthrough

The SUBSCRIBE-NOTIFY mechanism is used for implementation of features such as Message Waiting Indication (MWI), Shared Call Appearance, Multiple Caller Appearance, Busy Lamp Field, and so on.

In Nano CUBE, the SUBSCRIBE-NOTIFY framework on Unified Communications (UC) products supports the following:

  • Configurable and Selective Passthrough of SUBSCRIBE and NOTIFY transactions from phones with the normalization required for address or topology hiding and dialog content updates for “dialog” event subscription.

  • Survivability mode handling of incoming SUBSCRIBE request for critical events.

Finding Feature Information

Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/​go/​cfn. An account on Cisco.com is not required.

Restrictions for SUBSCRIBE-NOTIFY Passthrough

  • The SUBSCRIBE-NOTIFY passthrough framework can only pass through events when there is a one-to-one association between the incoming request and the outgoing location to which the request has be sent out. This means that either:

    • There should be an outbound dial-peer identified for the request received.

      or

    • The outbound target for the request could be only a single registrar.

  • The following use cases are not supported:

    • SUBSCRIBE-NOTIFY passthrough with hunting of outbound dial-peers to which the subscribe or notify requests need to be sent.

    • SUBSCRIBE-NOTIFY passthrough where an inbound dial-peer has peer-to-peer mode of registration passthrough enabled with more than one registrar (there will be no forking of Subscribe-Notify Requests)

    • Local subscribe handling of unsupported events when the remote registrar is unavailable. Local subscribe handling is only applicable to cases where the inbound dial-peer matching the subscribe has registration passthrough enabled with “local-fallback.”

Information About SUBSCRIBE-NOTIFY Passthrough

The key attributes of the SUBSCRIBE-NOTIFY Passthrough feature are as follows:

  • Message Passthrough Application (MPA)—The SIP MPA handles SUBSCRIBE-NOTIFY passthrough. This application maintains subscribe dialogs, and references the dial-peer database and registration passthrough configurations to route the initial SUBSCRIBE and unsolicited NOTIFY requests.

  • Header Passthrough—All the non-mandatory headers in SUBSCRIBE-NOTIFY requests and responses are passed through from one endpoint to the other.

  • Content Passthrough—The content bodies in SUBSCRIBE-NOTIFY requests are passed through transparently from one endpoint to the other.

  • “Dialog” Event Content Manipulation—The content in the NOTIFY body for a dialog event is updated before passthrough when the dialog is maintained by the Nano CUBE.

  • Passthrough Configuration and Filtering—SUBSCRIBE-NOTIFY passthrough is configurable globally as well as under dial-peer, and can be configured for selected events using the configuration of an event list.

  • Error Passthrough for SUBSCRIBE-NOTIFY Requests—When an error is received for a SUBSCRIBE-NOTIFY request, the error is passed through to the peer with the relevant headers.

  • Backward Compatibility—The SIP MPA has the highest priority when SUBSCRIBE-NOTIFY passthrough is enabled. If passthrough is not enabled (either for all events or for a specific event), the current applications will control the incoming requests and responses.

  • 401/407 Error Message Passthrough—SIP message 401/407 is sent by the user-agent server (UAS) or end device to challenge messages like INVITE/REFER/SUBSCRIBE and request for endpoint credentials information. Nano CUBE does not store endpoint credential information to act on behalf of phone or endpoint. To enable the passthrough of 401/407, you can enable the error passthru command at the global level. The messages 401/407 are in passthru mode for INVITE/REFER/SUBSCRIBE.

SUBSCRIBE-NOTIFY Passthrough Request Routing

The first step of request or response routing is for Nano CUBE to determine whether or not the request has to be passed through. When a new SUBSCRIBE or unsolicited NOTIFY request arrives, its headers are used to match an incoming dial-peer. If the incoming dial-peer has SUBSCRIBE-NOTIFY Passthrough (SNPT) enabled or if there is no incoming dial-peer and global SNPT is enabled for that event, then the request is handed off to be passed through. For solicited subscriptions, the passthrough check is applicable only to the initial SUBSCRIBE request; subsequent requests or responses are not checked and will be routed based on updated dialog parameters.

The second step is to determine the outbound destination of the SUBSCRIBE or unsolicited NOTIFY request.

  • First Pass: Outbound dial-peer match—An outbound VoIP dial-peer is first matched based on the request headers (From, To, and Via), the Subscriber Number (userid in the To header), and the incoming dial-peer Class of Restrictions (CoR) if any. If there is a match, the request is routed to the session target.

  • Second Pass: Configured registrar for registration passthrough in peer-to-peer mode—If no outbound dial-peer is found and the incoming dial-peer has registration passthrough enabled in static (peer-to-peer) mode with a single registrar configured, then the request is routed to the registrar address.

  • Third Pass: Configured registrar for registration passthrough in end-to-end mode—If no outbound dial-peer is found and the incoming dial-peer has registration passthrough enabled in dynamic (end-to-end) mode:
    • If the request Uniform Resource Identifier (URI) has the CUBE IP address, the request is routed to the configured registrar if only a single registrar is configured.

    • If the request URI has a non-CUBE IP address, then the request is routed to that IP address.

  • Fourth Pass: Request URI-based routing—If no outbound dial-peer is found and no registration passthrough is configured, the request URI is used to route the request if it does not point to the CUBE’s IP address.

SUBSCRIBE-NOTIFY Passthrough Survivability Mode

In survivability mode, the CUBE could encounter the following scenarios:

  • When the CUBE receives a line-seize (event) subscribe in survivability mode, it checks the line-seize queue to see if another phone has already seized the same line; if not, CUBE accepts the subscription, sends a NOTIFY response with State = Active, and starts the timer for expiration. In survivability mode, SUBSCRIBE received for any event other than line-seize is rejected.

  • If another phone has already subscribed for the line, CUBE sends a 200 OK (request successful) response for the new subscribe, but a final NOTIFY to indicate that the subscription has been terminated.

  • If the subscription timer expires without re-subscription from the phone, CUBE sends a final NOTIFY to remove the subscription.

  • If a subscription is created in active mode, but re-subscriptions or unsubscriptions are received in survivability mode, then CUBE returns an error for this subscription.

How to Configure SUBSCRIBE-NOTIFY Passthrough

Configuring an Event List

SUMMARY STEPS

    1.    enable

    2.    configure terminal

    3.    voice class sip-event number

    4.    event name

    5.    end


DETAILED STEPS
     Command or ActionPurpose
    Step 1 enable


    Example:
     Device> enable
              
     

    Enables privileged EXEC mode.

    • Enter your password if prompted.

     
    Step 2configure terminal


    Example:
    Device# configure terminal
              
     

    Enters global configuration mode.

     
    Step 3voice class sip-event number


    Example:
    Device(config)# voice class sip-event 1
              
     

    Enters voice class configuration mode and configures the list of events to be passed through.

     
    Step 4event name


    Example:
    Device(config-class)# event message-summary
              
     

    Adds the name of the event to be added to the event list.

     
    Step 5end


    Example:
    Device(config-class)# end
              
     

    Returns to privileged EXEC mode.

     

    Configuring SUBSCRIBE-NOTIFY Event Passthrough Globally

    SUMMARY STEPS

      1.    enable

      2.    configure terminal

      3.    voice service voip

      4.    sip

      5.    pass-thru subscribe-notify-events tag

      6.    end


    DETAILED STEPS
       Command or ActionPurpose
      Step 1 enable


      Example:
       Device> enable
                
       

      Enables privileged EXEC mode.

      • Enter your password if prompted.

       
      Step 2configure terminal


      Example:
      Device# configure terminal
                
       

      Enters global configuration mode.

       
      Step 3voice service voip


      Example:
      Device(config)# voice class voip
                
       

      Enters voice service VoIP configuration mode.

       
      Step 4sip


      Example:
      Device(conf-voi-serv)# sip
                
       

      Enters voice service SIP configuration mode.

       
      Step 5pass-thru subscribe-notify-events tag


      Example:
      Device(conf-serv-sip)# pass-thru subscribe-notify-events 1
                
       
      Configures SUBSCRIBE-NOTIFY passthrough event with the SIP event list tag number to be linked globally.
      • You can use the pass-thru subscribe-notify-events all command to configure passthrough for all SUBSCRIBE-NOTIFY events.

       
      Step 6end


      Example:
      Device(conf-serv-sip)# end
                
       

      Returns to privileged EXEC mode.

       

      Configuring SUBSCRIBE-NOTIFY Event Passthrough at the Dial-Peer Level

      SUMMARY STEPS

        1.    enable

        2.    configure terminal

        3.    dial-peer voice tag voip

        4.    voice-class sip pass-thru subscribe-notify-events tag

        5.    end


      DETAILED STEPS
         Command or ActionPurpose
        Step 1 enable


        Example:
         Device> enable
                  
         

        Enables privileged EXEC mode.

        • Enter your password if prompted.

         
        Step 2configure terminal


        Example:
        Device# configure terminal
                  
         

        Enters global configuration mode.

         
        Step 3dial-peer voice tag voip


        Example:
        Device(config)# dial-peer voice 123 voip
                  
         

        Enters dial peer voice configuration mode.

         
        Step 4voice-class sip pass-thru subscribe-notify-events tag


        Example:
        Device(config-dial-peer)# voice-class sip pass-thru subscribe-notify-events 1
                  
         

        Configures SUBSCRIBE-NOTIFY passthrough event with the SIP event list tag number to be linked globally.

        • You can use the voice-class sip pass-thru subscribe-notify-events all command to configure passthrough for all SUBSCRIBE-NOTIFY events.

         
        Step 5end


        Example:
        Device(conf-serv-sip)# end
                  
         

        Returns to privileged EXEC mode.

         

        Verifying SUBSCRIBE-NOTIFY Passthrough

        Perform this task to verify the configuration for SUBSCRIBE-NOTIFY Passthrough and to verify the subscriptions created. The show commands can be entered in any order.

        SUMMARY STEPS

          1.    enable

          2.    show dial-peer voice number | inc pass

          3.    show subscription asnl session active

          4.    show subscription sip


        DETAILED STEPS
          Step 1   enable

          Enables privileged EXEC mode.



          Example:
          Device> enable
                    
          Step 2   show dial-peer voice number | inc pass

          Displays the information for voice dial peers. The following sample output shows the configured SUBSCRIBE-NOTIFY passthrough event for a particular dial peer.



          Example:
          Device# show dial-peer voice 123 | inc pass
          
          ip media DSCP = ef, ip media rsvp-pass DSCP = ef
          ip video rsvp-none DSCP = af41,ip video rsvp-pass DSCP = af41
          voice class sip pass-thru headers = system,
          voice class sip pass-thru subscribe-notify-events = system,
          voice class sip pass-thru content unsupp = system,
          voice class sip pass-thru content sdp = system,
          voice class sip privacy-policy passthru = system,
          voice class sip registration passthrough = System
          voice class sip referto-passing = system
                    
          Step 3   show subscription asnl session active

          Displays information about Application Subscribe/Notify Layer (ASNL)-based and non-ASNL-based SIP subscriptions.



          Example:
          Device# show subscription asnl session active
          
          ASNL Active Subscription Records Details:
          =========================================
          Number of active subscriptions: 1
          URL: sip:user@10.7.104.88
            Event Name : stress
            Session ID : 8
            Expiration Time : 50 seconds
            Subscription Duration : 5 seconds
            Protocol : ASNL_PROTO_SIP
            Remote IP address : 10.7.104.88
            Port : 5060
            Call ID : 5
            Total Subscriptions Sent : 1
            Total Subscriptions Received: 0
            Total Notifications Sent : 0
            Total Notifications Received  : 2
            Last response code : ASNL_NOTIFY_RCVD
            Last error code : ASNL_NONE
            First Subscription Time : 10:55:12 UTC Apr 9 2000
            Last Subscription Time : 10:55:12 UTC Apr 9 2000
            First Notify Time : 10:55:12 UTC Apr 9 2000
            Last Notify Time : 10:55:17 UTC Apr 9 2000
            Application that subscribed : stress
            Application receiving notification: stress
                    
          Step 4   show subscription sip

          Displays information about ASNL-based and non-ASNL-based SIP subscriptions.



          Example:
          Device# show subscription sip
          
          ASNL Active Subscription Records Summary:
          =========================================
          
          Number of active subscriptions: 2
          
          SubId      CallId     Proto            URL                              Event
          -----      ------     -----            ---                              -----
          1          N/A        ASNL_PROTO_SIP  "Plutus" <sip:1111003@primary>   all
          2          N/A        ASNL_PROTO_SIP  sip:1111003@primaryappserver1    as-feature
          
          Client    EXPIRES(sec)    EVENT
          ======    ============    ======
          1111003         0          as-feature-event
          Client    EXPIRES(sec)    EVENT
          ======    ============    ======
          1234            0          message-summary
                    

          Troubleshooting Tips

          Use the following commands to troubleshoot SUBSCRIBE-NOTIFY Passthrough:

          • debug mpa events

          • debug mpa error

          • debug ccsip messages

          • debug asnl events

          • debug asnl error

          • debug ccsip all

          Configuration Examples for SUBSCRIBE-NOTIFY Passthrough

          Example: Configuring an Event List

          The following example shows how to configure an event list and add an event to the list of events that have to be passed through.

          Device> enable
          Device# configure terminal
          Device(config)# voice class sip-event-list 1
          Device(config-class)# event 1 message-summary
          Device(config-class)# end
          

          Example: Configuring SUBSCRIBE-NOTIFY Event Passthrough Globally

          The following example shows how to configure the SUBSCRIBE-NOTIFY passthrough event and link the SIP event list tag number globally.

          Device> enable
          Device# configure terminal
          Device(config)# voice service voip
          Device(conf-voi-serv)# sip
          Device(conf-serv-sip)# pass-thru subscribe-notify-events 1
          Device(conf-serv-sip)# end
          

          Example: Configuring SUBSCRIBE-NOTIFY Event Passthrough under a Dial Peer

          The following example shows how to configure the SUBSCRIBE-NOTIFY passthrough event and link the SIP event list tag number under a dial peer.

          Device> enable
          Device# configure terminal
          Device(config)# dial-peer voice 123 voip
          Device(config-dial-peer)# voice-class sip pass-thru subscribe-notify-events 1
          Device(config-dial-peer)# end
          

          Feature Information for SUBSCRIBE-NOTIFY Passthrough

          The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.

          Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/​go/​cfn. An account on Cisco.com is not required.
          Table 1 Feature Information for SUBSCRIBE-NOTIFY Passthrough

          Feature Name

          Releases

          Feature Information

          Nano CUBE (SUBSCRIBE-NOTIFY Passthrough)

          15.3(3)M

          The SUBSCRIBE-NOTIFY mechanism is used for implementation of features such as Message Waiting Indication (MWI), Shared Call Appearance, Multiple Caller Appearance, Busy Lamp Field, and so on.

          In Nano CUBE, the SUBSCRIBE-NOTIFY framework on Unified Communications (UC) products supports the following:

          • Configurable and Selective Passthrough of SUBSCRIBE and NOTIFY transactions from phones with the normalization required for address or topology hiding and dialog content updates for “dialog” event subscription.

          • Survivability mode handling of incoming SUBSCRIBE request for critical events.