Internet DRAFT - draft-cuervo-navdec-mg-arch

draft-cuervo-navdec-mg-arch









INTERNET DRAFT                                            Fernando Cuervo
Category: Informational                                      Graeme Gibbs
Title: draft-cuervo-navdec-mg-arch-00.txt                 Nortel Networks
Date: November 1998



                      Media Gateway Architecture:
                A Functional Model of the Media Gateway
                  <draft-cuervo-navdec-mg-arch-00.txt>



Status of this Memo

   This document is an Internet-Draft.  Internet-Drafts are working
   documents 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 learn the current status of any Internet-Draft, please check the
   ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
   Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
   munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or
   ftp.isi.edu (US West Coast).


Abstract

   This document presents a functional model of a Media Gateway. The
   model extends the functional model of the base architecture draft[1]. 
   The model identifies the functions that the MG may expose to other
   functions of the architecture, namely, the Media Gateway Controller
   and the Signalling Gateway [1]. The objective of the model is
   to identify completeness of the protocol functions, flexibility to 
   handle the optionality of functions and ensure that the protocol is
   not biased towards a particular implementation of the Media Gateway.






Cuervo, Gibbs               expires May 1999                    [Page 1]





INTERNET DRAFT                                             November 1998


Table of Contents

      1.0 Introduction
      2.0 Principles of Operation and Functional Blocks
        2.1 Scope of the model: One Model "fits most"
        2.2   Use of the Functional Model
        2.3   Functional Model and MG architecture
      3.0 Detailed description of functional blocks
        3.1   Endpoints
          3.1.1   Media unit processing
          3.1.2   Endpoint Associated Signalling
          3.1.3   Other endpoint operations
          3.1.4   Programmability
          3.1.5   Resource State and Allocation
        3.2   Connection Module
        3.3   Internal Devices
        3.4     Association Module
        3.5     Signalling Agent
      4.0 Functional Model Diagram
      5.0 Application Programming Interface
        5.1   Endpoint interfaces
        5.2   Connection Module Interfaces
        5.3   Internal Devices Interfaces
        5.4   Association Module interfaces
        5.5   Programming Module interfaces
        5.6   Signalling Backhaul Module interfaces
      6.0     References



1.0  Introduction

   This document presents a functional model of a Media Gateway. The
   model extends the functional model of the base architecture draft[1]. 
   The model identifies the functions that the MG may expose to other
   functions of the architecture, namely, the Media Gateway Controller
   and the Signalling Gateway [1].
   A Media Gateway hosts "endpoints" and "internal devices". Endpoints
   are, for instance, DS0's, ATM VCs and RTP ports. Endpoints exist in
   physical devices that connect the gateway to an access or transport
   network(e.g., SS7 trunk cards, ATM-Cards, ethernet cards, etc.).
   Devices, such as, IVR units, bridges, etc. could be classified as
   internal devices. Under the control of a Media Gateway Controller,
   the Media Gateway realises a "connection" between ANY two endpoints,
   possibly involving some internal devices.

2.0 Principles of Operation and Functional Blocks





Cuervo, Gibbs               expires May 1999                    [Page 2]





INTERNET DRAFT                                             November 1998


   A Media Gateway Controller (MC) instructs an MG to set up a
   connection between two of its endpoints (i.e., create an MG-
   connection). Although media conversion is the essence of the MG it is
   not necessary for every MG-connection to involve media conversion; an
   MG-connection may join two endpoints of the same type. The required
   media conversion depends on the media type supported by the
   endpoints.

   This apparently "simple mode of operation" is in practice more
   complex since, for instance:
      * certain types of endpoints have associated signalling
        capabilities (e.g., DTMF),
      * some endpoints perform maintenance functions (e.g., continuity
        tests),
      * the MC needs to know the state changes of endpoints (e.g., a
        trunk group going out of service),
      * the MG retains some control over the allocation and control of
        some endpoint resources (e.g., RTP port numbers).


   MGs may contain other resources that participate in the handling of a
   call (e.g., transcoders, conference bridges) or devices for inserting
   content into media streams (e.g., via IVR units), these resources are
   named "internal devices". MGs must also support system level
   functions, such as, establishing and maintaining associations to MCs,
   these functions are essential for MC redundancy and fail- over
   scenarios. Therefore, a MG is modelled by the following functional
   blocks:

      1 endpoints: which are controllable  and configurable in order to
        support a diversity of media conversion, maintenance and
        associated signalling functions. Endpoints are assumed to
        maintain their own state and, in some cases, manage their own
        resource name-space (e.g., available RTP ports or any other form
        of virtual endpoint).
      2 internal devices: these resources provide services such as 
        transcoding, conferencing, IVR units.
      3 connection module: sets, deletes, modifies MG-connections,
        keeps MG- connection state. Endpoints and/or internal devices
        are connected by the connection module.
      4 association module: handles association of the MG to its MCs.
      5 signalling agent[1]: An SA realises a signalling mediation
        function within the IP network, for instance, MG-to-MG, MG-to-
        MC. Examples of SAs are SAs for user signalling and SAs for



