Media Gateway Control Protocol (MGCP) © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 1 Agenda MGCP Software Architecture MGCP General Concepts and Overview MGCP Messages MGCP Command line parameters MGCP Basic Call Flows MGCP Configuration CCM Backhaul/Redundancy CallManager Express © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 2 Software Architecture Call Agent SGCP application CCAPI VTSP RTP SPI IP © Cisco Systems, Inc. All rights reserved. XCC TSP (SS7 ISUP) HTSP TDM driver DSPRM DSP VoIP Bootcamp Day 5 - 3 General Concepts • Defined in RFC 2705 • Master/Slave Protocol • The call control "intelligence" is outside the gateways and handled by external call control elements called Call Agents. Call Agent (CallManager) communicates with endpoints (Ports on Gateways) • MGCP is a text based protocol with plain-text commands sent over UDP port 2427 called Signaling Plane. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 4 General Concepts – Call Agents • The Call Control elements that play the Master role in MGCP are known as Call Agents. • CA provides “centralized” call intelligence. • A Call Manager controlling an MGCP gateway is an example of a Call Agent. • MGCP does not define a mechanism for synchronizing Call Agents. They need to have their own means of synchronizing. This function is achieved in Cisco’s Call Manager Clusters by the SDL layer. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 5 General Concepts - Endpoint Identifiers Endpoint identifiers have two components: • Domain name of the gateway that is managing the endpoint (case sensitive) • Local name within that gateway (case insensitive) e.g. AALN/S1/SU0/0@AV-VG200-2.cisco.com AALN= Analog Access Line eNdpoints S1/SU0/0 = Slot 1/SubUnit 0/Port 0 © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 6 Messages - MGCP Primitives End Point Configuration Create Connection Modify Connection Delete Connection Notification Request Notify Audit Endpoint Audit Connection Restart In Progress © Cisco Systems, Inc. All rights reserved. EPCF CRCX MDCX DLCX RQNT NTFY AUEP AUCX RSIP (CA EP) (CA EP) (CA EP) (CA EP) (CA EP) (CA EP) (CA EP) (CA EP) (CA EP) VoIP Bootcamp Day 5 - 7 Messages - Command Format <verb> <transID> <endpt> <protocol> <version> <0 or more parameter lines> <optional SDP (RFC 2327)> MDCX 229 S1/DS1-1/1@vnt-vg200-gw1.cisco.com MGCP 0.1 C: D0000000020000090000000080000003 I: E Endpoint Identifier X: 1 L: p:20, a:PCMU, s:off M: recvonly Transaction ID R: D/[0-9ABCD*#] Q: process,loop MGCP Command © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 8 MGCP Transaction ID MDCX 229 S1/DS1-1/1@vnt-vg200-gw1.cisco.com MGCP 0.1 C: D0000000020000090000000080000003 I: E X: 1 L: p:20, a:PCMU, s:off M: recvonly R: D/[0-9ABCD*#] Q: process,loop • Serves as a Sequence Number. • MGCP is UDP-based, so Transaction Ids are used to detect lost messages for retransmission. • Every MGCP Message must be acknowledged and the acknowledgement must have the same transaction ID © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 9 Components of an MGCP Message MDCX 229 S1/DS1-1/1@vnt-vg200-gw1.cisco.com MGCP 0.1 C: D0000000020000090000000080000003 I: E X: 1 L: p:20, a:PCMU, s:off M: recvonly R: D/[0-9ABCD*#] Q: process,loop Parameter Lines © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 10 MGCP Parameter Lines • Similar to ‘Information Elements’ in ISDN • Described as one or two ASCII characters followed by a colon, then the parameter data. • Parameter data format varies depending on the parameter. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 11 MGCP Parameter Lines Code A B C D E ES F I I2 K L LC M Parameter Name Capabilities BearerInformation CallId DigitMap ReasonCode EventStates RequestedInfo ConnectionId SecondConnectionId ResponseAck LocalConnectionOptions LocalConnection Descriptor Connection Mode © Cisco Systems, Inc. All rights reserved. Code N O P Q R RC RD RM S T X Z Z2 Parameter Name NotifiedEntity ObservedEvents ConnectionParameters QuarantineHandling RequestedEvents RemoteConnection Descriptor RestartDelay RestartMethod SignalRequests DetectEvents RequestIdentifier SpecificEndpointID Second Endpoint ID VoIP Bootcamp Day 5 - 12 CallId Parameter Line MDCX 229 S1/DS1-1/1@vnt-vg200-gw1.cisco.com MGCP 0.1 C: D0000000020000090000000080000003 I: E X: 1 L: p:20, a:PCMU, s:off M: recvonly R: D/[0-9ABCD*#] Q: process,loop • A globally unique hexadecimal string of up to 32 characters that identifies the call that is active on an endpoint • Useful for correlating a CCM trace with a debug on a gateway. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 13 ConnectionId Parameter Line MDCX 229 S1/DS1-1/1@vnt-vg200-gw1.cisco.com MGCP 0.1 C: D0000000020000090000000080000003 I: E X: 1 L: p:20, a:PCMU, s:off M: recvonly R: D/[0-9ABCD*#] Q: process,loop • A hex string that uniquely identifies the call on a single endpoint. • Typically increments for each call on an endpoint. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 14 RequestIdentifier Parameter Line MDCX 229 S1/DS1-1/1@vnt-vg200-gw1.cisco.com MGCP 0.1 C: D0000000020000090000000080000003 I: E X: 1 L: p:20, a:PCMU, s:off M: recvonly R: D/[0-9ABCD*#] Q: process,loop • A hex string of up to 32 characters used to correlate this requests with the notifications it triggers • Responding NTFY message with RequestID “1” is correlated to above request © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 15 LocalConnectionOptions Parameter Line MDCX 229 S1/DS1-1/1@vnt-vg200-gw1.cisco.com MGCP 0.1 C: D0000000020000090000000080000003 I: E X: 1 L: p:20, a:PCMU, s:off M: recvonly R: D/[0-9ABCD*#] Q: process,loop • Specifies the operational parameters that CallManager suggests to the gateway. p: Packetization Period (20 ms) a: Preferred Compression Algorithm (Codec). PCMU = G.711µ-law s: Silence Suppression (VAD) © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 16 ConnectionMode Parameter Line MDCX 229 S1/DS1-1/1@vnt-vg200-gw1.cisco.com MGCP 0.1 C: D0000000020000090000000080000003 I: E X: 1 L: p:20, a:PCMU, s:off M: recvonly R: D/[0-9ABCD*#] Q: process,loop • Tells the gateway what to do with the media stream(s). • In this case, the gateway is told to only receive packets and not send packets. • Valid values are: sendonly, recvonly, sendrecv, confrnce, inactive, loopback, cottest, netwloop, netwtest, data. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 17 RequestedEvents Parameter Line MDCX 229 S1/DS1-1/1@vnt-vg200-gw1.cisco.com MGCP 0.1 C: D0000000020000090000000080000003 I: E X: 1 L: p:20, a:PCMU, s:off M: recvonly R: D/[0-9ABCD*#] Q: process,loop • Denotes a list of events that the gateway should notify CallManager of, such as off-hook or on-hook transitions. Event names are composed of an optional package name, separated from the name of the event by a slash (/). The event name can optionally be followed by an at sign (@) and the identifier of a connection on which the event should be observed. • Each event can be qualified by a requested action or list of actions. The actions, when specified, are encoded as a list of keywords, enclosed in parentheses and separated by commas. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 18 RequestedEvents Parameter Line • The codes for the various actions are as follows: N – Notify immediately I – Ignore A – Accumulate K – Keep signal(s) active D – Treat according to digit map E – Embedded notification request S – Swap • When no action is specified, the default action is to notify the event. This means that, for example, ft and ft(N) are equivalent. Events that are not listed are ignored. • The requested list is encoded on a single line, with event/action groups separated by commas. For example: R: hu(N), hf(S,N) © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 19 Messages – SDP Keys Messages – SDP Keys (RFC 2327) Session description v o s i u e p c b z k a = = = =* =* =* =* =* =* =* =* =* (protocol version) (owner/creator and session identifier). (session name) (session information) (URI of description) (email address) (phone number) (connection information - not required if included in all media) (bandwidth information) (time zone adjustments) (encryption key) (zero or more session attribute lines) * Optional items © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 21 Messages – SDP Keys (RFC 2327) Time description t = (time the session is active) r =* (zero or more repeat times) Media description m = (media name and transport address) I =* (media title) c =* (connection information - optional if included at session-level) b =* (bandwidth information) k =* (encryption key) a =* (zero or more media attribute lines) * Optional items © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 22 MGCP Packages • An MGCP Package is a grouping of the events and signals supported by a particular type of MGCP endpoint. • Each package name is assigned one or more letters (i.e. D, M, L, MS). • Names of packages should not be confused with names of parameter lines (i.e. M is the name of the ConnectionMode parameter line and is also the name of the MF package. • Most packages are defined in RFC 2705, however the T1 CAS packages are defined in RFC 3064. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 23 MGCP Packages Package Symbol Package Name G Generic media package D DTMF package M MF package T Trunk package L Line package H Handset emulation package R RTP package DT DTMF trunk package MS MF trunk package © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 24 MGCP Packages For a complete list of all the events in each package refer to RFC 2705 and RFC 3064 or Chapter 6 of “Troubleshooting Cisco IP Telephony” © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 28 MGCP Response Headers • All MGCP messages must be acknowledged. • If a message is not acknowledged in a timely fashion, it is retransmitted up to three times. • Acknowledgements are called response headers. • A response header is composed of a response line, optionally followed by headers that contain additional parameters. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 29 Example MGCP Response Header 200 1203 OK Comment Transaction ID Response Code © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 30 MGCP Response Codes • The response line starts with a three-digit response code. The code is followed by the transaction identifier and an optional comment. • The response codes are divided into four ranges: –100 to 199 indicates a provisional response –200 to 299 indicates a successful completion –400 to 499 indicates a transient error –500 to 599 indicates a permanent error • Transient errors typically indicate a problem with a single call or a short-lived problem. A permanent error indicates a problem that likely requires operator intervention to resolve, such as a circuit going out of service or a hardware failure. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 31 MGCP Response Codes Response Code 100 Definition The transaction is currently being executed. An actual completion message follows later. 200 250 400 The requested transaction was executed normally. The connection was deleted. The transaction could not be executed due to a transient error. 401 The phone is already off-hook. 402 The phone is already on-hook. 403 The transaction could not be executed because the endpoint does not have sufficient resources at this time. 404 Insufficient bandwidth at this time. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 32 MGCP Response Codes Response Code Definition 500 The transaction could not be executed because the endpoint is unknown. 501 The transaction could not be executed because the endpoint is not ready. 502 The transaction could not be executed because the endpoint does not have sufficient resources. The transaction could not be executed because a protocol error was detected. 510 511 The transaction could not be executed because the command contained an unrecognized extension. 512 The transaction could not be executed because the gateway is not equipped to detect one of the requested events. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 33 MGCP Response Codes Response Code Definition 513 The transaction could not be executed because the gateway is not equipped to generate one of the requested signals. 514 The transaction could not be executed because the gateway cannot send the specified announcement. 515 The transaction refers to an incorrect connection-id (it might already have been deleted). 516 The transaction refers to an unknown call-id. 517 Unsupported or invalid mode. 518 Unsupported or unknown package. 519 The endpoint does not have a digit map. 520 The transaction could not be executed because the endpoint is "restarting." © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 34 MGCP Response Codes Response Code 521 522 Definition The endpoint was redirected to another call agent. No such event or signal. 523 Unknown action or illegal combination of actions. 524 Internal inconsistency in LocalConnectionOptions. 525 Unknown extension in LocalConnectionOptions. 526 Insufficient bandwidth. 527 Missing RemoteConnectionDescriptor. 528 529 530 Incompatible protocol version. Internal hardware failure. CAS protocol error. 531 Failure of a grouping of trunks (for example, facility failure). © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 35 Registration and Endpoint Initialization MGCP Gateway Call Manager * TCP Socket Open Open completes RSIP/Restart ACK with EP info Simple ACK “200 <n> OK” © Cisco Systems, Inc. All rights reserved. Simple ACK “200 <n> OK” Audit Endpt (AUEP) (one per endpoint) Request Notify (RQNT) “RQNT R: L/hd” (one per endpoint) VoIP Bootcamp Day 5 - 36 Sample FXS Call Flow: Dialing & Connect MGCP Gateway Call Manager (1) {Offhook:} “NTFY O: L/hd” (3) {Digit:} (2) “RQNT R:L/hu,D/[0-9*#] S:dl” {dial-tone, send digit map} “NTFY O: 4” (4) :RQNT R:L/hu, D/[0-9*#] S:” (5) {Digit(s)...} “NTFY O: 5” Ack with local RTP addr/port © Cisco Systems, Inc. All rights reserved. {Turn off dial-tone} . . (6) CRCX {create connection} Turns on ring tone. VoIP Bootcamp Day 5 - 37 IOS Configuration Statements • MGCP Starts the MGCP process • mgcp call-agent <primary CM ip address> Primary CM IP address or DNS name • mgcp dtmf-relay codec all mode out-of-band Enable DTMF relay • ccm-manager MGCP Initializes the Viola process (TCP Socket & MGCP Link monitor) • ccm-manager redundant-host <1st backup> <2nd backup> Specifies the IP address or DNS name of first and second call manager backup systems. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 38 IOS Configuration Statements (Cont’d) ccm-manager switchback <mode> • Controls how the gateway attempts to return management to the next higher priority call manager in list. (CM systems must have an open TCP socket to be considered viable) Configuration Options: • Never -- MGCP GW ignores return of a higher priority CM and does not switchback • Graceful (default) --Switches back after last active call ends. • Immediate --Switches back as soon as TCP link to primary is established. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 39 IOS Configuration Statements (Cont’d) More Switchback Options: • ccm-manager switchback schedule-time <hh:mm> Allows specific time-of-day switchback. (If specified time earlier than current time, waits until next day.) • ccm-manager switchback uptime-delay <1-1440> Allows user to set a switchback delay timer in minutes Switchover can be forced from enable mode: 2600-1a# ccm-manager switchover-to-backup © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 40 IOS MGCP Configuration - Sample Required MGCP statements: mgcp <== Starts the MGCP process mgcp call-agent <ip address #1> <== Primary Call Manager DNS name or IP address mgcp dtmf-relay codec all mode out-of-band <== Enable DTMF relay Required CCM-Manager statements: ccm-manager mgcp For Redundant configurations: (First backup CM) ccm-manager redundant-host <ip address #2> (Second backup CM) <ip addr #3> Required Dial-Peers: dial-peer voice xxx pots application MGCPAPP or service MGCPAPP (New) port x/x/x © Cisco Systems, Inc. All rights reserved. <== Required! VoIP Bootcamp Day 5 - 41 IOS MGCP Configuration – PRI Backhaul Sample Additional Configuration on controller and serial line characteristics: controller T1 1/0 pri-group timeslots 1-24 service mgcp ! interface serial 1/0:23 isdn switch-type primary-ni isdn bind-l3 ccm-manager © Cisco Systems, Inc. All rights reserved. <=== Specify MGCP controlled channels <=== Activate Q931 backhaul mode VoIP Bootcamp Day 5 - 42 Do not use these commands • For MGCP managed endpoints (those with “application MGCPAPP” in the dial-peer statement), all dial-plan related configuration elements are controlled by Call ManagerDon’t configure: • destination-pattern • session target • number expansion • connection PLAR/tie-line/trunk (voice-port) • Codec © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 43 CallManager MGCP Configuration - 1 © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 44 CallManager MGCP Configuration - 2 In the upper right, select “Add a New Gateway” © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 45 CallManager MGCP Configuration - 3 Select the gateway from the pull down © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 46 CallManager MGCP Configuration - 4 1. Enter MGCP Domain Name (Need to match hostname and ip domain-name) 2. Description if necessary. 3. Select Module Type and Click “Insert” © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 47 CallManager MGCP Configuration - 5 1. Select the VIC cards used in the network module. 2. Select Module Type and Click “Update”. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 48 CallManager MGCP Configuration - 6 Select the endpoints to configure them © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 49 CallManager MGCP Configuration - 7 © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 50 CallManager MGCP Configuration - 9 © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 51 IOS MGCP Config Server Automatically download your MGCP gateway configuration from CallManager/TFTP server: Router(config)# ccm-manager config server 10.0.0.1 Router(config)# ccm-manager config * But you still need to setup MGCP in the CallManager first. © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 52 IOS MGCP Config Server – auto. download Loading Router.cnf.xml from 10.0.0.1 (via Ethernet0/0): ! [OK - 4110 bytes] This package type is not the default package type. Both ports are out of service No voice peer with tag = 999300 *Jul 11 03:24:57: %LINK-3-UPDOWN: Interface Foreign Exchange Station 3/0/0, chan ged state to Administrative Shutdown *Jul 11 03:24:57: %LINK-3-UPDOWN: Interface Foreign Exchange Station 3/0/1, chan ged state to Administrative ShutdownBoth ports are set to the new value Both ports are set to the new value Both ports are in service Both ports are in service *Jul 11 03:24:59: %LINK-3-UPDOWN: Interface Foreign Exchange Station 3/0/1, chan ged state to up *Jul 11 03:24:59: %LINK-3-UPDOWN: Interface Foreign Exchange Station 3/0/0, chan ged state to upBoth ports are in service Configuration done!!! Building configuration... [OK] © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 53 IOS MGCP Config Server – Result ! ccm-manager mgcp ccm-manager music-on-hold ccm-manager config server 10.0.0.1 ccm-manager config ! mgcp mgcp call-agent 10.0.0.2 2427 service-type mgcp version 0.1 mgcp rtp unreachable timeout 1000 action notify mgcp package-capability rtp-package mgcp package-capability sst-package no mgcp package-capability fxr-package no mgcp timer receive-rtcp mgcp sdp simple mgcp fax t38 inhibit mgcp rtp payload-type g726r16 static ! mgcp profile default ! ! dial-peer voice 999300 pots application mgcpapp port 3/0/0 ! © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 54 Backhaul Link/Redundant Link © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 55 CallManager Backhaul • MGCP protocol does not define mechanism for synchronization with multiple CallAgents • CCM Backhaul is Cisco’s proprietary approach • Provide CallAgent Redundancy and Session Management (i.e.. Calls reservation) © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 56 CCM Backhaul Links • UDP connection for MGCP messaging • TCP Redundancy links • PRI Backhaul utilizes the Redundancy link to the Active CM to transport ISDN Layer 3 signaling messages CM1 (active) CM2 (backup) CM3 Backhaul channel IP MGCP channel TCP link for connectivity to a Backup CM MGCP Gateway © Cisco Systems, Inc. All rights reserved. MGCP over UDP Redundant/Backhaul link over TCP VoIP Bootcamp Day 5 - 57 Backhaul Links Initialization sequence BH (ISDN) MGCP GATEWAY MGCP RSIP (RST) BH (ISDN) CCM RSIP ACK AUEP (for each B-channel) UDP 2427 AUEP ACK AUCX (to obtain CRV of any existing connection) AUCX ACK TCP Open ESTABLISH_REQ ESTABLISH_REQ [re-transmit until Backhaul is ready on GW] TCP 2428 ESTABLISH_CFM STATUS_ENQ(crv) [if there are existing calls] Call STATUS © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 58 MGCP Keep-alive • The Empty NTFY keep-alive mechanism is sent over the UDP channel, and a failure by the CM to respond to the NTFYs (after 30 seconds) will result in a switchover *Feb 8 14:42:05.738: MGCP Packet sent to 10.0.0.1:2427---> NTFY 569372529 *@Router-1a MGCP 0.1 X: 0 O: <--*Feb 8 14:42:05.742: MGCP Packet received from 10.0.0.1:2427---> 200 569372529 <--© Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 59 TCP Redundant Links • Gateway open TCP redundant links to ACTIVE CM and all STANDBY CMs. • The gateway can detect if this TCP link has gone down and initiate switchover to the Backup CM without waiting for the application-level keep-alive to timeout © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 60 Backhaul/Redundant Link Initialization Router-1a#debug ccm-manager backhaul ? events Call Manager backhaul events packets Call Manager backhaul packets Router-1a#debug ccm-manager backhaul packets Call Manager backhaul packets debugging is on Router-1a#debug ccm-manager backhaul events Call Manager backhaul events debugging is on Router-1a# *Feb 8 14:48:47.926: cmbh_init_link_record: Allocated link record with address 64631C08 for 10.0.0.1. *Feb 8 14:48:47.926: cmbh_open_tcp_link: Opening TCP link with Rem IP 10.0.0.1, Local IP 10.1.0.1, port 2428 *Feb 8 14:48:47.930: cmbh_tcp_open_ind: TCP open succeeded for 10.0.0.1, calling callback. *Feb 8 14:48:48.106: cmbh_rcv_callback: <-- Receiving backhaul msg for Se1/0:23 : | bk_msg_type = ESTABLISH_REQ | bk_chan_id (slot:port) = 1:0 | Q.931 length = 0 *Feb 8 14:48:48.114: cmbrl_send_pak: --> Sending backhauled msg for Se1/0:23 : | bk_msg_type = ESTABLISH_CFM | bk_chan_id (slot:port) = 1:0 | Q.931 length = 0 Router-1a# © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 61 CCM Failover • Switchover on either Backhaul Link failure or MGCP Keep-alive timeout • On switchover CallManager: – Will disconnect all calls in TRANSIENT_STATE – Calls that are in MGCP_ACTIVE state, and RTP send-recv state are considered connected – Active, CONNECTED calls are preserved © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 62 CCM Failover with PRI Backhaul • CCM encode Q.931 Call Reference Value (CRV) in the MGCP CALL ID parameter • The MGCP Call ID (“C” parameter) is allocated by the CCM when it issues an initial CRCX command • Upon switchover, the CCM will retrieve the Call IDs of any active B-channel connections using the AUEP and AUCX commands • It will then be able to get the current signaling status of these calls via the Q.931 STATUS_ENQ message, using the CRV extracted from the MGCP Call ID NOTE: Normal MGCP practice is for all call legs in a call to share the same Call ID; CCM breaks from convention and allocates a new Call ID for each call leg in the call © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 63 Troubleshooting MGCP © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 64 Debugging and Show commands Useful debug command • debug mgcp all|errors|events|packets|parser detailed output of “debug mgcp packet” with explanations can be found here: http://www-tac.cisco.com/solutions/cactus/mgcp_call_sequence_decodes.html • debug ccm-manager Useful show commands • Show ccm-manager – shows if the gateway is registered and also shows backup CallManager servers • Show mgcp endpoint – shows voice ports for use with MGCP © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 65 show ccm-manager Total number of host: 3 Priority Status Host ============================================================ Primary Registered 172.20.71.30 First backup Backup ready 172.20.71.26 Second backup Idle 172.20.71.47 Current active Call Manager: Current backup Call Manager: Redundant link port: Failover Interval: Keepalive Interval: Last keepalive check: Last MGCP traffic time: Last switchover time: Switchback mode: © Cisco Systems, Inc. All rights reserved. 172.20.71.30 172.20.71.26 2428 30 seconds 15 seconds 00:00:00 00:00:32 None Immediate VoIP Bootcamp Day 5 - 66 show mgcp MGCP Admin State ACTIVE, Oper State ACTIVE - Cause Code NONE MGCP call-agent: 172.20.71.30 Initial protocol service is MGCP MGCP block-newcalls DISABLED MGCP dtmf-relay codec all mode out-of-band MGCP modem passthru disabled MGCP request timeout 500, MGCP request retries 3 MGCP gateway port: 2427, MGCP maximum waiting delay 3000 MGCP restart delay 0, MGCP vad DISABLED MGCP simple-sdp ENABLED, MGCP cisco fgdos DISABLED MGCP codec type g711ulaw, MGCP packetization period 20 MGCP JB threshold lwm 30, MGCP JB threshold hwm 150 MGCP LAT threshold lmw 150, MGCP LAT threshold hwm 300 MGCP PL threshold lwm 1000, MGCP PL threshold hwm 10000 MGCP playout mode is adaptive 60, 4, 200 in msec MGCP IP precedence 3, MGCP default package: line-package MGCP supported packages: gm-package dtmf-package trunk-package line-package hs-package rtp-package © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 67 Show mgcp connection Endpoint Call_ID(C) Conn_ID(I) (P)ort (M)ode (S)tate (C)odec (E)vent[SIFL] (R)esult[EA] 1. S0/DS1-1/5 C=F123AB,5,6 I=0x3 P=16506,16602 M=3 S=4 C=1 E=2,0,0,2 R=0,0 2. S0/DS1-1/6 C=F123AB,7,8 I=0x4 P=16602,16506 M=3 S=4 C=1 E=0,0,0,0 R=0,0 © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 68 Show mgcp statistics UDP pkts rx 18, tx 30 Unrecognized rx pkts 0, MGCP message parsing errors 0 Duplicate MGCP ack tx 0, Invalid versions count 0 CreateConn rx 9, successful 9, failed 0 DeleteConn rx 4, successful 4, failed 0 ModifyConn rx 4, successful 4, failed 0 DeleteConn tx 1, successful 1, failed 0 NotifyRequest rx 0, successful 0, failed 0 AuditConnection rx 0, successful 0, failed 0 AuditEndpoint rx 1, successful 1, failed 0 RestartInProgress tx 1, successful 1, failed 0 Notify tx 1, successful 1, failed 0 ACK tx 17, NACK tx 0 ACK rx 0, NACK rx 0 IP address based Call Agents statistics IP address 1.13.89.3, Total msg rx 18, successful 18, failed 0 © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 69 show mgcp endpoint aaln/S0/SU0/0@3600-1a Or T1/0 T1/1 T1/2 T1/3 © Cisco Systems, Inc. All rights reserved. ds0-group ds0-group ds0-group ds0-group 0 0 0 0 timeslots timeslots timeslots timeslots 1-24 1-24 1-24 1-24 VoIP Bootcamp Day 5 - 70 Call Debugs (1) Here is a call from a setup as follows: Phone---FXS---3640R---MGCP-----CCM----IP Phone(1001) The FXS port is registered to the CCM as an endpoint. CCM IP address is 171.69.104.54 The 3640R is 172.16.13.41 FXS port 1/0/0 MGCP Decoding Reference http://www-tac.cisco.com/solutions/cactus/mgcp_call_sequence_decodes.html © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 71 Call Debugs (2) 3640-5#sh log Syslog logging: enabled (0 messages dropped, 1 messages rate-limited, 0 flushes, 0 overruns, xml disabled) Console logging: level debugging, 280 messages logged, xml disabled Monitor logging: level debugging, 109 messages logged, xml disabled Buffer logging: level debugging, 69 messages logged, xml disabled Logging Exception size (4096 bytes) Count and timestamp logging messages: disabled Trap logging: level informational, 39 message lines logged Log Buffer (10000000 bytes): The FXS port goes off hook and notifies the CallAgent of the status through observed event. *Mar 1 02:16:29.399: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:29.399: NTFY 186 aaln/S1/SU0/0@3640-5 MGCP 0.1 X: 1b O: L/hd <--*Mar 1 02:16:29.399: MGCP Packet received from 171.69.104.54200 186 © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 72 Call Debugs (3) The CallAgent directs the port to provide the dialtone and requests to be notified if there is any change of events i.e. hangup of port or digits recvd. *Mar 1 02:16:29.411: MGCP Packet received from 171.69.104.54RQNT 40 AALN/S1/SU0/0@3640-5 MGCP 0.1 X: 1c R: L/hu, D/[0-9ABCD*#] S: L/dl Q: process,loop *Mar 1 02:16:29.419: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:29.419: 200 40 OK <--The FXS port (endpoint) notifies the CA about the digits that it receives *Mar 1 02:16:33.595: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:33.595: NTFY 187 AALN/S1/SU0/0@3640-5 MGCP 0.1 X: 1c O: D/1 <--*Mar 1 02:16:33.599: MGCP Packet received from 171.69.104.54200 187 © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 73 Call Debugs (4) *Mar 1 02:16:33.603: MGCP Packet received from 171.69.104.54RQNT 41 AALN/S1/SU0/0@3640-5 MGCP 0.1 X: 1d R: L/hu, D/[0-9ABCD*#], L/hf S: Q: process,loop *Mar 1 02:16:33.607: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:33.607: 200 41 OK <--*Mar 1 02:16:35.655: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:35.655: NTFY 188 AALN/S1/SU0/0@3640-5 MGCP 0.1 X: 1d O: D/0 <--*Mar 1 02:16:35.659: MGCP Packet received from 171.69.104.54200 188 *Mar 1 02:16:37.275: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:37.275: NTFY 189 AALN/S1/SU0/0@3640-5 MGCP 0.1 X: 1d O: D/0 <--*Mar 1 02:16:37.279: MGCP Packet received from 171.69.104.54200 189 *Mar 1 02:16:38.815: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:38.815: NTFY 190 AALN/S1/SU0/0@3640-5 MGCP 0.1 X: 1d O: D/1 <--*Mar 1 02:16:38.819: MGCP Packet received from 171.69.104.54200 190 © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 74 Call Debugs (5) *Mar 1 02:16:38.839: MGCP Packet received from 171.69.104.54CRCX 42 AALN/S1/SU0/0@3640-5 MGCP 0.1 C: A00000000200001d X: 1e M: inactive R: L/hu Q: process,loop *Mar 1 02:16:38.851: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:38.851: 200 42 OK I: 4 v=0 c=IN IP4 172.16.13.41 m=audio 19156 RTP/AVP 0 8 99 101 102 2 15 103 4 104 105 106 107 18 100 a=rtpmap:99 G.729a/8000 a=rtpmap:101 G.726-16/8000 a=rtpmap:102 G.726-24/8000 a=rtpmap:103 G.723.1-H/8000 a=rtpmap:104 G.723.1-L/8000 a=rtpmap:105 G.729b/8000 a=rtpmap:106 G.723.1a-H/8000 a=rtpmap:107 G.723.1a-L/8000 a=rtpmap:100 X-NSE/8000 a=fmtp:100 200-202 a=X-sqn:0 a=X-cap: 1 audio RTP/AVP 100 a=X-cpar: a=rtpmap:100 X-NSE/8000 a=X-cpar: a=fmtp:100 200-202 a=X-cap: 2 image udptl t38 <--© Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 75 Call Debugs (6) The CA directs the IP Phone to start playing ringbacks. *Mar 1 02:16:38.855: MGCP Packet received from 171.69.104.54RQNT 43 AALN/S1/SU0/0@3640-5 MGCP 0.1 X: 1f R: L/hu S: G/rt Q: process,loop *Mar 1 02:16:38.859: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:38.859: 200 43 OK At this time the call is sent to the IP Phone… Now the call is answered. <--*Mar 1 02:16:46.159: MGCP Packet received from 171.69.104.54MDCX 44 AALN/S1/SU0/0@3640-5 MGCP 0.1 C: A00000000200001d I: 4 X: 20 L: p:20, a:PCMU, s:off M: recvonly R: L/hu Q: process,loop *Mar 1 02:16:46.167: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:46.167: 200 44 OK <--*Mar 1 02:16:46.171: MGCP Packet received from 171.69.104.54RQNT 45 AALN/S1/SU0/0@3640-5 MGCP 0.1 X: 21 R: L/hu, D/[0-9ABCD*#], L/hf S: Q: process,loop © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 76 Call Debugs (7) *Mar 1 02:16:46.175: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:46.175: 200 45 OK <--Note that media is cut in both directions. *Mar 1 02:16:46.179: MGCP Packet received from 171.69.104.54MDCX 46 AALN/S1/SU0/0@3640-5 MGCP 0.1 C: A00000000200001d I: 4 X: 22 L: p:20, a:PCMU, s:off M: sendrecv R: L/hu, L/hf, D/[0-9ABCD*#] S: Q: process,loop v=0 o=- 4 0 IN EPN AALN/S1/SU0/0@3640-5 s=Cisco SDP 0 t=0 0 c=IN IP4 10.17.179.33 m=audio 28390 RTP/AVP 96 a=rtpmap:96 PCMU *Mar 1 02:16:46.187: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:46.191: 200 46 OK <--© Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 77 Call Debugs (8) After about 12 seconds, the called party on the IP Phone drops the call. *Mar 1 02:16:58.355: MGCP Packet received from 171.69.104.54MDCX 47 AALN/S1/SU0/0@3640-5 MGCP 0.1 C: A00000000200001d I: 4 X: 23 M: recvonly R: L/hu Q: process,loop *Mar 1 02:16:58.359: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:58.359: 200 47 OK <--*Mar 1 02:16:58.379: MGCP Packet received from 171.69.104.54DLCX 48 AALN/S1/SU0/0@3640-5 MGCP 0.1 C: A00000000200001d I: 4 X: 24 R: L/hu S: Q: process,loop © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 78 Call Debugs (9) *Mar 1 02:16:58.383: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:16:58.383: 250 48 OK P: PS=608, OS=97280, PR=604, OR=96640, PL=0, JI=64, LA=0 <--*Mar 1 02:17:01.403: MGCP Packet received from 171.69.104.54RQNT 49 AALN/S1/SU0/0@3640-5 MGCP 0.1 X: 25 R: L/hu, D/[0-9ABCD*#] S: L/dl Q: process,loop Since this call was made from an FXS phone the calling party hears a dialtone *Mar 1 02:17:01.411: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:17:01.411: 200 49 OK <--*Mar 1 02:17:03.135: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 79 Call Debugs (10) *Mar 1 02:17:03.135: NTFY 191 AALN/S1/SU0/0@3640-5 MGCP 0.1 X: 25 O: L/hu <--*Mar 1 02:17:03.139: MGCP Packet received from 171.69.104.54200 191 *Mar 1 02:17:03.143: MGCP Packet received from 171.69.104.54RQNT 50 AALN/S1/SU0/0@3640-5 MGCP 0.1 X: 26 R: L/hd S: Q: process,loop *Mar 1 02:17:03.147: send_mgcp_msg, MGCP Packet sent to 171.69.104.54 ---> *Mar 1 02:17:03.147: 200 50 OK <--3640-5# © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 80 © Cisco Systems, Inc. All rights reserved. VoIP Bootcamp Day 5 - 81