SIP Gateway Support for the bind Command

The Gateway Support for the bind Command feature introduces the bind command, which allows you to configure the source IP address of signaling packets or both signaling and media packets. Befor this feature was introduced the source address of a packet going out of a Cisco IOS gateway is not deterministic. The session protocols and VoIP layers depended on the IP layer to give the best local address and then used the address for the source address in signaling or media or both, even if multiple interfaces can support a route to the destination address.

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 at the end of this module.

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.

Prerequisites for SIP Gateway Support for the bind Command

  • Ensure that the gateway has voice functionality that is configurable for SIP.
  • Establish a working IP network.
  • Configure VoIP.

Cisco Unified Border Element

  • Cisco IOS Release 12.2(8)T or a later release must be installed and running on your Cisco Unified Border Element.

Cisco Unified Border Element (Enterprise)

  • Cisco IOS XE Release 2.5 or a later release must be installed and running on your Cisco ASR 1000 Series Router.

Information About SIP Gateway Support for the bind Command

Prior to the Gateway Support for the bind Command feature the source address of a packet going out of the gateway was never deterministic. That is, the session protocols and VoIP layers always depended on the IP layer to give the best local address . The best local address was then used as the source address (the address showing where the SIP request came from) for signaling and media packets. Using this nondeterministic address occasionally caused confusion for firewall applications, because a firewall could not be configured with an exact address and would take action on several different source address packets.

The bind interface command allows you to configure a specific interface’s IP address as the source IP address of signaling and media packets. The address that goes out on the packet is bound to the IP address of the interface specified with the bind command. Packets that are not destined to the bound address are discarded.

When you do not specify a bind address, or if the interface is down, the IP layer still provides the best local address.

With the bind command, SIP signaling and media paths can advertise the same source IP address on the gateway for certain applications, even if the paths use different addresses to reach the source. This eliminates confusion for firewall applications that, Without the binding, may have taken action on several different source address packets.

The table below lists the results of the bind command based on the state of the interface.

Table 1 Command functions for the bind command based on the state of the interface

Interface State

Result Using Bind Command

A bind interface is shut down, or its IP Address is changed, or the physical cable is pulled while SIP calls are active

The call becomes a one-way call with media flowing in only one direction. It flows from the gateway where the change or shutdown took place to the gateway where no change occurred. Thus, the gateway with the status change no longer receives media.

The call is then disconnected, but the disconnected message is not understood by the gateway with the status change, and the call is still assumed to be active.

No Shutdown— With no active calls.

The TCP and UDP socket listeners are initially closed. (Socket listeners receive datagrams addressed to the socket.)

Then the sockets are opened and bound to the IP address set by the bind command.

The sockets accept packets destined for the bound address only.

No Shutdown— With active calls.

The TCP and UDP socket listeners are initially closed.

Then the sockets are opened to listen to any IP address.

Shutdown— With or without active calls.

The TCP and User Datagram Protocol (UDP) socket listeners are initially closed. (Socket listeners receive datagrams addressed to the socket.)

Then the sockets are opened to listen to any IP address.

If the outgoing gateway has the bind command enabled and has an active call, the call becomes a one-way call with media flowing from the outgoing gateway to the terminating gateway.

The Bound interface’s IP address is removed

The TCP and UDP socket listeners are initially closed.

Then the sockets are opened to listen to any address, because the IP address has been removed.

A message stating that the IP address has been deleted from SIP bound interface is displayed.

If the outgoing gateway has the bindcommand enabled and has an active call, the call becomes a one-way call with media flowing from the outgoing gateway to the terminating gateway.

The physical cable is pulled on the bound port, or the Interface layer goes down

The TCP and UDP socket listeners are initially closed.

Then the sockets are opened and bound to listen to any address.

When the pulled cable is replaced, the result is as documented for no shutdowninterfaces.


Note


If there are active calls, the bind command will not take effect if it is issued for the first time or if it is issued while another bind command is in effect. A message is displayed reminding you that there are active calls and that the bind command change cannot take effect.


How to Configure SIP Gateway Support for the bind Command

Setting the Bind Address

To set the bind address, complete the task in this section.

SUMMARY STEPS

    1.    enable

    2.    configure terminal

    3.    dial-peer voice number voip

    4.    session target ipv4: destination-address

    5.    exit


