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.
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
bindinterfaceisshutdown, or itsIPAddressischanged, or thephysicalcableispulled 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.
NoShutdown—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.
NoShutdown—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
physicalcableispulled on the bound port, or the
Interfacelayergoesdown
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
noshutdowninterfaces.
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
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.configureterminal
3.voiceservicevoip
4.sip
5.sessiontransport{udp |
tcp}
6.bind{control |
all}source-interfaceinterface-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
configureterminal
Example:
Device# configure terminal
Enters global configuration mode.
Step 3
voiceservicevoip
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
sessiontransport{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
sessiontransportcommand, and the protocol specified with the
transport command, must be identical.
Step 6
bind{control |
all}source-interfaceinterface-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-idargument 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):
The following examples show output for the
showipsocketcommand, 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
showsip-uastatuscommand, 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
debugccsipall command to enable all SIP debugging capabilities, or use one of the following SIP debug commands:
debugccsipcalls
debugccsiperror
debugccsipevents
debugccsipmessages
debugccsipstates
Use the
showipsocketcommand to display IP socket information.
Use the
showsip-uastatuscommand to verify if binding is enabled. See the
showsip-uastatuscommand for details.
Configuration Examples for SIP Gateway Support for the bind Command
This section shows partial output from theshowrunning-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:
bindandsip.
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:
bindandsip.