I manage a number of deployments that still feature ISDN extensively, so debug mgcp packet is something that I’m reading off IOS CLI on a fairly routine basis at the moment.
There are a lot of blog posts that cover reading MGCP debugs pretty well, but one thing that I struggled with for a while was being able to quickly interpret the debug parameters and what they stood for in each respective MGCP message. Often these are fairly intuitive, but sometimes a quick point of reference is needed.
I looked around on Cisco forums etc., and really there just isn’t anything that covers this well. Eventually I resorted to the RFC, and was pleasantly unsurprised that all the parameters were well tabulated and easily reference-able.
I’ve included the list below for reference, but as always it is best to go straight to RFC 3435 to get this information!
3.2.2 Parameter Lines
Parameter lines are composed of a parameter name, which in most cases is composed of one or two characters, followed by a colon, optional white space(s) and the parameter value. The parameters that can be present in commands are defined in the following table: ------------------------------------------------------------------ |Parameter name | Code | Parameter value | |----------------------|------|------------------------------------| |BearerInformation | B | See description (3.2.2.1). | |CallId | C | See description (3.2.2.2). | |Capabilities | A | See description (3.2.2.3). | |ConnectionId | I | See description (3.2.2.5). | |ConnectionMode | M | See description (3.2.2.6). | |ConnectionParameters | P | See description (3.2.2.7). | |DetectEvents | T | See description (3.2.2.8). | |DigitMap | D | A text encoding of a digit map. | |EventStates | ES | See description (3.2.2.9). | |LocalConnectionOptions| L | See description (3.2.2.10). | |MaxMGCPDatagram | MD | See description (3.2.2.11). | |NotifiedEntity | N | An identifier, in RFC 821 format, | | | | composed of an arbitrary string | | | | and of the domain name of the | | | | requesting entity, possibly com- | | | | pleted by a port number, as in: | | | | Call-agent@ca.example.net:5234 | | | | See also Section 3.2.1.3. | |ObservedEvents | O | See description (3.2.2.12). | |PackageList | PL | See description (3.2.2.13). | |QuarantineHandling | Q | See description (3.2.2.14). | |ReasonCode | E | A string with a 3 digit integer | | | | optionally followed by a set of | | | | arbitrary characters (3.2.2.15). | |RequestedEvents | R | See description (3.2.2.16). | |RequestedInfo | F | See description (3.2.2.17). | |RequestIdentifier | X | See description (3.2.2.18). | |ResponseAck | K | See description (3.2.2.19). | |RestartDelay | RD | A number of seconds, encoded as | | | | a decimal number. | |RestartMethod | RM | See description (3.2.2.20). | |SecondConnectionId | I2 | Connection Id. | |SecondEndpointId | Z2 | Endpoint Id. | |SignalRequests | S | See description (3.2.2.21). | |SpecificEndPointId | Z | An identifier, in RFC 821 format, | | | | composed of an arbitrary string, | | | | followed by an "@" followed by | | | | the domain name of the gateway to | | | | which this endpoint is attached. | | | | See also Section 3.2.1.3. | |RemoteConnection- | RC | Session Description. | | Descriptor | | | |LocalConnection- | LC | Session Description. | | Descriptor | | | ------------------------------------------------------------------ The parameters are not necessarily present in all commands. The following table provides the association between parameters and commands. The letter M stands for mandatory, O for optional and F for forbidden. Unless otherwise specified, a parameter MUST NOT be present more than once.
This table is great as I can simply look up the parameter code in my MGCP packet debug and do a quick interpretation. I also find this very handy when reading off MGCP Connection ID’s and other call-specific tracing that can be cross-referenced in SDL!
For example, in a simple AUEP (Audit Endpoint), we see:
*Jul 17 11:14:18.332: MGCP Packet received from 192.168.123.213:2427—>
AUEP 31 S0/SU2/DS1-0/1@RTR1.uc.lab MGCP 0.1
F: X, A, I
<—
What has remote side requested information on?
Firstly, the side has requested information in a comma-separated list:
|RequestedInfo | F |
The list contains the following:
|RequestIdentifier | X |
|Capabilities | A |
|ConnectionId | I |
Simple stuff.
#dontcalltac