URI-Based Dialing Enhancements

The URI-Based Dialing Enhancements feature describes the enhancements made to Uniform Resource Identifier (URI)-based dialing on Cisco Unified Border Element (Cisco UBE) for Session Initiation Protocol (SIP) calls. The URI-Based Dialing Enhancements feature includes support for call routing on Cisco UBE when the user part of the incoming Request-URI is non-E164 (for example, INVITE sip:user@abc.com).

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.

Information About URI-Based Dialing Enhancements

Cisco Unified Communications Manager (CUCM) supports dialing using directory Uniform Resource Identifiers (URIs) for call addressing. Directory URIs follow the username@host format where the host portion is an IPv4 address or a fully qualified domain name. A directory URI is a string of characters that can be used to identify a directory number. If that directory number is assigned to a phone, CUCM can route calls to that phone using the directory URI. URI dialing is available for Session Initiation Protocol (SIP) and Signaling Connection Control Part (SCCP) endpoints that support directory URIs.

The primary use of URI-based dialing is peer-to-peer calling between enterprises using complete URI addresses (that is, ‘username@host’). The host part of the URI identifies the destination to which the call should be routed. In earlier Cisco Unified Border Element (Cisco UBE) URI routing, the URI was replaced in the SIP header with the destination server IP address. Then routing of calls was based on the following restrictions:
  • The user part of the incoming Request-URI must be an E164 number.

  • The outgoing Request-URI is always set to the session target information of the outbound dial peer.

The URI-Based Dialing Enhancements feature extends support for Cisco UBE URI-based routing of calls. With these enhancements Cisco UBE supports:
  • URI-based routing when the user part of the incoming Request-URI is non-E164 (for example, INVITE sip:user@abc.com).

  • URI-based routing when the user part is not present. The user part is an optional parameter in the URI (for example, INVITE sip:abc.com).

  • Copying the outgoing Request-URI and To header from the inbound Request-URI and To header respectively.

  • Deriving (optionally) the session target for the outbound dial peer from the host portion of the inbound URI.

  • URI-based routing for 302, Refer, and Bye Also scenarios.

  • Call hunting where the subsequent dial peer is selected based on URI.

  • Pass through of 302, with the host part of Contact: unmodified.

Call Flows for URI-Based Dialing Enhancements

Case1: URI dialing with username being E164 or non-E164 number and Request-URI host copied from the inbound leg.

Case 2: Incoming Request-URI does not contain user part. The To: header information is also copied from the peer leg when the requri-passing command is enabled.

Case 3: The old behavior of setting the outbound Request-URI to session target is retained when the requri-passing command is not enabled.

Case 4: The session target derived from the host part of the URI. The outgoing INVITE is sent to resolved IP address of the host part of the URI.

Case 5: Pass through of contact URI to request URI.

Case 6: In 302 pass-through, contact header can be passed through from one leg to another by using the contact-passing command.

Case 7: Pass through of refer-to URI to request URI.

Case 8: URI routing based on BYE Also header.

How to Configure URI-Based Dialing Enhancements

Configuring Pass Through of SIP URI Headers

Perform these to configure the pass through of the host part of the Request-Uniform Resource Identifier (URI) and To Session Initiation Protocol (SIP) headers. By default, Cisco Unified Border Element (Cisco UBE) sets the host part of the URI to the value configured under the session target of the outbound dial peer. For more information, see Case 1 in the "Call Flows for URI-based Dialing Enhancements" section.

Configuring Pass Though of Request URI and To Header URI (Global Level)

