Table Of Contents
Configuring MGCP Gateway Support for the mgcp bind Command
Contents
Prerequisites for Configuring MGCP Gateway Support for the mgcp bind Command
Information About MGCP Gateway Support for the mgcp bind Command
How to Configure MGCP Gateway Support for the mgcp bind Command
Configuring the MGCP Application
Configuring the bind Command
Troubleshooting Tips
Verifying MGCP Gateway Support for the Bind Command
Configuration Examples for MGCP Gateway Support for the Bind Command
Configuring MGCP Gateway Support for the mgcp bind Command
This section provides information on configuring the MGCP Gateway Support for the mgcp bind Command feature.
Feature benefits include the following:
•
Media gateway controller-to-media gateway (MGC-to-MG) signaling and identification
The command allows you to use a loopback interface IP address for sourcing MGCP packets, which is transparent to any interface failure.
•
Security of the media gateway
The command allows you to obtain a predefined interface for both MGCP and media control, which can be used for security configuration.
•
Possible clash of voice and dial addressing
This feature allows you to assign a media bind interface other than loopback 0, which allows dial calls to conserve IP addresses.
•
No interface diversity using routing and reduced MGCP voice diversity
You can use routing capability more efficiently if you configure the loopback interface for control. Using the command to configure the loopback interface helps in creating redundant MGCP control or media interface.
•
MGCP backward compatibility
This feature is backward compatible with earlier MGCP features.
Note
For more information about this and related Cisco IOS voice features, see the following:
•
"Overview of MGCP and Related Protocols" on page 3
•
Entire Cisco IOS Voice Configuration Library—including library preface and glossary, other feature documents, and troubleshooting documentation—at http://www.cisco.com/en/US/docs/ios/12_3/vvf_c/cisco_ios_voice_configuration_library_glossary/vcl.htm
Release
|
Modification
|
12.2(13)T
|
This feature was introduced.
|
Feature History for MGCP Gateway Support for the mgcp bind Command
Contents
•
Prerequisites for Configuring MGCP Gateway Support for the mgcp bind Command
•
Information About MGCP Gateway Support for the mgcp bind Command
•
How to Configure MGCP Gateway Support for the mgcp bind Command
•
Configuration Examples for MGCP Gateway Support for the Bind Command
Prerequisites for Configuring MGCP Gateway Support for the mgcp bind Command
The current Media Gateway Control Protocol (MGCP) implementation does not allow the assignment of particular IP addresses for sourcing MGCP commands and media packets, which can cause firewall and security problems. This feature allows you to configure interfaces on which control and media packets can be exchanged. This new functionality allows you to separate signaling from voice by binding control (MGCP signaling) and media (Real-Time Transport Protocol, or RTP voice, fax, and modem) to specific gateway interfaces.
This feature includes new commands that can be used to configure the required interface for MGCP control and control of the required media packets.
•
Configure MGCP and the interface that will be bound. See the flow charts in the "Information About MGCP Gateway Support for the mgcp bind Command" section to understand the behavior of the configuration command depending on interface status.
•
Set the bind address before using the mgcp bind command. For more information about using this command, see the "Configuring the MGCP Application" section.
Information About MGCP Gateway Support for the mgcp bind Command
If the media gateway (MG) uses an IP address, which is the outgoing interface of the MG, the media gateway controller (MGC) identifies the MG entity with that address. If that interface fails, MG sources MGCP from another interface, which is not known to the MGC. Some form of name lookup (host or Domain Name System, or DNS) needs to occur on the MGC at this time. Using the mgcp bind command, a loopback interface IP address can be used for sourcing MGCP packets, which is transparent to any interface failure.
Present implementation of MGCP media uses the "loopback 0" or best available IP address in the order indicated for media. A fixed default loopback 0 address for media streams breaks the dial address pool convention used for most configurations, where dial IP addresses are assigned from the loopback 0 address range. With this feature, it is possible to assign a media bind interface other than loopback 0, which helps dial calls conserve IP addresses.
If you configure the loopback interface for control, you can use routing capability more efficiently. Using themgcp bind command to configure the loopback interface helps in creating redundant MGCP control or media interface.
In the current implementation of MGCP, the source address of MGCP and media control is given by the IP layer. Because of this inconsistency, it is not possible to include a reliable access list or firewall configuration. Using the mgcp bind command for both MGCP and media control, you can get a predefined interface or IP address that can be used for security configuration.
Figure 9 shows a typical configuration flow using themgcp bind command.
Figure 9 Bind Configuration Flowchart
Figure 10 shows how the mgcp bind command takes effect for MGCP control. When the mgcp bind command is configured for MGCP control, the MGCP_SYS_SOCKET_CHANG system event is posted to MGCPAPP. This event is processed by opening a new socket based on the configured interface.
Figure 10 Bind Configuration for Control Flowchart
The time frame for execution of themgcp bind command for media is different from that for control. Figure 11 shows how themgcp bind command is used for media. In this case, the IP address used for media Session Description Protocol (SDP) negotiation is taken from the configured interface. This flow is not active until an MGCP call is created.
The function call to get an IP address for the media returns a configured interface IP address, a loopback interface IP address, or a best available IP address in the order specified in the figure.
Figure 11 Bind Configuration for Media Flowchart
How to Configure MGCP Gateway Support for the mgcp bind Command
This section contains the following procedures. Each procedure is identified as either required or optional.
•
Configuring the MGCP Application (required)
•
Configuring the bind Command (required)
•
Verifying MGCP Gateway Support for the Bind Command (optional)
Configuring the MGCP Application
To configure the MGCP application, use the following commands.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
mgcp call-agent {dns-name | ip-address} [port] [service-type type] [version protocol-version]
4.
mgcp
5.
exit
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
enable
Example:
Router> enable
|
Enables higher privilege levels, such as privileged EXEC mode. Enter your password if prompted.
|
Step 2
|
configure terminal
Example:
Router# configure terminal
|
Enters global configuration mode.
|
Step 3
|
mgcp call-agent {dns-name | ip-address} [port]
[service-type type] [version protocol-version]
Example:
Router(config)# mgcp call-agent 209.165.200.225
service-type mgcp version 1.0
|
Configures the MGCP protocol and corresponding call agent.
|
Step 4
|
mgcp
Example:
Router(config)# mgcp
|
Enables MGCP on the gateway.
|
Step 5
|
Example:
Router(config)# exit
|
Exits the current mode.
|
Configuring the bind Command
To configure the mgcp bind command, use the following commands.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
mgcp bind {control | media} source-interface interface-id
4.
mgcp
5.
exit
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
enable
Example:
Router> enable
|
Enables higher privilege levels, such as privileged EXEC mode. Enter your password if prompted.
|
Step 2
|
configure terminal
Example:
Router# configure terminal
|
Enters global configuration mode.
|
Step 3
|
mgcp bind {control | media} source-interface
interface-id
Example:
Router(config)# mgcp bind {control} source-
interface FastEthernet
|
Sets a source interface for signaling and media packets.
|
Step 4
|
mgcp
Example:
Router(config)# mgcp
|
Enables MGCP on the gateway.
|
Step 5
|
Example:
|
Exits the current mode.
|
Troubleshooting Tips
To troubleshoot the MGCP Gateway Support for the Bind Command feature, perform the following:
•
Use the debug mgcp command to enable debug traces for MGCP errors, events, media, packets, parser, and call admission control (CAC). See "Example Output for debug mgcp Command" section.
Example Output for debug mgcp Command
The following example illustrates the output for the debug mgcp all command with the all keyword:
20:54:13: MGC stat - 192.168.10.10, total=37, succ=28, failed=8
20:54:13: MGCP Packet received -
CRCX 55560 s0/ds1-0/1 SGCP 1.1
20:54:13: -- mgcp_parse_packet() - call mgcp_parse_header
- mgcp_parse_header()- Request Verb FOUND CRCX
- mgcp_parse_packet() - out mgcp_parse_header
- SUCCESS: mgcp_parse_packet()-MGCP Header parsing was OK
- mgcp_parse_parameter_lines(), code_str:: 78980, code_len:2, str:1640150312
- mgcp_parse_parameter_lines(str:C: 78980) -num_toks: 19
- mgcp_parse_parameter_lines() check NULL str(78980), in_ptr(C: 78980)
- mgcp_parse_parameter_lines() return Parse function in
- mgcp_parse_call_id(in_ptr: 78980)
- SUCCESS: mgcp_parse_call_id()-Call ID string(78980) parsing is OK
- mgcp_parse_parameter_lines(), code_str:: sendrecv, code_len:2, str:1640150312
- mgcp_parse_parameter_lines(str:M: sendrecv) -num_toks: 19
- mgcp_parse_parameter_lines() check NULL str(sendrecv), in_ptr(M: sendrecv)
- mgcp_parse_parameter_lines() return Parse function in
- mgcp_parse_conn_mode(in_ptr: sendrecv)
- mgcp_parse_conn_mode()- tmp_ptr:(sendrecv)
- mgcp_parse_conn_mode(match sendrecv sendrecv
- mgcp_parse_conn_mode(case MODE_SENDRECV)
- SUCCESS: Connection Mode parsing is OK
- mgcp_parse_parameter_lines(), code_str:: a:G.726-16, code_len:2,
- mgcp_parse_parameter_lines(str:L: a:G.726-16) -num_toks: 19
- mgcp_parse_parameter_lines() check NULL str(a:G.726-16), in_ptr(L:
- mgcp_parse_parameter_lines() return Parse function in mgcp_parm_rules_array[5]
- SUCCESS: CODEC strings parsing is OK- SUCCESS: Local Connection option
parsing is OK- mgcp_val_mandatory_parms()
20:54:13: - SUCCESS: mgcp_parse_packet()- END of Parsing
20:54:13: mgcp_search_call_by_endpt: endpt = s0/ds1-0/1, new_call = 1
20:54:13: slot=0,ds1=0,ds0=1
20:54:13: search endpoint - New call=1, callp 61C28130
20:54:13: callp: 61C28130, vdbptr: 0, state: 0
20:54:13: mgcp_remove_old_ack:
20:54:13: mgcp_idle_crcx: get capability
20:54:13: process_request_ev- callp 61C28130, voice_if 61C281A4
20:54:13: process_detect_ev- callp 61C28130, voice_if 61C281A4
process_signal_ev- callp 61C28130, voice_ifp 61C281A4
20:54:13: mgcp_process_quarantine_mode- callp 61C28130, voice_if 61C281A4
20:54:13: mgcp_process_quarantine_mode- new q mode: process=0, loop=0
20:54:13: mgcp_xlat_ccapi_error_code - ack_code_tab_index = 0,
20:54:13: No SDP connection info
20:54:13: mgcp_select_codec - LC option, num codec=1, 1st codec=5
20:54:13: mgcp_select_codec - num supprt codec=11
20:54:13: mgcp_select_codec - LC codec list only
20:54:13: codec index=0, bw=16000, codec=5
20:54:13: selected codec=5mgcp_get_pkt_period: voip_codec=2, pkt_period=0, call
adjust_packetization_period
mgcp_get_pkt_period: voip_codec=2, pkt_period=10, after calling
adjust_packetization_period
20:54:13: selected codec 5
20:54:13: IP Precedence=60
20:54:13: MGCP msg qos value=0mgcp_get_pkt_period: voip_codec=2, pkt_period=0,
call adjust_packetization_period
mgcp_get_pkt_period: voip_codec=2, pkt_period=10, after calling
adjust_packetization_period
mgcp_new_codec_bytes: voip_codec=2, pkt_period=10, codec_bytes=20
20:54:13: callp : 61C28AE8, state : 2, call ID : 40, event : 5, minor evt:
20:54:13: MGCPAPP state machine: state = 2, event = 5
20:54:13: mgcp_call_connect: call_id=40, ack will be sent later.
20:54:13: callp : 61C28AE8, new state : 3, call ID : 40
20:54:14: xlate_ccapi_ev - Protocol is SGCP, change pkg=2
20:54:14: MGCP Session Appl: ignore CCAPI event 22, callp 61C28130
20:54:14: xlate_ccapi_ev - Protocol is SGCP, change pkg=2
20:54:14: callp : 61C28130, state : 2, call ID : 39, event : 5, minor evt: 20
20:54:14: MGCPAPP state machine: state = 2, event = 5
20:54:14: callp : 61C28130, new state : 3, call ID : 39
20:54:14: xlate_ccapi_ev - Protocol is SGCP, change pkg=2
20:54:14: callp : 61C28130, state : 3, call ID : 39, event : 6, minor evt: 20
20:54:14: MGCPAPP state machine: state = 3, event = 6
20:54:14: call_id=39, mgcp_ignore_ccapi_ev: ignore 6 for state 3
20:54:14: callp : 61C28130, new state : 3, call ID : 39
20:54:14: MGCP voice mode event
20:54:14: xlate_ccapi_ev - Protocol is SGCP, change pkg=2
20:54:14: callp : 61C28130, state : 3, call ID : 39, event : 17, minor evt: 0
20:54:14: MGCPAPP state machine: state = 3, event = 17
20:54:14: mgcp_voice_mode_done(): callp 61C28130, major ev 17,
minor ev 0mgcp_start_ld_timer: timer already initialized
20:54:14: send_mgcp_create_ack
20:54:14: map_mgcp_error_code_to_string error_tab_index = 0, protocol version:
20:54:14: MGC stat - 1.13.89.3, total=37, succ=29, failed=8
20:54:14: Codec Cnt, 1, first codec 5
20:54:14: First Audio codec, 5, local encoding, 96
20:54:14: -- mgcp_build_packet()-
20:54:14: - mgcp_estimate_msg_buf_length() - 87 bytes needed for header
- mgcp_estimate_msg_buf_length() - 125 bytes needed after checking parameter lines
- mgcp_estimate_msg_buf_length() - 505 bytes needed after cheking SDP lines
20:54:14: --- mgcp_build_parameter_lines() ---
- SUCCESS: Conn ID string building is OK
- SUCCESS: Building MGCP Parameter lines is OK
- SUCCESS: building sdp owner id (o=) line
- SUCCESS: building sdp session name (s=) line
- SUCCESS: MGCP message building OK
- SUCCESS: END of building
20:54:14: send_mgcp_msg, MGCP Packet sent --->
o=- 78980 0 IN IP4 192.168.10.9
a=rtpmap:96 G.726-16/8000/1
20:54:14: enqueue_ack: voice_if=61C281A4, ackqhead=0, ackqtail=0,
ackp=61D753E8, msg=61D00010
mgcp_process_quarantine_after_ack:ack_code=200mgcp_delete_qb_evt_q:cleanup QB
20:54:14: callp : 61C28130, new state : 4, call ID : 39
Verifying MGCP Gateway Support for the Bind Command
To verify configuration, use the following commands.
SUMMARY STEPS
1.
show mgcp
2.
show ip socket
3.
show running-configuration
DETAILED STEPS
| |
Command
|
Purpose
|
Step 1
|
Router# show mgcp
|
Checks your configuration.
|
Step 2
|
Router# show ip socket
|
Displays IP socket information.
|
Step 3
|
Router# show running-configuration
|
Verifies bind functionality.
|
Configuration Examples for MGCP Gateway Support for the Bind Command
The following is partial output from the show running-configuration command indicating that bind is functional on receiving router 172.18.192.204. Updated output for MGCP binding is highlighted under the voice service VoIP indicator.
ip ftp source-interface Ethernet0
mgcp bind control source-interface FastEthernet0
mgcp bind media source-interface FastEthernet0
ip address 172.18.192.204 255.255.255.0
ip rsvp bandwidth 75000 100
Tip
•
See the "Additional References for MGCP and SGCP" section on page x for related documents, standards, and MIBs.
•
See "Glossary" for definitions of terms in this guide.
CCDE, CCENT, CCSI, Cisco Eos, Cisco Explorer, Cisco HealthPresence, Cisco IronPort, the Cisco logo, Cisco Nurse Connect, Cisco Pulse, Cisco SensorBase, Cisco StackPower, Cisco StadiumVision, Cisco TelePresence, Cisco TrustSec, Cisco Unified Computing System, Cisco WebEx, DCE, Flip Channels, Flip for Good, Flip Mino, Flipshare (Design), Flip Ultra, Flip Video, Flip Video (Design), Instant Broadband, and Welcome to the Human Network are trademarks; Changing the Way We Work, Live, Play, and Learn, Cisco Capital, Cisco Capital (Design), Cisco:Financed (Stylized), Cisco Store, Flip Gift Card, and One Million Acts of Green are service marks; and Access Registrar, Aironet, AllTouch, AsyncOS, Bringing the Meeting To You, Catalyst, CCDA, CCDP, CCIE, CCIP, CCNA, CCNP, CCSP, CCVP, Cisco, the Cisco Certified Internetwork Expert logo, Cisco IOS, Cisco Lumin, Cisco Nexus, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Cisco Unity, Collaboration Without Limitation, Continuum, EtherFast, EtherSwitch, Event Center, Explorer, Follow Me Browsing, GainMaker, iLYNX, IOS, iPhone, IronPort, the IronPort logo, Laser Link, LightStream, Linksys, MeetingPlace, MeetingPlace Chime Sound, MGX, Networkers, Networking Academy, PCNow, PIX, PowerKEY, PowerPanels, PowerTV, PowerTV (Design), PowerVu, Prisma, ProConnect, ROSA, SenderBase, SMARTnet, Spectrum Expert, StackWise, WebEx, and the WebEx logo are registered trademarks of Cisco and/or its affiliates in the United States and certain other countries.
All other trademarks mentioned in this document or website are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1002R)
Any Internet Protocol (IP) addresses used in this document are not intended to be actual addresses. Any examples, command display output, and figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses in illustrative content is unintentional and coincidental.
© 2007-2010 Cisco Systems, Inc. All rights reserved.