DETAILED STEPS
      Command or Action Purpose
    Step 1 enable


    Example:
    Device> enable
     

    Enables privileged EXEC mode.

    • Enter your password if prompted.
     
    Step 2 configure terminal


    Example:
    Device# configure terminal
     

    Enters global configuration mode.

     
    Step 3 dial-peer voice number voip


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

    Enters dial peer configuration mode to configure a VoIP dial-peer.

     
    Step 4 session target ipv4: destination-address


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

    Specifies a network-specific address for a dial peer.

    • This command must be set to the bind address of the receiving gateway before using the bind command.
    • ipv4 :destination-address: Sets the IP address of the dial peer. A valid IP address is in this format: xxx.xxx.xxx.xxx.
     
    Step 5 exit


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

    Exits dial peer voice configuration mode.

     

    Setting a Source IP Address for Signaling and Media Packets

    SIP configuration mode starts from voice-service VoIP configuration mode. When the router is in SIP configuration mode, several options are available, including the bind command. To enable this feature, review the prerequisites to make sure your network is compliant, and then complete the task in this section.

    Before You Begin

    Set the bind address prior to using the bind command.

    SUMMARY STEPS

      1.    enable

      2.    configure terminal

      3.    voice service voip

      4.    sip

      5.    session transport {udp | tcp}

      6.    bind {control | all} source-interface interface-id

      7.    default {bind|rel1xx|session-transport|url}

      8.    exit


    DETAILED STEPS
        Command or Action Purpose
      Step 1 enable


      Example:
      Device> enable
       

      Enables privileged EXEC mode.

      • Enter your password if prompted.
       
      Step 2 configure terminal


      Example:
      Device# configure terminal
       

      Enters global configuration mode.

       
      Step 3 voice service voip


      Example:
      Device(config)# voice service voip
       

      Enters voice-service configuration mode

       
      Step 4 sip


      Example:
      Device(config-voi-srv)# sip
       

      Enters the SIP configuration mode.

       
      Step 5 session transport {udp | tcp}


      Example:
      Device(conf-serv-sip)# session transport udp
       

      (Optional) Sets the session transport type for the SIP user agent.

      • The default is UDP.
      • The transport protocol (udp or tcp) specified with the session transportcommand, and the protocol specified with the transport command, must be identical.
       
      Step 6 bind {control | all} source-interface interface-id


      Example:
      Device(conf-serv-sip)# bind all source- interface fastethernet
       

      Sets a source address for signaling and media packets.

      • control : Binds SIP signaling packets.
      • all : Binds SIP signaling packets and media packets.
      • source-interface : Specifies an interface as the source address of SIP packets.
      • interface-id argument specifies the type of interface:
        • Async
        • BVI
        • CTunnel
        • Dialer
        • Ethernet
        • FastEthernet
        • Lex
        • Loopback
        • Multilink
        • Null
        • Serial
        • Tunnel
        • Vif
        • Virtual-Template
        • Virtual-TokenRing
       
      Step 7 default {bind|rel1xx|session-transport|url}


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

      (Optional) Resets the default value of a SIP command.

      • bind-- Configures the source address of signaling and media packets to a specific interface’s IP address
      • rel1xx --Enables all SIP provisional responses (other than 100 Trying) to be sent reliably to the remote SIP endpoint
      • session-transport --Configures the underlying transport layer protocol for SIP messages to TCP or UDP
      • url --Configures URLs to either the SIP or TEL format for your voip sip calls
       
      Step 8 exit


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

      Exits the current configuration mode.

       

      Verifying and Troubleshooting Tips

      Two show commands verify the correct settings for the bind command. The first enables you to verify a bound IP address. The second indicates the status of bind (enabled or disabled):

      Verifying a Bound IP Address

      The following examples show output for the show ip socketcommand, indicating that the bind address of the receiving gateway is set:

      Device# show ip socket
      

      Proto Remote Port Local Port In Out Stat TTY OutputIF

      17 0.0.0.0 0 --any-- 2517 0 0 9 0

      17 --listen-- 172.18.192.204 1698 0 0 1 0

      17 0.0.0.0 0 172.18.192.204 67 0 0 489 0

      17 0.0.0.0 0 172.18.192.204 5060 0 0 A1 0

      Verifying Bind Status

      The following example shows output for the show sip-ua statuscommand, indicating that bind is enabled.

      Device# show sip-ua status
      SIP User Agent Status 
      SIP User Agent for UDP : ENABLED 
      SIP User Agent for TCP : ENABLED 
      SIP User Agent bind status(signaling): ENABLED 172.18.192.204
      SIP User Agent bind status(media): ENABLED 172.18.192.204
      SIP max-forwards : 6 

      SIP DNS SRV version: 1 (rfc 2052)

      To troubleshoot this feature, perform the following:

      • Use the debug ccsip all command to enable all SIP debugging capabilities, or use one of the following SIP debug commands:
        • debug ccsip calls
        • debug ccsip error
        • debug ccsip events
        • debug ccsip messages
        • debug ccsip states
      • Use the show ip socketcommand to display IP socket information.
      • Use the show sip-ua statuscommand to verify if binding is enabled. See the show sip-ua statuscommand for details.

      Configuration Examples for SIP Gateway Support for the bind Command

      SIP Gateway Support for the bind Command Example

      This section shows partial output from the show running-config command, indicating that bind is functional on receiving router 172.18.192.204.

      ip subnet-zero
      ip ftp source-interface Ethernet0
      !
      voice service voip 
       sip
        bind all source-interface FastEthernet0
      !
      interface FastEthernet0
       ip address 172.18.192.204 255.255.255.0
       duplex auto
       speed auto
       fair-queue 64 256 1000
       ip rsvp bandwidth 75000 100
      !!

      Feature Information for SIP Gateway Support for the bind Command

      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 2 Feature Information for SIP: Gateway Support for the bind Command

      Feature Name

      Releases

      Feature Information

      SIP: Gateway Support for the bind Command

      12.2(8)T

      12.3(2)T

      12.2(11)T

      12.2(15)T

      In Cisco IOS Release 12.2(8)T, This feature was introduced on the Cisco Unified Border Element.

      The following commands were introduced or modified: bindand sip.

      SIP: Gateway Support for the bind Command

      Cisco IOS XE Release 2.5

      In Cisco IOS XE Release 2.5, This feature was introduced on the Cisco ASR 1000 Series Routers.

      The following commands were introduced or modified: bindand sip.