Cuervo, Gibbs               expires May 1999                    [Page 3]





INTERNET DRAFT                                             November 1998


        intergateway trunks (ATM case).

2.1 Scope of the model: One Model "fits most"


   The term MG can denote several "classes" of network elements. The
   functional model should fit the wide range of applications of an MG.
   The examples below show that for different classes of MG, some
   functions will be more prominent than others, and in some cases
   functional blocks may even disappear.


   Let us consider two fairly different roles that an MG may assume:
      * a trunking gateway: services carried on telephone network SS7-
        trunks(e.g., voice, fax, data access)  are transformed at the MG
        for carriage over a packet or cell network.
      * a residential gateway: the MG is an end-user CPE device, such
        as a cable modem.

   In the first example, the MG may host thousands of endpoints. We may
   also assume the endpoints will not have associated signalling
   capabilities (i.e., the SS7 signalling is directly handled by a
   Signalling Gateway). In a simple manner, the role of the MC is to
   configure, for instance, the "ingress-endpoint" to adapt to the
   service (i.e., voice, fax), to resolve the "egress-endpoint" and,
   consequently, set up the MG-connections.

   In the second example, the MG just hosts a few endpoints. The MC is
   concerned with the signalling associated to the endpoint (detecting
   on/off-hooks and collecting digits). Other functions such as
   realising the MG-connections may be performed with preprovisioned
   information. Endpoint maintenance and status may also be performed
   according to a simpler model (i.e., the MC may just need to know that
   the phone is off-hook).

2.2 Use of the Functional Model



   The Functional Model is a tool for specifying the semantics of the 
   protocols used between the MC and MG (to be captured in 6.0). Different
   choices of protocol syntax and transport may result from, for
   instance, scalability, or networking constraints of a particular
   implementation. Nevertheless, at least one complete protocol
   specification is required to demonstrate that a "generally-agreed-
   upon" technology solution to the realisation of the API exists.

   By refining the MG into  smaller functions it is easier to assess



Cuervo, Gibbs               expires May 1999                    [Page 4]





INTERNET DRAFT                                             November 1998


   whether a proposed protocol for MG control has the extensibility and
   modularity attributes that are required due to the wide range of
   applications of the MG.

2.3 Functional Model and MG architecture


   MGs can be architected in many different ways depending where the
   media conversions and transcoding (if required) are performed, the
   level of programmability of endpoints, how conferences are supported,
   and how associated signalling is treated. The functional model must
   not be biased towards a particular architecture.

3.0 Description of functional blocks

   The following sections refine each one of the functional blocks.

3.1 Endpoints

   There are different levels of abstraction for endpoints. For
   instance, an ATM endpoint may be specifically defined as physical
   port w, VPI x, VCI y or it may be abstracted as VCC identifier n. If
   that VCC were realised as an SVC and that VCC failed (for whatever
   reason) it could be re-instated on a different port/VPI/VCI (using
   UNI/PNNI) while retaining the same VCC identifier (n). Such behaviour
   could be automatic on the part of the MG and would not need
   intervention on part of controller to sort out network level changes.
   In a similar manner, one would not expect MC to control an IP gateway
   to explicitly route calls a particular way - one would leave this to
   local routing functions on the MG.

   The most critical functions of a MG take place in the endpoints:

      1. media unit processing
      2. associated signalling handling
      3. maintenance
      4. programmability
      5. resource state and allocation.


3.1.1 Media unit processing

   Endpoints are viewed from  "black box producer/consumer" perspective:
   "this endpoint produces/consumes complete packets with samples of
   size x, using compression algorithm y". This view does not indicate
   where in the MG the media conversion takes place. Examples of
   endpoint descriptions are:
      * EP1: a DS0 with a-µlaw, 3dB rx pads, echo canceller



Cuervo, Gibbs               expires May 1999                    [Page 5]





INTERNET DRAFT                                             November 1998


        on/off/controlled by tone reception, CAS functionality, etc.
      * EP2: a particular CID, in a particular VCC (or trunk group)
        using G.726/32kbps, silence suppression on, comfort tones off,
        fax demodulation disabled etc.
   From the EP1 and EP2 descriptions the MG would be able to infer the
   required media conversion and transcoding.

   In order to produce a complete media unit it might be necessary that
   the endpoint be provided with additional information, such as,
   "remote-endpoint information" (e.g., remote MG IP address and RTP 
   port, AESA of remote MG).