SUMMARY STEPS

    1.    enable

    2.    configure terminal

    3.    voice service voip

    4.    sip

    5.    requri-passing

    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 service voip
     

    Specifies VoIP encapsulation and enters voice service configuration mode.

     
    Step 4sip


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

    Enters the Session Initiation Protocol (SIP) configuration mode.

     
    Step 5requri-passing


    Example:
    Router(conf-serv-sip)# requri-passing
     

    Enables pass through of the host part of the Request-URI and To SIP headers. By default, Cisco UBE sets the host part of the URI to the value configured under the session target of the outbound dial peer.

     
    Step 6end


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

    Ends the current configuration session and returns to privileged EXEC mode.

     

    Configuring Pass Though of Request URI and To Header URI (Dial Peer Level)

    SUMMARY STEPS

      1.    enable

      2.    configure terminal

      3.    voice class uri tag sip

      4.    host hostname-pattern

      5.    exit

      6.    dial-peer voice tag voip

      7.    session protocol sipv2

      8.    destination uri tag

      9.    session target ipv4:ip-address

      10.    voice-class sip requri-passing [system]

      11.    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 3 voice class uri tag sip


      Example:
      Device(config)# voice class uri mydesturi sip
       

      Creates a voice class for matching dial peers to a Session Initiation Protocol (SIP) and enters voice URI class configuration mode.

       
      Step 4 host hostname-pattern


      Example:
      Device(config-voice-uri-class)# host example.com
       

      Matches a call based on the host field in a SIP Uniform Resource Identifier (URI).

       
      Step 5exit


      Example:
      Device(config-voice-uri-class)# exit
       

      Exits voice URI class configuration mode.

       
      Step 6dial-peer voice tag voip


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

      Defines a VoIP dial peer and enters dial peer configuration mode.

       
      Step 7session protocol sipv2


      Example:
      Device(config-dial-peer)# session protocol sipv2
       

      Specifies a session protocol for calls between local and remote routers using the Internet Engineering Task Force (IETF) SIP.

       
      Step 8destination uri tag


      Example:
      Device(config)# destination uri mydesturi
       

      Specifies the voice class used to match a dial peer to the destination URI of an outgoing call.

       
      Step 9session target ipv4:ip-address


      Example:
      Device(config-dial-peer)# session target ipv4:10.1.1.2
       

      Designates a network-specific address to receive calls from a VoIP.

       
      Step 10voice-class sip requri-passing [system]


      Example:
      Device(config-dial-peer)# voice-class sip requri-passing system
       

      Enables the pass through of SIP URI headers.

       
      Step 11end


      Example:
      Device(config-dial-peer)# end
       

      Ends the current configuration session and returns to privileged EXEC mode.

       

      Configuring Pass Through of 302 Contact Header

      Configuring Pass Through of 302 Contact Header (Global Level)

      SUMMARY STEPS

        1.    enable

        2.    configure terminal

        3.    voice service voip

        4.    sip

        5.    contact-passing

        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 service voip
         

        Specifies VoIP encapsulation and enters voice service configuration mode.

         
        Step 4sip


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

        Enters voice service SIP configuration mode.

         
        Step 5contact-passing


        Example:
        Router(conf-serv-sip)# contact-passing
         

        Enables pass through of the contact header from one leg to the other leg in 302 pass through scenario.

         
        Step 6end


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

        Ends the current configuration session and returns to privileged EXEC mode.

         

        Configuring Pass Through of 302 Contact Header (Dial Peer Level)

        SUMMARY STEPS

          1.    enable

          2.    configure terminal

          3.    voice class uri destination-tag sip

          4.    user-id id-tag

          5.    exit

          6.    voice service voip

          7.    allow-connections sip to sip

          8.    dial-peer voice tag voip

          9.    session protocol sipv2

          10.    destination uri destination-tag

          11.    voice-class sip contact-passing

          12.    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 3 voice class uri destination-tag sip


          Example:
          Device(config)# voice class uri mydesturi sip
           

          Creates a voice class for matching dial peers to a Session Initiation Protocol (SIP) and enters voice URI class configuration mode.

           
          Step 4 user-id id-tag


          Example:
          Device(config-voice-uri-class)# user-id 5678
           

          Matches a call based on the User ID portion of the Uniform Resource Identifier (URI).

           
          Step 5exit


          Example:
          Device(config-voice-uri-class)# exit
           

          Exits voice URI class configuration mode.

           
          Step 6voice service voip


          Example:
          Device(config)# voice service voip
           

          Specifies Voice over IP (VoIP) as the voice encapsulation type and enters voice service configuration mode.

           
          Step 7allow-connections sip to sip


          Example:
          Device(conf-voi-serv)# allow-connections sip to sip
           

          Allows connections between SIP endpoints in a VoIP network.

           
          Step 8dial-peer voice tag voip


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

          Defines a VoIP dial peer and enters dial peer configuration mode.

           
          Step 9session protocol sipv2


          Example:
          Device(config-dial-peer)# session protocol sipv2
           

          Specifies a session protocol for calls between local and remote routers using the Internet Engineering Task Force (IETF) SIP.

           
          Step 10destination uri destination-tag


          Example:
          Device(config-dial-peer)# destination uri mydesturi
           

          Specifies the voice class used to match a dial peer to the destination URI of an outgoing call.

           
          Step 11voice-class sip contact-passing


          Example:
          Device(config-dial-peer)# voice-class sip contact-passing 
           

          Enables pass through of the contact header from one leg to the other leg in 302 pass through scenario.

           
          Step 12end


          Example:
          Device(config-dial-peer)# end
           

          Ends the current configuration session and returns to privileged EXEC mode.

           

          Deriving of Session Target from URI

          Perform this task to derive the session target from the host part of the Uniform Resource Identifier (URI). The outgoing INVITE is sent to the resolved IP address of the host part of the URI. For more information, see Case 4 in the "Call Flows for URI-Based Dialing Enhancements" section.

          SUMMARY STEPS

            1.    enable

            2.    configure terminal

            3.    voice class uri destination-tag sip

            4.    host hostname-pattern

            5.    exit

            6.    dial-peer voice tag voip

            7.    session protocol sipv2

            8.    destination uri destination-tag

            9.    session target sip-uri

            10.    exit

            11.    voice class uri source-tag sip

            12.    host hostname-pattern

            13.    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 uri destination-tag sip


            Example:
            Device(config)# voice class uri mydesturi sip
             

            Creates or modifies a voice class for matching dial peers to a Session Initiation Protocol (SIP) or telephone (TEL) Uniform Resource Identifier (URI) and enters voice URI class configuration mode.

             
            Step 4host hostname-pattern


            Example:
            Device(config-voice-uri-class)# host destination.com
             

            Matches a call based on the host field in a SIP URI.

             
            Step 5exit


            Example:
            Device(config-voice-uri-class)# exit
             

            Exits voice URI class configuration mode.

             
            Step 6dial-peer voice tag voip


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

            Defines a VoIP dial peer and enters dial peer configuration mode.

             
            Step 7session protocol sipv2


            Example:
            Device(config-dial-peer)# session protocol sipv2
             

            Specifies a session protocol for calls between local and remote routers using the Internet Engineering Task Force (IETF) SIP.

             
            Step 8destination uri destination-tag


            Example:
            Device(config-dial-peer)# destination uri mydesturi
             

            Specifies the voice class used to match a dial peer to the destination URI of an outgoing call.

             
            Step 9session target sip-uri


            Example:
            Device(config-dial-peer)# session target sip-uri
             

            Derives session target from incoming URI.

             
            Step 10exit


            Example:
            Device(config-dial-peer)# exit
             

            Exits dial peer voice configuration mode.

             
            Step 11voice class uri source-tag sip


            Example:
            Device(config)# voice class uri mysourceuri sip
             

            Creates or modifies a voice class for matching dial peers to a SIP or TEL URI and enters voice URI class configuration mode.

             
            Step 12 host hostname-pattern


            Example:
            Device(config-voice-uri-class)# host abc.com
             

            Matches a call based on the host field in a SIP URI.

             
            Step 13end


            Example:
            Device(config-voice-uri-class)# end
             

            Ends the current configuration session and returns to privileged EXEC mode.

             

            Configuration Examples for URI-Based Dialing Enhancements

            Example: Configuring Pass Though of Request URI and To Header URI

            Example: Configuring Pass Though of Request URI and To Header URI (Global Level)

            Device> enable
            Device# configure terminal
            Device(config)# voice service voip
            Device(conf-voi-serv)# sip
            Device(conf-serv-sip)# requri-passing
            Device(conf-serv-sip)# end
            

            Example: Configuring Pass Though of Request URI and To Header URI (Dial Peer Level)

            ! Configuring URI voice class destination
            Device(config)# voice class uri mydesturi sip
            Device(config-voice-uri-class)# host xyz.com
            Device(config-voice-uri-class)# exit
            
            ! Configuring outbound dial peer
            Device(config)# dial-peer voice 13 voip
            Device(config-dial-peer)# session protocol sipv2
            Device(config-dial-peer)# destination uri mydesturi
            Device(config-dial-peer)# session target ipv4:10.1.1.1
            Device(config-dial-peer)# voice-class sip requri-passing system
            Device(config-dial-peer)# end
            

            Example: Configuring Pass Through of 302 Contact Header

            Example: Configuring Pass Through of 302 Contact Header (Global Level)

            Device> enable
            Device# configure terminal
            Device(config)# voice service voip
            Device(conf-voi-serv)# sip
            Device(conf-serv-sip)# contact-passing
            Device(conf-serv-sip)# end

            Example: Configuring Pass Through of 302 Contact Header (Dial Peer Level)

            ! Configuring URI voice class destination
            Device> enable
            Device# configure terminal
            Device(config)# voice class uri mydesturi sip
            Device(config-voice-uri-class)# user-id 5678
            Device(config-voice-uri-class)# exit
            
            ! Configuring outbound dial peer
            Device(config)# voice service voip
            Device(conf-voi-serv)# allow-connections sip to sip
            Device(conf-voi-serv)# dial-peer voice 200 voip
            Device(config-dial-peer)# session protocol sipv2
            Device(config-dial-peer)# destination uri mydesturi
            Device(config-dial-peer)# voice-class sip contact-passing
            Device(config-dial-peer)# end

            Example: Deriving Session Target from URI

            Device> enable
            Device# configure terminal
            Device(config)# voice class uri mydesturi sip
            Device(config-voice-uri-class)# host destination.com
            Device(config-voice-uri-class)# exit
            !
            Device(config)# dial-peer voice 25 voip
            Device(config-dial-peer)# session protocol sipv2
            Device(config-dial-peer)# destination uri mydesturi
            Device(config-dial-peer)# session target sip-uri
            Device(config-dial-peer)# exit
            !
            Device(config)# voice class uri mysourceuri sip
            Device(config-voice-uri-class)# host abc.com
            Device(config-voice-uri-class)# end
            

            Additional References for URI-Based Dialing Enhancements

            Related Documents

            Related Topic Document Title
            Voice commands Cisco IOS Voice Command Reference
            Cisco IOS commands Cisco IOS Master Command List, All Releases
            SIP configuration tasks SIP Configuration Guide, Cisco IOS Release 15M&T

            Technical Assistance

            Description Link

            The Cisco Support website provides extensive online resources, including documentation and tools for troubleshooting and resolving technical issues with Cisco products and technologies.

            To receive security and technical information about your products, you can subscribe to various services, such as the Product Alert Tool (accessed from Field Notices), the Cisco Technical Services Newsletter, and Really Simple Syndication (RSS) Feeds.

            Access to most tools on the Cisco Support website requires a Cisco.com user ID and password.

            http:/​/​www.cisco.com/​support

            Feature Information for URI-Based Dialing Enhancements

            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 URI-Based Dialing Enhancements

            Feature Name

            Releases

            Feature Information

            URI-Based Dialing Enhancements

            Cisco IOS XE Release 3.11S

            The URI-Based Dialing Enhancements feature includes support for call routing on Cisco UBE when the user-part of the incoming Request-URI is non-E164 (for example, INVITE sip:user@abc.com).

            The following commands were introduced or modified: contact-passing, requri-passing, session target sip-uri and voice-class sip requri-passing