diff options
Diffstat (limited to 'doc/rfc/rfc3064.txt')
-rw-r--r-- | doc/rfc/rfc3064.txt | 3139 |
1 files changed, 3139 insertions, 0 deletions
diff --git a/doc/rfc/rfc3064.txt b/doc/rfc/rfc3064.txt new file mode 100644 index 0000000..467d99d --- /dev/null +++ b/doc/rfc/rfc3064.txt @@ -0,0 +1,3139 @@ + + + + + + +Network Working Group B. Foster +Request for Comments: 3064 Cisco Systems +Category: Informational February 2001 + + + MGCP CAS Packages + +Status of this Memo + + This memo provides information for the Internet community. It does + not specify an Internet standard of any kind. Distribution of this + memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2001). All Rights Reserved. + +Abstract + + This document contains a collection of media gateway Channel + Associated Signaling (CAS) packages for R1 CAS, North American CAS, + CAS PBX interconnect as well as basic FXO support. Included are six + packages. The "MS" package covers MF single stage dialing trunks. + This includes wink start and immediate start PBX DID/DOD trunks as + well as basic R1 and Feature Group D (FGD) Terminating protocol [3]. + The "DT "package covers immediate start and basic DTMF and dial-pulse + trunks and the "BL" package covers the interface to a basic PBX + (digital or FXS interface). In addition to the Terminating protocol, + there are three other FGD protocols described in [3]. These include + EAIN and EANA which is covered by the enclosed "MD" package and the + Operator Service Signaling protocol which is handled by the "MO" + package. Support for basic FXO interconnect is provided by "DO" + package. + +Conventions used in this document + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC-2119. + +IESG Note: + + This document is being published for the information of the + community. It describes a protocol that is currently being deployed + in a number of products. Implementers should be aware of + developments in the IETF Megaco Working Group and ITU SG16 who are + currently working on a potential successor to this protocol. + + + + +Foster Informational [Page 1] + +RFC 3064 MGCP CAS Packages February 2001 + + +Table of Contents + + 1.0.Introduction ................................................ 3 + 1.1. Functional Partitioning .................................... 3 + 1.2. CAS Trunk Types ............................................ 4 + 1.2.1. "MS" Package ............................................. 5 + 1.2.2. "DT" Package ............................................. 5 + 1.2.3. "BL" Package ............................................. 6 + 1.2.4. "DO" Package ............................................. 6 + 1.2.5. "MD" Package ............................................. 6 + 1.2.6. "MO" Package ............................................. 7 + 2.0. Event Packages ............................................. 7 + 2.1. Events and Signals for the "MS" package .................... 9 + 2.2. Events and Signals for the "DT" package .................... 10 + 2.3. Events and Signals for the "BL" package (Basic PBX) ........ 10 + 2.4. Events and Signals for the "DO" package .................... 11 + 2.5. Events and Signals for the "MD" package .................... 12 + 2.6. Events and Signals for the "MO" package .................... 13 + 2.7. Event and Signal Descriptions .............................. 13 + 3.0. Hook-State Signals and Events .............................. 23 + 3.1. Overview of Approach ....................................... 23 + 3.2. Suspend/Resume Processing .................................. 23 + 3.3. Control over Disconnect for E911 ........................... 24 + 3.3. Release and Release Complete ............................... 24 + 3.4. Blocking CAS Trunks ........................................ 26 + 3.5. Summary of Hook-State Events ............................... 26 + 4.0. Glare Handling ............................................. 27 + 4.1. Glare on MF Bi-directional Wink-start Trunks ............... 27 + 4.2. Glare Handling - Basic PBX Trunks .......................... 27 + 5.0. Example Call Flows ......................................... 28 + 5.1. PBX to PBX ("MS", "DT, and "BL" packages)................... 28 + 5.1.1. Call Setup Flows ......................................... 28 + 5.1.2. Call Tear-Down ........................................... 34 + 5.1.2.1. Origination End Initiates the Release .................. 35 + 5.1.2.2. Termination End Initiates the Release .................. 38 + 5.2. Example Call Flows - "DO" package .......................... 40 + 5.2.1. Call Setup Flows ......................................... 40 + 5.2.2. Call Tear-Down ........................................... 42 + 5.3. Example Call Setup - "MD" Package .......................... 44 + 5.4. Example Call Setup - "MO" Package .......................... 51 + Acknowledgements ................................................ 54 + References ...................................................... 55 + Author's Address ................................................ 55 + Full Copyright Statement ........................................ 56 + + + + + + + +Foster Informational [Page 2] + +RFC 3064 MGCP CAS Packages February 2001 + + +1.0.Introduction + +1.1. Functional Partitioning + + There are a number of different possible approaches for partitioning + the functional responsibility between the Call Agent and the Media + Gateway: + + * The Call Agent takes all of the responsibility for the CAS state + machine giving the media gateway detailed commands + + * The media gateway contains the CAS state machine and provides an + abstract interface to the Call Agent + + Timing requirements of CAS protocols often involve reacting within + time intervals measured in tens of milliseconds which makes direct + control of timing impossible. The approach used here is to allow the + media gateway to handle low level CAS protocol and timing details + where at all possible and have the Call Agent involved only whenever + higher level processing is required. + + Taking this approach, the ideal situation would be to allow the Call + Agent to treat as many CAS protocols in a similar way, leaving the + details to the media gateway. Example: for an incoming MF trunk that + involves a single incoming digit string, the Call Agent should not + care whether this is a wink start trunk or an immediate start trunk + (media gateway should not have to provide the wink-start signal). + + Some goals in partitioning responsibility between the media gateway + and media gateway: + + * Minimize the number of interactions between the Call Agent and the + media gateway. + + * The media gateway should not have to do digit analysis (e.g., to + determine that the incoming digits contain carrier access + information). This is a Call Agent's responsibility. + + * Provide some reasonable level of abstraction for the Call Agent so + that it can reuse call flows when possible (e.g., Call Agent + should not have to differentiate between wink start and immediate + start interfaces when only one digit string is involved). + + * The media gateway should take care of the CAS protocol (and + timeouts) where possible with the Call Agent taking over + responsibility where the media gateway leaves off. + + + + + +Foster Informational [Page 3] + +RFC 3064 MGCP CAS Packages February 2001 + + + Use of Embedded Notifications: Rather than depending on the use of + embedded notifications, signals and events were defined that had the + specific semantics required. There are two reasons for this: + + a) It allows an abstract interface for the Call Agent so that for + example, the same incoming call-setup event can be used in the case + of MF wink start and MF immediate start trunks, presenting a common + interface to the Call Agent even though the semantics at the CAS + state-machine level are slightly different (i.e., in the MF wink + start case, a wink-start signal is provided reflexively as a result + of an incoming seizure, where as in the immediate start case, this is + not required). + + b) Potential events that might trigger an embedded notification + (e.g., the incoming seizure mentioned above) typically needed to be + visible to the Call Agent for billing anyway. + + This does not say that embedded notifications cannot be used. It + simply does not necessitate their use. + + Out-pulsing Approach: In order to provide the semantics for + outpulsing, special higher level signals (e.g., "sup" for call set-up + and "inf" for information) are included that contain the necessary + semantics. + + Off-hook and On-hook Signals and Events: A higher level view of off- + hook and on-hook events is taken in order to make the interface + Q.931-like. This provides the advantage that: + + * Similar call flows result when dealing with Q.931-based interfaces + (e.g., PRI) + + * It's more evident (for ease in debug) when looking at message as + to exactly what is going on without having to refer to previous + events + +1.2. CAS Trunk Types + + The following describes the types of trunks supported by the various + packages. Configuration of the specific trunk type (e.g., wink start + versus immediate start) is done within the Media Gateway (MG) via + provisioning facilities outside the scope of MGCP. The Call Agent's + responsibility is to support the particular package (i.e., in general + the Call Agent does not have to differentiate between wink start and + immediate start, since those differences are taken care of by the + MG). However, the Call Agent needs to know which trunks are + incoming, outgoing or bi-directional. + + + + +Foster Informational [Page 4] + +RFC 3064 MGCP CAS Packages February 2001 + + +1.2.1. "MS" Package + + The "MS" package is used for PBX DID/DOD trunks as indicated in the + following table. It is also used for incoming or outgoing MF wink + start trunks (R1 and FGD Terminating protocol [6]). + + Table 1 MF PBX Trunks + + -------------------------------------------------- + | Trunk Type | Direction (w.r.t. the gateway) | + -------------------------------------------------- + |MF, wink start |Incoming - originate from PBX | + | |(the same as FGD terminating | + | | protocol) | + |MF, wink start |Outgoing - terminate on PBX | + |MF, wink start |Bi-directional | + |MF, Immediate |Incoming (originate from PBX) | + | start | | + |MF, Immediate |Outgoing (terminate on PBX) | + | start | | + -------------------------------------------------- + +1.2.2. "DT" Package + + DTMF and dial-pulse (DP) trunks (except basic PBX) are covered by the + "DT" package along with the DTMF "D" package: + + Table 2 DTMF and DP Wink Start and Immediate Start Trunks + + -------------------------------------------------- + | Trunk Type | Direction (w.r.t. the gateway) | + -------------------------------------------------- + |DTMF, Immediate |Incoming (originate from PBX) | + | start, wink | | + | start | | + |DTMF, Immediate |Outgoing (terminate on PBX) | + | start, wink | | + | start | | + -------------------------------------------------- + + + + + + + + + + + + +Foster Informational [Page 5] + +RFC 3064 MGCP CAS Packages February 2001 + + +1.2.3. "BL" Package + + DTMF and dial-pulse (DP) basic PBX trunks are covered by the "BL" + package - along with the DTMF "D" package (essentially this is like a + "basic line with no features") - either digital or FXS trunk + interface: + + Table 3 Basic FXS Interface + + -------------------------------------- + | Trunk Type | Direction | + | | (w.r.t. the gateway) | + -------------------------------------- + |Basic, DTMF and |Bi-directional | + |DP, Loop Start | | + |Basic, DTMF and |Bi-directional | + |DP, Ground Start| | + -------------------------------------- + +1.2.4. "DO" Package + + The "DO" package is used for analog FXO loop-start and ground-start + analog trunks as indicated in the following table. + + Table 4 FXO analog PBX Trunks + + -------------------------------------- + | Trunk Type | Direction | + | | (w.r.t. the gateway) | + -------------------------------------- + |FXO, loop-start|Bi-directional | + |FXO, ground- |Bi-directional | + | start | | + -------------------------------------- + +1.2.5. "MD" Package + + The MD package provides support for North American MF Feature Group D + EANA and EAIN [3], allowing the Media Gateway to be at either the end + office, the carrier or the tandem side of the circuit. The CAS + Signaling Type column of the following tables is intended to indicate + signaling differences that are of common interest to both the Call + Agent and Media Gateway. Configuration information that is only of + interest to the Media Gateway is not identified. + + + + + + + +Foster Informational [Page 6] + +RFC 3064 MGCP CAS Packages February 2001 + + + Table 4 Feature Group D MF Trunks Supported + + -------------------------------------------------- + | Trunk Type | Direction (w.r.t. the gateway) | + -------------------------------------------------- + |FGD, EANA |Outgoing (End Office to Carrier) | + |FGD, EANA |Incoming (Carrier to End Office) | + |FGD, EAIN |Outgoing (End Office to Carrier) | + |FGD, EAIN |Incoming (Carrier to End Office) | + -------------------------------------------------- + + Note that EANA and EAIN signaling may be requested on the same trunk + on a call-by-call basis. + +1.2.6. "MO" Package + + The "MO" package is used for FGD Operator Services Signaling, + outgoing trunks only. Feature Group C can also be supported by the + same interface. + +2.0. Event Packages + + This section defines the event packages. The terms "signal" and + "event" are used to differentiate a command from a Call Agent to a + Media Gateway ("signal") from an "event" that is detected by the + Media Gateway and then is "Notified" to the Call Agent. + + Each package definition includes a package name, plus the event name + codes and the definitions for each of the events in the package. In + the tables of events/signals for each package, there are five + columns: + + * Code The package unique event code used for the + event/signal. + + * Description A short description of the event/signal. + + * Event An "x" appears in this column if the event can be + Requested by the Call Agent. Alternatively, one or + more of the following symbols may appear: + + - "P" indicating that the event is persistent, + + - "S" indicating that the event is an event-state that may be + audited, + + + + + + +Foster Informational [Page 7] + +RFC 3064 MGCP CAS Packages February 2001 + + + - "C" indicating that the event/signal may be detected/applied + on a connection. If "C" is associated with an event, this + refers to an event that can occur on the media stream. + However, "C" may also be associated with a signal (in the + signal column), the signal can be requested to sent over a + connection. + + Note that the intent of being able to audit state ("S") in an event + in the following packages is to answer one of the two questions: + + 1. Has a call been initiated on this line/trunk? For example in + the packages that follow, call setup initiation is indicated by + either a "sup" event or an "hd" (FXS - "BL" packages) or in the + case of the "DO" package below (FXO), by the "rg" event so that + those events have an "S" in the event column indicating that they + are auditable. + + 2. The other question of interest is to know whether the telephony + leg of the call is in the idle state so that a new call can be + initiated. This is indicate by the "rlc" (release complete) + event-state for packages that have that event. + + * Signal If nothing appears in this column then this event + cannot be signaled on request by the Call Agent. + Otherwise, one of the following symbols is provided + to identify the type of signal: + + - "OO" On/Off signal. The signal is turned on until commanded + by the Call Agent to turn it off, and vice versa. + - "TO" Timeout signal. The signal lasts for a given duration + unless it is superseded by a new signal or terminated on + detection of an event. Default time-out values are + supplied. A value of zero indicates that the time-out + period is infinite. The provisioning process may alter + these default values. + - "BR" Brief signal. The signal has a short, known duration. + + * Additional info Provides additional information about the + event/signal, e.g., the default duration of TO signals. + + Unless otherwise stated, all of the events/signals are + detected/applied on endpoints and audio generated by them is not + forwarded on any connection the endpoint may have. Audio generated + by events/signals that are detected/applied on a connection will + however be forwarded on the associated connection irrespective of the + connection mode. + + + + + +Foster Informational [Page 8] + +RFC 3064 MGCP CAS Packages February 2001 + + +2.1. Events and Signals for the "MS" package: + + The following codes are used to identify events and signals for the + "MS" package: + + Table 5 "MS" Package Events and Signals + --------------------------------------------------------------------- +|Code|Description |Event|Signal |Additional Info | +|---------------------------------------------------------------------| +|ans |Call Answer | P | BR | | +| bl |Block | S | BR | | +| bz |Busy tone | - | TO |Time-out = 30 seconds | +|inf |Information Digits| x | - | | +| oc |Operation Complete| x | - | | +| of |Operation Fail | x | - | | +|rel |Release Call | P | BR | | +|res |Resume call | P | BR | | +|rlc |Release complete | P,S | BR | | +| ro |Reorder tone | - | TO |Time-out = 30 seconds | +| rt |Ringback tone | - | TO |Time-out = 180 seconds | +|sup |Call Setup | P,S | TO |Time-out when signal completes | +| | | | |out-pulsing | +|sus |Suspend call | P | BR | | + --------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + + + + + + + + + + +Foster Informational [Page 9] + +RFC 3064 MGCP CAS Packages February 2001 + + +2.2. Events and Signals for the "DT" package: + + The following codes are used to identify events and signals for the + "DT" package: + + Table 6 "DT" Package Events and Signals + --------------------------------------------------------------------- +|Code|Description |Event|Signal |Additional Info | +|---------------------------------------------------------------------| +|ans |Call Answer | P | BR | | +| bl |Block | S | BR | | +| bz |Busy tone | - | TO |Time-out = 30 seconds | +| dl |Dial tone | - | TO |Time-out = 16 seconds | +| oc |Operation Complete| x | - | | +| of |Operation Fail | x | - | | +|rel |Release Call | P | BR | | +|res |Resume call | P | BR | | +|rlc |Release complete | P,S | BR | | +| ro |Reorder tone | - | TO |Time-out = 30 seconds | +| rt |Ringback tone | - | TO |Time-out = 180 seconds | +|sup |Call Setup | P,S | TO |Time-out when signals completed| +| | | | |out-pulsing | +|sus |Suspend call | P | BR | | + --------------------------------------------------------------------- + +2.3. Events and Signals for the "BL" package (Basic PBX) + + The following codes are used to identify events and signals for the + "BL" package. This package looks very much like a simplified line + package: + + Table 7 "BL" Package Events and Signals + --------------------------------------------------------------------- +|Code|Description |Event|Signal |Additional Info | +|---------------------------------------------------------------------| +| bz |Busy tone | - | TO |Time-out = 30 seconds | +| dl |Dial tone | - | TO |Time-out = 16 seconds | +| hd |Off-hook | P,S | - | | +| hf |Flash hook | P | - | | +| hu |On-hook | P,S | - | | +| oc |Operation Complete| x | - | | +| of |Operation Fail | x | - | | +| rel|Release | - | BR | | +| rg |Ringing | - | TO |Time-out = 180 seconds | +| ro |Reorder tone | - | TO |Time-out = 30 seconds | +| rt |Ringback tone | - | C,TO |Time-out = 180 seconds | + --------------------------------------------------------------------- + + + + +Foster Informational [Page 10] + +RFC 3064 MGCP CAS Packages February 2001 + + +2.4. Events and Signals for the "DO" package: + + The following codes are used to identify events and signals for the + "DO" package: + + Table 8 "DO" Package Events and Signals + --------------------------------------------------------------------- +|Code|Description |Event|Signal |Additional Info | +|---------------------------------------------------------------------| +| ci |Caller id | x | - | | +| hd |Offhook | - | BR | | +| hf |Hook flash | - | BR | | +| hu |Onhook | - | BR | | +| oc |Operation Complete| x | - | | +| of |Operation Fail | x | - | | +|rel |Release call | P | - | | +| rg |Ringing | P,S | - | | +|rlc |Release complete | P,S | - | | +|sup |Call Setup | - | TO |Time-out when signal completes | +| | | | | out-pulsing | + --------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Foster Informational [Page 11] + +RFC 3064 MGCP CAS Packages February 2001 + + +2.5. Events and Signals for the "MD" package: + + The following codes are used to identify events and signals for the + "MD" package. + + Table 9 "MD" Package Events and Signals + --------------------------------------------------------------------- +|Code|Description |Event|Signal |Additional Info | +|---------------------------------------------------------------------| +|ans |Call Answer | P | BR | | +|awk |Acknowledge wink | P | BR | | +| bl |Call Block | S | BR | | +| bz |Busy tone | - | TO |Time-out = 30 seconds | +|cwk |Continue Wink | - | BR | | +|inf |Information Digits| x | TO |Time-out when signals completed| +| | | | | out-pulsing | +| oc |Operation Complete| x | - | | +| of |Operation Fail | x | - | | +|rel |Release Call | P | BR | | +|res |Resume call | P | BR | | +|rlc |Release complete | P,S | BR | | +| ro |Reorder tone | - | TO |Time-out = 30 seconds | +| rt |Ringback tone | - | TO |Time-out = 180 seconds | +|sup |Call Setup | P,S | TO |Time-out when signals completed| +| | | | | out-pulsing | +|sus |Suspend call | P | BR | | +|swk |Start Wink | x | - | | + --------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + + + + + + +Foster Informational [Page 12] + +RFC 3064 MGCP CAS Packages February 2001 + + +2.6. Events and Signals for the "MO" package: + + The following codes are used to identify events and signals for the + "MO" package. + + Table 10 "MO" Package Events and Signals + + --------------------------------------------------------------------- +|Code|Description |Event|Signal |Additional Info | +|---------------------------------------------------------------------| +|ans |Call Answer !Note | P | - | | +| oc |Operation Complete| x | - | | +| of |Operation Fail | x | - | | +|orbk|Operator Ringback | x | - | | +|rbz |Reverse make busy | P,S | - | | +|rcl |Operator Recall | - | BR | | +|rel |Release Call | P | BR | | +|res |Resume Call | - | BR | | +|rlc |Release complete | P,S | BR | | +|sup |Call Setup | - | TO | | +|sus |Suspend Call | - | BR | | +|swk |Start Wink | x | - | | + --------------------------------------------------------------------- +!Note: There is no indication that the operator answered the call. + The "ans" event is an indication that off-hook was received + from the far end which simply indicates that the destination + address was received properly and the calling number is in the + process of being outpulsed. + +2.7. Event and Signal Descriptions + + The following provides a list of the event and signal descriptions. + + The event/signal name appears in parenthesis followed by the + corresponding Event + Signal attribute code plus a list of the + packages in which the event/signal occurs. + + Call answer (ans; P + BR; DT,MD,MS,MO): Off-hook signal normally + indicates that the call has been answered and that cut-through has + been established. The exception is the "MO" package where it simply + indicates that off-hook was received and the calling number is in the + process of being sent (i.e., there is no event available to indicate + that the operator answered the call for operator services signaling). + + Acknowledgement Wink (awk; P + BR; MD): This event is only applicable + to the "md" package. It provides an indication that all digits have + been received correctly. In an outgoing trunk, the event is + requested and when received indicates that the connecting switch + + + +Foster Informational [Page 13] + +RFC 3064 MGCP CAS Packages February 2001 + + + received all of the addressing information. On an originating trunk, + this signal is sent to inform the other end that all addressing + information has been received. If the Call Agent is providing a + transit application for example, in which incoming and outgoing + trunks are both EANA trunks, then after acknowledgement wink is + received from the terminating trunk, it is passed to the originating + side so that the originating side knows that addressing has passed to + the destination switch. + + Call Block (bl; S + BR; DT,MS,MD): A steady off-hook signal applied + to one-way incoming trunks to indicate that no further calls will be + accepted. When "bl" is used as a signal then the "rel" signal is + used to release the blocking condition. + + A Call Agent should only request the "bl" event in a case where it + knows that this is a one-way outgoing trunk, and it should never see + an incoming call-setup request ("sup" event). As such if "bl" is + requested as an event, then "sup" is suppressed as a persistent + event. + + Busy tone (bz ; - + TO; BL,DT,MD,MS): Refer to ITU E.180. The + definition of the tone is defined by the national characteristics and + may be established via provisioning. Station Busy is defined in GR- + 506-CORE - LSSGR, SIGNALING, Section 17.2.6. as a combination of two + AC tones with frequencies of 480 and 620 Hertz and levels of -24 dBm + each, to give a combined level of -21 dBm. The cadence for Station + Busy Tone is 0.5 seconds on followed by 0.5 seconds off, repeating. + + Caller Id (ci(time, number, name); x + -; DO): See TR-NWT-001188, + GR-30-CORE, and TR-NWT-000031. Each of the three fields are + optional, however each of the commas will always be included. + + The time parameter is coded as "MM/DD/HH/MM", where MM is a two- + digit value for Month between 01 and 12, DD is a two-digit value + for Day between 1 and 31, and Hour and Minute are two-digit values + coded according to military local time, e.g., 00 is midnight, 01 + is 1 a.m., and 13 is 1 p.m. + + The number parameter is coded as an ASCII character string of + decimal digits that identify the calling line number. White + spaces are permitted if the string is quoted, however they + will be ignored. + + The name parameter is coded as a string of ASCII characters that + identify the calling line name. White spaces are permitted if the + string is quoted. + + + + + +Foster Informational [Page 14] + +RFC 3064 MGCP CAS Packages February 2001 + + + A "P" in the number or name field is used to indicate a private + number or name, and an "O" is used to indicate an unavailable number + or name. The following example illustrates the use of the caller-id + event: + + O: ci(10/14/17/26, "555 1212", somename) + + Continue Wink (cwk ; - + BR; MD): This signal is only applicable to + the "md" package. It provides an indication that digits sent have + been accepted, and further digits must be sent in order to process + the call. For example, when using FGD EAIN signaling, this would + correspond to sending a wink after the country access code had been + received to indicate readiness to receive identification and address + fields. + + Dial-tone (dl ; - + TO; BL,DT): Refer to ITU E.180. The definition + of the tone is defined by the national characteristics and may be + established via provisioning. In GR-506-CORE - LSSGR, SIGNALING, + Section 17.2.1, sial Tone is defined as a combination of two + continuous AC tones with frequencies of 350 and 440 Hertz and levels + of -13dBm each to give a combined level of -10 dBm. It is considered + an error to try and play dial-tone on a phone that is on hook and an + error should consequently be returned when such attempts are made + (error code 402 - phone on hook). + + Information Digits (inf(<inf-digits>); x + TO; MS,MD): On an outgoing + call ("md" package only) it is used as a signal to out-pulse the + address information when doing overlapped sending. + + On an incoming call it is used as an event to indicate that an MF + digit string has been received. In this case, <inf-digits> are all + of the digits accumulated up to and including the digit delimiters + ST, ST', ST'', ST'''. Multiple sequences of digits ending with one + of the ST digits may be passed in a single "inf" event. (Note that + K0 is the same as KP, K1 is sometimes referred to as KP' etc. + Similarly S0 is the same as ST, S1 is the same as ST' and so on. + + The value of <inf-digits> is a comma separated list of MF digits: + MF1, MF2, ..., MFn + + where each of MFi will be one of the following MF digit symbols: + + + + + + + + + + +Foster Informational [Page 15] + +RFC 3064 MGCP CAS Packages February 2001 + + + Table 11 MF Digit Symbols + + ------------------------- + | Symbol |MF digit | + | 0 | MF 0 | + | 1 | MF 1 | + | 2 | MF 2 | + | 3 | MF 3 | + | 4 | MF 4 | + | 5 | MF 5 | + | 6 | MF 6 | + | 7 | MF 7 | + | 8 | MF 8 | + | 9 | MF 9 | + | K0 | MF K0 or KP | + | K1 | MF K1 | + | K2 | MF K2 | + | S0 | MF S0 or ST | + | S1 | MF S1 or ST' | + | S2 | MF S2 or ST'' | + | S3 | MF S3 or ST'''| + -------------------------- + + Thus, an example signal or event might look like: + + inf(k0, 5,5,5,1,2,3,4, s0) + + An example where the inter-digit timer expired after the 5,5,5 would + appear as follows: + + inf(k0, 5,5,5) + + Operation Complete (oc ; x + -; all): The operation complete event is + generated when the gateway was asked to apply one or several signals + of type TO on the endpoint, and one or more of those signals + completed without being stopped by the detection of a requested or + persistent event such as setup. The completion report may carry as a + parameter the name of the signal that came to the end of its live + time, as in: + + O: ms/oc(ms/sup) + + or + + O: bl/oc(bl/rg) + + When the operation complete event is requested, it cannot be + parameterized with any event parameters. + + + +Foster Informational [Page 16] + +RFC 3064 MGCP CAS Packages February 2001 + + + Note that when requested at the same a signal for "sup" (out-pulsing + - a TO event), the operation complete event will indicate when out- + pulsing is complete. + + Operation failure (of; x + -; all): In general, the operation + failure event may be generated when the endpoint was asked to apply + one or several signals of type TO on the endpoint, and one or more of + those signals failed prior to timing out. The completion report may + carry as a parameter the name of the signal that failed, as in: + + O: ms/of(ms/sup) + + or + + O: bl/of(bl/rg) + + When the operation failure event is requested, it cannot be + parameterized with any event parameters. + + Operator ringback (orbk; x + -; MO): The description of the signaling + MF CAS signaling that results in this event is describe in the + appendix of TR-NPL-000258 [3]. In brief, it is normally a wink-on + signal which may or may not be followed by an MF tone. This event + will be generated when the operator service requests that the calling + party be alerted ("mo" package only). + + Reverse make busy (rbz; P + -; MO): This event corresponds to a + "blocking" (off-hook) generated by the other end of the one-way + operator services trunk ("mo" package). It has the same semantics as + of the "bl" event in other packages. + + Operator recall (rcl; - + BR; MO): This signal may be applied to + invoke operator recall, e.g., due to customer hook-flash to bring the + operator back. + + Release call (rel; P,S + BR; BL,DT,MD,MO,MS,DO): A "rel" signal sent + by the Call Agent to the Media Gateway is a request to release all of + the resources associated with the telephony leg of the call. This + may also result in an off-hook signal being sent when appropriate. + As a result of an "rel" signal, the gateway will respond with an + "rcl" event, whenever the resources have been released. Releasing + resources associated with the telephony leg of the call does not + affect existing connections (network legs). It's up to the Call + Agent to send the appropriate delete connection commands in order to + release any network connections to that endpoint. + + + + + + +Foster Informational [Page 17] + +RFC 3064 MGCP CAS Packages February 2001 + + + In the case of the FXS ("BL") package, the "rel" signal is used to + provide a tip-ground release for ground-start trunks. In the case of + loop-start trunks, requesting to play this signal has no effect. + + The Media Gateway generates a "release call" event whenever a call is + released as a result of an on-hook event from an originating end of a + call (normal release) or due to abnormal event that resulted in + releasing the call. The event may be parameterized with one of the + following cause codes indicating the reason for the release: + + Table 12 Release Reason Codes + ----------------------------------------------------------------- + |Cause Code |Reason | + |----------------------------------------------------------------- + | 0 |Normal release | + | 44 |Requested channel/circuit not available | + | |(glare or incoming seizure detected during call | + | | setup) | + | 111 |Protocol/signaling error, unspecified (e.g. timeout) | + ----------------------------------------------------------------- + + Note that a "rel" event with reason code "0" indicating normal + release (due to an incoming on-hook) will only be "notified" by a + gateway where a call origination occurred. This behavior follows the + rule that when an originator releases the call, all resources may be + released. The corresponding event for on-hook on the terminating end + of a call is the "sus" event which only indicates hook-status and + does not result in any resources being released. It is always up to + the Call Agent to release the call (by sending the "rel" signal) for + the terminating end of a call. + + For FXO ground-start case ("DO" package), the Media Gateway generates + a "release call" event whenever a call is released as a result of a + tip-ground release event from the far end. + + Resume call (res ; P + BR; DT,MD,MS,MO): This indicates that the + called party resumed the call, i.e., the party went off-hook after a + previous suspend ("sus") but before the originating switch released + ("rel") the trunk. The "sus" and "res" events/signals are used to + propagate on-hook and off-hook events without releasing the resources + associated with the call. In all but the operator services case + ("MO" package), these events would normally be propagated from the + terminating to the originating end (i.e., requested as events from + the terminating end of the call and sent to the gateway as signals to + a gateway on the originating side of the call). + + + + + + +Foster Informational [Page 18] + +RFC 3064 MGCP CAS Packages February 2001 + + + However, it is up to the Call Agent to decide whether it wants to do + "suspend"/"resume" processing. If it doesn't, when it receives a + "sup" event from the terminating end of the call it can simply go + ahead and tear down the call immediately (send "rel" and delete + connections to the endpoints on gateways at both originating and + terminating end of the call). + + In the case of operator services and 911, "sus" and "res" are used to + pass off-hook and on-hook signals to the operator without releasing + any of the resources associated with the call. + + Ringing (rg; P,S + TO; BL,DO): This signal is used for outgoing basic + trunks ("bl" package). See GR-506-CORE - LSSGR: SIGNALING, Section + 14. The provisioning process may define the ringing cadence. It is + considered an error to try and ring if the trunk indicates off hook + and an error should consequently be returned when such attempts are + made (error code 401 - phone off hook). + + In the case of the "DO" package, "rg" is defined as an event used to + indicate detection of ringing. + + Release complete (rlc;P,S + BR; DO,DT,MD,MO,MS): The endpoint and + Call Agent use the release complete event/signal to confirm the call + has been released and the trunk is available for another call. For + FXO ground-start ("DO" package), this represents the release of the + tip-ground event from the PBX after the gateway goes on-hook. + + Reorder tone (ro; - + TO; BL,DT,MD,MS): Reorder tone is a combination + of two AC tones with frequencies of 480 and 620 Hertz and levels of + -24 dBm each, to give a combined level of -21 dBm. The cadence for + reorder tone is 0.25 seconds on followed by 0.25 seconds off, + repeating continuously. See GR-506-CORE - LSSGR: SIGNALING, Section + 17.2.7. + + Ring back tone (rt; - + TO; BL,DT,MD,MS): Audible Ring Tone is a + combination of two AC tones with frequencies of 440 and 480 Hertz and + levels of -19 dBm each, to give a combined level of -16 dBm. In the + US the cadence for Audible Ring Tone is defined to be 2 seconds on + followed by 4 seconds off. The definition of the tone is defined by + the national characteristics of the Ring-back Tone, and MAY be + established via provisioning. See GR-506-CORE - LSSGR: SIGNALING, + Section 17.2.5. + + Call Setup (sup ; P,S + TO; DO,DT,MD,MS,MO): The event/signal is used + both for outgoing and incoming call setups. Each will be described + separately in the following. + + + + + +Foster Informational [Page 19] + +RFC 3064 MGCP CAS Packages February 2001 + + + Outgoing call setup: + + On an outgoing trunk, the "sup" signal is used to seize a trunk and + out-pulse digits. The "sup" signal is parameterized with up to four + parameters sup(<ct>, <ca>, <id>, <addr>), depending on the package. + The order of these parameters does not matter. The following table + indicates which ones are mandatory ("M"), optional ("O") or forbidden + ("F") for the various packages. + + Table 13 "sup" parameters. + + ------------------------------------ + | Parameter | MS | DT | MO | MD | DO | + |------------------------------------| + | <ct> | F | F | F | M | F | + | <ca> | F | F | F | O | F | + | <id> | F | F | M | M | F | + | <addr> | M | M | M | O | M | + ------------------------------------ + + The <ct> parameter is of the format ct(<ct-value>) where <ct-value> + indicates the CAS signaling type and can have one of two values "nda" + (North American Direct Access) for EANA and "nta" (North American + Tandem Access) for EAIN. The reason this parameter is needed in the + case of trunks that handle the "MD" packages is because the same + trunk can be used for both. The <addr> field contains the + destination number and when present will be on the form + + addr(dig1, dig2, ..., dign) + + The <id> field contains the identification of the caller and when + present will be of the form: + + id(dig1, dig2, ..., dign) + + The <ca> field contains the country address information and when + present will be of the form: + + ca(dig1, dig2, ..., dign) + + When present, the <addr> field contains the destination number and + will be of the form + + addr(dig1, dig2, ..., dign) + + where digi is an MF symbol as defined in table 11 in the case of + "MS", "MO", and "MD" packages and digi is a DTMF symbol (0-9, + *,#,A,B,C,D) in the case of the "DT" and "DO" packages. + + + +Foster Informational [Page 20] + +RFC 3064 MGCP CAS Packages February 2001 + + + The following table shows some interactions between the Media Gateway + (MG) and the Switched Circuit Network (SCN) for single stage + outpulsing applications ("DT", "MS" and "DO" packages): + + Table 14 SCN Sequencing during Call Setup (single stage outpulsing) + + ------------------------------------------------------------------ + |Interface Type |Setup | Interactions | + |------------------------------------------------------------------| + |wink start |sup(add(<addrvalue>)) |MG| off-hook -> |SCN| + | | |MG| <- wink |SCN| + | | |MG| <addrvalue> -> |SCN| + |------------------------------------------------------------------| + |Immediate Start|(sup(addr(<addrvalue>)) |MG| off-hook -> |SCN| + | or FXO) | |MG| <addrvalue> -> |SCN| + ------------------------------------------------------------------ + + Call setup signal example for this case (MF signaling): + + sup(addr(s0,5,5,5,1,2,3,4,k0)) + + The "MO" and "MD" packages involve multi-stage signaling and multiple + parameters. In the case of the "MD" package the following table + shows some of the interactions: + + Table 15 SCN Sequencing during Call Setup (EANA and EAIN) + + ------------------------------------------------------------------ + |Setup | Interactions | + |------------------------------------------------------------------| + | sup(ct(nda),addr(<addrvalue>), |MG| off-hook -> |SCN| + | id(<idvalue>)) |MG| <- wink |SCN| + | |MG| <idvalue> -> |SCN| + | |MG| <addrvalue> -> |SCN| + |------------------------------------------------------------------| + | sup(ct(nta), ca(<cavalue>), |MG| off-hook -> |SCN| + | addr(<addrvalue>), id(<idvalue>)) |MG| <- wink |SCN| + | |MG| <cavalue> -> |SCN| + | |MG| <- wink |SCN| + | |MG| <idvalue> -> |SCN| + | |MG| <addrvalue> -> |SCN| + |------------------------------------------------------------------| + | sup(ct(nta), ca(<cavalue>), |MG| off-hook -> |SCN| + | id(<idvalue>)) |MG| <- wink |SCN| + | |MG| <cavalue> -> |SCN| + | |MG| <- wink |SCN| + | |MG| <idvalue> -> |SCN| + ------------------------------------------------------------------ + + + +Foster Informational [Page 21] + +RFC 3064 MGCP CAS Packages February 2001 + + + The last example is an overlapped sending example where the address + value would be sent later using the "inf" signal. + + An example setup: + + sup(ct(nta),ca(k0,1,3,8,9,9,0,0,1,0,s0),id(k0,0,5,5,5,1,2,3,4,s0)) + + In all of the above cases, the "ans" event is an indication of off- + hook from the far end (the other end answered). However, in the case + of the operator service signaling (OSS) protocol of Feature Group D - + shown in the following table, off-hook from the operator is part of + the protocol (a request for the calling number) so that "ans" in this + case does not indicate that the operator answered (only that off- + hook/request for calling number was received). + + Table 16 SCN Sequencing during Call Setup OSS Protocol ("MO" Package) + + ------------------------------------------------------------------ + |Setup | Interactions | + |------------------------------------------------------------------| + | sup(ct(nda),addr(<addrvalue>), |MG| off-hook -> |SCN| + | id(<idvalue>)) |MG| <- wink |SCN| + | |MG| <- off-hook |SCN| + | |MG| <addrvalue> -> |SCN| + | |MG| <idvalue> -> |SCN| + ------------------------------------------------------------------ + + Incoming Call Setup: A "sup" event is used to indicate when an + incoming call arrives (corresponding to the incoming off-hook event). + The event is provided without parameters. + + Suspend call (sus; P + BR; DT,MD,MS,MO): Suspend ("sus") is an on- + hook event that is an indication that the called party went on-hook. + + An on-hook event will be "notified" to a Call Agent as a "sus" event + for interfaces that use the "MS", "DT" and "MD" packages from an + endpoint at a terminating end of a call (as compared to a "rel" event + from the originating side). The "sus" event from the terminating + endpoint gives the Call Agent the option of doing "suspend/resume" + processing or to simply release the call. + + The "sus" signal may be used to send an on-hook to the originating + party without releasing the resources associated with the telephony + leg of the call. The "rel" signal on the other hand would send an + on-hook and release the resources associated with the call. + + + + + + +Foster Informational [Page 22] + +RFC 3064 MGCP CAS Packages February 2001 + + + Because of this "sus" can be followed by "res" (off-hook) and allow + the call to resume, while "rel" cannot be followed by "res" because + the call no longer exists. + + For E911 ("MO" package), the operator is normally in control of + releasing the call so that, "sus" (on-hook), "res" (off-hook) and + "rcl" (flash-hook) can be used to pass user hook events to the + operator without releasing the call. + + Start Wink (swk; x + - MD,MO):. An Call Agent can optionally request + the MG to notify it when the wink start signal occurs. Note that + wink start ("swk") cannot be applied by the Call Agent as a signal. + The occurrence of wink-start on an incoming trunk is a reflexive + action that does not require Call Agent involvement. + +3.0. Hook-State Signals and Events + +3.1. Overview of Approach + + As mentioned in the introduction, a higher level view is taken for + on-hook and off-hook events for many of the CAS packages to make the + interface Q.931-like. This provides the advantage that: + + * Similar call flows result as when dealing with Q.931-based + interfaces (e.g., PRI) + * It's more evident (for ease in debug) when looking at message as + to exactly what is going on without having to refer to previous + flows. + + This does require that media gateways maintain some state but this is + a relatively small price to pay. + + One example of this is the "sup" signal which involves sending off- + hook followed by digits as a high level signal. The "ans" event is + also used to represent off-hook but from the terminating end at the + point where the call is answered. + +3.2. Suspend/Resume Processing + + Other signals and events "sus" for suspend, "res" for resume and + "rel" for release are based on the concept that one end (the + originator) is in control of the call. If the controlling end goes + on-hook a "rel" is notified to the Call Agent, and results in a the + call being released. However, if the non-controlling (terminating) + end goes on-hook, a "sus" event occurs (instead of the "rel" event). + This gives the Call Agent the option of doing suspend/resume + processing. + + + + +Foster Informational [Page 23] + +RFC 3064 MGCP CAS Packages February 2001 + + + If the Call Agent decides not to do suspend/resume processing, it can + simply send "rel" and delete connection commands to the endpoints + after it receives "sus" from the non-controlling (terminating) end of + the call. + + On the other hand, if it decides to do suspend/resume processing, it + can start a timeout when it receives the "sus" event from the non- + controlling (terminating) end of the call and continue the call if it + receives a "res" (off-hook) event. It also has the option of + propagating the "sus" and "res" as signals back to the ingress + gateway and allow it an opportunity to release the call ("rel" event) + or not. In any case the use of "sus" and "res" signals give another + level of control over the "rel" signal which will not only send on- + hook but also release the resources associated with the telephony leg + of the call. + +3.3. Control over Disconnect for E911 + + Note that for E911 (the "MO" package) is a special case in that the + operator (terminating end) is always the controlling end. The "sus" + and "res" signals are used to pass user hook state forward to the + operator. The "rel" event is passed back as a notify to the Call + Agent when on-hook is received from the operator indicating that the + Call should be released. If the "rel" is not received the call + should continue to stay up. + +3.3. Release and Release Complete + + The "rel" signal/event generally means on-hook but more that that it + also indicates "release of resources" for the telephony leg of the + call. If a Call Agent sends a "rel" signal instead of "sus" it is + requesting the call to be abandoned (i.e., "rel" cannot be followed + by "res"). + + The "rel" signal does not also imply that connections should be + deleted so that to completely release the call including connections + would require a DLCX in addition to (or conjunction with) the signal + "rel". + + In addition to being a signal, "rel" can also be an event triggered + by either: + + * An on-hook from the controlling end of the call, or + + * Some abnormal event within the media gateway such that the + telephony leg of the call can no longer be maintained. + + + + + +Foster Informational [Page 24] + +RFC 3064 MGCP CAS Packages February 2001 + + + In any case, "rel" (release) is generally followed by an "rlc" + (release complete). The release complete signal/event indicates that + the trunk resources are now completely released and available for + another call. This is also an event state that can be audited as + indicated by the "S" in the column for that event (allowing the Call + Agent to check to see if that trunk is released and available). + + Examples of the use of "rel" and "rlc": + + * Call Agent sends a "rel" to release a trunk, resulting in an + outgoing off-hook being sent for that trunk. When the media + gateway receives the on-hook from the other end, it returns an + "rlc" event indicating that the trunk is released and available. + * The media gateway receives a on-hook from the trunk at the + controlling end of the call, resulting in a "rel" event being sent + to the Call Agent. The Call Agent then sends an "rlc" to the + media gateway, resulting in on-hook being sent in the opposite + direction. + * An "rel" event is sent to the Call Agent in the event of some + abnormal condition in which the media gateway is unable to sustain + the telephony leg of the call (e.g., glare condition). The Call + Agent sends an "rlc" to the gateway to complete the release of the + call. (note that "rlc may not correspond to on-hook but is + generally sent anyway in response to a "rel".) + * The Call Agent can send a "rel" (instead of "sus") signal to the + controlling (originating) end of the call to abandon the call. + The gateway will return with "rlc" when an off-hook has been + received from the other end and all the resources have been + released. + * A "rel" can be sent on one-way incoming trunk to release a block + ("bl") sent earlier. + + The "BL" (FXS) package is a simple line package, so does not have + these events (uses "hd", "hf", and "hu" as the only hook state + events). + + The "DO" (FXO) package, however, does have "rel" and "rlc" because in + the ground-start case there is the ability to "release" the call as + result of a tip-ground release. The signal "rel" is used if the PBX + releases the call first (followed by S: hu from the call Agent to + complete the release). Alternatively, the Call Agent can send the S: + hu to initiate the release - followed by an "rlc" event from the + media gateway to Call Agent when the PBX does the tip ground release. + Although the loop-start trunks would not normally have this behavior + (only applies to ground-start), the media gateway should emulate the + behavior in the case of loop-start in order to allow the Call Agent a + common interface. + + + + +Foster Informational [Page 25] + +RFC 3064 MGCP CAS Packages February 2001 + + +3.4. Blocking CAS Trunks + + In addition to the above signals and events, there is the "bl" + signal/event which is used for blocking one-way trunks (does not work + for two way trunks) by providing a continuous off-hook. + +3.5. Summary of Hook-State Events + + The following summarizes the use of the various events that involve + off-hook and on-hook from call establishment to tear-down. This + applies mainly to "MS", "DT", "MD" and to a lesser extent the "DO" + package. + + * The "sup" event represents off-hook origination. + * The "sup" signal with parameters provides off-hook with digit + outpulsing on the terminating side. + * Once outpulsing is completed, an "ans" event indicates off-hook + from the termination side (the called party has answered). + * The call agent can then send an "ans" signal (off-hook) to the + originating end to indicate to the caller that the called party + has answered. + * The Call Agent can send a "rel" to either end at any time to tear + down the call (e.g., to abort the call). + * The media gateway can send "rel" to indicate abnormal termination + of the call (with a reason as a parameter). + * However, under normal operation once a call is established, the + Call Agent can expect a "sus" (suspend) event from the termination + end to indicate that the caller went on-hook and a "res" if the + called party goes off-hook again before the Call Agent tears down + the call. The Call Agent can send these same signals to the + originating end to indicate off-hook and on-hook to the calling + party without tearing down the call. + * During normal operation, once the call is established, on-hook + from the calling party (origination side) would result in a "rel" + signal. The Call Agent would then normally send the "rel" signal + to the terminating end to terminate the call. "rel is normally + followed by "rlc" (e.g., media gateway indicates calling party on- + hook with "rel" and the Call Agent responds with "rlc", which + sends on on-hook back to the calling party to indicated release + complete. + + The "MO" package is a bit different in that normally only the + terminating side (the operator) can release the call ("rel" event). + The "sus" and "res" are forward signals to the operator indicating + user hook-status. + + + + + + +Foster Informational [Page 26] + +RFC 3064 MGCP CAS Packages February 2001 + + +4.0. Glare Handling + +4.1. Glare on MF Bi-directional Wink-start Trunks + + Gateways may have a configurable glare bit on a per-DS0 basis that + can be set to indicate whether the gateway is the controlling or + non-controlling "switch". However, in general, PBXs are either pre- + configured or can be configured to behave as non-controlling + switches. In this case if they see an off-hook that exceeds + allowable wink length, they will attach a receiver, go on-hook, and + await digits for a new call. Meanwhile the PBX will retry its + original call on another trunk. + + If the gateway behaves like a controlling switch, when glare is + detected, the gateway will wait for up to some timeout value (default + value of 4 seconds) until the incoming off-hook changes to an on-hook + state at which time it will start out-pulsing in the normal manner. + If the timeout occurs before the state change to on-hook occurs, the + gateway will send a release event to the Call Agent (a "rel(44)" + event - cause code indicating glare). + + When "rel(44)" is sent by the gateway, that is an indication to the + Call Agent that the call is in the process of being released and that + the Call Agent should give up on that trunk. However, the gateway + may not actually want to send the on-hook at that time in order to + avoid the possibility that the other end takes the on-hook as a wink. + Instead, it may start a second timer and wait some longer period of + time (e.g., 16 seconds or so) before releasing the trunk. If it + receives an on-hook prior the timeout, it completes the release by + going on-hook. If, on the other hand, the timer expires before the + other end goes on-hook, it will simply go on-hook and wait for the + other end to go on-hook. In any case, once both ends have returned + to the on-hook state, an "rlc" event is sent to the Call Agent. + +4.2. Glare Handling - Basic PBX Trunks + + In order to reduce the chances of glare, the gateway should try a + ringing pre-trip test prior to sending ringing on a basic ground + start trunk. If glare is detected on an outgoing seizure of a basic + PBX trunk, the request for ringing should be "Nacked" (error code 401 + - phone off-hook) to the Call Agent. + + + + + + + + + + +Foster Informational [Page 27] + +RFC 3064 MGCP CAS Packages February 2001 + + +5.0. Example Call Flows + +5.1. PBX to PBX ("MS", "DT, and "BL" packages). + + The following call flows involve a single Call Agent that handles + both sides of the call (i.e., the inter-Call-Agent signaling is + ignored). The components involved in the call are: + + * The Call Agent (CA) + + * The originating Media Gateway (GW-o) and + + * The terminating Media Gateway (GW-t) + +5.1.1. Call Setup Flows + + The following describes some PBX to PBX call. The table gives an + overview of the initial part of the call flow with details to follow. + + --------------------------------------------------------------------- + | Steps | GW-o | CA | GW-t | + |---------------------------------------------------------------------| + | A1 | NTFY[seizure] -> | + | A2 | <- Ack | + | A3 | <- RQNT[request digits] | + | A4 | Ack -> | + | A5 | NTFY[digits] -> | + | A6 | <- Ack | + | B1 | <- CRCX [M:recvonly, LCO] | + | B2 | Ack[SDP1] -> | + | B3 | CRCX [M:sendrecv, LCO, SDP1] -> | + | B4 | <- Ack [SDP2] | + | B5 | <- MDCX [recvonly,SDP2] | + | B6 | Ack -> | + --------------------------------------------------------------------- + + Step A1 PBX seizure results in a notify to the Call Agent + indicating the start of a call setup: + + NTFY 3001 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + X: 0123456789AF + O: ms/sup (or dt/sup) + + + + + + + + + +Foster Informational [Page 28] + +RFC 3064 MGCP CAS Packages February 2001 + + + In the case of the "BL" package (basic PBX) the interface looks + like a simplified line interface with the standard "hd" event for + off-hook: + + NTFY 3001 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + X: 0123456789AF + O: bl/hd + + Another alternative would have been to use an embedded request in the + RQNT that resulted in this notify and combine that request with step + A3. Example - "ms" package: + + RQNT 2001 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + X: 0123456789AF + R: ms/sup(E(R(ms/inf, ms/rel)) + + Step 3 could also be eliminated by the use of "loop" mode e.g.: + + RQNT 2001 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + X: 0123456789AF + Q:loop + R: ms/sup, ms/inf, ms/rel + + This would result in both notifies occurring without requiring the + RQNT in step A3. + + Step A2 The Call Agent sends an Ack: + + 200 3001 OK + + Step A3 The Call Agent requests that digits be collected. The + approach used here depends on the type of PBX interface. For an MF + interface the Call Agent requests that information digits be + collected as follows: + + RQNT 2001 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + X: 0123456789B0 + R: ms/inf, ms/rel + + The Call Agent also asks to be told if the trunk gets released + for some reason ("rel" event) in the process of call setup + (release event may be due to some signaling error for example). + For DTMF trunks (wink-start, immediate start and Basic PBX), the + request is based on a digit map so looks a bit different: + + RQNT 2001 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + X: 0123456789B0 + R: d/[0-9*#T](D), dt/rel (bl/hd in the case of Basic PBX) + + + +Foster Informational [Page 29] + +RFC 3064 MGCP CAS Packages February 2001 + + + D: (xxxxxxx | x.[T#]) + S: dt/dl + + Note: the request to signal dial-tone may or may not be here + depending on PBX interface requirement - bl/dl required for + Basic PBX; dt/dl for some Immediate Start interfaces. + + Step A4 The gateway responds with an ack: + + 200 2001 OK + + Step A5 Once the digits are collected the gateway notifies the call + agent. In the case of an MF interface, the resulting notify will + look like the following + + NTFY 3002 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + X: 0123456789B0 + O: ms/inf(k0,5,5,5,1,2,3,4,s0) + + In the case of a DTMF interface (including Basic PBX), it will + look like the following: + + NTFY 3002 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + X: 0123456789B0 + O: d/5,d/5,d/5,d/1,d/2,d/3,d/4 + + Step A6 The Call Agent responds with an ack: + + 200 3002 OK + + Step B1 The Call Agent now requests that a receive-only connection + be made. + + CRCX 2002 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + C: A7453949499 + L: a:PCMU,s:off,e:on + M: recvonly + X: 0123456789B1 + R: ms/rel (or dt/rel or bl/hu). + + Step B2 The Gateway acks with a connection ID and provides the SDP + information: + + 200 2002 OK + I: 23474FE + + + + + + +Foster Informational [Page 30] + +RFC 3064 MGCP CAS Packages February 2001 + + + v=0 + o=- A7453949499 0 IN IP4 128.96.41.1 + s=- + c=IN IP4 128.96.41.1 + t=0 0 + m= audio 3456 RTP/AVP 0 + + Step B3 The Call Agent passes this SDP information to the + terminating gateway (GW-t) as part of the connection request: + + CRCX 4001 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + C: A7453949499 + X: 45375840 + L: a:PCMU,s:off,e:on + M: sendrecv + + v=0 + o=- A7453949499 0 IN IP4 128.96.41.1 + s=- + c=IN IP4 128.96.41.1 + t=0 0 + m=audio 3456 RTP/AVP 0 + + Note that the call setup on the terminating trunk can be done with + this CRCX, although in this call flow - it is shown later (step C1). + + Step B4 The terminating gateway, responds with an ack and its SDP + information: + + 200 4001 OK + I: 34738A + + v=0 + o=- A7453949499 0 IN IP4 47.123.34.33 + s=- + c=IN IP4 47.123.34.33 + t=0 0 + m= audio 3456 RTP/AVP 0 + + Step B5 Call Agent sends a modify connection request with + connection mode receive-only to the origination gateway and includes + the SDP information with the selected profile from the termination + gateway. + + MDCX 2003 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + C: A7453949499 + I: 34738A + M: recvonly + + + +Foster Informational [Page 31] + +RFC 3064 MGCP CAS Packages February 2001 + + + v=0 + o=- A7453949499 0 IN IP4 47.123.34.33 + s=- + c=IN IP4 47.123.34.33 + t=0 0 + m= audio 3456 RTP/AVP 0 + + Step B6 The Gateway Acks the modify connection request + + 200 2003 OK + + The following table shows the remainder of the call flow to set up + the call except for Basic PBX (Basic PBX shown in) with details to + follow. + + --------------------------------------------------------------------- +| Steps | GW-o | CA | GW-t | +|---------------------------------------------------------------------| +| C1 | RQNT [S: ms/sup, R: ms/oc, ms/rel, ms/ans] ->| +| C2 | <- Ack | +| C3 | <- NTFY [O:ms/oc(ms/sup)]| +| C4 | Ack -> | +| C5 | <- NTFY [O: ms/ans] | +| C6 | Ack -> | +| C7 | <- MDCX [M:sendrecv, S: ms/ans, R: ms/rel] | +| C8 | Ack -> | +| C9 | RQNT[R: ms/sus] -> | +| C10 | <- Ack | + --------------------------------------------------------------------- + + Step C1 The Call Agent does a setup request to the terminating + gateway The setup request for an MF PBX interface (wink start or + immediate start) will be the following: + + RQNT 4002 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + X: 45375841 + Q: loop + S: ms/sup(addr(ko,5,5,5,1,2,3,4,s0)) + R: ms/oc, ms/rel, ms/ans + + Note that the result of the "sup" signal is the following + sequence on the interface to the PBX: + + * off-hook -> PBX + * wink -> PBX (for wink-start trunks; for immediate start this + part of the sequence does is not included) + * Digits sent to PBX + + + + +Foster Informational [Page 32] + +RFC 3064 MGCP CAS Packages February 2001 + + + For DTMF PBX interface (except Basic PBX), the only difference is + that the MF start and end delimiters (k0 and s0) are not + included: + + RQNT 4002 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + X: 45375841 + Q: loop + S: dt/sup(addr(5,5,5,1,2,3,4)) + R: dt/oc, dt/rel, dt/ans + + Basic PBX requires ringing and ring-back instead i.e.: + + RQNT 4002 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + X: 45375841 + Q: loop + S: bl/rg,bl/rt@34738A + R: bl/oc,bl/hd + + In this case ringback will come from the gateway and will start + immediately with the signal request for rt@connectionID. It will + end as soon as an event occurs (off-hook representing answer + event) In the case of other PBX's, the ringback tone comes from + the PBX so does not have to be generated by the gateway. + + Note that these requests could be done as easily at the same time + as the connection request (B3) saving some post-dial delay time. + + Step C2 The gateway responds with an ack: + + 200 4002 OK + + Step C3 Except for the basic PBX, case (where digits are not + outpulsed) when the digits have completed being sent out, the gateway + will notify the fact by indicate that the operation is complete. + + NTFY 1001 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + X: 45375841 + O: ms/oc(ms/sup) (or dt/oc(dt/sup)) + + Step C4 The Call Agent acks the notify + + 200 1001 OK + + In the case of the BL package, steps C3 and C4 will not exist. + + + + + + + +Foster Informational [Page 33] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step C5 When an answer is obtained from the other end (off-hook + from the PBX), the gateway sends a notify to indicate: + + NTFY 1002 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + X: 45375841 + O: ms/ans (or dt/ans or bl/hd) + + Step C6 The Call Agent acks + + 200 1002 OK + + Step C7 The Call Agent now sends a request to make the connection + full duplex and indicates that the other end has answered the phone. + + MDCX 2004 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + C: A7453949499 + X: 45375842 + I: 34738A + M: sendrecv + S: ms/ans ( or dt/ans but S: not included in the case where the + originating gateway uses the BL package) + + Step C8 The Gateway acks the request + + 200 2004 OK + + Step C9 The Call Agent sends a notification request to be told + when the trunk to be released. + + RQNT 4003 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + X: 45375842 + R: ms/rel,ms/sus (or R: dt/rel,dt/sus or R: bl/hu) + + Step C10 The gateway acks the request + + 200 4003 OK + + The call is now setup. + +5.1.2. Call Tear-Down + + Two cases are included here, one where the origination end initiates + the release (section 5.1.2.1) and one where the termination end + initiates the release (section 5.1.2.2). + + + + + + + +Foster Informational [Page 34] + +RFC 3064 MGCP CAS Packages February 2001 + + +5.1.2.1. Origination End Initiates the Release + + The following call flow shows an example where the origination end + initiates the release for the "MS" package (similar for "DT" + Package). + + -------------------------------------------------------------------- + | Steps | GW-o | CA | GW-t | + |-------------------------------------------------------------------- | + | A1 | NTFY[O: ms/rel] -> | + | A2 | <- Ack | + | A3 | RQNT [S: ms/rel, R: ms/rlc] -> | + | A4 | <- Ack | + | A5 | <- NTFY [O: ms/rlc] | + | A6 | Ack -> | + | A7 | <- DLCX [S: ms/rlc, R: ms/sup] | + | A8 | Ack [perf info] -> | + | A9 | DLCX [R: ms/sup]-> | + | A10 | <- Ack [perf info] | + --------------------------------------------------------------------- + + The same call flow for the "BL" package is shown below + + --------------------------------------------------------------------- + | Steps | GW-o | CA | GW-t | + |---------------------------------------------------------------------| + | A1 | NTFY[O: bl/hu] -> | + | A2 | <- Ack | + | A3 | RQNT [S: bl/dl, R: bl/hu] -> | + | A4 | <- Ack | + | A5 | <- NTFY [O: bl/hu] | + | A6 | Ack -> | + | A7 | <- DLCX [R: bl/hd] | + | A8 | Ack [perf info] -> | + | A9 | DLCX [R: bl/hd]-> | + | A10 | <- Ack [perf info] | + --------------------------------------------------------------------- + + Step A1 The originating user goes on-hook resulting in a Notify + from the gateway to indicate that the trunk is being released (reason + indicating normal release) + + NTFY 3005 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + X: 45375842 + O: ms/rel(0) (or dt/rel(0) or bl/hu) + + + + + + +Foster Informational [Page 35] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step A2 The Call Agent Acks the Notify + + 200 3005 OK + + Step A3 The Call Agent sends a request to release the trunk. (For + all but Basic PBX.) + + RQNT 4004 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + X: 45375843 + S: ms/rel (or dt/rel) + R: ms/rlc (or dt/rlc) + + For the Basic PBX ("BL" package), dial-tone is played + + RQNT 4004 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + X: 45375843 + S: bl/dl + R: bl/hu + + Step A4 The Gateways acks the request + + 200 4004 OK + + Step A5 The other end releases the call by going on-hook and a + Notify is sent to the Call Agent to indicate that release is + complete. + + NTFY 1004 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + X: 45375843 + O: ms/rlc (or dt/rlc) + + In the case of Basic PBX, this is: + + NTFY 1004 ds/ds1-5/3@gw-o.whatever.net MGCP 1.0 + X: 45375843 + O: bl/hu + + Step A6 The Call Agent returns an Ack + + 200 1004 OK + + + + + + + + + + + +Foster Informational [Page 36] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step A7 The Call Agent sends a delete connection to the originating + gateway with a request to do a release complete (which results in + sending on-hook to the PBX). + + DLCX 4005 ds/ds1-5/3@gw-o.whatever.net MGCP 1.0 + X: 45375844 + I: 34738A + S: ms/rlc (or dt/rlc) + R: ms/sup (or dt/sup) + + Or in the case of Basic PBX ("BL" package): + + DLCX 4005 ds/ds1-5/3@gw-o.whatever.net MGCP 1.0 + X: 45375844 + I: 34738A + R: bl/hd + + Step A8 The Gateway Acks and provides performance information. + + 250 4005 OK + P: PS=1245, OS=62345, PR=0, OR=0, PL=0, JI=0, LA=48 + + Step A9 The Call Agent sends a DLCX to the terminating gateway. + + DLCX 2004 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + X: 0123456789B3 + I: 23474FE + R: ms/sup (or dt/sup or bl/hd) + + Step A10 The gateway acks with performance information + + 250 2004 OK + P: PS=1245, OS=62345, PR=0, OR=0, PL=0, JI=0, LA=48 + + + + + + + + + + + + + + + + + + +Foster Informational [Page 37] + +RFC 3064 MGCP CAS Packages February 2001 + + +5.1.2.2. Termination End Initiates the Release + + The following call flow gives an example of the terminating end + releasing a call for all but Basic PBX ("MS" package - "DT" package + is similar). + + --------------------------------------------------------------------- +| Steps | GW-o | CA | GW-t | +|---------------------------------------------------------------------| +| A1 | <- NTFY[O: ms/sus] | +| A2 | Ack -> | +| A3 | <- RQNT [S: ms/sus, R: ms/rel ] | +| A4 | Ack -> | +| A5 | RQNT [R: ms/res] -> | +| A6 | <- Ack | +| A7 | NTFY [O: ms/rel] -> | +| A8 | <- Ack | +| A9 | DLCX [S: ms/rel, R: ms/rlc] -> | +| A10 | <- Ack [perf info] | +| A11 | <- Notify [O: ms/rlc] | +| A12 | Ack -> | +| A13 | <- DLCX [S: ms/rlc, R: ms/sup ] | +| A14 | Ack [perf info] -> | + --------------------------------------------------------------------- + + The following shows the same call flow but for Basic PBX. There is + no equivalent to steps A3-A6 and A11-A12 - so these are not included. + + --------------------------------------------------------------------- +| Steps | GW-o | CA | GW-t | +|---------------------------------------------------------------------| +| A1 | <- NTFY[O: bl/hu] | +| A2 | Ack -> | +| A7 | NTFY [O: bl/hu] -> | +| A8 | <- Ack | +| A9 | DLCX [R: bl/hd] -> | +| A10 | <- Ack [perf info] | +| A13 | <- DLCX [bl/hd] | +| A14 | Ack [perf info] -> | + --------------------------------------------------------------------- + + Step A1 An on-hook is received from the PBX. In the case of all + but the "BL" package, this results in a notify with event "sus" for + suspend. + + + + + + + +Foster Informational [Page 38] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step A2 The Call Agent returns an acknowledge + + The Call Agent starts a timer at this point (typically 10 + seconds). If an off-hook is received from the PBX connected to + GW-t before the origination side releases, the call is continued + (this would appear as a "res" event or "hd" in the case of Basic + PBX interface). If the origination side goes on-hook or the + timer expires, then the call is torn down. + + Note that for Basic PBX (the "BL" package), steps A3 - A6 are + missing (these steps do not exist for basic PBX). + + Step A3 A "sus" signal is sent to the originating side resulting in + a on-hook being sent to the originating PBX. + + Step A4 GW-o acks the request. + + Step A5 The Call Agent sends a request to see off-hook or resume + ("res") events. + + Note: this depends on whether the Call Agent wants to do + suspend/resume processing. If not, the Call Agent may simply send + "rel" along with DLCX to both ends. + + Step A6 GW-t acks the request. + + Step A7 An on-hook is received from the originating PBX resulting + in a notify from GW-o with event "rel" ("hu" for Basic PBX + interface). + + Step A8 The Call Agent "acks" + + Step A9 A delete connection is sent to the terminating gateway with + signal "rel" which results in on-hook being sent to the terminating + PBX (except for basic PBX - where there is no such signal) + + Step A10 GW-t acks the DLCX and provides performance information + + Steps A11 and A12 do not exist for the basic PBX case. + + Step A11 GW-t returns an "rlc" event + + Step A12 The Call Agent "acks" the notify + + Step A13 A delete connection is sent to the originating side (with + signal "rlc" except in the case of the "BL" package). + + Step A14 GW-o returns an "ack" with performance information. + + + +Foster Informational [Page 39] + +RFC 3064 MGCP CAS Packages February 2001 + + +5.2. Example Call Flows - "DO" package + +5.2.1. Call Setup Flows + + The following describes some PBX to PBX call. The table gives an + overview of the initial part of the call flow with details to follow. + + --------------------------------------------------------------------- +| Steps | GW-o | CA | GW-t | +|---------------------------------------------------------------------| +| A1 | NTFY[O: do/rg] -> | +| A2 | <- Ack | +| B1 | <- CRCX [S: do/hd, R: do/rel, M:recvonly, LCO] | +| B2 | Ack[SDP1] -> | +| B3 | CRCX [M:sendrecv, LCO, SDP1] -> | +| B4 | <- Ack [SDP2] | +| B5 | <- MDCX [recvonly,SDP2] | +| B6 | Ack -> | +| C1 | RQNT [S: do/sup, R: do/oc] -> | +| C2 | <- Ack | +| C3 | <- NTFY [O:do/oc(do/sup)]| +| C4 | Ack -> | +| C5 | <- MDCX [M:sendrecv, R: do/rel] | +| C6 | Ack -> | +| C7 | RQNT[R: do/rel] -> | +| C8 | <- Ack | + --------------------------------------------------------------------- + + Step A1 PBX rings results in a notify to the Call Agent indicating + the start of a call setup: + + NTFY 3001 aaln/0@gw-o.whatever.net MGCP 1.0 + X: 0123456789AF + O: do/rg + + Step A2 The Call Agent sends an Ack: + + Step B1 The Call Agent now requests that a receive-only connection + be made. + + If the endpoint is running FXO ground-start, the call would also + request detection of disconnect supervision from the PBX (R: + do/rel) and should send an off-hook (S: do/hd) in response to + ringing. + + Step B2 The Gateway acks with a connection ID and provides the SDP + information. + + + + +Foster Informational [Page 40] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step B3 The Call Agent passes this SDP information to the + terminating gateway (GW-t) as part of the connection request. + + Step B4 The terminating gateway, responds with an ack and its SDP + information. + + Step B5 Call Agent sends a modify connection request with + connection mode receive-only to the origination gateway and includes + the SDP information with the selected profile from the termination + gateway. + + Step B6 The Gateway Acks the modify connection request + + Step C1 The Call Agent does a setup request to the terminating + gateway The setup request will be the following: + + RQNT 4002 aaln/0@gw-t.whatever.net MGCP 1.0 + X: 45375841 + S: do/sup(addr(5,5,5,1,2,3,4)) + R: do/oc + + Note that the result of the "sup" signal is the following + sequence on the interface to the PBX: + + * off-hook -> PBX + * tip-ground <- PBX (for loop-start this step does not apply) + * digits sent to PBX + + Step C2 The gateway responds with an ack: + + 200 4002 OK + + Step C3 When the digits have been completely sent out, the gateway + will notify the fact by indicate that the operation is complete. + + NTFY 1001 aaln/0@gw-t.whatever.net MGCP 1.0 + X: 45375841 + O: do/oc(do/sup) + + Step C4 The Call Agent acks the notify + + 200 1001 OK + + + + + + + + + +Foster Informational [Page 41] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step C5 The Call Agent now sends a request to make the connection + full duplex and indicates that the other end has answered the phone. + + If the endpoint is running FXO ground-start, the call would also + requests detection of disconnect supervision from the PBX + (R:do/rel) + + Step C6 The Gateway acks the request + + Step C7 If the endpoint is running FXO ground-start, the Call Agent + sends a notification request to be told when the trunk to be + released (R: do/rel). This step and step C8 are not needed if the + endpoint is running FXO loop-start. + + Step C8 The gateway acks the request and the call is now setup. + +5.2.2. Call Tear-Down + + If the endpoint is running FXO loop-start, the PBX cannot + initiate call release. In this case, call release is always + initiated by the Media Gateway by going onhook. Disconnect + supervision from the PBX is provided only for FXO ground-start. + However, it does not matter whether the origination end or the + termination end initiates the release. The call flows for either + case are the same. Therefore, only the case where the origination + end initiates the release is illustrated in this section. + + --------------------------------------------------------------------- +| Steps | GW-o | CA | GW-t | +|---------------------------------------------------------------------| +| A1 | NTFY[O: do/rel] -> | +| A2 | <- Ack | +| A3 | RQNT [S: do/hu, R: do/rlc] -> | +| A4 | <- Ack | +| A5 | <- NTFY [O: do/rlc] | +| A6 | Ack -> | +| A7 | <- DLCX [S: hu, R: rg] | +| A8 | Ack [perf info] -> | +| A9 | DLCX [R: do/rg]-> | +| A10 | <- Ack [perf info] | + --------------------------------------------------------------------- + + + + + + + + + + +Foster Informational [Page 42] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step A1 The originating PBX goes on-hook resulting in a Notify from + the gateway to indicate that the trunk is being released (reason + indicating normal release). + + NTFY 3005 aaln/0@gw-o.whatever.net MGCP 1.0 + X: 45375842 + O: do/rel(0) + + Step A2 The Call Agent Acks the Notify + + 200 3005 OK + + Step A3 The Call Agent sends a request to release the trunk. + + Step A4 The Gateways acks the request + + Step A5 PBX at the terminating end releases the call by releasing + tip-ground and a Notify is then sent to the Call Agent to indicate + that release is complete. + + Note that there is no ground signal in case of loop-start. + However, this NTFY message is still generated as soon as hu + signal is applied. + + Step A6 The Call Agent returns an Ack + + Step A7 The Call Agent sends a delete connection to the originating + gateway with a request to go onhook. + + Step A8 The Gateway Acks and provides performance information. + + Step A9 The Call Agent sends a DLCX to the terminating gateway. + + Step A10 The gateway acks with performance information + + + + + + + + + + + + + + + + + +Foster Informational [Page 43] + +RFC 3064 MGCP CAS Packages February 2001 + + +5.3. Example Call Setup - "MD" Package + + The following describes Feature Group D call setup using the "MD" + package. The table gives an overview of the initial part of the call + flow with details to follow. + + --------------------------------------------------------------------- +| Steps | GW-o | CA | GW-t | +|---------------------------------------------------------------------| +| A1 | NTFY[O:md/sup] -> | +| A2 | <- Ack | +| A3 | NTFY[O:md/inf(<id>)] -> | +| A4 | <- Ack | +| A5 | NTFY[O:md/inf(<addr>)] -> | +| A6 | <- Ack | +| B1 | <- CRCX [M:recvonly, LCO, R: md/rel] | +| B2 | Ack[SDP1] -> | +| B3 | CRCX [M:sendrecv, LCO, SDP1] -> | +| B4 | <- Ack [SDP2] | +| B5 | <- MDCX [recvonly,SDP2] | +| B6 | Ack -> | + --------------------------------------------------------------------- + + The assumption is that prior to the initial "notify", the Call Agent + has sent a request to be informed of "sup" and "inf" events using + quarantine handling "Q: loop". + + Step A1 Trunk seizure results in a notify to the Call Agent + indicating the start of a call setup: + + NTFY 3001 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + X: 0123456789B0 + O: md/sup + + Step A2 The Call Agent sends an Ack. + + Step A3 Once the digits for the identification field are collected + the gateway notifies the call agent: + + NTFY 3002 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + X: 0123456789B0 + O: md/inf(k0,0,0,4,0,8,5,5,5,1,2,3,4,s0) + + Step A4 The Call Agent responds with an ack. + + + + + + + +Foster Informational [Page 44] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step A5 When the digits are collected for the address field, + another notify is sent: + + NTFY 3003 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + X: 0123456789B0 + O: md/inf(k0,5,1,2,5,5,5,4,5,6,7,s0) + + Step A6 The Call Agent "acks" + + Step B1 Create connection - receive only: + + CRCX 2002 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + C: A3C47F21456789F1 + L: p:10, a:PCMU + M: sendrecv + X: 0123456789B1 + R: md/rel + + Step B2 The Gateway "acks" the request and provides connection ID + and SDP information. + + Step B3 The Call Agent passes this SDP information to the + terminating gateway (GW-t) as part of the connection request. + + Step B4 The terminating gateway, responds with an ack and its SDP + information. + + Step B5 Call Agent sends a modify connection request with + connection mode receive-only to the origination gateway and includes + the SDP information with the selected profile from the termination + gateway. + + Step B6 The Gateway Acks the modify connection request. + + + + + + + + + + + + + + + + + + +Foster Informational [Page 45] + +RFC 3064 MGCP CAS Packages February 2001 + + + In the case of EAIN signaling there is some additional information + provided so that this initial part of the call setup looks slightly + different: + + --------------------------------------------------------------------- +| Steps | GW-o | CA | GW-t | +|---------------------------------------------------------------------| +| A1 | NTFY[O:md/sup] -> | +| A2 | <- Ack | +| A3 | NTFY[O:md/inf(<ca>)] -> | +| A4 | <- Ack | +| A5 | <- RQNT[S:md/cwk, R:md/inf,md/rel] | +| A6 | <- Ack | +| A7 | NTFY[O:md/inf(<id>)] -> | +| A8 | <- Ack | +| A9 | NTFY[O:md/inf(<addr>)] -> | +| A10 | <- Ack | +| B1 | <- CRCX [M:recvonly, LCO, R: md/rel] | +| B2 | Ack[SDP1] -> | +| B3 | CRCX [M:sendrecv, LCO, SDP1] -> | +| B4 | <- Ack [SDP2] | +| B5 | <- MDCX [recvonly,SDP2] | +| B6 | Ack -> | + --------------------------------------------------------------------- + + The assumption is that prior to the initial "notify", the Call Agent + has sent a request to be informed of "sup" and "inf" events using + quarantine handling "Q: loop". + + Step A1 Trunk seizure results in a notify to the Call Agent + indicating the start of a call setup: + + NTFY 3001 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + X: 0123456789B0 + O: md/sup + + Step A2 The Call Agent sends an Ack + + Step A3 The initial digit string contains the country address + field: + + NTFY 3002 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + X: 0123456789B0 + O: md/inf(k0,1,3,8,9,9,0,0,1,9,s0) + + Step A4 The Call Agent responds with an ack + + + + + +Foster Informational [Page 46] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step A5 The Call Agent does processing on the country address field + and sends a request to initiate further input (sends a continue + wink): + + RQNT 2002 ds/*@mgw45.whatever.net MGCP 1.0 + X: 0123456789B1 + Q: loop + R: md/inf,md/rel + S: md/cwk + + Step A6 The Gateway "acks" the request. + + Step A7 Once the digits for the identification field are collected + the gateway notifies the call agent: + + NTFY 3003 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + X: 0123456789B0 + O: md/inf(k0,0,0,4,0,8,5,5,5,1,2,3,4,s0) + + Step A8 The Call Agent responds with an ack + + Step A9 When the digits are collected for the address field, + another notify is sent: + + NTFY 3004 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + X: 0123456789B0 + O: md/inf(k0,5,1,2,5,5,5,4,5,6,7,s0) + + Step A10 The Call Agent "acks" + + Step B1 Create connection - receive only: + + CRCX 2002 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + C: A3C47F21456789F1 + L: p:10, a:PCMU + M: sendrecv + X: 0123456789B1 + R: md/rel + + Step B2 The Gateway "acks" the request and provides connection ID + and SDP information + + Step B3 The Call Agent passes this SDP information to the + terminating gateway (GW-t) as part of the connection request. + + Step B4 The terminating gateway, responds with an ack and its SDP + information + + + + +Foster Informational [Page 47] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step B5 Call Agent sends a modify connection request with + connection mode receive-only to the origination gateway and includes + the SDP information with the selected profile from the termination + gateway. + + Step B6 The Gateway Acks the modify connection request + + The following table shows the remainder of the call flow to set up + the call for FGD EANA. + + --------------------------------------------------------------------- +| Steps | GW-o | CA | GW-t | +|---------------------------------------------------------------------| +| C1 | RQNT [S:sup, R:md/swk,md/oc, md/rel,md/awk, md/ans] ->| +| C2 | <- Ack | +| C3 | <- NTFY [O:md/swk)] | +| C4 | Ack -> | +| C5 | <- NTFY [O:md/oc(md/sup)]| +| C6 | Ack -> | +| C7 | <- NTFY [O:md/awk)] | +| C8 | Ack -> | +| C9 | <- RQNT[S:md/awk] | +| C10 | Ack -> | +| C11 | <- NTFY [O: md/ans] | +| C12 | Ack -> | +| C13 | <- MDCX [M:sendrecv, S: md/ans, R: md/rel] | +| C14 | Ack -> | +| C15 | RQNT [R: md/sus, md/rel] -> | +| C16 | <- Ack | + --------------------------------------------------------------------- + + Step C1 The Call Agent does a setup request to the terminating + gateway The setup request for an MF EANA FGD interface will be the + following: + + RQNT 2001 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + X: 45375841 + Q: loop + S: + md/sup(ct(nda),addr(k0,5,5,5,5,2,2,1,2,3,4,s0),id(k0,0,5,5,5,1, + 2,3,4,s2)) + R: md/swk,md/oc,md/rel,md/awk,md/ans + + + + + + + + + +Foster Informational [Page 48] + +RFC 3064 MGCP CAS Packages February 2001 + + + Note that the result of the "sup" signal is the following + sequence on the interface to the PBX: + + * off-hook -> SCN + * wink <- SCN + * caller ID digits sent to SCN + * address digits sent to SCN + + Step C2 The gateway responds with an ack + + Step C3 "Notify" the CA that the start of signaling has occurred + (incoming wink start has occurred) i.e.: + + NTFY 3000 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + X: 0123456789B0 + O: md/swk + + Step C4 The Call Agent "acks". + + Step C5 "Notify" that out-pulsing is complete: + + NTFY 3001 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + X: 0123456789B0 + O: md/oc(md/sup) + + Step C6 The Call Agent "acks". + + Step C7 "Notify" that the acknowledgement wink has been received: + + NTFY 3002 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + X: 0123456789B0 + O: md/awk + + Step C8 The Call Agent "acks". + + Step C9 The acknowledge wink is passed to the originating gateway: + + RQNT 2001 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + X: 45375842 + S: md/awk + R: md/rel + + Step C10 GW-o "acks". + + + + + + + + +Foster Informational [Page 49] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step C11 "Notify" off-hook event (the person at the other end has + answered): + + NTFY 3003 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + X: 0123456789B0 + O: md/ans + + Step C12 The Call Agent "acks". + + Step C13 The Call Agent now sends a request to make the connection + full duplex and indicates that the other end has answered the phone + (S: ans sent) + + Step C14 The Gateway acks the request + + In the case of FGD EAIN, there is an additional digits string + (country address and/or carrier access code that has to be + included so that step C1 looks like the following in a case where + there is no overlapped sending: + + RQNT 2001 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + X: 45375841 + Q: loop + S:md/sup(ct(nta),ca(k0,1,3,8,9,9,0,0,1,0,s0),id(k0, + 0,5,5,5,1,2,3,4,s0),addr(ko,0,1,1,3,8,1,2,3,4,7,6,5,s0)) + R: md/swk,md/oc,md/rel,md/awk,md/ans + + If overlapped sending is done, only the country address and + caller ID digit strings are sent out in step C1: + + RQNT 2001 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + + X: 45375841 + Q: loop + S:md/sup(ct(nta),ca(k0,1,3,8,9,9,0,0,1,0,s0),id(k0,0, + 5,5,5,1,2,3,4,s0)) + R: md/swk,md/oc,md/rel,md/ans + + Then after these digits go out indicated by event "oc(sup)" in + step C5, and as soon as the Call Agent has the address + information, it sends it out using the "inf" signal: + + RQNT 2002 ds/ds1-3/6@mgw45.whatever.net MGCP 1.0 + X: 0123456789B1 + Q: loop + R: md/oc,md/rel,md/awk,md/ans + S: md/inf(ko,0,1,1,3,8,1,2,3,4,7,6,5,s0) + + + + +Foster Informational [Page 50] + +RFC 3064 MGCP CAS Packages February 2001 + + + The Call Agent will then get a further "md/oc(md/sup)" event when + these digits have gone out. + + Step C15 The Call Agent requests to be told of on-hook ("sus") + events + or abnormal release ("rel") events. + + Step C16 The gateway "acks" the request. + +5.4. Example Call Setup - "MO" Package + + The following describes Feature Group D operator services signaling + call setup (911 call) using the "MO" package. The table gives an + overview of the initial part of the call flow with details to follow. + In this case GW-o is a residential gateway using the line package and + GW-t connects to the E911 tandem. + + --------------------------------------------------------------------- +| Steps | GW-o | CA | GW-t | +|---------------------------------------------------------------------| +| A1 | NTFY[O:hd] -> | +| A2 | <- Ack | +| A3 | <- RQNT S: dl, R: [0-9*#T](D) | +| A4 | Ack -> | +| A5 | NTFY[O: 9,1,1] -> | +| A6 | <- Ack | +| B1 | <- CRCX [M:recvonly, R: hu] | +| B2 | Ack[SDP1] -> | +| B3 | CRCX [M:sendrecv, LCO, SDP1, S: mo/sup] -> | +| B4 | <- Ack [SDP2] | +| B5 | <- NTFY [O: oc(sup)] | +| B6 | Ack -> | +| B5 | <- MDCX [sendrecv,SDP2] | +| B6 | Ack -> | + --------------------------------------------------------------------- + + Note: the originating side in this case is a line-side gateway. + + Step A1 The user goes off-hook: + + NTFY 3001 aaln/1@gw-o.whatever.net MGCP 1.0 + X: 0123456789AF + O: l/hd + + Step A2 The Call Agent sends an Ack: + + 200 3001 OK + + + + +Foster Informational [Page 51] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step A3 The Call Agent sends dial-tone and requests that digits be + collected: + + RQNT 2001 aaln/1@gw-o.whatever.net MGCP 1.0 + X: 0123456789B0 + S: l/dl + R: d/[0-9#*T](D), hu + + Step A4 The gateway responds with an ack: + + 200 2001 OK + + Step A5 Once the digits are collected the gateway notifies the Call + Agent. In this case, it is a 911 call + + NTFY 3002 aaln/1@gw-o.whatever.net MGCP 1.0 + X: 0123456789B0 + O: d/9,d/1,d/1 + + Step A6 The Call Agent responds with an ack: + + 200 3002 OK + + Step B1 The Call Agent now requests that a receive-only connection + be made. + + CRCX 2002 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + C: A7453949499 + L: a:PCMU,s:off,e:on + M: recvonly + X: 0123456789B1 + R: l/hu. + + Step B2 The Gateway acks with a connection ID and provides the SDP + information: + + 200 2002 OK + I: 23474FE + + v=0 + o=- A7453949499 0 IN IP4 128.96.41.1 + s=- + c=IN IP4 128.96.41.1 + t=0 0 + m= audio 3456 RTP/AVP 0 + + + + + + +Foster Informational [Page 52] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step B3 The Call Agent passes this SDP information to the + terminating gateway (GW-t) as part of the connection request and does + a call setup request at the same time: + + CRCX 4001 ds/ds1-5/3@gw-t.whatever.net MGCP 1.0 + C: A7453949499 + X: 45375840 + L: a:PCMU,s:off,e:on + M: sendrecv + Q: loop + R: oc, rel, orbk + S: sup(addr(k0,9,1,1,s2),id(k0,0,8,3,4,5,6,7,8,s0)) + + v=0 + o=- A7453949499 0 IN IP4 128.96.41.1 + s=- + c=IN IP4 128.96.41.1 + t=0 0 + m=audio 3456 RTP/AVP 0 + + As a result of this request, the following signaling interactions + will occur between GW-t and the Switched Circuit Network (SCN - in + this case, the E911 tandem): + + * Off-hook -> SCN + * Wink <- SCN + * k0,9,1,1,s2 -> SCN + * Off-hook <- SCN + * k0,0,8,3,4,5,6,7,8,s0 + + Note that off-hook from the SCN is part of the protocol (a + request for the caller ID) and does not provide an indication of + whether the operator answered or not. + + Step B4 The terminating gateway, responds with an ack and its SDP + information: + + 200 4001 OK + I: 34738A + + v=0 + o=- A7453949499 0 IN IP4 47.123.34.33 + s=- + c=IN IP4 47.123.34.33 + t=0 0 + m= audio 3456 RTP/AVP 0 + + + + + +Foster Informational [Page 53] + +RFC 3064 MGCP CAS Packages February 2001 + + + Step B5 The Call Agent will get a further notify when outpulsing of + all of the digits is complete. + + NTFY 3003 aaln/1@gw-o.whatever.net MGCP 1.0 + + X: 45375840 + O: oc(sup) + + Step B6 The Call Agent returns an "ack" + + 200 3003 OK + + Step B7 Call Agent sends a modify connection request with + connection mode receive-only to the origination gateway and includes + the SDP information with the selected profile from the termination + gateway. + + MDCX 2003 ds/ds1-3/6@gw-o.whatever.net MGCP 1.0 + C: A7453949499 + I: 34738A + M: sendrecv + + v=0 + o=- A7453949499 0 IN IP4 47.123.34.33 + s=- + c=IN IP4 47.123.34.33 + t=0 0 + m= audio 3456 RTP/AVP 0 + + Step B8 The Gateway Acks the modify connection request + + 200 2003 OK + + The call is now established between the user and the operator. + +Acknowledgements + + The source for some these packages are Flemming Andreasen, Wai-Tak + Siu - Cisco Systems, and Don Stanwyck - IP Unity. Special thanks to + Joe Clark, Telcordia Technologies for his CAS interface expertise. + Also thanks to all the reviewers for all their comments, including + but not limited to the following people: Charles Eckel, Cisco + Systems; Jerry Kamitses, Sonus Networks. + + + + + + + + +Foster Informational [Page 54] + +RFC 3064 MGCP CAS Packages February 2001 + + +References + + [1] Arango, M., Dugan, A., Elliott, I., Huitema, C. and S. Pickett, + "Media Gateway Control Protocol (MGCP) Version 1.0", RFC 2705, + October 1999. + + [2] Handley, M. and V. Jacobson, "SDP: Session Description Protocol", + RFC 2327, April 1998. + + [3] Bellcore, Compatibility Information for Feature Group D Switched + Access Service, TR-NPL-000258, Issue 1, October 1985. + + [4] Bellcore, Interoffice LATA Switching Systems Generic Requirements + (LSSGR): Verification Connections (25-05-0903), TR-TSY-000531, + Issue 2, July 1987. + + [5] Bellcore, LSSGR: Signaling for Analog Interfaces, GR-506-CORE, + Issue 1, June 1996. + + [6] PacketCableTM PSTN Gateway Call Signaling Protocol Specification, + Pkt-SP-TGCP-I01-991201 + +Author's Address + + Bill Foster + 170 West Tasman Dr + San Jose, CA, 95134 + + + Phone: 408-527-8791 + EMail: bfoster@cisco.com + + + + + + + + + + + + + + + + + + + + +Foster Informational [Page 55] + +RFC 3064 MGCP CAS Packages February 2001 + + +Full Copyright Statement + + Copyright (C) The Internet Society (2001). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + + + + + + + + + + + + + +Foster Informational [Page 56] + |