3.1.2 Endpoint Associated Signalling


   Endpoints may have "endpoint associated signalling" (EAS). Examples
   of endpoints with EAS are PRI, MF trunks, SS7 trunks with associated
   signalling, DTMF, ATM Trunks, etc. There are two ways in which EAS
   can be handled:
      * signalling "backhaul": signalling is sent outside the MG for
        off-board processing. Signalling is assumed to be tunnelled by
        the Signalling Agent to another functional entity in the
        architecture. This is outside the scope of the MC-MG protocol.
      * signalling at the endpoint: the endpoint has (natively or
        through programming) signalling capabilities. For CAS/DTMF some
        signalling information must be carried between the MC and MG
        whether or not the MG interprets the call state.

   An endpoint with CAS/DTMF must report to the MC  "signalling states"
   that the MC is interested in knowing. This can be done to any level
   of granularity, every single event could be reported by the endpoint,
   or a large number of events could be preprocessed before the MC needs
   to be notified. The MC may also indicate to the endpoint to perform
   actions (e.g., apply ringing, collect digits, accumulating and
   discarding events).
   An endpoint that terminates signalling makes easier for the MG to
   take on more functionality. For instance, an MG may select ATM trunks
   based on local information and policies. When the trunk is selected,
   the MG only needs to report the selected trunk to the MC.

3.1.3 Other endpoint operations

   Endpoints can also perform operations such as loopbacks or continuity
   tests. This can be stand alone maintenance operations or part of the
   EAS. It must be possible to make maintenance operations independent
   of other endpoint functions, for instance, some maintenance states
   should not affect the resources associated with the endpoint.

3.1.4 Programmability



Cuervo, Gibbs               expires May 1999                    [Page 6]





INTERNET DRAFT                                             November 1998


   Programmability is also used in a broad sense, it does not imply only
   the capability to download code into a device, but includes other
   means such as passing a URL, supplying parameters to an already
   loaded function, obtaining parameters from a profile or providing a
   digit-map [2], initiating a Daemon Interface [3].

   Endpoints can be programmed for several reasons, programming an
   endpoint might be related to EAS handling, media conversion, local
   bandwidth management or maintenance functions.

   Programming may also fulfill functional requirements and architecture
   scalability. For instance, being able to program TDM interfaces to
   recognise fax modulation, data or voice is a functional requirement.
   Being able to accumulate signalling events or collect strings of
   digits is a scalability consideration.

3.1.5 Resource State and Allocation

   Endpoints keep and report their state upon request of the MC, they
   may also offer an interface for the MC to alter their state.
   Endpoints could be referred to through an appropriate naming schema
   (the endpoint name-space).  For instance, endpoints may be assumed
   addressable either individually or in groups according to a
   hierarchical organisation within a physical interface. Allocation of
   values from the endpoint name-space could be either the
   responsibility of the MC or of the endpoint itself.

3.2 Connection Module

   An instance of the Connection module realises and tracks connections
   inside the MG (MG-connections). The connection module assigns
   connectionIds, manages its own name space, and reports on connection
   performance, QoS, etc.

   MG-connections may occur between any number and type of endpoints:
      * If the endpoints in a connection produce/consume the same types
        of media units or streams then the MG simply operates as a
        switch.
      * If the endpoints have dissimilar media units or streams then the
        MG must provide the appropriate media conversion functions,
        however, no assumption is made about where or how the media
        conversion is performed.

   MG-Connections are in general independent of the functions and state
   of the endpoints that they connect. Specific behaviours may be added
   to the connections, for instance, to delete a connection if an
   endpoint is put in maintenance state or goes out of service.




Cuervo, Gibbs               expires May 1999                    [Page 7]





INTERNET DRAFT                                             November 1998


3.3 Internal Devices

   An MG-Connection may require resources for 3-way connection,
   transcoding or announcements. These resources are named "internal
   devices" if they are explicitly controlled by the MC.

   Internal devices are in many ways similar to endpoints. They may be
   programmable and interwork with other internal devices and endpoints
   via MG-connections. For that purpose, internal devices are modelled
   to have "virtual endpoints" (e.g., a bridge for 3-way call has 3
   virtual endpoints).

   It is not necessary for an MG to be modelled as having internal
   devices, for instance, conference and announcement capabilities could
   be directly associated with and end point[2]. However, the more
   general approach of having a separate functional block should be
   preferred since it does not preclude implementations in which it is
   necessary to address other resources in the MG besides endpoints.

   Other models for internal devices might be possible.

3.4 Association Module

   The purpose of the Association Module is to establish and maintain a
   MC-MG association. This includes notifications regarding network
   element restart or reboots, detecting silent failures, enforcing flow
   control policies and handling fail-over scenarios.

