Internet Engineering Task Force                        Christian Huitema
INTERNET DRAFT                                        Flemming Andreasen
<draft-huitema-megaco-mgcp-flows-01.txt>                        Bellcore
January 20, 1999                                         Mauricio Arango
Expires: June 18, 1999                                           RSL COM
                                                               Prakash K
                                                            TELESOFT INC


            Media Gateway Control Protocol (MGCP) Call Flows
   Christian Huitema, Flemming Andreasen, Mauricio Arango, Prakash K




Status of this document

This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026 except for the right to produce
derivative works.

This document is an Internet-Draft.  Internet-Drafts are working docu-
ments of the Internet Engineering Task Force (IETF), its areas, and its
working groups.  Note that other groups may also distribute working
documents as Internet-Drafts.

Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time.  It is inappropriate to use Internet- Drafts as reference material
or to cite them other than as "work in progress."

To view the entire list of current Internet-Drafts, please check the
"1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern Europe),
ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific Rim),
ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast).



Abstract

The Media Gateway Control Protocol (MGCP) organizes the communication
between a Media Gateway controller, or call agent, and a Media Gateway,
e.g. a Voice over IP gateway or a Network Access Server.  MGCP is
defined in a companion document [1].  This document provides example of
MGCP usage by providing a variety of call flows, in the case of
telephony and network access servers.




Huitema, Andreasen, Arango, Prakash                             [Page 1]


Internet draft              MGCP Call Flows              20 January 1999


Table of Contents                                             Page

1.  Introduction ..............................................  2
2.  Internet Telephony Call Flows. ............................  2
3.  Interaction between an MGCP gateway and an H.323 entity ...  2
4.  Interworking between SIP and MGCP .........................  2
5.  Data calls ................................................  2
6.  Audit and Restart .........................................  2
7.  Using MGCP to control an IVR ..............................  2
8.  Acknowledgements ..........................................  2
9.  References ................................................  2
10.  Authors' Addresses .......................................  2







































Huitema, Andreasen, Arango, Prakash                             [Page 2]


Internet draft              MGCP Call Flows              20 January 1999


1.  Introduction

In order to understand the way the MGCP interface will be used, we have
described here several possible call flows between a TGW, which is a
trunking gateway that implements MGCP, and an RGW, which is a residen-
tial gateway that implements MGCP, as well as several call flows
describing how MGCP could be used to control a network access service.
For each of these call flows it is assumed that the default event pack-
ages are as follows:

TGW  Trunk package

RGW  Line package

NAS  Network Access Server package

The diagrams also show a Common Database (CDB) that can be queried for
authorization and routing information, and an Accounting Gateway (ACC)
that collects accounting information at the start and the end of calls.

These diagrams are solely meant to exhibit the behavior of the MGCP, and
to help understanding this protocol. They are not meant as a tutorial on
the implementation of a Call Agent. They may very well include miscel-
laneous errors and imprecisions.



























Huitema, Andreasen, Arango, Prakash                             [Page 3]


Internet draft              MGCP Call Flows              20 January 1999


2.  Internet Telephony Call Flows.

We present seven Internet Telephony call flows:

*    A basic call between two "trunking gateways",

*    A basic call from a "residential gateway" to a "trunking gateway",

*    A basic call  from a "trunking gateway" to a "residential gateway".

*    A basic call from an R2 trunk in a TGW to an SS7 trunk in a TGW.

*    A basic call from an ISDN trunk in a business gateway to an SS7
     trunk in a TGW.

*    A basic call with continuity test, from a "trunking gateway" to a
     "residential gateway".

*    A "hairpin" connection between two endpoints on a trunking gateway,
     using regular call set-up procedures.

*    A "hairpin" connection between two endpoints on a residential gate-
     way, using accelerated procedures.




























Huitema, Andreasen, Arango, Prakash                             [Page 4]


Internet draft              MGCP Call Flows              20 January 1999


2.1.  Connection from a TGW to another TGW

The figure below gives the flow that results in a connection between two
trunking gateways.

                 ______________________________________
                | sw1|  SG1|  TGW1|   CA |  TGW2|  SG2|
                |____|_____|______|______|______|_____|
                | IAM|  -> |      |      |      |     |
                |    |  IAM|  - - |  ->  |      |     |
                |    |     |   <- |  CRCX|      |     |
                |    |     |  ACK |  ->  |      |     |
                |    |     |      |  CRCX|  ->  |     |
                |    |     |      |    <-|  ACK |     |
                |    |     |      |  IAM |  - - |  -> |
                |    |     |      |      |      |  IAM|
                |    |     |      |      |      |   <-|
                |    |     |      |    <-|  - - |  ACM|
                |    |     |   <- |  ACM |      |     |
                |  <-|  - -|  ACM |      |      |     |
                |    |  ...|      |      |      |     |
                |    |     |      |      |      |   <-|
                |    |     |      |    <-|  - - |  ACM|
                |    |     |   <- |  MDCX|      |     |
                |    |     |  ACK |  ->  |      |     |
                |    |   <-|  - - |  ANM |      |     |
                |  <-|  ANM|      |      |      |     |
                | REL|  -> |      |      |      |     |
                |    |  REL|  - - |  ->  |      |     |
                |    |     |   <- |  DLCX|      |     |
                |    |     |  Perf|  ->  |      |     |
                |    |     |  data|      |      |     |
                |    |   <-|  - - |  RLC |      |     |
                |  <-|  RLC|      |      |      |     |
                |    |     |      |  DLCX|  ->  |     |
                |    |     |      |    <-|  Perf|     |
                |    |     |      |      |  data|     |
                |    |     |      |  REL |  - - |  -> |
                |    |     |      |      |      |  REL|
                |    |     |      |      |      |   <-|
                |    |     |      |    <-|  - - |  RLC|
                |____|_____|______|______|______|_____|


During these exchanges the MGCP is used by the Call Agent to control the
two endpoints located on the two TGW.

The exchanges start with the arrival from the first switch (SW1) of an



Huitema, Andreasen, Arango, Prakash                             [Page 5]


Internet draft              MGCP Call Flows              20 January 1999


SS7/ISUP "IAM" message, relayed by the signalling gateway to the Call
Agent.  The call agent performs the routing, and determines that the
call will have to be relayed towards the second switch (SW2), using a
trunk located on TGW2.

The call agent starts the exchange by seizing the endpoint referenced in
the IAM message:

        CRCX 1204 trunk-group-1/17@tgw1.whatever.net MGCP 0.1
        C: A3C47F21456789F0
        L: p:10, a:G.711
        M: recvonly


Upon reception of that command, the trunking gateway prepares a connec-
tion description.

        200 1204 OK
        I:FDE234C8

        v=0
        c=IN IP4 128.96.41.1
        m=audio 3456 RTP/AVP 0


The call agent, upon reception of this acknowledgement, sends a connec-
tion request to the trunking gateway, asking the gateway to reserve a
trunk in the group connected to the second switch:

        CRCX 1205 trunk-group-2/$@tgw2.whatever.net MGCP 0.1
        C: A3C47F21456789F0
        M: sendrecv

        v=0
        c=IN IP4 128.96.41.1
        m=audio 3456 RTP/AVP 0


The call agent selects a trunk in the group, and acknowledges the crea-
tion:

        200 1204 OK
        I:abc0

        v=0
        c=IN IP4 128.96.63.25
        m=audio 1296 RTP/AVP 0




Huitema, Andreasen, Arango, Prakash                             [Page 6]


Internet draft              MGCP Call Flows              20 January 1999


The two commands have created a one way path, suitable for forwarding
ring tones and announcements to the calling party.  The call agent can
now relay the call by sending an IAM message to the second switch.  When
the ACM is received, it is immediately relayed to the first switch.

After some time, the call is answered, and an ANM message is relayed
from the second switch to the call agent. The call agent will first
validate the call by asking the first end-point to place the connection
in duplex mode:

        MDCX 1206 trunk-group-1/17@tgw1.whatever.net MGCP 0.1
        C: A3C47F21456789F0
        I:FDE234C8
        M: sendrecv

        v=0
        c=IN IP4 128.96.63.25
        m=audio 1296 RTP/AVP 0


The trunking gateway executes and acknowledges the modification:

        200 1206 OK

        The call agent can now relay the ANM message to the calling
        switch, and both parties can talk.

        At the end of the call, in our example, the calling party hangs
        up.  The first switch sends a release message to the call agent,
        through the signalling gateway.  The call agent releases the
        connection on the first endpoint:

                DLCX 1207 trunk-group-1/17@tgw1.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:FDE234C8

        The gateway acknowledges the deletion, sending the connection
        parameters:

                250 1217 OK
                P: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27,LA=48

        The call agent can now confirm the release of the trunk, sending
        an RLC message to the first switch.

        In parallel, the call agent releases the connection to the
        second endpoint:




Huitema, Andreasen, Arango, Prakash                             [Page 7]


Internet draft              MGCP Call Flows              20 January 1999


                DLCX 1208 trunk-group-2/13@tgw2.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:abc0


        The gateway acknowledges the deletion, sending the connection
        parameters:

                250 1218 OK
                P: PS=790, OS=45700, PR=1230, OR=61875, PL=15, JI=27,LA=48

        After receiving the acknowledgement, the call agent can relay
        the release message to the second switch. The switch will in
        turn acknowledge the release.





































Huitema, Andreasen, Arango, Prakash                             [Page 8]


Internet draft              MGCP Call Flows              20 January 1999


        2.2.  Basic call, RGW to TGW

     ______________________________________________________________________
    |  Usr  |    RGW   |       CA     |  CDB|  ACC|    TGW   |  SS7/|  CO |
    |       |          |              |     |     |          |  ISUP|     |
    |_______|__________|______________|_____|_____|__________|______|_____|
    |       |     <-   |      RQNT    |     |     |          |      |     |
    |       |    Ack   |       ->     |     |     |          |      |     |
    |  Off  |          |              |     |     |          |      |     |
    | -hook |   (local |              |     |     |          |      |     |
    | (Dial |  action) |              |     |     |          |      |     |
    | -tone)|          |              |     |     |          |      |     |
    | Digits|   Notify |       ->     |     |     |          |      |     |
    |       |     <-   |      Ack     |     |     |          |      |     |
    | (pro- |     <-   |   CRCX+RQNT  |     |     |          |      |     |
    | gress)|    Ack   |       ->     |     |     |          |      |     |
    |       |          |     Query    |     |     |          |      |     |
    |       |          |  (E.164 S,D) |  -> |     |          |      |     |
    |       |          |       <-     |  IP |     |          |      |     |
    |       |          |      CRCX    |  - -|  - -|     ->   |      |     |
    |       |          |              |     |     |  (cut in)|      |     |
    |       |          |       <-     |  - -|  - -|    ack   |      |     |
    |       |          |      IAM     |  - -|  - -|    - -   |   -> |     |
    |       |     <-   |     MDCX     |     |     |          |  IAM |  -> |
    |       |    Ack   |       ->     |     |     |          |   <- |  ACM|
    |       |          |       <-     |  - -|  - -|    - -   |  ACM |     |
    |       |     <-   |  Notification|     |     |          |      |     |
    |       |          |    Request   |     |     |          |      |     |
    |       |    Ack   |       ->     |     |     |          |      |     |
    |       |          |              |     |     |          |   <- |  ANM|
    |       |          |       <-     |  - -|  - -|    - -   |  ANM |     |
    |       |     <-   |   MDCX+RQNT  |     |     |          |      |     |
    |       |    Ack   |       ->     |     |     |          |      |     |
    |       |  (cut in)|   Call start |  - -|  -> |          |      |     |
    |_______|__________|______________|_____|_____|__________|______|_____|
















Huitema, Andreasen, Arango, Prakash                             [Page 9]