3.5 Signalling Agent

   The signalling agent performs functions that relate to handling EAS.
   The most likely function is to tunnel signalling for a group of
   endpoints to another device. The signalling agent may also process
   signalling and therefore receive instructions for processing and
   notifying an MC of signalling events. There is a need to discuss
   whether the SA could be replaced by a more general definition of the
   SG.

4.0 Functional Model Diagram

   The figure below shows the complete functional model, which includes
   the functional blocks identified in section 2.0 and an additional block
   for programming functionality of both endpoints and internal devices.


      +---MG---------------------------------------------------------+
      |                                                              |
      |   +--------------------+           +--------------------+    |
      |   |                    |           |                    |    |



Cuervo, Gibbs               expires May 1999                    [Page 8]





INTERNET DRAFT                                             November 1998


      |   |   programming      |           | association module |    |
      |   |                    |           |                    |    |
      |   |                    |           |                    |    |
      |   +--------------------+           +--------------------+    |
      |              |                                               |
      |              +--------------------------------+              |
      |              |                                |              |
      |   +--------------------+           +--------------------+    |
      |   |                    |           |                    |    |
      |   |   endpoints        |           |   internal devices |    |
      |   |                    |           |                    |    |
      |   |                    |           |                    |    |
      |   +---+----------------+           +--------------------+    |
      |       |      |                               |               |
      |       |      |     +--------------------+    |               |
      | +-----+---+  |     |                    |    |               |
      | | Sig     |  +-----|   Connection       |----+               |
      | |Agent[SA]|        |   Module           |                    |
      | |         |        |                    |                    |
      | +---------+        |                    |                    |
      |                    +--------------------+                    |
      |                                                              |
      +--------------------------------------------------------------+

                Figure 1: Functional Model of a Media Gateway

5.0     Application Programming Interface

   This section lists the interfaces offered by each module.

5.1 Endpoint interfaces

   SetEndpointParameters(endpointId, parameterList | profileIdentifier )

   ResetEndpoint(endpointId)

   [status, parameterList, connectionList] <--
      EndpointAudit(endpointIdList, RequestedInfo)

   NotifyRequest(endpointId, eventDescriptor)


5.2     Connection Module Interfaces

   connectionId <--
      CreateConnection(endpoint_list{endpoint1,endpoint2,...}, QoS)





Cuervo, Gibbs               expires May 1999                    [Page 9]





INTERNET DRAFT                                             November 1998


   DeleteConnection(connectionId | endpointId)


   ModifyConnection(connectionId, endpoint+, endpoint-,endpoint-swap,
      QoS)


   ReportConnections(endpointId)

   AuditConnection(connectionId)

5.3     Internal Devices Interfaces

   ResetIntDevice(deviceId)

   IntDeviceStatus(deviceId)

   EndpointId <-- GetEndpoint(deviceId)

   ReleaseEndpoint(deviceId, endpointId)

5.4 Association Module interfaces

   DefineEndpoint(EndpointId, ProtocolId) advertises that an endpoint is
      reachable over a particular TCP connection or protocol multiplexer

   InitiateAssociation/TerminateAssociation(MG_Id, MC_Id)

   Reboot(MG_Id, cause)

   FlowControl(MC_Id, messageRate, gap)

   Audit/Config(MG_Id)

5.5 Programming Module interfaces

   DownloadCode(MG_Id, codeFileName)

   BindCode(endpointId | deviceId, codeName)

   BindProfile(endpointId | deviceId, profileIdentifier)

   RemoteInvocation(endpointId | deviceId, procedure)

5.6 Signalling Backhaul Module interfaces

   EnableBackhaul(endpointId, SA_Id)




Cuervo, Gibbs               expires May 1999                   [Page 10]





INTERNET DRAFT                                             November 1998


   ModifyBackhaul(endpointId, SA_Id)

   DisableBackhaul_to(endpointId, SA_Id)

6.0     References

   [1] Cuervo, Greene, Holdrege, Ong, Huitema, "SS7-Internet
       Interworking - Architectural Framework", Internet-Draft, <draft-
       greene-ss7-arch-frame-01.txt>, July 1998.

   [2] Arango, Dugan, Elliot, Huitema, Pickett, "Media Gateway Control
       Protocol (MGCP) ", Internet-Draft, <draft-Huitema-MGCP-v0r1-
       00.txt>, October 1998.

   [3] Janssen, Frystyk Nielsen, Spreitzer, "HTTP-ng Architectural
       Model", Internet-Draft, <draft-frystyk-httpng-arch-00.txt>,
       August 1998.


































Cuervo, Gibbs               expires May 1999                   [Page 11]