Internet draft              MGCP Call Flows              20 January 1999


       __________________________________________________________________
      |   Usr  |   RGW  |       CA     |  CDB|  ACC|   TGW |  SS7/|  CO |
      |        |        |              |     |     |       |  ISUP|     |
      |________|________|______________|_____|_____|_______|______|_____|
      |        |        |              |     |     |       |   <- |  REL|
      |        |        |       <-     |  - -|  - -|   - - |  REL |     |
      |        |    <-  |     Delete   |     |     |       |      |     |
      |        |        |   Connection |     |     |       |      |     |
      |        |        |     Delete   |     |     |       |      |     |
      |        |        |   Connection |  - -|  - -|   ->  |      |     |
      |        |   Perf |              |     |     |       |      |     |
      |        |   Data |       ->     |     |     |       |      |     |
      |        |        |       <-     |  - -|  - -|  perf |      |     |
      |        |        |              |     |     |  data |      |     |
      |        |        |    Call end  |  - -|  -> |       |      |     |
      | On-hook|  Notify|       ->     |     |     |       |      |     |
      |        |    <-  |      Ack     |     |     |       |      |     |
      |        |    <-  |  Notification|     |     |       |      |     |
      |        |        |    Request   |     |     |       |      |     |
      |        |   Ack  |       ->     |     |     |       |      |     |
      |________|________|______________|_____|_____|_______|______|_____|


        During these exchanges the MGCP is used by the Call Agent to
        control both the TGW and the residential gateway. The exchanges
        occur on two sides.

        The first command is a NotificationRequest, sent by the Call
        Agent to the residential gateway. The request will consist of
        the following lines:

                RQNT 1201 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                N: ca@ca1.whatever.net:5678
                X: 0123456789AC
                R: hd(E(dl;hu, D/[0-9#*T](D);)
                D: (0T|00T|[1-7]xxx|8xxxxxxx|#xxxxxxx|*xx|91xxxxxxxxxx|9011x.T)
                S:


        That transaction illustrates the power of the "embedded" action.
        The gateway is instructed to look for an off-hook event, and,
        upon its detection, to provide a dial-tone and to start looking
        for DTMF digits.  The gateway immediately acknowledges the com-
        mand, repeating in the acknowledgement message the transaction
        id that the Call Agent attached to the query.

                200 1201 OK




Huitema, Andreasen, Arango, Prakash                            [Page 10]


Internet draft              MGCP Call Flows              20 January 1999


        When the off hook event is noticed, the gateway provides the
        dial tone to the line (the delay between off-hook and dialtone
        is thus minimal.)

        The gateway will start accumulating digits according to that
        digit map. When it has noticed a sufficient set of values, it
        will notify the observed string to the Call Agent:

                NTFY 2002 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                N: ca@ca1.whatever.net:5678
                X: 0123456789AC
                O: 912018294266


        The Call Agent immediately acknowledges that notification.

                200 2002 OK


        The Call Agent will then seize the incoming circuit, creating a
        connection.  The create connection commands piggybacks a notifi-
        cation request, to stop collecting digits yet continue watch for
        an on-hook transition:

                CRCX 1204 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                L: p:10, a:G.711;G.726-32
                M: recvonly
                X: D/0123456789AD
                R: hu
                S:


             We should note at this point that the call agent could send
             the acknowledgement of the Notify and the CRCX in a single
             UDP packet, as explained in the "piggy backing" section of
             [1].  There are many possible groupings of that nature in
             the various examples.

        The gateway immediately acknowledges the creation, sending back
        the identification of the newly created connection and the ses-
        sion description used to receive audio data:

                200 1204 OK
                I:FDE234C8

                v=0
                c=IN IP4 128.96.41.1



Huitema, Andreasen, Arango, Prakash                            [Page 11]


Internet draft              MGCP Call Flows              20 January 1999


                m=audio 3456 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000


        The SDP announcement, in our example, specifies the address at
        which the gateway is ready to receive audio data (128.96.41.1),
        the transport protocol (RTP), the RTP port (3456) and the audio
        profile (AVP). The audio profile refers to RFC 1890, which
        defines that the payload type 0 has been assigned for G.711
        transmission. The gateway is also ready to use ADPCM encoding at
        32 kbps (G.726 -4). There is no standard payload type associated
        to ADPCM, so the gateway mentions its readiness to use a non
        standard payload associated to the dynamic type 96. The "rtpmap"
        attribute entry associates the payload type 96 to G726-32/4.

        The Call Agent, having seized the incoming trunk and completed a
        routing look up to identify the outgoing gateway, must now seize
        the outgoing trunk. It does so by sending a connection command
        to the e-gress gateway:

                CRCX 1205 card23/21@trgw-7.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                L: p:10, a:G.711;G.726-32
                M: sendrecv

                v=0
                c=IN IP4 128.96.41.1
                m=audio 3456 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000


        The CreateConnection command has the same parameters as the com-
        mand sent to the ingress gateway, with two differences:

        *    The EndpointId points towards the outgoing trunk,

        *    The message carries the session description returned by the
             ingress gateway,

        *    Because the session description is present, the "mode"
             parameter is set to "send/receive".

        We observe that the call identifier is identical for the two
        connections. This is normal: the two connections belong to the
        same call, which has a global identifier in our system.

        The trunking gateway will acknowledge the connection command,
        sending in the session description its own parameters such as



Huitema, Andreasen, Arango, Prakash                            [Page 12]


Internet draft              MGCP Call Flows              20 January 1999


        address, ports and RTP profile:

                200 1205 OK
                I:32F345E2

                v=0
                c=IN IP4 128.96.63.25
                m=audio 1296 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000


        The Call Agent will relay the information to the ingress gate-
        way, using a ModifyConnection command:

                MDCX 1206 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:FDE234C8
                M: recvonly

                v=0
                c=IN IP4 128.96.63.25
                m=audio 1296 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000


        The residential gateway immediately acknowledges the modifica-
        tion:

                200 1206 OK


        At this stage, the Call Agent has established a half duplex
        transmission path. The phone attached to the residential gateway
        will be able to receive the signals, such as tones or announce-
        ments, that the remote switch may send through the trunking
        gateway.

        When the call progresses, the Call Agent will receive from the
        remote switch progress messages, for example an "address com-
        plete" message (ACM). The Call Agent will analyze the message to
        determine whether signal are transmitted in band. If this is not
        the case, the Call Agent will instruct the RGW to generate ring-
        ing tones by sending a NotificationRequest:

                RQNT 1207 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                X: 0123456789AE
                R: hu
                S: v



Huitema, Andreasen, Arango, Prakash                            [Page 13]


Internet draft              MGCP Call Flows              20 January 1999


        The gateway immediately acknowledges the command:

                200 1207 OK


        After the called user answers the call, the Call Agent will
        receive an answering message (ANM) from the CO switch. At that
        point, it will send a ModifyConnection command, to the residen-
        tial gateway, to place the connection in full duplex mode. The
        command embeds NotificationRequest to stop the ringing tones.

                MDCX 1209 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:FDE234C8
                M: sendrecv
                X: 0123456789AF
                R: hu
                S:


        The residential gateway will acknowledge this command:

                200 1209 OK


        At this point, the connection is established.

        When the Call Agent receives the REL message from the CO switch,
        it will have to tear down the call. It will do so by sending to
        both gateways a DeleteConnection command:

                DLCX 1210 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:FDE234C8

                DLCX 1211 card23/21@trgw-7.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:32F345E2


        The gateways will respond with acknowledgements that should
        include a "call parameters" header fields:

                250 1210 OK
                P: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27,LA=48

                250 1211 OK
                P: PS=790, OS=45700, PR=1230, OR=61875, PL=15, JI=27,LA=48



Huitema, Andreasen, Arango, Prakash                            [Page 14]


Internet draft              MGCP Call Flows              20 January 1999


        At this point, the phone attached to the residential gateway, in
        our scenario, goes on-hook. This event is notified to the Call
        Agent, according to the policy received in the last Notifica-
        tionRequest by sending a Notify command:

                NTFY 2005 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                X: 0123456789AF
                O: hu


        After this notification, the Call Agent should send an ack-
        nowledgement:

                200 2005 OK


        It should then issue a new NotificationRequest, to be ready to
        receive the next off-hook detected by the residential gateway:

                RQNT 1212 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                X: 0123456789B0
                R: hd(E(dl;hu, [0-9#*T](D);)
                D: (0T|00T|[1-7]xxx|8xxxxxxx|#xxxxxxx|*xx|91xxxxxxxxxx|9011x.T)
                S:


        The gateway will acknowledge this message:

                200 1212 OK


        Both gateways, at this point, are ready for the next call.



















Huitema, Andreasen, Arango, Prakash                            [Page 15]


Internet draft              MGCP Call Flows              20 January 1999


        2.3.  Basic call, TGW to RGW

      ___________________________________________________________________
     | CO |  SS7/|    TGW   |       CA      |  CDB|  ACC|   RGW  |  Usr |
     |    |  ISUP|          |               |     |     |        |      |
     |____|______|__________|_______________|_____|_____|________|______|
     | IAM|   -> |          |               |     |     |        |      |
     |    |  IAM |    - -   |       ->      |     |     |        |      |
     |    |      |          |      Check    |  -> |     |        |      |
     |    |      |          |       <-      |  IP |     |        |      |
     |    |      |     <-   |     Create    |     |     |        |      |
     |    |      |          |   Connection  |     |     |        |      |
     |    |      |    Ack   |       ->      |     |     |        |      |
     |    |      |          |     Create    |     |     |        |      |
     |    |      |          |   Connection  |  - -|  - -|    ->  |      |
     |    |      |          |       <-      |  - -|  - -|   Ack  |      |
     |    |      |     <-   |     Modify    |     |     |        |      |
     |    |      |          |   Connection  |     |     |        |      |
     |    |      |    Ack   |       ->      |     |     |        |      |
     |    |      |          |  Notification |     |     |        |      |
     |    |      |          |     Request   |  - -|  - -|    ->  |  ring|
     |    |      |          |       <-      |  - -|  - -|   Ack  |      |
     |    |   <- |    - -   |       ACM     |     |     |        |      |
     | <- |  ACM |          |               |     |     |        |      |
     |    |      |          |               |     |     |        |  off |
     |    |      |          |               |     |     |        |  hook|
     |    |      |          |       <-      |  - -|  - -|  Notify|      |
     |    |      |          |       Ack     |  - -|  - -|    ->  |      |
     |    |      |          |  Notification |     |     |        |      |
     |    |      |          |     Request   |  - -|  - -|    ->  |      |
     |    |      |          |       <-      |  - -|  - -|   Ack  |      |
     |    |      |     <-   |    Modify     |     |     |        |      |
     |    |      |          |   Connection  |     |     |        |      |
     |    |      |    Ack   |       ->      |     |     |        |      |
     |    |      |  (cut-in)|   Call start  |  - -|  -> |        |      |
     |    |   <- |    - -   |       ANM     |     |     |        |      |
     | <- |  ANM |          |               |     |     |        |      |
     |____|______|__________|_______________|_____|_____|________|______|













Huitema, Andreasen, Arango, Prakash                            [Page 16]


Internet draft              MGCP Call Flows              20 January 1999


         _____________________________________________________________
        | CO|  SS7/|  TGW |       CA     |  CDB|  ACC|   RGW  |  Usr |
        |   |  ISUP|      |              |     |     |        |      |
        |___|______|______|______________|_____|_____|________|______|
        |   |      |      |              |     |     |        |  on  |
        |   |      |      |              |     |     |        |  hook|
        |   |      |      |       <-     |  - -|  - -|  Notify|      |
        |   |      |      |      Ack     |  - -|  - -|    ->  |      |
        |   |      |      |    Delete    |     |     |        |      |
        |   |      |      |   Connection |  - -|  - -|    ->  |      |
        |   |      |   <- |    Delete    |     |     |        |      |
        |   |      |      |   Connection |     |     |        |      |
        |   |   <- |  - - |      REL     |     |     |        |      |
        | <-|  REL |      |              |     |     |        |      |
        |   |      |  Perf|              |     |     |        |      |
        |   |      |  data|       ->     |     |     |        |      |
        |   |      |      |       <-     |  - -|  - -|  perf  |      |
        |   |      |      |              |     |     |   data |      |
        |   |      |      |    Call end  |  - -|  -> |        |      |
        |   |      |      |  Notification|     |     |        |      |
        |   |      |      |    Request   |  - -|  - -|    ->  |      |
        |   |      |      |       <-     |  - -|  - -|   Ack  |      |
        |___|______|______|______________|_____|_____|________|______|


        This diagram shows the various exchange of messages during a
        call from a telephone user on the circuit-switched PSTN to a
        residential user connected to a residential gateway. During
        these exchanges the Call Agent uses MGCP to control both the TGW
        and the residential gateway. The exchanges occur on two sides.


        Upon reception of the IAM message, the Call Agent immediately
        sends a CreateConnection request to the trunking gateway to con-
        nect to the incoming trunk, creating a connection:


                CRCX 1237 card23/21@trgw-7.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                L: p:10, a:G.711;G.726-32
                M: recvonly


        The trunking gateway immediately acknowledges the creation,
        sending back the identification of the newly created connection
        and the session description used to receive audio data:

                200 1237 OK



Huitema, Andreasen, Arango, Prakash                            [Page 17]


Internet draft              MGCP Call Flows              20 January 1999


                I: FDE234C8

                v=0
                c=IN IP4 128.96.41.1
                m=audio 3456 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000


        The SDP announcement, in our example, specifies the address at
        which the gateway is ready to receive audio data (128.96.41.1),
        the transport protocol (RTP), the RTP port (3456) and the audio
        profile (AVP). The audio profile refers to RFC 1890, which
        defines that the payload type 0 has been assigned for G.711
        transmission. The gateway is also ready to use ADPCM encoding at
        32 kbps (G.726 -4). There is no standard payload type associated
        to ADPCM, so the gateway mentions its readiness to use a non
        standard payload associated to the dynamic type 96. The "rtpmap"
        attribute entry associates the payload type 96 to G726/4.

        The Call Agent, having seized the incoming trunk, must now
        reserve the outgoing circuit. It does so by sending a connection
        command to the residential gateway:

                CRCX 1238 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                L: p:10, a:G.711;G.726-32
                M: sendrecv

                v=0
                c=IN IP4 128.96.41.1
                m=audio 3456 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000


        The CreateConnection command has the same parameters as the com-
        mand sent to the ingress gateway, with two differences:


        *    The EndpointId points towards the outgoing trunk,

        *    The message carries the session description returned by the
             ingress gateway,

        *    Because the session description is present, the "mode"
             parameter is set to "send/receive".

        We observe that the call identifier is identical for the two
        connections. This is normal: the two connection belong to the



Huitema, Andreasen, Arango, Prakash                            [Page 18]


Internet draft              MGCP Call Flows              20 January 1999


        same call, which has a global identifier in our system.

        The residential gateway will acknowledge the connection command,
        sending in the session description its own parameters such as
        address, ports and RTP profile:

                200 1238 OK
                I:32F345E2

                v=0
                c=IN IP4 128.96.63.25
                m=audio 1296 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000


        The Call Agent will relay the information to the ingress gate-
        way, using a ModifyConnection command:

                MDCX 1239 card23/21@trgw-7.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:FDE234C8
                M: recvonly

                v=0
                c=IN IP4 128.96.63.25
                m=audio 1296 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000


        The trunking gateway immediately acknowledges the modification:


                200 1239 OK


        At this stage, the Call Agent has established a half-duplex
        transmission path. The Call Agent must now tells the residential
        gateway to ring the called line. It will send a NotificationRe-
        quest, consisting of the following lines:

                RQNT 1240 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                X: 0123456789B1
                R: hd
                S: rg


        The residential gateway, at that point, is instructed to look
        for an off-hook event, and to report it. It will first



Huitema, Andreasen, Arango, Prakash                            [Page 19]


Internet draft              MGCP Call Flows              20 January 1999


        acknowledge the command, repeating in the acknowledgement mes-
        sage the transaction id that the Call Agent attached to the
        query.

                200 1240 OK


        Upon reception of this message, the Call Agent sends an address
        complete message (ACM) to the calling switch, which we assume
        will generate ringing tones for the calling user.

        When the gateway notices the off hook event, it sends a Notify
        command to the Call Agent:

                NTFY 2001 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                X: 0123456789B0
                O: hd


        The Call Agent immediately acknowledges that notification.

                200 2001 OK


        The Call Agent now asks the residential gateway to send a Notify
        command on the occurrence of an on-hook event. It does so by
        sending a NotificationRequest to the residential gateway:


                RQNT 1241 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                X: 0123456789B1
                R: hu


        The gateway acknowledges that command:

        200 1241 OK


        In parallel, the Call Agent will send a ModifyConnection command
        to the trunking gateway, to place the connection in full duplex
        mode:

                MDCX 1242 card23/21@trgw-7.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:FDE234C8
                M: sendrecv




Huitema, Andreasen, Arango, Prakash                            [Page 20]


Internet draft              MGCP Call Flows              20 January 1999


        The trunking gateway will acknowledge that command:

                200 1242 OK


        The Call Agent can now send an answer message (ANM) to the cal-
        ling switch.

        After some time, the Call Agent will have to tear down the call.
        In our example, this is triggered by the residential user, who
        hangs up. The Notify command is sent to the Call Agent:


                NTFY 2005 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                X: 0123456789B1
                O: hu


        The Call Agent acknowledges the notification.

                200 2005 OK


        It will then send to both gateways a DeleteConnection command:

                DLCX 1243 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:32F345E2

                DLCX 1244 card23/21@trgw-7.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:FDE234C8


        The gateways will respond with a message that should include a
        "call parameters" header fields:

                250 1243 OK
                P: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27, LA=48

                250 1244 OK
                P: PS=790, OS=45700, PR=1230, OR=61875, PL=15, JI=27, LA=48


        The Call Agent should now issue a new NotificationRequest to the
        residential gateway to detect the next off-hook event:





Huitema, Andreasen, Arango, Prakash                            [Page 21]


Internet draft              MGCP Call Flows              20 January 1999


                RQNT 1245 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                X: 0123456789B2
                R: hd


        The residential gateway will acknowledge this command:

                200 1245 OK


        Both gateways, at this point, are ready for the next call.








































Huitema, Andreasen, Arango, Prakash                            [Page 22]


Internet draft              MGCP Call Flows              20 January 1999


        2.4.  Basic call from an R2 trunk in a TGW to an SS7 trunk in a
        TGW

        ________________________________________________________________
       |    CO  |     R2    |       CA      |     TGW   |   SS7/|   CO |
       |        |     TGW   |               |           |   ISUP|      |
       |________|___________|_______________|___________|_______|______|
       |        |     <-    |      NTRQ     |           |       |      |
       |        |     Ack   |       ->      |           |       |      |
       | Trunk  |           |               |           |       |      |
       | seizure|           |               |           |       |      |
       |     &  |           |               |           |       |      |
       | Called |           |               |           |       |      |
       | &callng|           |               |           |       |      |
       | number |           |               |           |       |      |
       | digit  |           |               |           |       |      |
       | collec-|           |               |           |       |      |
       |  tion  |     ->    |               |           |       |      |
       |        |   Notify  |       ->      |           |       |      |
       |        |     <-    |       Ack     |           |       |      |
       |        |     <-    |   Notification|           |       |      |
       |        |           |     Request   |           |       |      |
       |        |     Ack   |       ->      |           |       |      |
       |        |     <-    |     Create    |           |       |      |
       |        |           |   Connection  |           |       |      |
       |        |     Ack   |       ->      |           |       |      |
       |        |           |     Create    |           |       |      |
       |        |           |   Connection  |     ->    |       |      |
       |        |           |               |   (cut in)|       |      |
       |        |           |       <-      |     ack   |       |      |
       |        |           |       IAM     |     - -   |   ->  |      |
       |        |     <-    |     Modify    |           |   IAM |   -> |
       |        |           |   Connection  |           |       |      |
       |        |     Ack   |       ->      |           |   <-  |   ACM|
       |        |           |       <-      |     - -   |   ACM |      |
       |        |           |               |           |   <-  |   ANM|
       |        |           |       <-      |     - -   |   ANM |      |
       |        |     <-    |     Modify    |           |       |      |
       |        |           |   Connection  |           |       |      |
       |        |     Ack   |       ->      |           |       |      |
       |        |   (cut in)|               |           |       |      |
       |________|___________|_______________|___________|_______|______|









Huitema, Andreasen, Arango, Prakash                            [Page 23]


Internet draft              MGCP Call Flows              20 January 1999


         _____________________________________________________________
        |     CO  |     R2   |       CA      |   TGW  |   SS7/|   CO |
        |         |    TGW   |               |        |   ISUP|      |
        |_________|__________|_______________|________|_______|______|
        |         |          |               |        |   <-  |   REL|
        |         |          |       <-      |   - -  |   REL |      |
        |         |          |     Delete    |        |       |      |
        |         |     <-   |   Connection  |        |       |      |
        |         |   Clear- |               |        |       |      |
        |     <-  |    back  |     Delete    |        |       |      |
        |  Clear- |          |   Connection  |    ->  |       |      |
        |    fwd  |     ->   |               |        |       |      |
        |         |    Rel-  |               |        |       |      |
        |     <-  |   guard  |               |        |       |      |
        |         |    Perf  |               |        |       |      |
        |         |    Data  |       ->      |        |       |      |
        |         |          |       <-      |   Perf |       |      |
        |         |          |               |   data |       |      |
        |         |     <-   |   Notification|        |       |      |
        |         |          |     Request   |        |       |      |
        |         |    Ack   |       ->      |        |       |      |
        |_________|__________|_______________|________|_______|______|


        The above diagram describes the call flow between a trunk with
        R2 signaling in a trunking gateway and an SS7 trunk in a trunk-
        ing gateway. R2 is a type of Channel Associated Signaling (CAS)
        and this call flow assumes the use of an R2 package. The follow-
        ing diagram describes a simplified R2 package. In this package
        digit arrival events are not observed by the Call Agent and
        therefore cannot be part of a NotificationRequest. The first
        event that the Call Agent can observe in an R2 trunk is a
        "call-in" event which is a combination of the arrival at the
        gateway of a trunk seizure signal and collection of the called
        (destination) and calling (source) and calling party numbers
        from the R2 registers. The notification for a call-in event
        occurs when digit collection is completed. The clear forward
        event indicates that the exchange at the other side released the
        trunk.

         ______________________________________________________________
           Symbol     Definition             R     S      Duration
         ______________________________________________________________
           ci         Call in                x
           cf         Clear forward          x
           dn         Destination number
           sn         Source number
         ______________________________________________________________



Huitema, Andreasen, Arango, Prakash                            [Page 24]


Internet draft              MGCP Call Flows              20 January 1999


        |         |                      |     |                      |


        The first command is a NotificationRequest, sent by the Call
        Agent to the R2 trunking gateway. The request will consist of
        the following lines:

                RQNT 1201 trunk-group-1/*@r2tgw-2567.whatever.net MGCP 0.1
                N: ca@ca1.whatever.net:5678
                X: 0123456789AB
                R: ci

        The gateway, at that point, is instructed to look for a call-in
        event in any of the trunks corresponding to a trunk group named
        trunk-group-1. The gateway responds with the acknowledgement
        message:

                200 1201 OK

        When the call-in event is detected, the gateway sends a Notify
        to the Call Agent:

                NTFY 2001 trunk-group-1/5@r2tgw-2567.whatever.net MGCP 0.1
                N: ca@ca1.whatever.net:5678
                X: 0123456789AB
                O: ci, dn(5313456789), sn(5845430978)

        This notification indicates the occurrence of a call-in event in
        trunk #5 in trunk-group-1. It also contains the collected desti-
        nation (dn) and source (sn) party numbers. The Call Agent
        immediately acknowledges that notification.

                200 2001 OK

        At this stage, the Call Agent sends a NotificationRequest to
        wait for a trunk release signal: RQNT 1203 trunk-group-
        1/5@r2tgw-2567.whatever.net MGCP 0.1 X: 0123456789AD R: cf The
        Call Agent immediately acknowledges that command.

                200 1203 OK

        The Call Agent will then seize the incoming circuit, creating a
        connec- tion:

                CRCX 1204 trunk-group-1/5@r2tgw-2567.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                L: p:10, a:G.711;G.726-32
                M: recvonly



Huitema, Andreasen, Arango, Prakash                            [Page 25]


Internet draft              MGCP Call Flows              20 January 1999


        The gateway immediately acknowledges the creation, sending back
        the identification of the newly created connection and the ses-
        sion description used to receive audio data:


                200 1204 OK
                I:FDE234C8

                v=0
                c=IN IP4 128.96.41.1
                m=audio 3456 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000

        The Call Agent, having seized the incoming trunk and completed a
        routing look up to identify the outgoing gateway, seizes the
        outgoing trunk. It does so by sending a connection command to
        the egress gate- way:

                CRCX 1205 card23/21@trgw-7.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                L: p:10, a:G.711;G.726-32
                M: sendrecv

                v=0
                c=IN IP4 128.96.41.1
                m=audio 3456 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000

        The SS7 trunking gateway acknowledges the connection command,
        sending in the session description its own parameters such as
        address, ports and RTP profile:

                200 1205 OK
                I:32F345E2

                v=0
                c=IN IP4 128.96.63.25
                m=audio 1297 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000

        The Call Agent relays the information to the ingress gateway,
        using a ModifyConnection command:

                MDCX 1206 trunk-group-1/5@r2tgw-2567.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:FDE234C8
                M: recvonly




Huitema, Andreasen, Arango, Prakash                            [Page 26]


Internet draft              MGCP Call Flows              20 January 1999


                v=0
                c=IN IP4 128.96.63.25
                m=audio 1297 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000

        The R2 trunking gateway immediately acknowledges the modifica-
        tion:

                200 1206 OK

        At this stage, the Call Agent has established a half duplex
        transmission path. The subscriber that originated the call will
        be able to receive signals, such as tones or announcements, that
        the remote switch may send through the trunking gateways.

        After the called user answers the call, the Call Agent will
        receive an answering message (ANM) from the CO switch. At that
        point, it sends a ModifyConnection command, to place the connec-
        tion in full-duplex mode:

                MDCX 1209 trunk-group-1/5@r2tgw-2567.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:FDE234C8
                M: sendrecv

        The R2 trunking gateway acknowledges the modify command:

                200 1209 OK

        At this point, the connection is established.

        When the Call Agent receives the REL message from the CO switch,
        it will have to tear down the call. It will do so by sending to
        both gateways a DeleteConnection command:

                DLCX
                1210 trunk-group-1/5@r2tgw-2567.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:FDE234C8

                DLCX 1211 card23/21@trgw-7.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:32F345E2

        The gateways will respond with acknowledgements that should
        include a "call parameters" header fields:

                250 1210 OK



Huitema, Andreasen, Arango, Prakash                            [Page 27]


Internet draft              MGCP Call Flows              20 January 1999


                P: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27,
                LA=48

                250 1211 OK
                P: PS=790, OS=45700, PR=1230, OR=61875, PL=15, JI=27,
                LA=48

        Finally, the Call Agent issues a new NotificationRequest, to be
        ready to receive the next call-in event detected by the trunking
        gateway at the specified trunk:

                RQNT 1212 trunk-group-1/5@r2tgw-2567.whatever.net MGCP 0.1
                X: 0123456789B0
                R: hd

        The gateway will acknowledge this message:

                200 1212 OK

        Both gateways, at this point, are ready for the next call.































Huitema, Andreasen, Arango, Prakash                            [Page 28]


Internet draft              MGCP Call Flows              20 January 1999


        2.5.  Basic call, from an ISDN gateway to an SS7/TGW


   _________________________________________________________________________
  |   PBX |   Business |         CA        |     TGW   |   SS7/|     CO    |
  |       |      GW    |                   |           |   ISUP|           |
  |_______|____________|___________________|___________|_______|___________|
  | SETUP |      ->    |         ->        |           |       |           |
  |    <- |      <-    |     CALLPROC.     |           |       |           |
  |       |      <-    |        CRCX       |           |       |           |
  |       |     Ack    |         ->        |           |       |           |
  |       |            |        CRCX       |     ->    |       |           |
  |       |            |                   |   (cut in)|       |           |
  |       |            |         <-        |     ack   |       |           |
  |       |            |         IAM       |     ->    |       |           |
  |       |      <-    |        MDCX       |           |   IAM |     ->    |
  |       |     Ack    |         ->        |           |   <-  |     ACM   |
  |       |            |         <-        |     - -   |   ACM |           |
  |    <- |      <-    |        ALERT      |           |       |           |
  |       |      <-    |        RQNT       |           |       |           |
  |       |     Ack    |         ->        |           |       |           |
  |    <- |   Ringing  |                   |           |       |           |
  |       |            |                   |           |   <-  |     ANM   |
  |       |            |         <-        |     - -   |   ANM |           |
  |       |      <-    |      RQNT+MDCX    |           |       |           |
  |       |     Ack    |         ->        |           |       |           |
  |       |            |                   |           |   <-  |     REL   |
  |       |            |         <-        |     - -   |   REL |           |
  |       |      <-    |        DLCX       |           |       |           |
  |       |            |        DLCX       |     ->    |       |           |
  |       |     Perf   |                   |           |       |           |
  |       |     Data   |         ->        |           |       |           |
  |       |            |         <-        |    Perf   |       |           |
  |       |            |                   |    data   |       |           |
  |       |            |         RLC       |     - -   |   ->  |     ->    |
  |    <- |      <-    |        RLSE       |           |       |           |
  | RLCOM |      ->    |         ->        |           |       |           |
  |_______|____________|___________________|___________|_______|___________|


        The above diagram describes the call flow between a trunk with
        ISDN signaling in a business gateway and an SS7 trunk in a
        trunking gateway.

        This call flow assumes that the ISDN Q.931 signaling messages
        are "back-hauled" to the call agent.  The tunnelling protocol,
        together with configuration tables, allows the call agent to
        associate the signalling messages to the endpoint corresponding



Huitema, Andreasen, Arango, Prakash                            [Page 29]


Internet draft              MGCP Call Flows              20 January 1999


        to the B-channel. The specifics of the tunnelling protocol are
        being worked on by the IETF.

        The call is triggered by the arrival of a SETUP command, which
        is relayed to the Call Agent. The call agent analyzes teh com-
        mand, to obtain the destination (dn) and source (sn) party
        numbers. The call agent sends a call progress message, which is
        tunneled to the gateay and relayed over the D-Channel.  The Call
        Agent then seizes the incoming circuit, creating a connection:

                CRCX 1204 isdn-trunk-group-1/3@isdngw-45.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                L: p:10, a:G.711;G.726-32
                M: recvonly


        The gateway immediately acknowledges the creation, sending back
        the identification of the newly created connection and the ses-
        sion descrip- tion used to receive audio data:


        200 1204 OK I:FDE234C8

        v=0 c=IN IP4 128.96.41.1 m=audio 3456 RTP/AVP 0 96 a=rtpmap:96
        G726-32/8000

        The Call Agent, having seized the incoming trunk and completed a
        routing look up to identify the outgoing gateway, seizes the
        outgoing trunk. It does so by sending a connection command to
        the egress gate- way:

                CRCX 1205 card23/21@trgw-7.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                L: p:10, a:G.711;G.726-32
                M: sendrecv

                v=0
                c=IN IP4 128.96.41.1
                m=audio 3456 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000

        The SS7 trunking gateway acknowledges the connection command,
        sending in the session description its own parameters such as
        address, ports and RTP profile:

                200 1205 OK
                I:32F345E2




Huitema, Andreasen, Arango, Prakash                            [Page 30]


Internet draft              MGCP Call Flows              20 January 1999


                v=0
                c=IN IP4 128.96.63.25
                m=audio 1297 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000

        The Call Agent relays the information to the ingress gateway,
        using a ModifyConnection command:

                MDCX 1206 isdn-trunk-group-1/3@isdngw-45.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:FDE234C8
                M: recvonly

                v=0
                c=IN IP4 128.96.63.25
                m=audio 1297 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000

        The business gateway immediately acknowledges the modification:

                200 1206 OK

        At this stage, the Call Agent has established a half duplex
        transmission path. The subscriber that originated the call will
        be able to receive signals, such as tones or announcements, that
        the remote switch may send through the trunking gateways.

        When the call progresses, the Call Agent will receive from the
        remote switch progress messages, for example an "address com-
        plete" message (ACM). The Call Agent will tunnel an ALERT mes-
        sage to the originating PBX.  It may, if needed, send a notifi-
        cation request command to the gateway, to generate alerting
        tones over the B-channel:

                RQNT 1207 isdn-trunk-group-1/3@isdngw-45.whatever.net MGCP 0.1
                X: 0123456789AE
                S: rt

        The gateway immediately acknowledges the command:

                200 1207 OK

        After the called user answers the call, the Call Agent will
        receive an answering message (ANM) from the CO switch. At that
        point, it will send a ModifyConnection command to the business
        gateway, to place the connection in full duplex mode, and an
        embedded NotificationRequest  to stop the ringing tones:




Huitema, Andreasen, Arango, Prakash                            [Page 31]


Internet draft              MGCP Call Flows              20 January 1999


                MDCX 1209 isdn-trunk-group-1/3@isdngw-45.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I: FDE234C8
                M: sendrecv
                X: 0123456789AF
                S:

        The business gateway will acknowledge the command:

                200 1209 OK

        At this point, the connection is established.

        When the Call Agent receives the REL message from the CO switch,
        it will have to tear down the call. It will do so by sending to
        both gateways a DeleteConnection command:

                DLCX 1210 isdn-trunk-group-1/3@isdngw-45.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:FDE234C8

                DLCX 1211 card23/21@trgw-7.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:32F345E2

        The gateways will respond with acknowledgements that should
        include a "call parameters" header fields:

        250 1210 OK P: PS=1245, OS=62345, PR=780, OR=45123, PL=10,
        JI=27, LA=48

        250 1211 OK P: PS=790, OS=45700, PR=1230, OR=61875, PL=15,
        JI=27, LA=48

        Having freed the local resource, the call agent will confirm the
        release by sending a RLC message to the next switch, and will
        also send a release message through the Q.931 tunnel to the PBX.
        The PBX will send back a release confirmation.

        Both gateways, at this point, are ready for the next call.











Huitema, Andreasen, Arango, Prakash                            [Page 32]


Internet draft              MGCP Call Flows              20 January 1999


        2.6.  Basic call with continuity test, TGW to RGW

            _______________________________________________________
           | CO |  SS7/|  TGW|      CA    |  CDB|  ACC|  RGW|  Usr|
           |    |  ISUP|     |            |     |     |     |     |
           |____|______|_____|____________|_____|_____|_____|_____|
           | IAM|   -> |     |            |     |     |     |     |
           |    |  IAM |  - -|      ->    |     |     |     |     |
           |    |      |     |    Check   |  -> |     |     |     |
           |    |      |     |      <-    |  IP |     |     |     |
           |    |      |  <- |   Create   |     |     |     |     |
           |    |      |     |  Connection|     |     |     |     |
           |    |      |  Ack|      ->    |     |     |     |     |
           | COT|   -> |     |            |     |     |     |     |
           |    |  COT |  - -|      ->    |     |     |     |     |
           |    |      |  <- |   Modify   |     |     |     |     |
           |    |      |     |  Connection|     |     |     |     |
           |    |      |     |   Create   |     |     |     |     |
           |    |      |     |  Connection|  - -|  - -|  -> |     |
           |    |      |     |      <-    |  - -|  - -|  Ack|     |
           |____|______|_____|____________|_____|_____|_____|_____|


        This diagram shows the various exchange of messages during the
        beginning of a call from a telephone user on the circuit-
        switched PSTN to a residential user connected to a residential
        gateway. During these exchanges the Call Agent uses MGCP to con-
        trol both the TGW and the residential gateway. The circuit
        switch decides to execute a continuity test during the call
        establishment. The exchanges occur on two sides.

        Upon reception of the IAM message, the Call Agent recognizes
        that a continuity test has been requested.  It immediately sends
        a CreateConnection request to the trunking gateway to connect to
        the incoming trunk, creating a connection:

                CRCX 1237 card23/21@trgw-7.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                L: p:10, a:G.711;G.726-32
                M: conttest


        The trunking gateway recognizes that the mode is set to
        "conttest".  It places the circuit in "continuity test" mode,
        ready to send back the 2010 Hz return tone if it receives a 1780
        Hz tone. The gateway acknowledges the creation of the connec-
        tion, sending back the identification of the newly created con-
        nection and the session description used to receive audio data:



Huitema, Andreasen, Arango, Prakash                            [Page 33]


Internet draft              MGCP Call Flows              20 January 1999


                200 1237 OK
                I: FDE234C8

                v=0
                c=IN IP4 128.96.41.1
                m=audio 3456 RTP/AVP 0 96
                a=rtpmap:96 G726-32/8000


        At this point, the call agent is waiting for the result of the
        continuity test.  The calling switch is sending the test tone
        (1780 Hz); if it receives the return tone (2010 Hz), it will
        send a "continuity passed" message (COT).  At this point, the
        call agent will send a modify connection message to the gateway,
        in order to place the connection in "recvonly" mode:

                MDCX 1238 card23/21@trgw-7.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I: FDE234C8
                M: recvonly

        The gateway will immediately acknowledge that command:

                200 1238 OK


        The Call Agent will then proceed with the establishment of the
        call.























Huitema, Andreasen, Arango, Prakash                            [Page 34]


Internet draft              MGCP Call Flows              20 January 1999


        2.7.  Hairpin connection, regular set-up

        The figure below gives the flow that results in an hairpin con-
        nection on the same gateway.  In this flow, we assume that the
        exchange of messages is exactly comparable to what would happen
        in a call relayed between two trunking gateways, with the sole
        difference that the call will be relayed on a local connection.

                    ________________________________________
                   | sw1|  sw2|  SG |   CA |  TGW-1|  TGW-2|
                   |____|_____|_____|______|_______|_______|
                   | IAM|  - -|  -> |      |       |       |
                   |    |     |  IAM|  ->  |       |       |
                   |    |     |     |  CRCX|   ->  |       |
                   |    |     |     |    <-|   ACK |       |
                   |    |     |     |  CRCX|   - - |   ->  |
                   |    |     |     |    <-|   - - |   ACK |
                   |    |     |   <-|  IAM |       |       |
                   |    |   <-|  IAM|      |       |       |
                   |    |  ACM|  -> |      |       |       |
                   |    |     |  ACM|  ->  |       |       |
                   |    |     |   <-|  ACM |       |       |
                   |  <-|  - -|  ACM|      |       |       |
                   |    |  ...|     |      |       |       |
                   |    |  ANM|  -> |      |       |       |
                   |    |     |  ANM|  ->  |       |       |
                   |    |     |     |  MDCX|   ->  |       |
                   |    |     |     |    <-|   ACK |       |
                   |    |     |   <-|  ANM |       |       |
                   |  <-|  - -|  ANM|      |       |       |
                   | REL|  - -|  -> |      |       |       |
                   |    |     |  REL|  ->  |       |       |
                   |    |     |     |  DLCX|   ->  |       |
                   |    |     |     |    <-|   ACK |       |
                   |    |     |   <-|  RLC |       |       |
                   |  <-|  - -|  RLC|      |       |       |
                   |    |     |     |  DLCX|   ->  |       |
                   |    |     |     |    <-|  Perf |       |
                   |    |     |     |      |  data |       |
                   |    |     |   <-|  REL |       |       |
                   |    |   <-|  REL|      |       |       |
                   |    |  RLC|  -> |      |       |       |
                   |    |     |  RLC|  ->  |       |       |
                   |____|_____|_____|______|_______|_______|


        During these exchanges the MGCP is used by the Call Agent to
        control two endpoints located on the same TGW.



Huitema, Andreasen, Arango, Prakash                            [Page 35]


Internet draft              MGCP Call Flows              20 January 1999


        The exchanges start with the arrival from the first switch (SW1)
        of an SS7/ISUP "IAM" message, relayed by the signalling gateway
        to the Call Agent.  The call agent performs the routing, and
        determines that the call will have to be relayed towards the
        second switch (SW2), using a trunk located on the same gateway.

        The call agent starts the exchange by seizing the endpoint
        referenced in the IAM message:

                CRCX 1204 trunk-group-1/17@tgw.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                L: nt=LOCAL
                M: recvonly


        Upon reception of that command, the trunking gateway prepares a
        "local" connection description.

                200 1204 OK
                I:FDE234C8

                v=0
                c=IN tgw.whatever.net trunk-group-1/17
                m=audio 0 LOCAL 0


        The call agent, upon reception of this acknowledgement, sends a
        connection request to the trunking gateway, asking the gateway
        to reserve a trunk in the group connected to the second switch:

                CRCX 1205 trunk-group-2/$@tgw.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                L: nt=LOCAL
                M: sendrecv

                v=0
                c=IN tgw.whatever.net trunk-group-1/17
                m=audio 0 LOCAL 0


        The call agent selects a trunk in the group, and acknowledges
        the creation:

                200 1204 OK
                I:abc0

                v=0
                c=IN tgw.whatever.net trunk-group-2/13



Huitema, Andreasen, Arango, Prakash                            [Page 36]


Internet draft              MGCP Call Flows              20 January 1999


                m=audio 0 LOCAL 0


        The two commands have created a one way path, suitable for for-
        warding ring tones and announcements to the calling party.  The
        call agent can now relay the call by sending an IAM message to
        the second switch.  When the ACM is received, it is immediately
        relayed to the first switch.

        After some time, the call is answered, and an ANM message is
        relayed from the second switch to the call agent. The call agent
        will first validate the call by asking the first end-point to
        place the connection in duplex mode:

                MDCX 1206 trunk-group-1/17@tgw.whatever.net MGCP 0.1
                C: A3C47F21456789F0
                I:FDE234C8
                M: sendrecv

                v=0
                c=IN tgw.whatever.net trunk-group-2/13
                m=audio 0 LOCAL 0


        The trunking gateway executes and acknowledges the modification:

                200 1206 OK

                The call agent can now relay the ANM message to the cal-
                ling switch, and both parties can talk.

                At the end of the call, in our example, the calling
                party hangs up.  The first switch sends a release mes-
                sage to the call agent, through the signalling gateway.
                The call agent releases the connection on the first end-
                point:

                        DLCX 1207 trunk-group-1/17@tgw.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I:FDE234C8

                The gateway acknowledges the deletion, sending the con-
                nection parameters:

                        250 1217 OK
                        P: OS=62345, OR=62345

                The call agent can now confirm the release of the trunk,



Huitema, Andreasen, Arango, Prakash                            [Page 37]


Internet draft              MGCP Call Flows              20 January 1999


                sending an RLC message to the first switch.

                In parallel, the call agent releases the connection to
                the second endpoint:

                        DLCX 1208 trunk-group-2/13@tgw.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I:abc0


                The gateway acknowledges the deletion, sending the con-
                nection parameters:

                        250 1218 OK
                        P: OS=62345, OR=62345

                After receiving the acknowledgement, the call agent can
                relay the release message to the second switch. The
                switch will in turn acknowledge the release.
































Huitema, Andreasen, Arango, Prakash                            [Page 38]


Internet draft              MGCP Call Flows              20 January 1999


                2.8.  Hairpin connection, accelerated set-up

                The figure below gives the flow that results in an hair-
                pin connection on the same gateway.  Contrary to the
                previous example, we will assume that the call agent
                uses a special-case software, and takes full benefit of
                the call's locality to accelerate the call set-up.

                   _________________________________________________
                  |  User1  |    User2  |     RGW   |       CA     |
                  |_________|___________|___________|______________|
                  |         |           |     <--   |      RQNT    |
                  |         |           |    ACK    |       -->    |
                  | OFF HOOK|    ---    |     -->   |              |
                  |   <--   |     ---   |   dialtone|              |
                  | digits  |     ---   |    NTFY   |       -->    |
                  |         |           |           |              |
                  |         |           |     <--   |       ACK    |
                  |         |           |           |              |
                  |         |           |     <--   |   CRCX+RQNT, |
                  |         |    Ring   |     <--   |   CRCX+RQNT  |
                  |         |           |    ACK    |       -->    |
                  |         |           |    ACK    |       -->    |
                  |         |  OFF HOOK |    NTFY   |       -->    |
                  |         |           |     <--   |       ACK    |
                  |         |           |     <--   |      RQNT    |
                  |         |           |     ACK   |       -->    |
                  |         |           |           |              |
                  | on-hook |     ---   |    NTFY   |       -->    |
                  |         |           |     <--   |       ACK    |
                  |         |           |     <--   |    DLCX+RQNT |
                  |         |           |     <--   |      DLCX    |
                  |         |           |     ACK   |       -->    |
                  |         |           |     ACK   |       -->    |
                  |         |   on-hook |    NTFY   |       -->    |
                  |         |           |     <--   |       ACK    |
                  |         |           |     <--   |      RQNT    |
                  |         |           |     ACK   |       -->    |
                  |_________|___________|___________|______________|

                The first command is a NotificationRequest, sent by the
                Call Agent to the residential gateway. The request will
                consist of the following lines:

                        RQNT 1201 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                        N: ca@ca1.whatever.net:5678
                        X: 0123456789AC
                        R: hd(E(dl;hu, D/[0-9#*T](D);)



Huitema, Andreasen, Arango, Prakash                            [Page 39]


Internet draft              MGCP Call Flows              20 January 1999


                        D: (0T|00T|[1-7]xxx|8xxxxxxx|#xxxxxxx|*xx|91xxxxxxxxxx|9011x.T)

                The gateway immediately acknowledges the command,
                repeating in the acknowledgement message the transaction
                id that the Call Agent attached to the query.

                        200 1201 OK


                When the off hook event is noticed, the gateway provides
                the dial tone to the line (the delay between off-hook
                and dialtone is thus minimal.) The gateway will then
                start accumulating digits according to that digit map.
                When it has noticed a sufficient set of values, it will
                notify the observed string to the Call Agent:

                        NTFY 2002 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                        N: ca@ca1.whatever.net:5678
                        X: 0123456789AC
                        O: 912018294266


                The Call Agent immediately acknowledges that notifica-
                tion.

                        200 2002 OK


                The call agent analyzes the called number and determines
                that this is an hairpin connection: the called party is
                located on the same gateway, on endpoint/2.  The Cal-
                lAgent can prepare two simultaneous CreateConnection
                commands, creating the two legs of the connection.
                Because we are not too concerned at this stage with tax
                evasion, the The Call Agent will then seize the incoming
                circuit, creating a connection.  The create connection
                sent to the first endpoint piggybacks a notification
                request, to stop collecting digits yet continue watch
                for an on-hook transition. The CreateConnection sent to
                the second endpoint piggybacks a request to generate
                ringing and look for off-hook. Both commands can be sent
                in a single UDP packet:

                          CRCX 1204 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                          C: A3C47F21456789F0
                          X: 0123456789AD
                          M: sendrecv
                          R: hu



Huitema, Andreasen, Arango, Prakash                            [Page 40]


Internet draft              MGCP Call Flows              20 January 1999


                          S:

                          v=0
                          c=LOCAL rgw-2567.whatever.net endpoint/2
                          m=audio 0 LOCAL 0
                          .
                          CRCX 1205 endpoint/2@rgw-2567.whatever.net MGCP 0.1
                          C: A3C47F21456789F0
                          X: 9875659876
                          M: sendrecv
                          R: hd
                          S: rg

                          v=0
                          c=LOCAL rgw-2567.whatever.net endpoint/1
                          m=audio 0 LOCAL 0


                     We should note that the call agent does not send
                     the local connection options since it knows that it
                     is a local (a.k.a. "hairpin") connection: the con-
                     nections are entirely described by the SDP text.

                The gateway immediately acknowledges the creations,
                sending back in two messages the identification of the
                newly created connections:

                          200 1204 OK
                          I:FDE234C8
                          .
                          200 1204 OK
                          I:9867659A


                The residential gateway, at that point, is instructed to
                look for an off-hook event on the second endpoint, and
                to report it. When the gateway notices the off hook
                event, it sends a Notify command to the Call Agent:

                          NTFY 2001 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                          X: 9875659876
                          O: hd


                The Call Agent immediately acknowledges that notifica-
                tion:

                          200 2001 OK



Huitema, Andreasen, Arango, Prakash                            [Page 41]


Internet draft              MGCP Call Flows              20 January 1999


                The Call agent will now send a NotificationRequest com-
                mand to the gateway, asking to look for an off-hook
                event on the second end-point:

                          RQNT 1206 endpoint/2@rgw-2567.whatever.net MGCP 0.1
                          X: 987565989A
                          R: hu
                          S:

                The gateway acknowledges that command:

                          200 1206 OK

                At this point the call is active between the two
                residential gateway users.

                When the first user goes off hook, it sends a notifica-
                tion to the call agent:

                          NTFY 2010 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                          X: 987565989A
                          O: hu

                The call agent acknowledges the notification.  It can,
                in a single UDP message, send the acknowledgement and
                the DeleteConnection commands that will clear the call.
                For the first gateway, the command embeds a notification
                request that readies that gateway for the next call:

                          200 2010 OK
                          .
                          DLCX 1210 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                          C: A3C47F21456789F0
                          I: FDE234C8
                          N: ca@ca1.whatever.net:5678
                          X: 012345673FDE
                          R: hd(E(dl;hu, D/[0-9#*T](D);)
                          S:
                          .
                          DLCX 1211 endpoint/2@rgw-2567.whatever.net MGCP 0.1
                          C: A3C47F21456789F0
                          I: 9867659A
                          X: A3C5F0
                          R: hu
                          S:

                The gateway will acknowledge the commands in a single
                UDP message that will carry the "local connection"



Huitema, Andreasen, Arango, Prakash                            [Page 42]


Internet draft              MGCP Call Flows              20 January 1999


                version of the connection parameters.

                          250 1243 OK
                          P: OS=62345, OR=62345
                          .
                          250 1244 OK
                          P: OS=62345, OR=62345

                When the second user goes off hook, the gateway sends a
                Notify commands

                          NTFY 2020 endpoint/2@rgw-2567.whatever.net MGCP 0.1
                          X: A3C5F0
                          O: hu

                The Call agent follows with a notification requests,
                transmitted in the same packet as the acknowledgement,
                in order to ready the line for the next call:

                          200 2020 OK
                          .
                          RQNT 1220 enpoint/1@rgw-2567.whatever.net MGCP 0.1
                          N: ca@ca1.whatever.net:5678
                          X: 0123456793E5
                          R: hd(E(dl;hu, D/[0-9#*T](D);)
                          S:


                The gateway acknowledges the command, signalling that
                the second endpoint is now ready.

                          200 1220 OK



















Huitema, Andreasen, Arango, Prakash                            [Page 43]


Internet draft              MGCP Call Flows              20 January 1999


                2.9.  Hairpin connection, double end-point model

                The figure below gives the flow that results in an hair-
                pin connection on the same gateway.  In this flow, we
                assume that we use the "double endpoint" extensions to
                the create-connection command.

                        ________________________________________
                       | sw1|  sw2|  SG |   CA |  TGW-1|  TGW-2|
                       |____|_____|_____|______|_______|_______|
                       | IAM|  - -|  -> |      |       |       |
                       |    |     |  IAM|  ->  |       |       |
                       |    |     |     |  CRCX|   ->  |  (->) |
                       |    |     |     |    <-|   ACK |  (ACK)|
                       |    |     |   <-|  IAM |       |       |
                       |    |   <-|  IAM|      |       |       |
                       |    |  ACM|  -> |      |       |       |
                       |    |     |  ACM|  ->  |       |       |
                       |    |     |   <-|  ACM |       |       |
                       |  <-|  - -|  ACM|      |       |       |
                       |    |  ...|     |      |       |       |
                       |    |  ANM|  -> |      |       |       |
                       |    |     |  ANM|  ->  |       |       |
                       |    |     |   <-|  ANM |       |       |
                       |  <-|  - -|  ANM|      |       |       |
                       | REL|  - -|  -> |      |       |       |
                       |    |     |  REL|  ->  |       |       |
                       |    |     |     |  DLCX|   ->  |       |
                       |    |     |     |    <-|  Perf |       |
                       |    |     |     |      |  data |       |
                       |    |     |   <-|  RLC |       |       |
                       |  <-|  - -|  RLC|      |       |       |
                       |    |     |     |  DLCX|   ->  |       |
                       |    |     |     |    <-|  Perf |       |
                       |    |     |     |      |  data |       |
                       |    |     |   <-|  REL |       |       |
                       |    |   <-|  REL|      |       |       |
                       |    |  RLC|  -> |      |       |       |
                       |    |     |  RLC|  ->  |       |       |
                       |____|_____|_____|______|_______|_______|


                During these exchanges the MGCP is used by the Call
                Agent to control two endpoints located on the same TGW.

                The exchanges start with the arrival from the first
                switch (SW1) of an SS7/ISUP "IAM" message, relayed by
                the signalling gateway to the Call Agent.  The call



Huitema, Andreasen, Arango, Prakash                            [Page 44]


Internet draft              MGCP Call Flows              20 January 1999


                agent performs the routing, and determines that the call
                will have to be relayed towards the second switch (SW2),
                using a trunk located on the same gateway.

                The call agent starts the exchange by seizing the end-
                point referenced in the IAM message:

                        CRCX 1204 trunk-group-1/17@tgw.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        L: nt=LOCAL
                        M: sendrecv
                        E2: trunk-group-2/$


                Upon reception of that command, the trunking gateway
                prepares a "local" connection description between the
                specified endpoint (trunk-group-1/17) and an endpoint
                that it selects within the secund trunk group (trunk-
                group-2/13).  The gateway acknowledges the two creations
                in a single message:

                        200 1204 OK
                        I:FDE234C8
                        Z2:trunk-group-2/13@tgw.whatever.net
                        I2:abc0


                The command has created a path, between the two end-
                points. The call agent can now relay the call by sending
                an IAM message to the second switch.  When the ACM is
                received, it is immediately relayed to the first switch.

                After some time, the call is answered, and an ANM mes-
                sage is relayed from the second switch to the call
                agent.  The call agent immediately relays the ANM mes-
                sage to the calling switch, and both parties can talk.

                At the end of the call, in our example, the calling
                party hangs up.  The first switch sends a release mes-
                sage to the call agent, through the signalling gateway.
                The call agent releases the connection on the first end-
                point:

                        DLCX 1207 trunk-group-1/17@tgw.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I:FDE234C8

                The gateway acknowledges the deletion, sending the



Huitema, Andreasen, Arango, Prakash                            [Page 45]


Internet draft              MGCP Call Flows              20 January 1999


                connection parameters:

                        250 1217 OK
                        P: OS=62345, OR=62345

                The call agent can now confirm the release of the trunk,
                sending an RLC message to the first switch.

                In parallel, the call agent releases the connection to
                the second endpoint:

                        DLCX 1208 trunk-group-2/13@tgw.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I:abc0


                The gateway acknowledges the deletion, sending the con-
                nection parameters:

                        250 1218 OK
                        P: OS=62345, OR=62345

                After receiving the acknowledgement, the call agent can
                relay the release message to the second switch. The
                switch will in turn acknowledge the release.


























Huitema, Andreasen, Arango, Prakash                            [Page 46]


Internet draft              MGCP Call Flows              20 January 1999


                3.  Interaction between an MGCP gateway and an H.323
                entity

                MGCP is not intended to replace H.323, or even to com-
                pete with it. In fact, we should mostly consider it as a
                tool to enable distributed implementations of H.323. The
                combination of gateways and call agent behaves as a dis-
                tributed H.323 system, using MGCP for internal communi-
                cation. This system appears to H.323 users as a larger
                H.323 system, or, if one prefers, as an H.323 gatekeeper
                that implements the Gatekeeper routed call model.

                In order to demonstrate the compatibility between MGCP
                and H.323, we provide here a step by step demonstration
                of 2 call set up scenarios:

                *    Call from an MGCP controlled residential gateway to
                     an H.323 entity,

                *    Call from an H.323 entity to an MGCP controlled
                     residential gateway.

                We suppose, in these scenarios, that the H.323 entity is
                capable of using the fast start procedure defined in
                H.323v2.


























Huitema, Andreasen, Arango, Prakash                            [Page 47]


Internet draft              MGCP Call Flows              20 January 1999


                3.1.  Call from a residential gateway (RGW) to an H.323
                user

         _____________________________________________________________________
        |     Usr    |     RGW   |       CA     |    H.323  |    Usr   |  GK |
        |____________|___________|______________|___________|__________|_____|
        |            |     <-    |      RQNT    |           |          |     |
        |            |     Ack   |       ->     |           |          |     |
        |            |           |              |           |          |     |
        |  Off-hook  |   Notify  |       ->     |           |          |     |
        |     <-     |     Ack   |              |           |          |     |
        | (Dial-tone)|     <-    |      RQNT    |           |          |     |
        |            |     Ack   |       ->     |           |          |     |
        |            |           |              |           |          |     |
        |   Digits   |   Notify  |       ->     |           |          |     |
        |     <-     |     Ack   |              |           |          |     |
        | (progress) |     <-    |   CRCX+RQNT  |           |          |     |
        |            |     Ack   |       ->     |           |          |     |
        |            |           |  (processing)|           |          |     |
        |            |           |    TCP-SYN   |     ->    |          |     |
        |            |           |       <-     |  SYN, ACK |          |     |
        |            |           |    Set-up+   |           |          |     |
        |            |           |   faststart  |     ->    |          |     |
        |            |           |              |     ARQ   |   - - -  |  -> |
        |            |           |              |     <-    |   - - -  |  ACF|
        |            |           |       <-     |  alerting |    ring  |     |
        |            |           |    TCP ACK   |     ->    |          |     |
        | (ring back)|     <-    |      RQNT    |           |          |     |
        |            |     Ack   |       ->     |           |          |     |
        |            |           |       <-     |  connect +|  off hook|     |
        |            |           |              |  faststart|          |     |
        |            |           |    TCP ACK   |     ->    |          |     |
        |            |     <-    |   MDCX+RQNT  |           |          |     |
        |            |     Ack   |       ->     |           |          |     |
        |            |           |  (call est.) |           |          |     |
        |   on hook  |   Notify  |       ->     |           |          |     |
        |     <-     |     Ack   |              |           |          |     |
        |     <-     |  DLCX+RQNT|              |           |          |     |
        |  perf data |     ->    |              |           |          |     |
        |            |           |    Rel. C.   |     ->    |          |     |
        |            |           |    TCP-FIN   |     ->    |          |     |
        |            |           |       <-     |  FIN, ACK |          |     |
        |            |           |    TCP ACK   |     ->    |          |     |
        |            |           |              |  (signal) |  On-hook |     |
        |            |           |              |     DRQ   |   - - -  |  -> |
        |            |           |              |     <-    |   - - -  |  DCF|
        |____________|___________|______________|___________|__________|_____|




Huitema, Andreasen, Arango, Prakash                            [Page 48]


Internet draft              MGCP Call Flows              20 January 1999


                During these exchanges the MGCP is used by the call
                agent to control the residential gateways. The call will
                be routed to an H.323 entity. The first command is a
                notification request, sent by the call agent to the
                residential gateway. The request will consist of the
                following lines:

                        RQNT 1201 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                        N: ca@ca1.whatever.net:5678
                        X: 0123456789AB
                        R: hd


                The gateway, at that point, is instructed to look for an
                off-hook event, and to report it. It will first ack-
                nowledge the request, repeating in the acknowledgement
                message the transaction id that the call agent attached
                to the query.

                        200 1201 OK


                Note that this command is not actually simultaneous with
                the call. It can be issued long before the actual call,
                for example when the gateway is turned on, or after the
                end of a previous call.

                When the off hook event is noticed, the gateway sends a
                Notify command to the call agent:

                           NTFY 2001 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           N: ca@ca1.whatever.net:5678
                           X: 0123456789AB
                           O: hd


                The call agent immediately acknowledges that notifica-
                tion.

                           200 2001 OK


                The call agent examines the services associated to an
                off hook action (it could take special actions in the
                case of a direct line). In most cases, it will send a
                notification request, asking for digits. The current
                example provides the gateway with a digit map, and
                requests the gateway to play a dialtone:



Huitema, Andreasen, Arango, Prakash                            [Page 49]


Internet draft              MGCP Call Flows              20 January 1999



                           RQNT 1202 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           N: ca@ca1.whatever.net:5678
                           X: 0123456789AC
                           R: hu, [0-9#*T](D)
                           D: (0T | 00T | [1-7]xxx | 8xxxxxxx | #xxxxxxx | *xx | 91xxxxxxxxxx | 9011x.T)
                           S: dl


                The gateway immediately acknowledges that request.

                            200 1202 OK


                The gateway will start accumulating digits according to
                that digit map.  When it has noticed a sufficient set of
                values, it will notify the observed string to the call
                agent:

                           NTFY 2002 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           N: ca@ca1.whatever.net:5678
                           X: 0123456789AC
                           O: 912018294266


                The call agent immediately acknowledges that notifica-
                tion.

                           200 2002 OK


                At this stage, the call agent seizes the incoming cir-
                cuit, creating a connection.  It will also send together
                with that creation request a notification request, to
                stop collecting digits yet continue watch for an on-hook
                transition:

                           CRCX 1204 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           C: A3C47F21456789F0
                           L: p:10, a:G.711;G.726-32
                           M: recvonly
                           X: 0123456789AD
                           R: hu


                The gateway immediately acknowledges the creation, send-
                ing back the identification of the newly created connec-
                tion and the session description used to receive audio



Huitema, Andreasen, Arango, Prakash                            [Page 50]


Internet draft              MGCP Call Flows              20 January 1999


                data:

                           200 1204 OK
                           I:  FDE234C8

                           v=0
                           c=IN IP4 128.96.41.1
                           m=audio 3456 RTP/AVP 0


                The SDP announcement, in our example, specifies the
                address at which the gateway is ready to receive audio
                data (128.96.41.1), the transport protocol (RTP), the
                RTP port (3456) and the audio profile (AVP). The audio
                profile refers to RFC 1890, which defines that the pay-
                load type 0 has been assigned for G.711 transmission.

                The call agent, having seized the incoming trunk,
                proceeds with call routing. Using local databases, it
                determines that the dialed digits (912018294266)
                correspond to a H.323 entity. It will set up a TCP-IP
                connection and send an H.225/Q.931 "set-up" message to
                the H.323 entity. In this message, the "faststart" ele-
                ment carries a set of open logical channel proposals,
                derived from the SDP description received from the cal-
                ling gateway:

























Huitema, Andreasen, Arango, Prakash                            [Page 51]


Internet draft              MGCP Call Flows              20 January 1999



                        faststart-1 OpenLogicalChannel ::= {
                           forwardLogicalChannelNumber   1,
                           forwardLogicalChannelParameters {
                              dataType   g711Ulaw64k 160, -- 20 ms G.711 frame
                              multiplexParameters
                                 h2250LogicalChannelParameters H2250LogicalChannelParameters  {
                                     sessionID 1,
                                     silenceSuppression   FALSE
                                 }
                           }
                        }

                        faststart-2 OpenLogicalChannel ::= {
                           forwardLogicalChannelNumber   2,
                           forwardLogicalChannelParameters {
                              dataType              nullData, -- pro forma
                              multiplexParameters   none
                           },
                           reverseLogicalChannelParameters   {
                              dataType   g711Ulaw64k 160, -- 20 ms frame
                              multiplexParameters
                                 h2250LogicalChannelParameters H2250LogicalChannelParameters {
                                    sessionID 2,
                                    mediaChannel unicastAddress iPAddress {
                                       network  '80602901'H, -- 128.96.41.1
                                       tsapIdentifier 3456 -- port
                                    },
                                    mediaControlChannel unicastAddress iPAddress {
                                       network  '80602901'H, -- 128.96.41.1
                                       tsapIdentifier 3457 -- port
                                    },
                                    silenceSuppression FALSE
                                 }
                           }
                        }


                The H.323 alerts the user, and sends an H.225/Q.931
                "alerting" message.  On reception of this message, the
                call agent will send a notification request that
                instruct the RGW to generate alerting tones:

                           RQNT 1206 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           X: 0123456789AE
                           R: hu
                           S: v




Huitema, Andreasen, Arango, Prakash                            [Page 52]


Internet draft              MGCP Call Flows              20 January 1999


                When the called user accepts the call, the H.323 entity
                sends an H.225/Q.931

                set-up
                 message to the call agent. If the H.323 entity accepted
                the fast start procedure, the faststart
                 parameter will contain the confirmation of the open
                logical channel creations in the two directions of com-
                munication:

                        faststart-1 OpenLogicalChannel ::= {
                           forwardLogicalChannelNumber   1,
                           forwardLogicalChannelParameters {
                              dataType   g711Ulaw64k 160, -- 20 ms frame
                              multiplexParameters h2250LogicalChannelParameters {
                                 sessionID 1,
                                 mediaChannel unicastAddress iPAddress {
                                                 network  '80603F19'H,
                                                 tsapIdentifier 3456, -- port
                                 } ,
                                 mediaControlChannel unicastAddress iPAddress {
                                                 network  '80603F19'H,
                                                 tsapIdentifier 3457, -- port
                                 } ,
                                 silenceSuppression   FALSE
                              }
                          }
                        }
                        faststart-2 OpenLogicalChannel ::= {
                           forwardLogicalChannelNumber   2,
                           forwardLogicalChannelParameters {
                              dataType   g711Ulaw64k 160, -- 20 ms frame
                                    multiplexParameters h2250LogicalChannelParameters  {
                                        sessionID 2,
                                        silenceSuppression   FALSE
                                    }
                              }
                        }


                The call agent will send a modification request to the
                residential gateway, in order to establish a full duplex
                connection. The SDP payload, in that request, is derived
                from the parameters of the logical channel for transmis-
                sion from the gateway to the H.323 entity.






Huitema, Andreasen, Arango, Prakash                            [Page 53]


Internet draft              MGCP Call Flows              20 January 1999



                           MDCX 1209 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           C: A3C47F21456789F0
                           I:  FDE234C8
                           M: sendrecv
                           X: 0123456789AF
                           R: hu

                           v=0
                           c=IN IP4 128.96.63.25
                           m=audio 1296 RTP/AVP 0


                The gateway will acknowledge this request:

                           200 1209 OK


                At this point, the connection is established.

                In our example, the call is terminated when the calling
                party hangs up. This triggers a Notify command to the
                call agent:

                           NTFY 2005 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           X: 0123456789AF
                           O: hu


                After this notification, the call agent should send an
                acknowledgement:

                           200 2005 OK


                The call agent will then clear the call, by sending a
                delete connection request to the calling gateway. This
                request is combined with a notification request, to be
                ready to detect the next call issued by the residential
                gateway:

                           DLCX 1210 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           C: A3C47F21456789F0
                           I: FDE234C8
                           X: 0123456789B0
                           R: hd





Huitema, Andreasen, Arango, Prakash                            [Page 54]


Internet draft              MGCP Call Flows              20 January 1999


                The gateway will respond with a message that should
                include a "call parameters" header field:

                           250 1210 OK
                           P: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27, LA=48


                The call agent will in parallel sends an H.225/Q.931
                "release complete" message to the H.323 entity. It will
                then tear down the TCP-IP connection.  The gateway, at
                this point, is ready for the next call. The H.323 user
                will be ready as soon as the H.323 entity notices that
                the phone is back on hook.






































Huitema, Andreasen, Arango, Prakash                            [Page 55]


Internet draft              MGCP Call Flows              20 January 1999


                3.2.  Basic call, H.323 to RGW

          ___________________________________________________________________
         |  User |    H.323   |   GK  |       CA     |     RGW   |    Usr   |
         |_______|____________|_______|______________|___________|__________|
         |  call |      ->    |       |              |           |          |
         |       |     ARQ    |   ->  |              |           |          |
         |       |      <-    |   ACF |              |           |          |
         |       |   TCP SYN  |  - - -|       ->     |           |          |
         |       |      <-    |  - - -|    SYN+ACK   |           |          |
         |       |   set-up+  |       |              |           |          |
         |       |  fast start|  - - -|       ->     |           |          |
         |       |            |       |     (call    |           |          |
         |       |            |       |  processing) |           |          |
         |       |            |       |   CRCX+RQNT  |     ->    |    ring  |
         |       |            |       |       <-     |     Ack   |          |
         |       |      <-    |  - - -|    alerting  |           |          |
         |       |   TCP ACK  |  - - -|       ->     |           |          |
         |       |  (ringing) |       |              |           |          |
         |       |            |       |       <-     |   Notify  |  off hook|
         |       |            |       |      Ack     |     ->    |          |
         |       |            |       |      RQNT    |     ->    |          |
         |       |            |       |       <-     |     Ack   |          |
         |       |      <-    |  - - -|   connect +  |           |          |
         |       |            |       |   fast start |           |          |
         |       |   TCP ACK  |  - - -|       ->     |           |          |
         |       |            |       |     (call    |           |          |
         |       |            |       |  established)|           |          |
         |       |            |       |              |           |          |
         |       |            |       |       <-     |   Notify  |  on hook |
         |       |            |       |      Ack     |     ->    |          |
         |       |            |       |      (no     |           |          |
         |       |            |       |  suspension) |           |          |
         |       |            |       |      RQNT    |     ->    |          |
         |       |            |       |       <-     |     Ack   |          |
         | hangup|   detected |       |              |           |          |
         |       |   Rel. C.  |       |              |           |          |
         |       |   TCP FIN  |  - - -|       ->     |           |          |
         |       |      <-    |  - - -|    FIN ACK   |           |          |
         |       |            |       |   DLCX+RQNT  |     ->    |          |
         |       |            |       |       <-     |  perf data|          |
         |       |     DRQ    |   ->  |              |           |          |
         |       |      <-    |   DCF |              |           |          |
         |_______|____________|_______|______________|___________|__________|


                This diagram shows the various exchange of messages dur-
                ing a call from an H.323 user to a residential user.



Huitema, Andreasen, Arango, Prakash                            [Page 56]


Internet draft              MGCP Call Flows              20 January 1999


                During these exchanges the MGCP is used by the call
                agent to control the residential gateway.

                When the user initiates the call, the H.323 entity will
                perform a RAS transaction with its designated Gate-
                keeper. As a result of this transaction, it will learn
                the TCP-IP address of the call agent, and will set up a
                TCP-IP connection with the call agent. Once the TCP-IP
                connection is established, the H.323 entity sends a
                Q.931/H.225 connect message to the call agent. The mes-
                sage, in its user-to-user parameter, includes a "fast
                start" parameter that lists a set of OpenLogicalChannel
                proposals, such as for example:

                        faststart-1 OpenLogicalChannel ::= {
                           forwardLogicalChannelNumber   1,
                           forwardLogicalChannelParameters {
                              dataType   g711Ulaw64k 160, -- 20 ms G.711 frame
                              multiplexParameters h2250LogicalChannelParameters {
                                 sessionID 1,
                                 silenceSuppression   FALSE
                              }
                           }
                        }
                        faststart-2 OpenLogicalChannel ::= {
                           forwardLogicalChannelNumber   2,
                           forwardLogicalChannelParameters {
                              dataType   nullData, -- pro forma
                              multiplexParameters   none
                           },
                           reverseLogicalChannelParameters   {
                              dataType   g711Ulaw64k 160, -- 20 ms frame
                              multiplexParameters h2250LogicalChannelParameters {
                                 sessionID 2,
                                 mediaChannel unicastAddress iPAddress {
                                              network  '80602901'H, -- 128.96.41.1
                                              tsapIdentifier 3456, -- port
                                 },
                                 mediaControlChannel unicastAddress iPAddress {
                                              network  '80602901'H, -- 128.96.41.1
                                              tsapIdentifier 3457, -- port
                                 },
                                 silenceSuppression FALSE
                              }
                           }
                        }





Huitema, Andreasen, Arango, Prakash                            [Page 57]


Internet draft              MGCP Call Flows              20 January 1999


                Upon reception of the set-up message, the call agent
                will perform called routing functions and determine the
                end point that correspond to the called party number. It
                will reserve the outgoing circuit. It does so and at the
                same time it requests ringing, by sending to the
                residential gateway a create connection request combined
                with a notification request:

                           CRCX 1238 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           C: A3C47F21456789F0
                           L: p:10, a:G.711
                           M: sendrecv
                           X: 0123456789B1
                           R: hd
                           S: rg

                           v=0
                           c=IN IP4 128.96.41.1
                           m=audio 3456 RTP/AVP 0


                In this command, the SDP announcement is obtained by
                translating the "faststart" parameters corresponding to
                the receive channel announced by the caller - channel 2
                in our case. The IP address, RTP port and authorized
                payload are derived from the "reverseLogicalChannel-
                Parameters" data elements.  We derive the authorized
                payload type from the "dataType" element.  We have how-
                ever to check that this value is proposed in at least
                one of the forward channels.

                The gateway will acknowledge the connection request,
                sending in the session description its own parameters
                such as address, ports and RTP profile:

                           200 1238 OK
                           I:  32F345E2

                           v=0
                           c=IN IP4 128.96.63.25
                           m=audio 1296 RTP/AVP 0


                The phone is ringing, and the gateway, is instructed to
                look for an off-hook event, and to report it. The call
                agent sends an alerting message to the calling switch,
                which we assume will generate ringing tones for the cal-
                ling user.



Huitema, Andreasen, Arango, Prakash                            [Page 58]


Internet draft              MGCP Call Flows              20 January 1999


                When the off hook event is noticed, the gateway sends a
                Notify command to the call agent:

                           NTFY 2001 endpoint/1@rgw-2567.whatever.net MGCP 0.1X: 0123456789B0
                           O: hd


                The call agent immediately acknowledges that notifica-
                tion.

                           200 2001 OK


                The call agent must now ask the residential gateway to
                notify the occurrence of an on-hook event. It does so by
                sending a notification request to the residential gate-
                way:

                           RQNT 1241 endpoint/1@rgw-2567.whatever.net MGCP 0.1X: 0123456789B1
                           R: hu


                The gateway acknowledges that request:

                           200 1241 OK


                In parallel, the call agent will send a "connect" mes-
                sage to the H.323 agent. The message includes the "fast
                start" parameter, which will validate and complement the
                proposals that the caller sent:




















Huitema, Andreasen, Arango, Prakash                            [Page 59]


Internet draft              MGCP Call Flows              20 January 1999



                        faststart-1 OpenLogicalChannel ::= {
                           forwardLogicalChannelNumber   1,
                           forwardLogicalChannelParameters {
                              dataType   g711Ulaw64k 160, -- 20 ms frame
                              multiplexParameters h2250LogicalChannelParameters {
                                 sessionID 1,
                                 mediaChannel unicastAddress iPAddress {
                                                 network  '80603F19'H,
                                                 tsapIdentifier 3456, -- port
                                 } ,
                                 mediaControlChannel unicastAddress iPAddress {
                                                 network  '80603F19'H,
                                                 tsapIdentifier 3457, -- port
                                 } ,
                                 silenceSuppression   FALSE
                              }
                           }
                        }
                        faststart-2 OpenLogicalChannel ::= {
                           forwardLogicalChannelNumber   2,
                           forwardLogicalChannelParameters {
                              dataType   g711Ulaw64k 160, -- 20 ms frame
                              multiplexParameters h2250LogicalChannelParameters (
                                 sessionID 1,
                                 silenceSuppression   FALSE
                              }
                           }
                        }


                After some time, in our example, the residential user
                hangs up. The notify request is sent to the call agent:

                           NTFY 2005 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           X: 0123456789B1
                           O: hu


                The call agent acknowledges the notification.

                           200 2005 OK


                Upon reception of that notification, the call agent
                should send a "suspend" message to the calling H.323
                entity, but the Q.931 suspend message should not be sent
                in H.225. In order to preserve the user experience, the



Huitema, Andreasen, Arango, Prakash                            [Page 60]


Internet draft              MGCP Call Flows              20 January 1999


                call agent will simply initiate a timer, after which it
                would actually release the call. (In North-America, the
                call is not actually terminated if the called party
                hangs up. If it hangs down in a short interval, the call
                will be resumed.) The call agent, in any case, sends a
                notification request to the gateway, to look for an
                off-hook event.

                           RQNT 1243 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           X: 0123456789B2
                           R: hd


                The gateway will acknowledge this request:

                              200 1243 OK


                In our example, the calling user releases the call
                immediately. The H.323 agent sends a "release complete"
                message to the call agent, which will then send a delete
                connection request to the residential gateway.  The
                request sent to the gateway is combined with a request
                to detect a off-hook event, which will be used to detect
                rare conditions where the user would have gone off hook
                simultaneously with the release on the other side:

                           DLCX 1244 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           C: A3C47F21456789F0
                           X: 0123456789B3
                           R: hd
                           I:  FDE234C8


                The gateway will respond with a message that should
                include a "call parameters" header fields:

                           200 1244 OK
                           P: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27, LA=48


                The gateway, at this point, is ready for the next call.









Huitema, Andreasen, Arango, Prakash                            [Page 61]


Internet draft              MGCP Call Flows              20 January 1999


                4.  Interworking between SIP and MGCP

                The use of SDP in both MGCP and SIP makes interworking
                between these protocols very easy.  In order to demon-
                strate this interworking, we provide here a step by step
                demonstration of 2 call set-up scenarios:

                *    Call from an MGCP controlled residential gateway to
                     a SIP agent,

                *    Call from a SIP agent to an MGCP controlled
                     residential gateway.







































Huitema, Andreasen, Arango, Prakash                            [Page 62]


Internet draft              MGCP Call Flows              20 January 1999


                4.1.  Call from a residential gateway (RGW) to a SIP
                user

          ___________________________________________________________________
         |     Usr    |     RGW   |       CA     |       SIP      |    Usr  |
         |____________|___________|______________|________________|_________|
         |            |     <-    |      RQNT    |                |         |
         |            |     Ack   |       ->     |                |         |
         |            |           |              |                |         |
         |  Off-hook  |   Notify  |       ->     |                |         |
         |            |     <-    |              |                |         |
         |     Ack    |           |              |                |         |
         | (Dial-tone)|     <-    |      RQNT    |                |         |
         |            |     Ack   |       ->     |                |         |
         |            |           |              |                |         |
         |    Digit   |   Notify  |       ->     |                |         |
         |            |     <-    |      Ack     |                |         |
         | (progress) |     <-    |              |                |         |
         |  CRCX+RQNT |           |              |                |         |
         |            |     Ack   |       ->     |                |         |
         |            |           |  (processing)|                |         |
         |            |           |     INVITE   |        ->      |         |
         |    ring    |           |              |                |         |
         |            |           |       <-     |    resp. 180   |         |
         |            |           |              |    (ringing)   |         |
         |  (ringing) |     <-    |      RQNT    |                |         |
         |            |     Ack   |       ->     |                |         |
         |            |           |              |                |         |
         |            |           |       <-     |  resp. 200 (OK)|         |
         |  off hook  |           |              |                |         |
         |            |           |      Ack     |        ->      |         |
         |            |     <-    |   MDCX+RQNT  |                |         |
         |            |     Ack   |       ->     |                |         |
         |            |           |     (call    |                |         |
         |            |           |  established)|                |         |
         |   on hook  |   Notify  |       ->     |                |         |
         |            |     <-    |      Ack     |                |         |
         |            |     <-    |   DLCX+RQNT  |                |         |
         |            |  perf data|       ->     |                |         |
         |            |           |      BYE     |        ->      |         |
         |            |           |       <-     |  resp. 200 (OK)|         |
         |            |           |              |     (local)    |  On-hook|
         |____________|___________|______________|________________|_________|


                During these exchanges the MGCP is used by the call
                agent to control the residential gateways. The call will
                be routed to a SIP agent. The first command is a



Huitema, Andreasen, Arango, Prakash                            [Page 63]


Internet draft              MGCP Call Flows              20 January 1999


                notification request, sent by the call agent to the
                residential gateway.  The request will consist of the
                following lines:

                           RQNT 1201 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           N: ca@ca1.whatever.net:5678
                           X: 0123456789AB
                           R: hd


                The gateway, at that point, is instructed to look for an
                off-hook event, and to report it.  It will first ack-
                nowledge the request, repeating in the acknowledgement
                message the transaction id that the call agent attached
                to the query.

                           200 1201 OK


                     Note that this command is not actually simultaneous
                     with the call. It can be issued long before the
                     actual call, for example when the gateway is turned
                     on, or after the end of a previous call.

                When the off hook event is noticed, the gateway ini-
                tiates a notification request to the call agent:

                           NTFY 2001 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           N: ca@ca1.whatever.net:5678
                           X: 0123456789AB
                           O: hd


                The call agent immediately acknowledges that notifica-
                tion.

                           200 2001 OK


                The call agent examines the services associated to an
                off hook action (it could take special actions in the
                case of a direct line).  In most cases, it will send a
                notification request, asking for digits. It will also
                provide the gateway with a digit map, and requests the
                gateway to play a dialtone:






Huitema, Andreasen, Arango, Prakash                            [Page 64]


Internet draft              MGCP Call Flows              20 January 1999



                           RQNT 1202 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           N: ca@ca1.whatever.net:5678
                           X: 0123456789AC
                           R: hu, D/[0-9#*T](D)
                           D: (0T | 1xxxxxxxxxx | [2-9]xxxxxx | [4789]11 | 011x.T)
                           S: dl


                The gateway immediately acknowledges that request.

                           200 1202 OK


                The gateway will start accumulating digits according to
                that digit map. When it has noticed a sufficient set of
                values, it will notify the observed string to the call
                agent:

                           NTFY 2002 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           N: ca@ca1.whatever.net:5678
                           X: 0123456789AC
                           O: 912018294266


                The call agent immediately acknowledges that notifica-
                tion.

                           200 2002 OK


                At this stage, the call agent seizes the incoming cir-
                cuit, creating a connection. It will also send together
                with that creation request a notification request, to
                stop collecting digits yet continue watch for an on-hook
                transition:

                           CRCX 1204 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           C: A3C47F21456789F0
                           L: p:10, a:G.711;G.726-32
                           M: recvonly
                           X: 0123456789AD
                           R: hu


                The gateway immediately acknowledges the creation, send-
                ing back the identification of the newly created connec-
                tion and the session description used to receive audio



Huitema, Andreasen, Arango, Prakash                            [Page 65]


Internet draft              MGCP Call Flows              20 January 1999


                data:

                           200 1204 OK
                           I:FDE234C8

                           v=0
                           c=IN IP4 128.96.41.1
                           m=audio 3456 RTP/AVP 0 96
                           a=rtpmap:96 G726-32/8000


                The SDP announcement, in our example, specifies the
                address at which the gateway is ready to receive audio
                data (128.96.41.1), the transport protocol (RTP), the
                RTP port (3456) and the audio profile (AVP).  The audio
                profile refers to RFC 1890, which defines that the pay-
                load type 0 has been assigned for G.711 transmission.
                The gateway is also ready to use ADPCM encoding at 32
                kbps (G.726 -4). There is no standard payload type asso-
                ciated to ADPCM, so the gateway mentions its readiness
                to use a non standard payload associated to the dynamic
                type 96. The "rtpmap" attribute entry associates the
                payload type 96 to G726-32/4.

                The call agent, having seized the incoming trunk,
                proceeds with call routing.  Using local databases, it
                determines that the dialed digits (912018294266)
                correspond to a SIP agent.  It will send an invitation
                to that agent:

                           INVITE sip:huitema@sip-station.bellcore.com SIP/2.0
                           Via: SIP/2.0/UDP 128.96.41.12
                           From: sip:123456789@ca.whatever.net
                           To: Christian Huitema <huitema@sip-station.bellcore.com>
                           Call-ID: A3C47F21456789F0@ca.whatever.net
                           Cseq: 1 INVITE
                           Content-type: application/sdp
                           Content-Length: ...

                           v=0
                           c=IN IP4 128.96.41.1
                           m=audio 3456 RTP/AVP 0 96
                           a=rtpmap:96 G726-32/8000


                The SDP attachment, in the INVITE message, is directly
                copied from the acknowledgement of the Create Connection
                request. The SIP agent alerts the user, and sends an



Huitema, Andreasen, Arango, Prakash                            [Page 66]


Internet draft              MGCP Call Flows              20 January 1999


                immediate acknowledgement:

                           SIP/2.0 180 Ringing
                           Via: SIP/2.0/UDP 128.96.41.12
                           From: Christian Huitema <huitema@sip-station.bellcore.com>
                           To: 123456789@ca.whatever.net
                           Call-ID: A3C47F21456789F0@ca.whatever.net
                           Cseq: 1 INVITE


                The call agent will send a notification request that
                instruct the RGW to generate alerting tones:

                           RQNT 1206 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           X: 0123456789AE
                           R: hu
                           S: v


                When the called user accepts the call, the SIP agent
                sends an acceptation message to the call agent:

                           SIP/2.0 200 OK
                           Via: SIP/2.0/UDP 128.96.41.12
                           From: "Christian Huitema" <sip:huitema@sip-station.bellcore.com>
                           To: sip:123456789@ca.whatever.net
                           Call-ID: A3C47F21456789F0@ca.whatever.net
                           CSeq: 1 INVITE
                           Content-type: application/sdp
                           Content-Length:...

                           v=0
                           c=IN IP4 128.96.63.25
                           m=audio 1296 RTP/AVP 0 96
                           a=rtpmap:96 G726-32/8000


                The gateway immediately acknowledges the call set up:

                           ACK huitema@sip-station.bellcore.com SIP/2.0
                           Via: SIP/2.0/UDP 128.96.41.12
                           From: 123456789@ca.whatever.net
                           To: huitema@sip-station.bellcore.com (Christian Huitema)
                           Call-ID: 187602141351@ca.whatever.net


                Then, the call agent will send a modification request to
                the residential gateway, in order to establish a full



Huitema, Andreasen, Arango, Prakash                            [Page 67]


Internet draft              MGCP Call Flows              20 January 1999


                duplex connection.  The SDP payload, in that request, is
                copied from the SIP agent's response:


                           MDCX 1209 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           C: A3C47F21456789F0
                           I:FDE234C8
                           M: sendrecv
                           X: 0123456789AF
                           R: hu

                           v=0
                           c=IN IP4 128.96.63.25
                           m=audio 1296 RTP/AVP 0 96
                           a=rtpmap:96 G726-32/8000
                           +


                The gateway will acknowledge this request:

                           200 1209 OK


                At this point, the connection is established.  In our
                example, the call is terminated when the calling party
                hangs up.  This triggers a Notify command to the call
                agent:


                           NTFY 2005 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           X: 0123456789AF
                           O: hu


                After this notification, the call agent should send an
                acknowledgement:


                           200 2005 OK


                The call agent will then clear the call, by sending a
                delete connection request to the calling gateway.  This
                request is combined with a notification request, to be
                ready to detect the next call issued by the residential
                gateway:





Huitema, Andreasen, Arango, Prakash                            [Page 68]


Internet draft              MGCP Call Flows              20 January 1999



                           DLCX 1210 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           C: A3C47F21456789F0

                           I:FDE234C8
                           X: 0123456789B0
                           R: hd


                The gateway will respond with a message that should
                include a "call parameters" header field:


                           250 1210 OK
                           P: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27, LA=48


                The call agent will in parallel sends a BYE request to
                the SIP agent:

                            BYE sip:huitema@sip-station.bellcore.com SIP/2.0
                            Via: SIP/2.0/UDP 128.96.41.12
                            From: sip:123456789@ca.whatever.net
                            To: "Christian Huitema" <sip:huitema@sip-station.bellcore.com>
                            Call-ID: A3C47F21456789F0@ca.whatever.net
                            CSeq: 2 BYE


                The SIP agent will acknowledge that request:

                           SIP/2.0 200 OK
                           Via: SIP/2.0/UDP 128.96.41.12
                           From: "Christian Huitema" <sip:huitema@sip-station.bellcore.com>
                           To: sip:123456789@ca.whatever.net
                           Call-ID: A3C47F21456789F0@ca.whatever.net
                           CSeq: 2 BYE  SIP/2.0 200 OK


                The gateway, at this point, is ready for the next call.
                The SIP user will be ready as soon as the SIP agent
                notices that the phone is back on hook.










Huitema, Andreasen, Arango, Prakash                            [Page 69]


Internet draft              MGCP Call Flows              20 January 1999


                4.2.  Basic call, SIP to RGW

            _______________________________________________________________
           |  User |  SIP agent|         CA        |     RGW   |    Usr   |
           |_______|___________|___________________|___________|__________|
           |  call |     ->    |                   |           |          |
           |       |   INVITE  |         ->        |           |          |
           |       |           |  (call processing)|           |          |
           |       |           |      CRCX+RQNT    |     ->    |          |
           |  ring |           |                   |           |          |
           |       |           |         <-        |           |          |
           |  Ack  |           |                   |           |          |
           |       |     <-    |     resp. 180     |           |          |
           |       |  (ringing)|      (ringing)    |           |          |
           |       |           |         <-        |   Notify  |  off hook|
           |       |           |         Ack       |     ->    |          |
           |       |           |        RQNT       |     ->    |          |
           |       |           |         <-        |     Ack   |          |
           |       |     <-    |   resp. 200 (OK)  |           |          |
           |       |     ACK   |         ->        |           |          |
           |       |           |        (call      |           |          |
           |       |           |    established)   |           |          |
           |       |           |                   |           |          |
           |       |           |         <-        |   Notify  |  on hook |
           |       |           |         Ack       |     ->    |          |
           |       |           |      (no susp.    |           |          |
           |       |           |       message)    |           |          |
           |       |           |        RQNT       |     ->    |          |
           |       |           |         <-        |     Ack   |          |
           |       |           |                   |           |          |
           | hangup|  detected |                   |           |          |
           |       |     BYE   |         ->        |           |          |
           |       |           |      DLCX+RQNT    |     ->    |          |
           |       |           |         <-        |  perf data|          |
           |_______|___________|___________________|___________|__________|


                This diagram shows the various exchange of messages dur-
                ing a call from a
                 SIP user to a residential user.  During these exchanges
                the MGCP is used by the call agent to control the
                residential gateway.

                When the user initiates the call, the SIP agent will
                send an invitation to the call agent. (Our diagram
                assumes that the SIP agent sends that invitation
                directly; in fact, there could be several relays.) An
                example of invitation could be:



Huitema, Andreasen, Arango, Prakash                            [Page 70]


Internet draft              MGCP Call Flows              20 January 1999



                           INVITE sip:watson@boston.bell-telephone.com SIP/2.0
                           Via: SIP/2.0/UDP 169.130.12.5
                           From: "A. Bell" <sip:a.g.bell@bell-telephone.com>
                           To: "T. A. Watson" <sip:watson@bell-telephone.com>
                           Call-ID: 187602141351@worcester.bell-telephone.com
                           CSeq: 1 INVITE
                           Subject: Mr. Watson, come here.
                           Content-type: application/sdp
                           Content-Length: ...

                           v=0
                           o=bell 53655765 2353687637 IN IP4 128.3.4.5
                           c=IN IP4 135.180.144.94
                           m=audio 3456 RTP/AVP 0 3 4 5


                Upon reception of the set-up message, the call agent
                will perform call routing functions and determine the
                end point that corresponds to the invited user.  It will
                then reserve the outgoing circuit.  It does so at the
                same time that it requests ringing, by sending to the
                residential gateway a connection request combined with a
                notification request:


                           CRCX 1238 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           C: A3C47F21456789F0
                           L: p:10, a:G.711
                           M: sendrecv
                           X: 0123456789B1
                           R: hd
                           S: rg

                           v=0
                           o=bell 53655765 2353687637 IN IP4 128.3.4.5
                           c=IN IP4 135.180.144.94
                           m=audio 3456 RTP/AVP 0 3 4 5


                In this command, the SDP announcement is directly copied
                from the invitation. The gateway will acknowledge the
                connection request, sending in the session description
                its own parameters such as address, ports and RTP pro-
                file:






Huitema, Andreasen, Arango, Prakash                            [Page 71]


Internet draft              MGCP Call Flows              20 January 1999



                           200 1238 OK
                           I:32F345E2

                           v=0
                           c=IN IP4 128.96.63.25
                           m=audio 1296 RTP/AVP 0 3


                The phone is ringing, and the gateway, is instructed to
                look for an off-hook event, and to report it.  The call
                agent sends an alerting message to the calling SIP
                agent, which will generate ringing tones for the calling
                user:

                           SIP/2.0 180 Ringing
                           Via: SIP/2.0/UDP 169.130.12.5
                           From: "A. Bell" <sip:a.g.bell@bell-telephone.com>
                           To: sip:watson@bell-telephone.com
                           Call-ID: 187602141351@worcester.bell-telephone.com
                           CSeq: 1 INVITE


                When the off hook event is noticed, the gateway ini-
                tiates a notification request to the call agent:


                           NTFY 2001 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           X: 0123456789B0
                           O: hd


                The call agent immediately acknowledges that notifica-
                tion.


                           200 2001 OK


                The call agent must now ask the residential gateway to
                notify the occurrence of an on-hook event.  It does so
                by sending a notification request to the residential
                gateway:


                           RQNT 1241 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           X: 0123456789B1
                           R: hu



Huitema, Andreasen, Arango, Prakash                            [Page 72]


Internet draft              MGCP Call Flows              20 January 1999


                The gateway acknowledges that request:

                           200 1241 OK


                In parallel, the call agent will send a final answer to
                the SIP agent. The message, in its payload, copies the
                SDP announcement that was sent by the gateway:

                           SIP/2.0 200 OK
                           From: "A. Bell" <sip:a.g.bell@bell-telephone.com>
                           To: sip:watson@bell-telephone.com
                           Call-ID: 187602141351@worcester.bell-telephone.com
                           CSeq: 1 INVITE
                           Contact: sip://watson@boston.bell-telephone.com
                           Content-Length: ...

                           v=0
                           c=IN IP4 128.96.63.25
                           m=audio 1296 RTP/AVP 0 3


                The SIP agent acknowledges the set-up:

                           ACK sip:watson@boston.bell-telephone.com SIP/2.0
                           Via: SIP/2.0/UDP 169.130.12.5
                           From: "A. Bell" <sip:a.g.bell@bell-telephone.com>
                           To: "T. A. Watson" <sip:watson@bell-telephone.com>
                           Call-ID: 187602141351@worcester.bell-telephone.com
                           CSeq: 1 ACK


                At this point, the call is established.  After some
                time, in our example, the residential user hangs up. The
                notify request is sent to the call agent:

                           NTFY 2005 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           X: 0123456789B1
                           O: hu


                The call agent acknowledges the notification.

                           200 2005 OK


                Upon reception of that notification, the call agent
                should send a "suspend" message to the calling SIP



Huitema, Andreasen, Arango, Prakash                            [Page 73]


Internet draft              MGCP Call Flows              20 January 1999


                agent, but there is no such message in SIP. In order to
                preserve the user experience, the call agent will simply
                initiate a timer, after which it would actually release
                the call. (In North-America, the call is not actually
                terminated if the called party hangs up.  If it hangs
                down in a short interval, the call will be resumed.) The
                call agent, in any case, sends a notification request to
                the gateway, to look for an off-hook event.

                           RQNT 1243 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           X: 0123456789B2
                           R: hd


                The gateway will acknowledge this request:

                           200 1243 OK


                In our example, the calling user releases the call
                immediately. The SIP agent sends a BYE message to the
                call agent:

                           BYE sip:watson@boston.bell-telephone.com SIP/2.0
                           Via: SIP/2.0/UDP 169.130.12.5
                           From: "A. Bell" <sip:a.g.bell@bell-telephone.com>
                           To: "T. A. Watson" <sip:watson@bell-telephone.com>
                           Call-ID: 187602141351@worcester.bell-telephone.com
                           CSeq: 2 BYE


                The call agent acknowledges that message:

                           SIP/2.0 200 OK
                           From: "A. Bell" <sip:a.g.bell@bell-telephone.com>
                           To: sip:watson@bell-telephone.com
                           Call-ID: 187602141351@worcester.bell-telephone.com
                           CSeq: 2 BYE


                The call agent then sends a delete connection request to
                the residential gateway. The request sent to the gateway
                is combined with a request to detect a off-hook event,
                which will be used to detect rare conditions where the
                user would have gone off hook simultaneously with the
                release on the other side:





Huitema, Andreasen, Arango, Prakash                            [Page 74]


Internet draft              MGCP Call Flows              20 January 1999



                           DLCX 1244 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                           C: A3C47F21456789F0
                           X: 0123456789B3
                           R: hd
                           I:FDE234C8


                The gateway will respond with a message that should
                include a "call parameters" header fields:

                           200 1244 OK
                           P: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27, LA=48


                The gateway, at this point, is ready for the next call.



































Huitema, Andreasen, Arango, Prakash                            [Page 75]


Internet draft              MGCP Call Flows              20 January 1999


                5.  Data calls

                We present here a set of call flows corresponding to
                data calls:

                *    Basic data call,

                *    Outgoing data call through a NAS,

                *    Call back, using a NAS,

                *    Data call to a NAS, using L2TP,

                *    Basic data call with continuity test.





































Huitema, Andreasen, Arango, Prakash                            [Page 76]


Internet draft              MGCP Call Flows              20 January 1999


                5.1.  Basic data call to a NAS

        _______________________________________________________________________
       |     PC    |  CO |  SS7/|      NAS    |        CA      |  ACC|  Radius|
       |           |     |  ISUP|             |                |     |        |
       |___________|_____|______|_____________|________________|_____|________|
       |  dials in |     |      |             |                |     |        |
       |           |  IAM|   -> |             |                |     |        |
       |           |     |  IAM |      - -    |        ->      |     |        |
       |           |     |      |             |  Check called  |     |        |
       |           |     |      |             |     number.    |     |        |
       |           |     |      |             |     Notices    |     |        |
       |           |     |      |             |    data call.  |     |        |
       |           |     |      |             |    Call start  |  -> |        |
       |           |     |      |      <-     |      Create    |     |        |
       |           |     |      |             |    Connection  |     |        |
       |           |     |      |             |      (data)    |     |        |
       |           |     |      |      Ack    |        ->      |     |        |
       |           |     |      |             |   Connection   |     |        |
       |           |     |      |             |  is completed. |     |        |
       |           |     |      |             |      Call      |     |        |
       |           |     |      |             |   established  |  -> |        |
       |           |     |   <- |      - -    |       ANM      |     |        |
       |           |  <- |  ANM |             |                |     |        |
       |   modem   |  - -|  - - |      ->     |                |     |        |
       |     <-    |  - -|  - - |   handshake |                |     |        |
       |    PPP    |  - -|  - - |      ->     |                |     |        |
       |           |     |      |    obtain   |                |     |        |
       |           |     |      |   user-id,  |                |     |        |
       |           |     |      |   password  |                |     |        |
       |           |     |      |     Check   |       - -      |  - -|    ->  |
       |           |     |      |      <-     |       - -      |  - -|   Ack  |
       |     <-    |  - -|  - - |  Validates  |                |     |        |
       |           |     |      |    call,    |                |     |        |
       |     <-    |  - -|  - - |   procures  |                |     |        |
       |           |     |      |      IP     |                |     |        |
       |           |     |      |    address  |                |     |        |
       | Connected |     |      |             |                |     |        |
       |    to     |     |      |             |                |     |        |
       |    the    |     |      |             |                |     |        |
       |  Internet |     |      |             |                |     |        |
       |___________|_____|______|_____________|________________|_____|________|









Huitema, Andreasen, Arango, Prakash                            [Page 77]


Internet draft              MGCP Call Flows              20 January 1999


             ______________________________________________________________
            |     PC     |  CO |  SS7/|   NAS |      CA    |  ACC|  Radius|
            |            |     |  ISUP|       |            |     |        |
            |____________|_____|______|_______|____________|_____|________|
            |   Closes   |     |      |       |            |     |        |
            | connection.|     |      |       |            |     |        |
            |            |  REL|   -> |       |            |     |        |
            |            |     |  REL |   - - |      ->    |     |        |
            |            |     |      |   <-  |   Delete   |     |        |
            |            |     |      |       |  Connection|     |        |
            |            |     |      |  Perf |            |     |        |
            |            |     |      |  data |      ->    |     |        |
            |            |     |   <- |  - -  |     RLC    |     |        |
            |            |  <- |  RLC |       |            |     |        |
            |            |     |      |       |   Call end |  -> |        |
            |____________|_____|______|_______|____________|_____|________|


                This diagram shows the exchange of messages during a
                call from a modem user to an Internet Service Provider,
                using a trunking gateway that doubles as a Network
                Access Server. During these exchanges the MGCP is used
                by the Call Agent to control both the trunking gateway.
                Since there is no "other end" of the call, only the
                trunk gateway is involved in the call.

                Upon reception of the IAM message, the Call Agent deter-
                mines that the call is a data call (e.g., by bearer
                capability, the called number, etc.). Using configura-
                tion databases, the Call Agent selects the type of modem
                parameters and authentication parameters that correspond
                to the called number and to the calling number. It uses
                this knowledge to send a CreateConnection command to the
                NAS, programming the incoming trunk:

                        CRCX 1237 card23/21@trgw-7.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        M: data
                        X: 0123456789B1
                        R: cl, ax

                        v=0
                        m=nas/radius
                        c=IN IP4 radius.example.net
                        a=bearer:v.32
                        a=framing:ppp-asynch
                        a=dialed:18001234567
                        a=dialing:2345678901



Huitema, Andreasen, Arango, Prakash                            [Page 78]


Internet draft              MGCP Call Flows              20 January 1999


                The trunking gateway checks that it has adequate
                resources for the call. If the trunking gateway did not
                have adequate resources, for example if it could not
                support the requested modem type, it should refuse the
                creation and send an error response to the Call Agent.
                If the gateway has sufficient resources, it immediately
                acknowledges the creation, sending back the identifica-
                tion of the newly created connection. (There is no need
                to transmit a session description in the case of a data
                call.)

                        200 1237 OK
                        I: FDE234C8


                The Call Agent, knowing that this is a data call, can
                immediately acknowledge the establishment of the connec-
                tion, sending an ANM message back to the calling switch.

                The trunk gateway connects the incoming trunk to a DSP
                loaded with the specified modem code. Once the call is
                established, the modem of the calling PC will start a
                training sequence with the modem associated to the trunk
                in the trunk gateway. The caller will then proceed to a
                normal PPP synchronization, which probably implies a PPP
                login. The authentication parameters, in our example,
                are checked using Radius. The Radius server that will be
                used is typically chosen as a function of the called
                number, which identifies the data service that the cal-
                ling modem requested. In fact, the number can also be
                used to identify the specific form of authentication
                that is requested (but not usually).

                In our example, the call is completed when the calling
                modem hangs up. This triggers an ISUP release message,
                which is forwarded to the Call Agent. The Call Agent
                will request the NAS to delete the connection:

                        DLCX 1244 card23/21@trgw-7.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I: FDE234C8


                The gateways will respond with a message that should
                include a "call parameters" header fields:

                        250 1244 OK
                        P: PS=1245, OS=62345, PR=780, OR=45123



Huitema, Andreasen, Arango, Prakash                            [Page 79]


Internet draft              MGCP Call Flows              20 January 1999


                We should note that, because this is a data call, the
                call parameters only include a count of the packets and
                octets that were sent and received.
















































Huitema, Andreasen, Arango, Prakash                            [Page 80]


Internet draft              MGCP Call Flows              20 January 1999


                5.2.  Outgoing data call through a NAS

         _____________________________________________________________________
        |     PC    |  CO |  SS7/|     NAS    |      CA     |  ACC|   Router |
        |           |     |  ISUP|            |             |     |          |
        |___________|_____|______|____________|_____________|_____|__________|
        |           |     |      |            |             |     |  notices |
        |           |     |      |            |             |     |  packet  |
        |           |     |      |            |             |     |   to PC  |
        |           |     |      |            |      <-     |  - -|    NTFY  |
        |           |     |      |            |      Ack    |  - -|     ->   |
        |           |     |      |            |  Decides to |     |          |
        |           |     |      |            |   place an  |     |          |
        |           |     |      |            |   outgoing  |     |          |
        |           |     |      |            |     call.   |     |          |
        |           |     |      |            |  Call start |  -> |          |
        |           |     |      |      <-    |    Create   |     |          |
        |           |     |      |            |  Connection |     |          |
        |           |     |      |            |    (data)   |     |          |
        |           |     |      |     Ack    |      ->     |     |          |
        |           |     |   <- |     - -    |      IAM    |     |          |
        |  (rings)  |  <- |  IAM |            |             |     |          |
        |           |  ACM|   -> |            |             |     |          |
        |           |     |  ACM |     - -    |      ->     |     |          |
        |  (answer) |  ANM|   -> |            |             |     |          |
        |           |     |  ANM |     - -    |      ->     |     |          |
        |           |     |      |            |  Connection |     |          |
        |           |     |      |            |  complete.  |     |          |
        |           |     |      |            |    Call     |     |          |
        |           |     |      |            |  established|  -> |          |
        |    PPP    |  - -|  - - |      ->    |             |     |          |
        |     <-    |  - -|  - - |  Validates |             |     |          |
        |           |     |      |    call,   |             |     |          |
        |           |     |      |  announces |             |     |          |
        |           |     |      |  IP address|      - -    |  - -|     ->   |
        | Connected |     |      |            |             |     |          |
        |  to the   |     |      |            |             |     |          |
        |  Internet |     |      |            |             |     |          |
        |           |     |      |            |             |     |          |
        |___________|_____|______|____________|_____________|_____|__________|











Huitema, Andreasen, Arango, Prakash                            [Page 81]


Internet draft              MGCP Call Flows              20 January 1999


          ___________________________________________________________________
         |     PC     |  CO |  SS7/|     NAS    |      CA    |  ACC|  Router|
         |            |     |  ISUP|            |            |     |        |
         |____________|_____|______|____________|____________|_____|________|
         |   Closes   |     |      |            |            |     |        |
         | connection.|     |      |            |            |     |        |
         |            |  REL|   -> |            |            |     |        |
         |            |     |  REL |     - -    |      ->    |     |        |
         |            |     |      |      <-    |    Delete  |     |        |
         |            |     |      |            |  Connection|     |        |
         |            |     |      |    ceases  |            |     |        |
         |            |     |      |  announcing|            |     |        |
         |            |     |      |  IP address|     - -    |  - -|    ->  |
         |            |     |      |     Perf   |            |     |        |
         |    data    |  -> |      |            |            |     |        |
         |            |     |   <- |     - -    |     RLC    |     |        |
         |            |  <- |  RLC |            |            |     |        |
         |            |     |      |            |   Call end |  -> |        |
         |____________|_____|______|____________|____________|_____|________|


                This diagram shows the exchange of messages during a
                call from an an Internet Service Provider to a modem,
                using a trunking gateway that doubles as a Network
                Access Server. During these exchanges the MGCP is used
                by the Call Agent to control both the NAS, and will also
                be used between the Call Agent and a default router of
                the ISP.

                In the example configuration, the calls are set on
                demand, when data have to actually be sent from the
                Internet to the dial-up user. When no connection is
                established, the local routing is configured to send the
                packets towards a default router which may or may not be
                the same machine as the NAS. In redundant configura-
                tions, there could be many default routers. Each of
                these default routers has been programmed (through a
                notification request) to send a notification to the Call
                Agent when it receives a packet on the default route:

                        NTFY 2005 default-route@router25.whatever.net MGCP 0.1
                        X:
                        0123456789AF
                        O: pa(192.96.41.1)


                After this notification, the Call Agent should send an
                acknowledgement:



Huitema, Andreasen, Arango, Prakash                            [Page 82]


Internet draft              MGCP Call Flows              20 January 1999


                        200 2005 OK


                (We should note here that using MGCP for this function
                is a stretch. There are other protocols, notably RMON,
                that already provide an adequate service. These proto-
                cols could be used instead of MGCP without affecting the
                discussion that follows.)

                The Call Agent deduces from the notification that a cir-
                cuit should be established towards the dial-up user, or
                towards the dial-up router. Using configuration data-
                bases, the Call Agent selects the number that should be
                called, and also the type of modem parameters and
                authentication parameters that correspond to the called
                number. The Call Agent uses its routing table to select
                an adequate NAS, with an available outgoing trunk. It
                uses a create connection command to seize this outgoing
                trunk:

                        CRCX 1237 card23/21@trgw-7.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        M: data
                        X: 0123456789B1
                        R: cl

                        v=0
                        m=nas/none
                        c=IN IP4 128.96.41.1
                        a=subnet:IN IP4 123.45.67.64/26
                        a=bearer:isdn64
                        a=framing:ppp-hdlc
                        a=dialed:18001234567
                        a=dialing:2345678901


                The gateway immediately acknowledges the creation, send-
                ing back the identification of the newly created connec-
                tion. (There is no session description in the case of a
                data call.)

                        200 1237 OK
                        I: FDE234C8


                Once the trunk has been seized, the Call Agent will send
                an IAM message to the switch that controls the trunk.
                The dialed PC will "ring" and eventually take the call,



Huitema, Andreasen, Arango, Prakash                            [Page 83]


Internet draft              MGCP Call Flows              20 January 1999


                triggering the arrival of progress messages and then an
                answer message (ANM). At that point, the Call Agent
                knows that the call is established.

                The DSP associated to the incoming trunk has been loaded
                with the specified modem code - a simple HDLC framing in
                our example. Once the call is established, the calling
                PC will train with the modem associated with the trunk.
                In our example, no authentication is requested: the Call
                Agent has identified the dialed user through its called
                number.


                Once the association is established and the IP service
                is validated, the gateway announces that it serves the
                local user. In our example, there is no address confi-
                guration performed through PPP: the dialed user has a
                permanent address, which has been programmed when it
                subscribed to the service. However, one the circuit is
                validated, the gateway should start announcing its
                access to this permanent address in the routing tables.
                In our example, the dialed station is in fact an access
                point to a local network, and the NAS should start
                announcing accessibility of that local network
                (123.45.67.64/26) through the local routing procedures
                (an IGP such as RIP, OSPF or EIGRP).

                Note that the current design makes the hypothesis that
                the Call Agent "tells" the address of the LAN to the
                NAS. This is a very debatable design. If a secure IGP is
                used (e.g. using embedded keyed MD5 authentication, or
                using IPSEC) then the routing prefix will be naturally
                exchanged through this IGP. On the other hand, some form
                of configuration can provide a "double check" against
                user errors.

                In our example, the call is completed when the called
                modem hangs up. This triggers an ISUP release message,
                which is forwarded to the Call Agent. The Call Agent
                will request the NAS to delete the connection:

                        DLCX 1244 card23/21@trgw-7.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I: FDE234C8


                The gateways will respond with a message that should
                include a "call parameters" header fields:



Huitema, Andreasen, Arango, Prakash                            [Page 84]


Internet draft              MGCP Call Flows              20 January 1999


                        250 1244 OK
                        P: PS=1245, OS=62345, PR=780, OR=45123


                We should note that, because this is a data call, the
                call parameters only include a count of the packets and
                octets that were sent and received.

                5.3.  Call back, using a NAS

                There are three classic forms of call-back:

                1-   ANI-based Callback

                2-   PPP Callback (Microsoft Callback is a variant of
                     this)

                3-   Login-based callback

                The ANI based call-back can be implemented entirely in
                the Call Agent, as indicated in the following diagram:

             ______________________________________________________________
                PC      CO    SS7/   NAS              CA               ACC
                              ISUP
             ______________________________________________________________
               dials    IAM    ->
                              IAM    - -              ->
                                               Notices that the
                                           called number corresponds
                                            to a call back service,
                                             and that the calling
                                            number has subscribed
                                               to that service.
                                                Terminates the
                                                incoming call.
                               <-    - -              REL
                        <-    REL
                        RLC    ->
              hangup          RLC    - -              ->
                                               Decides to place
                                               an outgoing call.
                                                  Call start           ->
                                     <-             Create
                                               Connection (data)
                                     Ack              ->
                               <-    - -              IAM
              (rings)   <-    IAM



Huitema, Andreasen, Arango, Prakash                            [Page 85]


Internet draft              MGCP Call Flows              20 January 1999


            |________|_____|______|_____|___________________________|_____|



                The PPP callback suppose that the modem first estab-
                lishes an incoming connection, and go through the
                authentication exchange. The following diagram provides
                an example of these exchanges:











































Huitema, Andreasen, Arango, Prakash                            [Page 86]


Internet draft              MGCP Call Flows              20 January 1999


          ____________________________________________________________________
         |    PC   |  CO |  SS7/|     NAS    |        CA      |  ACC|  Radius|
         |         |     |  ISUP|            |                |     |        |
         |_________|_____|______|____________|________________|_____|________|
         | dials in|     |      |            |                |     |        |
         |         |  IAM|   -> |            |                |     |        |
         |         |     |  IAM |     - -    |        ->      |     |        |
         |         |     |      |            |  Checks called |     |        |
         |         |     |      |            |     number.    |     |        |
         |         |     |      |            |     Notices    |     |        |
         |         |     |      |            |    data call.  |     |        |
         |         |     |      |            |    Call start  |  -> |        |
         |         |     |      |      <-    |      Create    |     |        |
         |         |     |      |            |    Connection  |     |        |
         |         |     |      |            |      (data)    |     |        |
         |         |     |      |     Ack    |        ->      |     |        |
         |         |     |      |            |    Connection  |     |        |
         |         |     |      |            |    completed.  |     |        |
         |         |     |      |            |      Call      |     |        |
         |         |     |      |            |   established  |  -> |        |
         |         |     |   <- |     - -    |       ANM      |     |        |
         |         |  <- |  ANM |            |                |     |        |
         |  modem  |  - -|  - - |      ->    |                |     |        |
         |    <-   |  - -|  - - |  handshake |                |     |        |
         |   PPP   |  - -|  - - |      ->    |                |     |        |
         |         |     |      |   obtain   |                |     |        |
         |         |     |      |  user-id,  |                |     |        |
         |         |     |      |   password |                |     |        |
         |         |     |      |    Check   |       - -      |  - -|    ->  |
         |         |     |      |      <-    |       - -      |  - -|   Ack  |
         |         |     |      |   reports  |                |     |        |
         |         |     |      |  call back |                |     |        |
         |         |     |      |  condition |                |     |        |
         |         |     |      |     NTFY   |        ->      |     |        |
         |         |     |      |      <-    |       ACK      |     |        |
         |         |     |      |            |     Decides    |     |        |
         |         |     |      |            |   to place an  |     |        |
         |         |     |      |            |  outgoing call.|     |        |
         |         |     |      |      <-    |      Delete    |     |        |
         |         |     |      |            |    Connection  |     |        |
         |         |     |      |    Perf    |                |     |        |
         |         |     |      |     data   |        ->      |     |        |
         |         |     |   <- |     - -    |       REL      |     |        |
         |         |  <- |  REL |            |                |     |        |
         |         |  REL|   -> |            |                |     |        |
         |  hangup |     |  REL |     - -    |        ->      |     |        |
         |_________|_____|______|____________|________________|_____|________|




Huitema, Andreasen, Arango, Prakash                            [Page 87]


Internet draft              MGCP Call Flows              20 January 1999


       __________________________________________________________________________
      |     PC     |  CO |  SS7/|        NAS       |      CA     |  ACC|  Radius|
      |            |     |  ISUP|                  |             |     |        |
      |____________|_____|______|__________________|_____________|_____|________|
      |            |     |      |                  |  Call start |  -> |        |
      |            |     |      |         <-       |    Create   |     |        |
      |            |     |      |                  |  Connection |     |        |
      |            |     |      |                  |    (data)   |     |        |
      |            |     |      |        Ack       |      ->     |     |        |
      |            |     |   <- |        - -       |      IAM    |     |        |
      |   (rings)  |  <- |  IAM |                  |             |     |        |
      |            |  ACM|   -> |                  |             |     |        |
      |            |     |  ACM |        - -       |      ->     |     |        |
      |  (answer)  |  ANM|   -> |                  |             |     |        |
      |            |     |  ANM |        - -       |      ->     |     |        |
      |            |     |      |                  |  Connection |     |        |
      |            |     |      |                  |  complete.  |     |        |
      |            |     |      |                  |    Call     |     |        |
      |            |     |      |                  |  established|  -> |        |
      |     PPP    |  - -|  - - |         ->       |             |     |        |
      |     <-     |  - -|  - - |  Validates call, |             |     |        |
      | Connected  |     |      |                  |             |     |        |
      |   to the   |     |      |                  |             |     |        |
      |  Internet  |     |      |                  |             |     |        |
      |            |     |      |                  |             |     |        |
      |   Closes   |     |      |                  |             |     |        |
      | connection.|     |      |                  |             |     |        |
      |            |  REL|   -> |                  |             |     |        |
      |            |     |  REL |        - -       |      ->     |     |        |
      |            |     |      |         <-       |    Delete   |     |        |
      |            |     |      |                  |  Connection |     |        |
      |            |     |      |     Perf data    |      ->     |     |        |
      |            |     |   <- |        - -       |      RLC    |     |        |
      |            |  <- |  RLC |                  |             |     |        |
      |            |     |      |                  |   Call end  |  -> |        |
      |____________|_____|______|__________________|_____________|_____|________|



                This diagram shows the exchange of messages during a
                call from a modem user to an Internet Service Provider,
                using a trunking gateway that doubles as a Network
                Access Server. During these exchanges the MGCP is used
                by the Call Agent to control the NAS.

                Upon reception of the IAM message, the Call Agent
                notices that the called number corresponds to a data
                service. Using configuration databases, the Call Agent



Huitema, Andreasen, Arango, Prakash                            [Page 88]


Internet draft              MGCP Call Flows              20 January 1999


                selects the type of modem parameters and authentication
                parameters that correspond to the called number and to
                the calling number. It uses this knowledge to send a
                connection command to the NAS, programming the incoming
                trunk:

                        CRCX 1237 card23/21@trgw-7.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        M: data
                        X: 0123456789B1
                        R: cl, cbk

                        v=0
                        m=nas/radius
                        c=radius.example.net
                        a=bearer:v.32
                        a=framing:ppp-asynch
                        a=dialed:18001234567
                        a=dialing:2345678901


                The gateway immediately acknowledges the creation, send-
                ing back the identification of the newly created connec-
                tion. (There is no session description in the case of a
                data call.)

                        200 1237 OK
                        I: FDE234C8


                The Call Agent, knowing that this is a data call, can
                immediately acknowledge the establishment of the connec-
                tion, sending an ANM message back to the calling switch.

                The DSP associated to the incoming trunk has been loaded
                with the specified modem code. Once the call is esta-
                blished, the modem of the calling PC will be synchron-
                ized with the modem associated to the trunk. The caller
                will then proceed to a normal PPP synchronization, which
                probably implies a PPP login. The login parameters, in
                our example, are checked using Radius. The Radius server
                that will be used is typically chosen as a function of
                the called number, which identifies the data service
                that the calling modem requested. In fact, the number
                can also be used to identify the specific form of
                authentication that is requested.

                In the call back example, the Radius server will



Huitema, Andreasen, Arango, Prakash                            [Page 89]


Internet draft              MGCP Call Flows              20 January 1999


                indicate that the call cannot be completed as such, and
                that the user should be called back (for example, using
                a "Callback Framed" service type in its access-accept
                response.) The NAS will thus send a Notify message to
                the Call Agent, indicating that a call-back is
                requested:

                        NTFY 2005 card23/21@trgw-7.whatever.net MGCP 0.1
                        X: 0123456789B1
                        O: cbk(user-id)


                After this notification, the Call Agent should send an
                acknowledgement:

                        200 2005 OK


                The Call Agent will check that the call back request can
                be followed through. In its databases, it will find the
                regular address associated to the "user-id," and prepare
                to set up a call to that address. It will first clear
                the incoming call, sending a DeleteConnection command to
                the NAS:

                In our example, the call is completed when the calling
                modem hangs up. This triggers an ISUP release message,
                which is forwarded to the Call Agent. The Call Agent
                will request the NAS to delete the connection, and reset
                the list of observed events:

                        DLCX 1244 card23/21@trgw-7.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I: FDE234C8
                        X: 0123456789B2
                        R:


                The gateways will respond with a message that should
                include a "call parameters" header fields:

                        250 1244 OK
                        P: PS=2, OS=345, PR=1, OR=123


                We should note that, because this is a data call, the
                call parameters only include a count of the packets and
                octets that were sent and received.



Huitema, Andreasen, Arango, Prakash                            [Page 90]


Internet draft              MGCP Call Flows              20 January 1999


                The Call Agent will then proceed to set up an outgoing
                data call. This call may be routed through the same NAS
                that received the incoming call, but can also be routed
                through an entirely different endpoint , for example if
                the calling user has moved out of its normal region.














































Huitema, Andreasen, Arango, Prakash                            [Page 91]


Internet draft              MGCP Call Flows              20 January 1999


                5.4.  Data call to a NAS, using L2TP

        ________________________________________________________________________
       |     PC    |  CO |  SS7/|       NAS     |       CA     |  ACC|    LNS  |
       |           |     |  ISUP|               |              |     |         |
       |___________|_____|______|_______________|______________|_____|_________|
       |  dials in |     |      |               |              |     |         |
       |           |  IAM|   -> |               |              |     |         |
       |           |     |  IAM |       - -     |       ->     |     |         |
       |           |     |      |               |  Check called|     |         |
       |           |     |      |               |    number.   |     |         |
       |           |     |      |               |    Notices   |     |         |
       |           |     |      |               |   data call. |     |         |
       |           |     |      |               |   Call start |  -> |         |
       |           |     |      |       <-      |     Create   |     |         |
       |           |     |      |               |   Connection |     |         |
       |           |     |      |               |     (data)   |     |         |
       |           |     |      |       Ack     |       ->     |     |         |
       |           |     |      |               |   Connection |     |         |
       |           |     |      |               |   complete.  |     |         |
       |           |     |      |               |      Call    |     |         |
       |           |     |      |               |  established |  -> |         |
       |           |     |   <- |       - -     |      ANM     |     |         |
       |           |  <- |  ANM |               |              |     |         |
       |   modem   |  - -|  - - |       ->      |              |     |         |
       |     <-    |  - -|  - - |    handshake  |              |     |         |
       |    PPP    |  - -|  - - |       ->      |              |     |         |
       |           |     |      |     obtain    |              |     |         |
       |           |     |      |    user-id,   |              |     |         |
       |           |     |      |    password   |              |     |         |
       |           |     |      |    Establish  |              |     |         |
       |           |     |      |     Tunnel    |              |     |         |
       |           |     |      |     SCC-REQ   |      - -     |  - -|    ->   |
       |           |     |      |       <-      |      - -     |  - -|  SCC-REP|
       |           |     |      |       <-      |      - -     |  - -|  SCC-CON|
       |           |     |      |     IC-REQ    |      - -     |  - -|    ->   |
       |           |     |      |       <-      |      - -     |  - -|  IC-REP |
       |           |     |      |       <-      |      - -     |  - -|  IC-CON |
       |           |     |      |  Spoof PPP/LCP|      - -     |  - -|    ->   |
       |     <-    |  - -|  - - |   Relays PPP  |      - -     |  - -|    ->   |
       | Connected |     |      |               |              |     |         |
       |  to the   |     |      |               |              |     |         |
       |  Internet |     |      |               |              |     |         |
       |___________|_____|______|_______________|______________|_____|_________|







Huitema, Andreasen, Arango, Prakash                            [Page 92]


Internet draft              MGCP Call Flows              20 January 1999


            _______________________________________________________________
           |     PC     |  CO |  SS7/|     NAS   |      CA    |  ACC|  LNS|
           |            |     |  ISUP|           |            |     |     |
           |____________|_____|______|___________|____________|_____|_____|
           |   Closes   |     |      |           |            |     |     |
           | connection.|     |      |           |            |     |     |
           |            |  REL|   -> |           |            |     |     |
           |            |     |  REL |     - -   |      ->    |     |     |
           |            |     |      |     <-    |    Delete  |     |     |
           |            |     |      |           |  Connection|     |     |
           |            |     |      |    Perf   |            |     |     |
           |            |     |      |    data   |      ->    |     |     |
           |            |     |   <- |     - -   |     RLC    |     |     |
           |            |  <- |  RLC |           |            |     |     |
           |            |     |      |     CDN   |     - -    |  - -|  -> |
           |            |     |      |  Stop-CC-N|     - -    |  - -|  -> |
           |            |     |      |           |   Call end |  -> |     |
           |____________|_____|______|___________|____________|_____|_____|



                This diagram shows the exchange of messages during a
                call from a modem user to an Internet Service Provider,
                using a trunking gateway that doubles as a Network
                Access Server. During these exchanges the MGCP is used
                by the Call Agent to control the NAS. The PPP informa-
                tion is relayed to a network server (LNS) using L2TP.

                Upon reception of the IAM message, the Call Agent
                notices that the called number corresponds to a data
                service. Using configuration databases, the Call Agent
                selects the type of modem parameters and authentication
                parameters that correspond to the called number and to
                the calling number. It uses this knowledge to send a
                connection command to the NAS, programming the incoming
                trunk:

                        CRCX 1237 card23/21@trgw-7.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        M: data
                        X: 0123456789B1
                        R: cl

                        v=0
                        c=IN IP4 access.example.net
                        m=nas/l2tp
                        k=clear:some-shared-secret
                        a=bearer:v.32



Huitema, Andreasen, Arango, Prakash                            [Page 93]


Internet draft              MGCP Call Flows              20 January 1999


                        a=framing:ppp-asynch
                        a=dialed:18001234567
                        a=dialing:2345678901


                The gateway immediately acknowledges the creation, send-
                ing back the identification of the newly created connec-
                tion. (There is no need to transmit a session descrip-
                tion in the case of a data call.)

                        200 1237 OK
                        I: FDE234C8


                The Call Agent, knowing that this is a data call, can
                immediately acknowledge the establishment of the connec-
                tion, sending an ANM message back to the calling switch.

                The DSP associated to the incoming trunk has been loaded
                with the specified modem code. Once the call is esta-
                blished, the modem of the calling PC will be synchron-
                ized with the modem associated to the trunk. The caller
                will then proceed to a normal PPP synchronization, which
                probably implies a PPP login.


                Once PPP has been properly synchronized, the NAS estab-
                lishes a tunnel towards the LNS. Because L2TP is a two-
                layer protocol, the NAS must first establish an L2TP
                control connection between itself and the LNS. This con-
                nection may or may not have been established prior to
                the call set-up.


                Tunnel establishment requires a shared secret between
                the LNS and the NAS; in our example, that secret is
                passed by the Call Agent, along with the name of the
                LNS. Once the supporting tunnel is installed, the NAS
                has to establish an L2TP tunnel, to relay the "incoming
                call." Once the call is established, the PPP packets
                received on the trunk will be relayed over the L2TP tun-
                nel, and vice-versa.

                In our example, the call is completed when the calling
                modem hangs up. This triggers an ISUP release message,
                which is forwarded to the Call Agent. The Call Agent
                will request the NAS to delete the connection:




Huitema, Andreasen, Arango, Prakash                            [Page 94]


Internet draft              MGCP Call Flows              20 January 1999


                        DLCX 1244 card23/21@trgw-7.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I: FDE234C8


                The gateways will respond with a message that should
                include a "call parameters" header fields:

                        250 1244 OK
                        P: PS=1245, OS=62345, PR=780, OR=45123


                We should note that, because this is a data call, the
                call parameters only include a count of the packets and
                octets that were sent and received.

                5.5.  Basic data call with continuity test


































Huitema, Andreasen, Arango, Prakash                            [Page 95]


Internet draft              MGCP Call Flows              20 January 1999


          ___________________________________________________________________
         |    PC   |  CO |  SS7/|     NAS   |        CA      |  ACC|  Radius|
         |         |     |  ISUP|           |                |     |        |
         |_________|_____|______|___________|________________|_____|________|
         | dials in|     |      |           |                |     |        |
         |         |  IAM|   -> |           |                |     |        |
         |         |     |  IAM |     - -   |        ->      |     |        |
         |         |     |      |           |  Check called  |     |        |
         |         |     |      |           |     number.    |     |        |
         |         |     |      |           |     Notices    |     |        |
         |         |     |      |           |    data call,  |     |        |
         |         |     |      |           |    continuity  |     |        |
         |         |     |      |           |      test.     |     |        |
         |         |     |      |           |    Call start  |  -> |        |
         |         |     |      |     <-    |      Create    |     |        |
         |         |     |      |           |    Connection  |     |        |
         |         |     |      |           |    (loopback)  |     |        |
         |         |     |      |     Ack   |        ->      |     |        |
         |         |  COT|   -> |           |                |     |        |
         |         |     |  COT |     - -   |        ->      |     |        |
         |         |     |      |     <-    |      Modify    |     |        |
         |         |     |      |           |    Connection  |     |        |
         |         |     |      |           |      (data)    |     |        |
         |         |     |      |     Ack   |        ->      |     |        |
         |         |     |      |           |   Connection   |     |        |
         |         |     |      |           |  is completed. |     |        |
         |         |     |      |           |      Call      |     |        |
         |         |     |      |           |   established  |  -> |        |
         |         |     |   <- |     - -   |       ANM      |     |        |
         |         |  <- |  ANM |           |                |     |        |
         |  modem  |  - -|  - - |     ->    |                |     |        |
         |    <-   |  - -|  - - |  handshake|                |     |        |
         |   PPP   |  - -|  - - |     ->    |                |     |        |
         |_________|_____|______|___________|________________|_____|________|


                This diagram shows the various exchange of messages dur-
                ing the beginning of a call from a data user on the
                circuit-switched PSTN to a NAS. During these exchanges
                the Call Agent uses MGCP to control the NAS and the
                residential gateway. The circuit switch decides to exe-
                cute a continuity test during the call establishment.
                The exchanges occur on two sides.

                Upon reception of the IAM message, the Call Agent recog-
                nizes that a continuity test has been requested.  It
                immediately sends a CreateConnection request to the NAS
                to connect to the incoming trunk, creating a connection:



Huitema, Andreasen, Arango, Prakash                            [Page 96]


Internet draft              MGCP Call Flows              20 January 1999


                        CRCX 1237 card23/21@trgw-7.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        L: p:10, a:G.711;G.726-32
                        M: loopback
                        X: 0123456789B1
                        R: cl

                        v=0
                        m=nas/radius
                        c=IN IP4 radius.example.net
                        a=bearer:v.32
                        a=framing:ppp-asynch
                        a=dialed:18001234567
                        a=dialing:2345678901


                The trunking gateway recognizes that the mode is set to
                "loopback".  It places the circuit in "loopback" mode
                (we assume that this is the adequate way to perform con-
                tinuity test in this specific environment). The gateway
                is then ready to send back a 2010 Hz return tone if it
                receives a 2010 Hz test tone. The gateway acknowledges
                the creation of the connection, sending back the iden-
                tification of the newly created connection:

                        200 1237 OK
                        I: FDE234C8


                At this point, the call agent is waiting for the result
                of the continuity test.  The calling switch is sending
                the test tone (2010 Hz); if it receives the return tone
                (2010 Hz), it will send a "continuity passed" message
                (COT).  At this point, the call agent will send a modify
                connection message to the NAS, in order to place the
                connection in "data" mode:

                        MDCX 1238 card23/21@trgw-7.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I: FDE234C8
                        M: data

                The NAS will immediately acknowledge that command:

                        200 1238 OK


                The NAS will then proceed with the establishment of the



Huitema, Andreasen, Arango, Prakash                            [Page 97]


Internet draft              MGCP Call Flows              20 January 1999


                modem call.


















































Huitema, Andreasen, Arango, Prakash                            [Page 98]


Internet draft              MGCP Call Flows              20 January 1999


                6.  Audit and Restart

                The following call flows provide examples of the audit
                and restart commands.

                6.1.  Using the Audit commands

           __________________________________________________________________
          | CO |  SS7|   TGW |         CA       |   CDB |   ACC |  RGW|  Usr|
          |____|_____|_______|__________________|_______|_______|_____|_____|
          |    |     |       |                  |       |       |     |     |
          |    |     |   <-  |   Audit Endpoint |       |       |     |     |
          |    |     |       |    (endpoints)   |       |       |     |     |
          |    |     |   Ack |         ->       |       |       |     |     |
          |    |     |   <-  |       Audit      |       |       |     |     |
          |    |     |       |     Endpoint     |       |       |     |     |
          |    |     |       |   (capabilities) |       |       |     |     |
          |    |     |   Ack |         ->       |       |       |     |     |
          |    |     |       |                  |       |       |     |     |
          |    |     |       |  Audit Endpoint  |  - - -|  - - -|  -> |     |
          |    |     |       |    (endpoints)   |       |       |     |     |
          |    |     |       |         <-       |  - - -|  - - -|  Ack|     |
          |    |     |       |  Audit Endpoint  |  - - -|  - - -|  -> |     |
          |    |     |       |   (capabilities) |       |       |     |     |
          |    |     |       |         <-       |  - - -|  - - -|  Ack|     |
          |    |     |       |                  |       |       |     |     |
          | IAM|  -> |       |                  |       |       |     |     |
          |    |  IAM|  - - -|         ->       |       |       |     |     |
          |    |     |       |   (proceed with  |       |       |     |     |
          |    |     |       |    call setup)   |       |       |     |     |
          |    |     |       |        ...       |       |       |     |     |
          |    |  <- |  - - -|        ANM       |       |       |     |     |
          | <- |  ANM|       |                  |       |       |     |     |
          |    |     |       |                  |       |       |     |     |
          |    |     |   <-  |  Audit Endpoint  |       |       |     |     |
          |    |     |       |       (misc)     |       |       |     |     |
          |    |     |   Ack |         ->       |       |       |     |     |
          |    |     |   <-  |  Audit Connection|       |       |     |     |
          |    |     |   Ack |         ->       |       |       |     |     |
          |    |     |       |                  |       |       |     |     |
          |    |     |       |   Audit Endpoint |       |       |     |     |
          |    |     |       |       (misc)     |  - - -|  - - -|  -> |     |
          |    |     |       |         <-       |  - - -|  - - -|  Ack|     |
          |    |     |       |  Audit Connection|  - - -|  - - -|  -> |     |
          |    |     |       |         <-       |  - - -|  - - -|  Ack|     |
          |    |     |       |                  |       |       |     |     |
          |____|_____|_______|__________________|_______|_______|_____|_____|




Huitema, Andreasen, Arango, Prakash                            [Page 99]


Internet draft              MGCP Call Flows              20 January 1999


                This diagram shows the various exchanges of messages
                during auditing of a trunk gateway and a residential
                gateway. First, both gateways are auditing to learn
                about the endpoints supported by each. Secondly, capa-
                bilities information is audited for one of these end-
                points. The procedure is carried out for the residential
                gateway as well. A call then arrives from the PSTN and
                is established exactly as described in the "basic call
                from TGW to RGW". After the call has been established,
                both endpoints involved in the call are audited -- this
                time in order to retrieve endpoint info and subsequently
                connection info associated with the call.

                The Call Agent initially sends an AuditEndpoint command
                to the trunking gateway in order to discover what end-
                points the trunking gateway has:

                        AUEP 1200 *@trgw-7.whatever.net MGCP 0.1
                        F:


                Since we use the wildcard naming convention, we cannot
                retrieve any endpoint specific information but the
                RequestedInfo field must still be included. Had we
                specified any RequestedInfo, the trunking gateway would
                simply have ignored it.

                The trunking gateway immediately acknowledges the audit-
                ing command and sends back the list of endpoints it con-
                tains. Our trunking gateway has two cards in it --
                card23 and card24 each supporting two circuits:

                        200 1200 OK
                        Z: card23/20@trgw-7.whatever.net
                        Z: card23/21@trgw-7.whatever.net
                        Z: card24/20@trgw-7.whatever.net
                        Z: card24/21@trgw-7.whatever.net


                Now that the Call Agent has learned about the endpoints
                present in the trunking gateway, it requests capability
                information for one of the endpoints. We here assume
                that all similar endpoints have the same capabilities
                and thus only audit one of them for capabilities,
                although it is possible that different endpoints have
                different capabilities:

                        AUEP 1201 card23/20@trgw-7.whatever.net



Huitema, Andreasen, Arango, Prakash                           [Page 100]


Internet draft              MGCP Call Flows              20 January 1999


                        F: A


                The trunking gateway acknowledges the command by return-
                ing to the Call Agent a response describing the capabil-
                ities it supports for the endpoint in question:

                        200 1201 OK
                        L: a:G.711;G.726-32, p:10-100, e:on, s:off, v:T;D,
                           m:sendonly;recvonly;sendrecv;inactive;conttest


                The Call Agent thereby learns, that the endpoint sup-
                ports two codecs; G.711 and G.726-32 which can each be
                used with a packetization period of between 10 and 100
                msec. Echo cancellation is supported while silence
                suppression is not, and the event packages supported are
                Trunk and DTMF.  Since Trunk is the first package speci-
                fied it is furthermore the default package. Also, con-
                nections can be established in either of the modes "Send
                Only", "Receive Only", "Send/Receive", "Inactive", and
                "Continuity Test". Finally, several parameters were not
                specified and default or deduced values will therefore
                apply. These parameters are Bandwidth (deduce from
                codec), Gain Control (supported), Type of Service (sup-
                ported), Resource Reservation (best effort), Encryption
                Key (no encryption), or Type of Network (guess) was pro-
                vided and default or deduced values for each of these
                will therefore apply.  Next the Call Agent queries the
                residential gateway to discover what endpoints are
                present in it:

                        AUEP 2000 *@rgw.whatever.net MGCP 0.1
                        F:


                As before, we use the wildcard naming convention and can
                therefore not retrieve any endpoint specific informa-
                tion, however the RequestedInfo field must still be
                included. If any values had been specified for it, they
                would simply be ignored.

                The residential gateway acknowledges the command and
                includes a list of endpoints it contains:

                        200 2000 OK
                        Z: endpoint/1@rgw-2567.whatever.net
                        Z: endpoint/2@rgw-2567.whatever.net



Huitema, Andreasen, Arango, Prakash                           [Page 101]


Internet draft              MGCP Call Flows              20 January 1999


                The Call Agent thereby learns, that the residential
                gateway contains the two endpoints endpoint/1 and end-
                point/2.  Having learned about the endpoints present,
                the Call Agent next requests capability information for
                one of the endpoints. Again, we assume that all similar
                endpoints have the same capabilities and thus only audit
                one of them for capabilities, although it is possible
                that different endpoints have different capabilities:

                        AUEP 2001 endpoint/1@rgw-2567.whatever.net
                        F: A


                The residential gateway acknowledges the command by
                returning to the Call Agent a response describing the
                capabilities it supports for the endpoint in question:

                        200 1201 OK
                        L: a:G.711;G.726-32, p:10-100, e:on, s:off, v:L;D,
                           m:sendonly;recvonly;sendrecv;inactive
                        L: a:G.723.1; p:30-90, e:on, s:on, v:L;D,
                           m:sendonly;recvonly;sendrecv;inactive;confrnce


                The Call Agent thereby learns, that the endpoint sup-
                ports three codecs; G.711, G.726-32, and G.723.1.

                G.711 and G.726-32 can each be used with a packetization
                period of between 10 and 100 msec. Echo cancellation is
                supported while silence suppression is not, and the
                event packages supported are Line and DTMF. Since Line
                is the first package specified it is furthermore the
                default package. Also, connections can be established in
                either of the modes "Send Only", "Receive Only",
                "Send/Receive", and "Inactive". Finally, several parame-
                ters were not specified and default or deduced values
                will therefore apply.  These parameters are Bandwidth
                (deduce from codec), Gain Control (supported), Type of
                Service (supported), Resource Reservation (best effort),
                Encryption Key (no encryption), or Type of Network
                (guess) was provided and default or deduced values for
                each of these will therefore apply.

                G.723.1 can be used with a packetization period of
                between 30 and 90 msec. Both echo cancellation and
                silence suppression are supported, and the event pack-
                ages supported are Line and DTMF with Line being the
                default package. Connections can be established in



Huitema, Andreasen, Arango, Prakash                           [Page 102]


Internet draft              MGCP Call Flows              20 January 1999


                either of the modes "Send Only", "Receive Only",
                "Send/Receive", "Inactive", and "Conference". Finally,
                default or deduced values will be applied for the param-
                eters that were not supplied.

                The Call Agent now knows all endpoints as well as their
                capabilities in the trunking and the residential gate-
                way.

                An IAM signaling a call for the residential gateway now
                arrives from the PSTN. The call is then setup as
                described in Section 2.2.  After the call has been suc-
                cessfully setup, the Call Agent now decides to audit the
                endpoint in the trunking gateway for information about
                RequestedEvents, DigitMap, SignalRequests, RequestIden-
                tifier, NotifiedEntity, ConnectionIdentifiers, and
                DetectEvents:

                        AUEP 1202 card23/21@trgw-7.whatever.net MGCP 0.1
                        F: R,D,S,X,N,I,T


                The trunking gateway acknowledges the command by return-
                ing to the Call Agent a response with the requested info
                for the endpoint in question:

                        200 1202 OK
                        R:
                        D:
                        S:
                        X:
                        N: [128.96.41.12]
                        I: FDE234C8, ABCD123
                        T:


                The Call Agent thus sees, that there are currently no
                RequestedEvents, no DigitMap, no SignalRequests, no
                RequestIdentifier, and no DetectEvents for the endpoint
                in question. Instead of supplying empty list for these
                parameters, the gateway could simply have omitted them
                altogether in the response.

                In the last command the call agent sent to the endpoint,
                it had not specified a NotifiedEntity, thus the notified
                entity returned here is the source IP address of the
                call agent encoded in RFC 821 format.  Finally, the end-
                point currently has two connections associated with it.



Huitema, Andreasen, Arango, Prakash                           [Page 103]


Internet draft              MGCP Call Flows              20 January 1999


                The first one was created during the call setup. Depend-
                ing on previous message exchanges, the second one may or
                may not be valid.  If the call agent believes it is
                stale, it could simply instruct the gateway to delete
                it.

                In this case, the Call Agent decides to audit the con-
                nection FDE234C8 for further information and it there-
                fore sends an AuditConnection command to the endpoint
                for information about CallId, NotifiedEntity, LocalCon-
                nectionOptions, Mode, LocalConnectionDescriptor,
                RemoteConnectionDescriptor, and ConnectionParameters:

                        AUCX 1203 card23/21@trgw-7.whatever.net MGCP 0.1
                        I: FDE234C8
                        F: C,N,L,M,LD,RD,P


                When the trunking gateway receives the command it
                immediately sends a response to the Call Agent with the
                requested info:

                        200 1203 OK
                        C: A3C47F21456789F0
                        N: [128.96.41.12]
                        L: p:10, a:G.711;G.726-32
                        M: sendrecv
                        P: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27,LA=48

                        v=0
                        c=IN IP4 128.96.41.1
                        m=audio 1296 RTP/AVP 0
                        v=0
                        c=IN IP4 128.96.63.25
                        m=audio 1296 RTP/AVP 0 96
                        a=rtpmap:96 G726-32/8000


                Thus the CallId, LocalConnectionOptions, and Mode are as
                expected for this connection. The same holds for the
                RemoteConnectionDescriptor which is supplied as the last
                parameter separated by an empty line. The last connec-
                tion handling command issued to the endpoint for this
                connection did not include the NotifiedEntity parameter,
                so the notified entity defaults to the source IP address
                for that command which is encoded in RFC 821 format.
                Finally, the Call Agent also obtained the current packet
                statistics for the call.



Huitema, Andreasen, Arango, Prakash                           [Page 104]


Internet draft              MGCP Call Flows              20 January 1999


                Next, the Call Agent audits the endpoint in the residen-
                tial gateway for information about RequestedEvents,
                DigitMap, SignalRequests, RequestIdentifier, NotifiedEn-
                tity, ConnectionIdentifiers, and DetectEvents:

                        AUEP 2002 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                        F: R,D,S,X,N,I,T


                The trunking gateway acknowledges the command by return-
                ing to the Call Agent a response with the requested info
                for the endpoint in question:

                        200 2002 OK
                        R: L/hu
                        D: (0T|00T|[1-7]xxx|8xxxxxxx|#xxxxxxx|*xx|91xxxxxxxxxx|9011x.T)
                        S:
                        X: 0123456789B1
                        N: [128.96.41.12]
                        I: 32F345E2
                        T: hu


                The Call Agent thus sees, that currently, the only event
                being looked for is the "On hook" event from the Line
                package. Since the Line package is the default package,
                the gateway could have simply specified this as "hu"
                instead. Although the residential gateway is currently
                not accumulating any digits, a digit map is still sup-
                plied. This digit map is the last one used by the end-
                point used -- we here assume the endpoint was previously
                originated a call, e.g. as in Section 2.1. There are
                currently no signals being applied so the SignalRequests
                parameter is simply empty. There is however an active
                NotificationRequest thus the RequestIdentifier for that
                one is supplied. As before, no NotifiedEntity has been
                specified for the last NotificationRequest for this end-
                point, so the source IP address of that request is sup-
                plied as the notified entity. There is only one Connec-
                tionId for this endpoint, namely 32F345E2 as expected.
                Finally, since the last NotificationRequest did not
                specify any special value for DetectEvents, this parame-
                ter simply defaults to the same as RequestedEvents. In
                this case we omitted the specification of the Line pack-
                age in the event name since the Line package is the
                default package for this endpoint.

                Having audited the endpoint, the Call Agent decides to



Huitema, Andreasen, Arango, Prakash                           [Page 105]


Internet draft              MGCP Call Flows              20 January 1999


                audit the connection for that endpoint and the Call
                Agent therefore sends an AuditConnection command to the
                requesting information about CallId, NotifiedEntity,
                LocalConnectionOptions, Mode, LocalConnectionDescriptor,
                RemoteConnectionDescriptor and ConnectionParameters.

                        AUCX 2003 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                        I: 32F345E2
                        F: C,N,L,M,LD,RD,P


                When the residential gateway receives the command it
                immediately sends a response to the Call Agent with the
                requested info:

                        200 2003 OK
                        C: A3C47F21456789F0
                        N: [128.96.41.12]
                        L: p:10, a:G.711;G.726-32
                        M: sendrecv

                        v=0
                        c=IN IP4 128.96.63.25
                        m=audio 1296 RTP/AVP 0 96
                        a=rtpmap:96 G726-32/8000

                        v=0
                        c=IN IP4 128.96.41.1
                        m=audio 1296 RTP/AVP 0
                        P: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27,LA=48


                Thus the CallId, LocalConnectionOptions, and Mode are as
                expected for this connection. The same holds for the
                LocalConnectionDescriptor which is supplied as the last
                parameter separated by an empty line. The last connec-
                tion handling command issued to the endpoint for this
                connection did not include the NotifiedEntity parameter,
                so the notified entity defaults to the source IP address
                for that command which is encoded in RFC 821 format.
                Finally, the Call Agent also obtained the current packet
                statistics for the call.









Huitema, Andreasen, Arango, Prakash                           [Page 106]


Internet draft              MGCP Call Flows              20 January 1999


                6.2.  Using the RestartInProgress command

           __________________________________________________________________
          | Management System       |           TGW          |  CA-1 |  CA-2|
          |_________________________|________________________|_______|______|
          |                         |                        |       |      |
          | Preparing for taking    |                        |       |      |
          | endpoints out of        |                        |       |      |
          | service when idle.      |           RSIP         |   ->  |      |
          |                         |  (graceful: indefinite)|       |      |
          |                         |            <-          |   Ack |      |
          |                         |                        |       |      |
          | Preparing to take       |                        |       |      |
          | endpoints out of        |                        |       |      |
          | service in 5 minutes    |           RSIP         |   ->  |      |
          | (graceful: 5 min)       |                        |       |      |
          |                         |            <-          |   Ack |      |
          |                         |                        |       |      |
          | Circuit failure leads   |                        |       |      |
          | to an endpoint becoming |                        |       |      |
          | unavailable.            |           RSIP         |   ->  |      |
          | (forced: 0 min)         |                        |       |      |
          |                         |            <-          |   Ack |      |
          |                         |                        |       |      |
          | Courtesy message        |                        |       |      |
          | that all endpoints are  |                        |       |      |
          | now out of service      |           RSIP         |   ->  |      |
          | (forced: 0 min)         |                        |       |      |
          |                         |            <-          |   Ack |      |
          |                         |                        |       |      |
          | All endpoints back      |                        |       |      |
          | in service              |           RSIP         |  - - -|   -> |
          | (restart: 0 min)        |                        |       |      |
          |                         |            <-          |  - - -|  Ack |
          |                         |                        |       |      |
          |_________________________|________________________|_______|______|


                This diagram shows the various exchanges of messages
                during restart of some of the endpoints in a trunking
                gateway. Our example assumes the existence of an exter-
                nal management system controlling the gateway, and the
                resulting changes in endpoint availability are then com-
                municated to the Call Agent via the RestartInProgress
                command. First all endpoints are to be taken out-of-
                service gracefully, and later a warning is sent to the
                Call Agent, that all endpoints will now be taken out of
                service within 5 minutes. Following this, we assume a



Huitema, Andreasen, Arango, Prakash                           [Page 107]


Internet draft              MGCP Call Flows              20 January 1999


                problem occurs on the gateway resulting in the immediate
                unavailability of a circuit. A little later, the gateway
                then informs the Call Agent that all endpoints are now
                out of service. Finally, we assume that the trunking
                gateway rebooted and placed all endpoints back in ser-
                vice which the gateway informs its default Call Agent
                about.

                The trunking gateway initially sends a RestartInProgress
                command to the Call Agent (CA-1) informing it of an
                intention to take all endpoints out of service:

                        RSIP 1200 *@trgw-7.whatever.net MGCP 0.1
                        RM: graceful
                        RD: 0


                The Call Agent thereby sees, that the trunking gateway
                is planning on making all its endpoints unavailable
                gracefully. Since the restart delay is specified to be
                zero, the Call Agent furthermore knows, that it can
                safely leave all existing connections on the gateway,
                however it should not attempt to establish any new con-
                nections for these endpoints -- or at least only estab-
                lish connections related to existing calls.

                The Call Agent immediately acknowledges the command:

                        200 1200 OK


                Later, the external management system decides that it
                will no longer wait indefinitely for the existing con-
                nections to cease to exist. The gateway therefore sends
                a RestartInProgress message to the Call Agent informing
                it, that all the endpoints will become unavailable
                within 5 minutes (300 seconds), and any connections
                existing at that point in time will be torn down:

                        RSIP 1201 *@trgw-7.whatever.net MGCP 0.1
                        RM: graceful
                        RD: 300


                The Call Agent immediately acknowledges the command:

                        200 1201 OK




Huitema, Andreasen, Arango, Prakash                           [Page 108]


Internet draft              MGCP Call Flows              20 January 1999


                The Call Agent now has 5 minutes to tear down any exist-
                ing connections.

                Before the 5 minutes have elapsed, we imagine a hardware
                problem develops with one of the circuits on card23 in
                the trunking gateway and that the circuit immediately
                must be taken out service. The gateway informs the Call
                Agent about this by issuing the RestartInProgress com-
                mand as follows:

                        RSIP 1202 card23/20@trgw-7.whatever.net MGCP 0.1
                        RM: forced


                In this case, no restart delay was specified since a
                "forced" restart always takes effect immediately. If a
                restart delay had been specified, it would simply have
                been ignored. Any connections that existed for the end-
                point will have been lost.

                The Call Agent immediately acknowledges the command and
                notes that card23/20 is out of service:

                        200 1202 OK



                A little later, the 5 minutes grace period the Call
                Agent was notified about earlier has now passed, and -
                as a courtesy - the trunking gateway informs the Call
                Agent that all endpoints have now been taken out of ser-
                vice:

                        RSIP 1203 *@trgw-7.whatever.net MGCP 0.1
                        RM: forced


                Although the Call Agent has already been informed that
                card23/20 is out of service, the trunking gateway
                includes it in the list of endpoints here anyway. This
                is perfectly valid since placing an out-of-service end-
                point in out-of-service can be considered idempotent as
                long as the gateway deletes all connections associated
                with those endpoints (out-of-service endpoints should
                not have any connections created on them). However, this
                would not be the case with placing in-service endpoints
                in-service as such operations have side-effects on
                existing connections. In that case, the Call Agent would



Huitema, Andreasen, Arango, Prakash                           [Page 109]


Internet draft              MGCP Call Flows              20 January 1999


                therefore assume, that endpoints already in-service had
                been restarted to be in-service again.

                The Call Agent immediately acknowledges the command:

                        200 1203 OK



                At this point, all endpoints in the trunking gateway are
                now out of service.

                We then assume that the trunking gateway is rebooted and
                all endpoints are placed back in service. After the
                reboot, the trunking gateway informs its default Call
                Agent (CA-2), that all its endpoints are now back in
                service by sending the following RestartInProgress com-
                mand:

                        RSIP 1204 *@trgw-7.whatever.net MGCP 0.1
                        RM: restart
                        RD: 0


                Since the restart delay specified is zero, all endpoints
                are in-service at this point in time. However, it should
                be noted, that this does not necessarily imply that the
                same endpoints are available as before. For instance,
                card23 could have been removed from the trunking gateway
                to correct the aforementioned circuit problem.

                The Call Agent (CA-2) recognizes that CA-1 is the pre-
                ferred Call Agent for this trunking gateway and when
                CA-2 acknowedges the command, it therefore includes CA-1
                as the NotifiedEntity. Furthermore, CA-2 notes that any
                connections that may have existed for these endpoints
                prior to receiving this command no longer exists. CA-2
                is expected to communicate this information to CA-1 in
                order to achieve the internal Call Agent synchronization
                required:

                        200 1204 OK
                        N: CA-1@whatever.net








Huitema, Andreasen, Arango, Prakash                           [Page 110]


Internet draft              MGCP Call Flows              20 January 1999


                7.  Using MGCP to control an IVR

                This section describes the call flows between the CA,MG
                and IVR in order to understand the way MGCP organises
                the communication between the Media gateway
                controller/call agent and the Media gateway or an IVR.

                The IVR is controlled by the call agent using only the
                existing MGCP primitives.

                The number of calls that an IVR can support is defined
                as the number of endpoints on that IVR. These end points
                may be maintained by the IVR itself in which case the
                Call agent always uses wildcards for createconnection or
                it may be maintained by the Call agent.  There are a
                variety of scripts that can be executed on a particular
                ivr endpoint.They may be as simple as just playing a
                message (in which case the IVR is used as a simple
                anouncement server) or playing a message collect digits
                and give it to the call agent or as complex as an admin-
                istrative script which allows a remote administrator to
                configure the call agent .

                The format of the script and the implementation of the
                script may be vendor specific.

                The only assumtion is that the call agent is pre config-
                ured with the script names and it knows what script to
                use when.

                The MGCP primitives are interpreted by the IVR in the
                following way

                CreateConnection:
                     When this command is received by the IVR it allo-
                     cates the resources and returns the RTP profile
                     associated with the logical endpoint.  The connec-
                     tion mode should always be inactive. Note that the
                     IVR starts executing the script if the  connection
                     mode is not set to inactive.

                ModifyConnection:
                     This is used by the Call agent to trigger the exe-
                     cution of the script. Here the connection mode is
                     set to sendrecv.If it is set to sendonly the IVR
                     can play message or tones but cannot collect dtmf.

                NotificationRequest:



Huitema, Andreasen, Arango, Prakash                           [Page 111]


Internet draft              MGCP Call Flows              20 January 1999


                     Notifies the Call agent when the script has fin-
                     ished executed and returns the result.For now the
                     result is only in the form of digits.

                DeleteConnection:
                     Stops executing the script if it is not already
                     terminated and frees the resources.

                NOTE : The call flows do not show the Delete connection
                on the Incoming side when the IVR terminates. This is
                because the incomming call may be routed to another des-
                tination by the call agent depending on the notification
                results got from the IVR.

                7.1.  Connecting a Residential Gateway to the IVR


                7.1.1.  Connection from RGW to IVR

                       __________________________________________
                      |   USER   |   RGW  |      CA     |   IVR |
                      |__________|________|_____________|_______|
                      |          |   <--  |      RQNT   |       |
                      |          |   ACK  |      -->    |       |
                      | OFF HOOK |   NTFY |      -->    |       |
                      |          |   <--  |      ACK    |       |
                      |          |   <--  |   CRCX+RQNT |       |
                      |          |   ACK  |      -->    |       |
                      |          |        |   CRCX+RQNT |   --> |
                      |          |        |      <--    |   ACK |
                      |          |   <--  |      MDCX   |       |
                      |          |   ACK  |      -->    |       |
                      |          |        |     MDCX    |   --> |
                      |          |        |      <--    |   ACK |
                      |__________|________|_____________|_______|


                The first command is a NotificationRequest, sent by the
                Call Agent to the residential gateway. The request will
                consist of the following lines:

                        RQNT 1201 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                        N: ca@ca1.whatever.net:5678
                        X: 0123456789AC
                        R: hd


                The gateway immediately acknowledges the command,



Huitema, Andreasen, Arango, Prakash                           [Page 112]


Internet draft              MGCP Call Flows              20 January 1999


                repeating in the acknowledgement message the transaction
                id that the Call Agent attached to the query.

                        200 1201 OK


                When the off hook event is noticed the gateway will
                notify the event to the Call Agent:

                        NTFY 2002 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                        N: ca@ca1.whatever.net:5678
                        X: 0123456789AC
                        O: hd


                The Call Agent immediately acknowledges that notifica-
                tion.

                        200 2002 OK


                The Call Agent will then seize the incoming circuit,
                creating a connec- tion.  The create connection command
                piggybacks a notification request, to watch for an on-
                hook transition:

                        CRCX 1204 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        L: p:10, a:G.711;G.726-32
                        M: recvonly
                        X: D123456789AD
                        R: hu


                The gateway immediately acknowledges the creation, send-
                ing back the identification of the newly created connec-
                tion and the session descrip- tion used to receive audio
                data:

                        200 1204 OK
                        I:FDE234C8

                        v=0
                        c=IN IP4 128.96.41.1
                        m=audio 3456 RTP/AVP 0 96
                        a=rtpmap:96 G726-32/8000





Huitema, Andreasen, Arango, Prakash                           [Page 113]


Internet draft              MGCP Call Flows              20 January 1999


                The Call Agent, having seized the incoming trunk and
                deciding that the call has to be terminated on the IVR
                and that a script will be executed, sends a connection
                command to the IVR.

                        CRCX 1205 #@ivr45.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        L: p:10, a:G.711;G.726-32
                        M: inactive

                        v=0
                        c=IN IP4 128.96.41.1
                        m=audio 3456 RTP/AVP 0 96
                        a=rtpmap:96 G726-32/8000


                The CreateConnection is sent to  a generic endpoint,
                asking the IVR to pick one of its available ports.

                The IVR will acknowledge the connection command, sending
                in the identification of the selected endpoint, the con-
                nection identifier and the session description its own
                parameters such as address, ports and RTP profile:

                        200 1205 OK
                        Z:17@ivr45.whatever.net
                        I:32F345E2

                        v=0
                        c=IN IP4 128.96.63.25
                        m=audio 1296 RTP/AVP 0 96
                        a=rtpmap:96 G726-32/8000


                The Call Agent will relay the information to the Media
                gateway, using a ModifyConnection command:

                        MDCX 1206 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I:FDE234C8
                        M: sendrecv

                        v=0
                        c=IN IP4 128.96.63.25
                        m=audio 1296 RTP/AVP 0 96
                        a=rtpmap:96 G726-32/8000





Huitema, Andreasen, Arango, Prakash                           [Page 114]


Internet draft              MGCP Call Flows              20 January 1999


                The media gateway immediately acknowledges the modifica-
                tion:

                        200 1206 OK


                At this point the caller is ready, a duplex path has
                been established between the caller and the IVR, all the
                resources have been allocated and the Call agent has to
                trigger the script execution. It does this by sending a
                ModificationRequest with an embedded NotificationRequest
                command to the IVR.

                        MDCX 1207 17@ivr45.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        M: sendrecv
                        X: D23456789AD
                        R: Script/oc, Script/of
                        D: Script/perl(http://database.whatever.net/script-23.prl)


                The IVR immediately acknowledges the modification:

                        200 1207 OK


                At this point the caller is interacting with the IVR.
                This ends with either the caller going on hook or the
                IVR deciding it has to notify the Call agent.

                7.1.2.  Disconnecting the user from IVR:(termination by
                IVR)

                          ____________________________________
                         | USER |   RGW |     CA   |    IVR  |
                         |______|_______|__________|_________|
                         |      |       |    <--   |    NTFY |
                         |      |       |    ACK   |    -->  |
                         |      |       |   DLCX-- |    -->  |
                         |      |       |    <--   |   ---ACK|
                         |______|_______|__________|_________|


                When the call agent receives

                        NTFY 2002 17@ivr45.whatever.net MGCP 0.1
                        N: ca@ca1.whatever.net:5678
                        X: D23456789AD



Huitema, Andreasen, Arango, Prakash                           [Page 115]


Internet draft              MGCP Call Flows              20 January 1999


                        O: script/oc(54321)


                The Call agent immediately acknowledges the notifica-
                tion:

                        200 2002 OK


                and send a delete connection to the IVR

                        DLCX 1211 script23/21@ivr45.whatever.net MGCP 0.1
                        C: 567F21456789F0
                        I:32F345E2


                the IVR frees up the resources and responds with

                        200 1211 OK
                        P: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27,LA=48


                The call agent may now deal with the incoming call by
                sending a delete connection, execute another script on
                the IVR, or route the call to another gateway, and so
                on.

                7.1.3.  Disconnecting The User From Ivr:(Termination By
                Caller)

                          ___________________________________
                         |  USER   |   RGW |    CA  |   IVR |
                         |_________|_______|________|_______|
                         | On hook |   NTFY|   -->  |       |
                         |         |   <-- |    ACK |       |
                         |         |       |   DLCX |   --> |
                         |         |       |   <--  |   ACK |
                         |         |   <-- |   DLCX |       |
                         |         |   ACK |    --> |       |
                         |_________|_______|________|_______|


                When the call agent receives

                        NTFY 2056 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                        N: ca@ca1.whatever.net:5678
                        X: D123456789AD
                        O: hu



Huitema, Andreasen, Arango, Prakash                           [Page 116]


Internet draft              MGCP Call Flows              20 January 1999


                it responds with

                        200 2056 OK


                and deletes the connections on both the IVR

                        DLCX 1211 17@ivr45.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I:32F345E2


                IVR frees up the resources and responds with

                        200 1211 OK
                        P: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27,LA=48


                and the media gateway

                        DLCX 1261 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I:FDE234C8


                Gateway frees up the resources and responds with

                        200 1261 OK
                        P: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27,LA=48


                7.2.  Connection between a TGW and an IVR

                7.2.1.  Setting up the connection from TGW to IVR

                The figure below gives the flow for the IVR connected to
                a TGW














Huitema, Andreasen, Arango, Prakash                           [Page 117]


Internet draft              MGCP Call Flows              20 January 1999


                      ___________________________________________
                     | SS7/ISUP |   TGW |   CA          |   IVR |
                     |__________|_______|_______________|_______|
                     | IAM      |  ---  |   -->         |       |
                     |          |   <-- |   CRCX        |       |
                     |          |   ACK |   -->         |       |
                     | <--      |   --- |   ACM         |       |
                     |          |       |   CRCX+RQNT-->|       |
                     |          |   <-- |   ---ACK      |       |
                     |          |   <-- |   -MDCX       |       |
                     |          |   ACK |   -->         |       |
                     | <--      |   --- |   ANM         |       |
                     |          |       |   MDCX        |   --> |
                     |          |   <-- |   ----ACK     |       |
                     |__________|_______|_______________|_______|


                When the CA detects an incoming call it sends a
                CreateConnection command to the media gateway.

                        CRCX 1204 ss7end/1@tgw90.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        L: p:10, a:G.711;G.726-32
                        M: recvonly


                The media gateway responds with

                        200 1204 OK
                        I:FDE234C8

                        v=0
                        c=IN IP4 128.96.41.1
                        m=audio 3456 RTP/AVP 0 96
                        a=rtpmap:96 G726-32/8000


                The CA then creates a connection on the IVR

                        CRCX 1205 #@ivr45.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        L: p:10, a:G.711;G.726-32
                        M: inactive

                        v=0
                        c=IN IP4 128.96.41.1
                        m=audio 3456 RTP/AVP 0 96
                        a=rtpmap:96 G726-32/8000



Huitema, Andreasen, Arango, Prakash                           [Page 118]


Internet draft              MGCP Call Flows              20 January 1999


                The IVR will acknowledge the connection command, sending
                in the session description its own parameters such as
                address, ports and RTP profile:

                        200 1205 OK
                        Z: 17@ivr45.whatever.net
                        I:32F345E2

                        v=0
                        c=IN IP4 128.96.63.25
                        m=audio 1296 RTP/AVP 0 96
                        a=rtpmap:96 G726-32/8000


                The Call Agent will relay the information to the Media
                gateway, using a ModifyConnection command:

                        MDCX 1206 endpoint/1@rgw-2567.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I:FDE234C8
                        M: sendrecv

                        v=0
                        c=IN IP4 128.96.63.25
                        m=audio 1296 RTP/AVP 0 96
                        a=rtpmap:96 G726-32/8000


                The media gateway immediately acknowledges the modifica-
                tion:

                        200 1206 OK


                At this point the caller is ready,a duplex path has been
                established between the caller and the IVR ,all the
                resources have been allocated and the Call agent has to
                trigger the script execution. It does this by sending a
                ModifyConnection command to the IVR, with an embedded
                notification request.

                        MDCX 1206 17@ivr45.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I:32F345E2
                        X: D23456789AD
                        M: sendrecv
                        R: Script/oc, Script/of
                        D: Script/perl(http://database.whatever.net/script-12.prl)



Huitema, Andreasen, Arango, Prakash                           [Page 119]


Internet draft              MGCP Call Flows              20 January 1999


                The IVR immediately acknowledges the modification:

                        200 1206 OK


                At this point the caller is interacting with the
                IVR.This ends with either the caller going on hook or
                the IVR deciding it has to notify the Call agent.

                7.2.2.  Disconnecting The User From IVR:TGW

                Termination by the IVR:

                        ________________________________________
                       | SS7/ISUP |   TGW |     CA   |    IVR  |
                       |__________|_______|__________|_________|
                       |          |       |    <--   |   --NTFY|
                       |          |       |   ACK--  |    -->  |
                       |          |       |   DLCX-- |    -->  |
                       |          |       |    <--   |   ---ACK|
                       |__________|_______|__________|_________|


                7.2.3.  Termination by the Caller

                 ______________________________________________________
                | SS7/ISUP |   TGW |             CA           |   IVR |
                |    REL   |   --- |             -->          |       |
                |          |       |                          |       |
                |          |       |            DLCX          |   --> |
                |          |       |            <--           |   ACK |
                |          |   <-- |            -DLCX         |       |
                |          |   ACK |             -->          |       |
                |    <--   |   --- |             RLC          |       |
                |__________|_______|__________________________|_______|
















Huitema, Andreasen, Arango, Prakash                           [Page 120]


Internet draft              MGCP Call Flows              20 January 1999


                7.3.  Hairpin IVR connection, double end-point model

                The figure below gives the flow that results in an hair-
                pin connection to an IVR device located on the same
                gateway as the trunk on which the call is incoming.  In
                this flow, we assume that we use the "double endpoint"
                extensions to the create-connection command, and, as an
                example, assume that the IVR exchange results in an
                automatic disconnection.

                       _________________________________________
                      | sw1|  sw2|  SG |   CA  |  TGW-1|   IVR |
                      |____|_____|_____|_______|_______|_______|
                      | IAM|  - -|  -> |       |       |       |
                      |    |     |  IAM|  ->   |       |       |
                      |    |     |     |  CRCX+|   ->  |  (->) |
                      |    |     |     |  RQNT |   ->  |  (->) |
                      |    |     |     |    <- |   ACK |  (ACK)|
                      |    |     |   <-|  ANM  |       |       |
                      |  <-|  - -|  ANM|       |       |       |
                      |    |     |     |    <- |   - - |  NTFY |
                      |    |     |     |   ACK |   - - |   ->  |
                      |    |     |     |  DLCX |   ->  |       |
                      |    |     |     |    <- |  Perf |       |
                      |    |     |     |       |  data |       |
                      |    |     |   <-|  REL  |       |       |
                      |  <-|  - -|  REL|       |       |       |
                      |    |     |     |  DLCX |       |   ->  |
                      |    |     |     |    <- |   - - |  Perf |
                      |    |     |     |       |       |  data |
                      |____|_____|_____|_______|_______|_______|


                During these exchanges the MGCP is used by the Call
                Agent to control two endpoints located on the same TGW.

                The exchanges start with the arrival from the first
                switch (SW1) of an SS7/ISUP "IAM" message, relayed by
                the signalling gateway to the Call Agent.  The call
                agent performs the routing, and determines that the call
                will have to be relayed towards the second switch (SW2),
                using a trunk located on the same gateway.

                The call agent starts the exchange by seizing the end-
                point referenced in the IAM message, and by requesting a
                local connection between that endpoint and the IVR dev-
                ice.  The command also instruct the IVR to start execut-
                ing a script on the selected IVR endpoint:



Huitema, Andreasen, Arango, Prakash                           [Page 121]


Internet draft              MGCP Call Flows              20 January 1999


                        CRCX 1204 trunk-group-1/17@tgw.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        L: nt=LOCAL
                        M: sendrecv
                        2/E: IVR/$
                        2/X: D23456789AD
                        2/R: Script/oc, Script/of
                        2/D: Script/perl(http://database.whatever.net/script-12.prl)


                Upon reception of that command, the trunking gateway
                prepares a "local" connection description between the
                specified endpoint (trunk-group-1/17) and an endpoint
                that it selects within the IVR (IVR/6).  The gateway
                acknowledges the two creations in a single message:

                        200 1204 OK
                        I:FDE234C8

                        v=0
                        c=IN tgw.whatever.net trunk-group-1/17
                        m=audio 0 LOCAL 0
                        2/Z:IVR/13@tgw.whatever.net
                        2/I:abc0
                        2/
                        v=0
                        c=IN tgw.whatever.net IVR/13
                        m=audio 0 LOCAL 0


                The command has created a path between the endpoint and
                the IVR. Because the IVR is in fact answering the call,
                the call agent can immediately relay an ANM message to
                the calling switch.

                At this point the caller is interacting with the IVR.
                This ends with either the caller going on hook or the
                IVR deciding it has to notify the Call agent.

                        NTFY 2001 IVR/13@tgw.whatever.net MGCP 0.1
                        X: D23456789AD
                        O: Script/oc(123245)


                The call agent immediately acknowledges the notifica-
                tion:

                        200 2001 OK



Huitema, Andreasen, Arango, Prakash                           [Page 122]


Internet draft              MGCP Call Flows              20 January 1999


                The call agent should then remove the connections. The
                call agent releases the connection on the first end-
                point:

                        DLCX 1207 trunk-group-1/17@tgw.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I:FDE234C8

                The gateway acknowledges the deletion, sending the con-
                nection parameters:

                        250 1217 OK
                        P: OS=62345, OR=62345

                The call agent can now notify the release of the trunk
                to the switch which will in response send an RLC mes-
                sage.

                In parallel, the call agent releases the connection to
                the IVR:

                        DLCX 1208 IVR/13@tgw.whatever.net MGCP 0.1
                        C: A3C47F21456789F0
                        I:abc0


                The gateway acknowledges the deletion, sending the con-
                nection parameters:

                        250 1218 OK
                        P: OS=62345, OR=62345




















Huitema, Andreasen, Arango, Prakash                           [Page 123]


Internet draft              MGCP Call Flows              20 January 1999


                8.  Acknowledgements

                We want to thank here the many reviewers who helped
                design the MGCP flows, notably Ike Elliott and  Chip
                Sharp.

                9.  References

                [0]  Arango, M., A. Dugan, I. Elliott, C. Huitema, S.
                     Pickett, "Media Gateway Control Protocol (MGCP)",
                     work in progress.

                [1]  ITU-T, Recommendation Q.761, "FUNCTIONAL DESCRIP-
                     TION OF THE ISDN USER PART OF SIGNALLING SYSTEM No.
                     7", (Malaga-Torremolinos, 1984; modified at Hel-
                     sinki, 1993)

                [2]  ITU-T, Recommendation Q.762, "GENERAL FUNCTION OF
                     MESSAGES AND SIGNALS OF THE ISDN USER PART OF SIG-
                     NALLING SYSTEM No. 7", (Malaga-Torremolinos, 1984;
                     modified at Helsinki, 1993)

                *    ITU-T, Recommendation H.323, "VISUAL TELEPHONE SYS-
                     TEMS AND EQUIPMENT FOR LOCAL AREA NETWORKS WHICH
                     PROVIDE A NON-GUARANTEED QUALITY OF SERVICE."

                *    ITU-T, Recommendation H.225, "Call Signaling Proto-
                     cols and Media Stream Packetization for Packet
                     Based Multimedia Communications Systems."

                *    ITU-T, Recommendation H.245, "LINE TRANSMISSION OF
                     NON-TELEPHONE SIGNALS."

                *    Handley, Shulzrinne, Schooler, Rosenberg, "SIP:
                     Session Initiation Protocol", work in progress

                10.  Authors' Addresses

                                   Christian Huitema
                                   Bellcore
                                   MCC 1J236B
                                   445 South Street
                                   Morristown, NJ 07960
                                   U.S.A.

                                   Phone: +1 973-829-4266
                                   EMail: huitema@bellcore.com




Huitema, Andreasen, Arango, Prakash                           [Page 124]


Internet draft              MGCP Call Flows              20 January 1999


                                   Flemming Andreasen
                                   Bellcore
                                   RRC-1M223
                                   444 Hoes Lane
                                   Piscataway, NJ 08854-4157
                                   U.S.A.

                                   Phone: +1 732 699-7351
                                   EMail: fandreas@notes.cc.bellcore.com

                                   Mauricio Arango
                                   RSL COM Latin America
                                   6300 N.W. 5th Way, Suite 100
                                   Ft. Lauderdale, FL 33309

                                   Phone: (954) 492-0913
                                   Email: marango@rslcom.com


                                   Prakash K
                                   TELESOFT INC
                                   3000, Custer Road
                                   Suite 270
                                   Plano, Texas - 75075
                                   U.S.A

                                   Tel: 972-596-4158
                                   Fax: 817-323-1605
                                   EMail: prakashk@indts.com






















Huitema, Andreasen, Arango, Prakash                           [Page 125]