home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_n_r / draft-rfced-info-lantz-00.txt < prev    next >
Text File  |  1997-09-02  |  52KB  |  1,044 lines

  1.  
  2. INTERNET-DRAFT           EXPIRES: SEPTEMBER 1997          INTERNET-DRAFT
  3. Internet-Draft                                              Philip Lantz
  4. Category: Informational                                Intel Corporation
  5. Expires in six months                                      February 1997
  6.  
  7.  
  8.                      Usage of H.323 on the Internet
  9.                      <draft-rfced-info-lantz-00.txt>
  10.  
  11. Status of this Memo
  12.  
  13.    This document is an Internet-Draft.  Internet-Drafts are working
  14.    documents of the Internet Engineering task Force (IETF), its areas,
  15.    and its working groups.  Note that other groups may also distribute
  16.    working documents as Internet-Drafts.
  17.  
  18.    Internet-Drafts are draft documents valid for a maximum of six
  19.    months and may be updated, replaced, or obsoleted by other
  20.    documents at any time.  It is inappropriate to use Internet-Drafts
  21.    as reference material or to cite them other than as "work in
  22.    progress".
  23.  
  24.    To learn the current status of any Internet-Draft, please check the
  25.    "1id-abstract.txt" listing contained in the Internet-Drafts Shadow
  26.    Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  27.    munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  28.    ftp.isi.edu (US West Coast).
  29.  
  30. Abstract
  31.  
  32.    The H.323 standard defined by the International Telecommunication
  33.    Union (ITU) describes "Visual telephone systems and equipment for
  34.    local area networks which provide a non-guaranteed quality of
  35.    service", that is to say, video conferencing over Local Area Networks
  36.    and the Internet.
  37.  
  38.    Although it has been generally accepted that H.323 is an appropriate
  39.    standard for audio/video telephony on the Internet, it is a complex
  40.    standard. It describes a broad and complex set of capabilities,
  41.    including interoperation with other types of video conferencing
  42.    systems, and contains references to a number of other ITU standards.
  43.  
  44.    This document describes the parts of the standard that are necessary
  45.    for Internet telephony and multipoint conferencing. It describes the
  46.    messages that are necessary to work with other H.323 implementations.
  47.    In a separate section, it also lists the messages that must be
  48.    implemented to be H.323 compliant.
  49.  
  50.    This document is a guide to make the standard more accessible. It is
  51.    not intended to duplicate information in the standard. It does not
  52.    contain specifications of the messages or details of the protocol.
  53.  
  54. 1. Introduction
  55.  
  56.    The H.323 standard covers tightly-controlled point-to-point and
  57.    multipoint audio and video conferencing over non-guaranteed quality
  58.    of service networks. In addition to video conferencing terminals,
  59.    H.323 describes gateways, which allow interoperation of H.323 systems
  60.    with audio/video conferencing systems on ISDN, POTS, and other
  61.    transports. It also describes gatekeepers, which provide admission
  62.    control and address translation.
  63.  
  64.  
  65.  
  66.  
  67. Lantz                                                           [Page 1]
  68.  
  69. I-D                 Usage of H.323 on the Internet        February 1997
  70.  
  71.  
  72.    Definition of the H.323 standard was begun by the ITU to enable
  73.    interoperation between existing H.320 systems and new LAN-based video
  74.    conferencing systems. Early in the standardization process, it became
  75.    clear that enabling calls between systems on a LAN was equally
  76.    important. It has since become clear that H.323 is also appropriate
  77.    for video conferencing over the Internet.
  78.  
  79.    Because of its history, and the ITU standardization process, the
  80.    H.323 standard requires a number of features which are of little
  81.    importance in some environments. An implementation that is designed
  82.    to work in a known environment may take some shortcuts such that the
  83.    implementation would not be compliant with the standard but would
  84.    still interoperate with most compliant implementations in the
  85.    specified environment. It is hoped that full H.323 implementations
  86.    will be tolerant of peers that are not fully compliant, to allow
  87.    communication among a wide range of implementations.
  88.  
  89.    This document describes the basic messages used to set up a point-
  90.    to-point or multipoint conference, which enable a relatively simple
  91.    conferencing application to interoperate with compliant H.323
  92.    implementations on the Internet. This document purposely does not go
  93.    into details of all the standard's requirements. It glosses over
  94.    some finer points and recommends simplifying courses of action which
  95.    do not take into account all of the complex features of the standard.
  96.    The standard itself should be consulted to determine its exact
  97.    requirements.
  98.  
  99.    The final section of this document is a synopsis of the messages
  100.    required to be fully compliant with the standard. For most messages,
  101.    only a minimal implementation is necessary to be fully compliant.
  102.  
  103. 1.1. H.323 Terminology
  104.  
  105.    "terminal": an endpoint in a conference with a user and audio/video
  106.       input and output. This document is primarily focused on the
  107.       implementation of an H.323 terminal.
  108.    "gatekeeper": controls usage of the network for conferencing and may
  109.       perform address translation and other services
  110.    "gateway": enables H.323 terminals to connect to ITU terminals on
  111.       ISDN, POTS, or other types of networks
  112.    "Multipoint Controller (MC)": provides centralized control for a
  113.       conference with three or more terminals or gateways
  114.    "Multipoint Control Unit (MCU)": provides audio and/or video
  115.       processing for a conference with three or more terminals or
  116.       gateways so they don't have to manage multiple audio and video
  117.       streams
  118.  
  119. 1.2. Standards Documents
  120.  
  121.    H.323 standard-based video conferencing is described by a number of
  122.    ITU documents. H.323 itself describes the system components and the
  123.    procedures for establishing conferences. H.225.0 specifies the call
  124.  
  125.  
  126. Lantz                                                           [Page 2]
  127.  
  128. I-D                  Usage of H.323 on the Internet        February 1997
  129.  
  130.  
  131.    setup and gatekeeper messages and describes the usage of RTP. The
  132.    call setup messages in H.225.0 are based on messages defined in
  133.    Q.931. Q.931 is the definition of part of the signaling system for
  134.    ISDN, and parts of it were adapted for use in H.323. Q.931 must be
  135.    consulted for the specification of those parts of the messages which
  136.    H.225.0 inherits. H.245 specifies the conference control and
  137.    capability exchange messages. H.245 defines control messages for
  138.    several ITU conferencing standards. H.323 uses a subset of these
  139.    messages. The H.323 Implementer's Guide contains corrections to the
  140.    standards documents and clarifications which are necessary to
  141.    properly implement the standard. There are additional documents
  142.    which describe the audio and video codecs, message encoding rules,
  143.    and other topics.
  144.  
  145. 1.3. ASN.1
  146.  
  147.    The structure of H.245 messages is described using a language called
  148.    ASN.1, defined in X.680. The extensions to Q.931 messages defined in
  149.    H.225.0 are also described using ASN.1. The encoding of ASN.1 is
  150.    described in X.691. While it may be possible to hand-generate code
  151.    to encode H.245 messages, it is not very practical. There are tools
  152.    available which read the ASN.1 syntax (extracted directly from the
  153.    standard) and generate a header file defining a structure for each
  154.    message and code to encode and decode the messages. Use of these
  155.    tools will also help ensure compatibility with other implementations.
  156.  
  157. 2. Overview of point-to-point conference operation
  158.  
  159.    Establishment of a point-to-point H.323 conference requires two TCP
  160.    connections between the two terminals, one for call setup and the
  161.    other for conference control and capability exchange. The initial
  162.    connection is made from the caller to a well-known port on the
  163.    callee. This connection carries the call setup messages defined in
  164.    H.225.0, and is commonly called the Q.931 channel. Upon receipt of
  165.    the incoming call, the callee listens for a TCP connection on a
  166.    dynamic port; the callee communicates this port in the acceptance
  167.    message. The caller then establishes the second TCP connection to
  168.    that port. The second connection carries the conference control
  169.    messages defined in H.245. Once the H.245 channel is established, the
  170.    first connection is no longer necessary (in a simple conference
  171.    environment) and may be closed by either endpoint.
  172.  
  173.    The H.245 channel is used by the terminals to exchange audio and
  174.    video capabilities and perform master/slave determination. It is
  175.    then used to signal opening logical channels for audio and video,
  176.    which causes RTP sessions to be created for the media streams. The
  177.    H.245 channel remains open for the duration of the conference. It is
  178.    used to signal the end of the conference.
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185. Lantz                                                           [Page 3]
  186.  
  187. I-D                 Usage of H.323 on the Internet        February 1997
  188.  
  189.  
  190. 3. Call Setup
  191.  
  192.    Call setup messages are sent on the first TCP connection the caller
  193.    establishes to the callee. Four call setup messages are necessary
  194.    for simple conferences. Their use and syntax are defined in H.225.0
  195.    and Q.931. The necessary messages are:
  196.       Setup
  197.       Alerting
  198.       Connect
  199.       Release Complete
  200.  
  201.    The caller sends Setup to initiate the conference immediately after
  202.    establishing the TCP connection. The Setup message contains the
  203.    caller's name and IP address. The callee sends Alerting after
  204.    notifying the user of the incoming call, if the call will not be
  205.    accepted without user intervention. The callee sends Connect to
  206.    accept the call or Release Complete to refuse the call. The Connect
  207.    message contains the address and port on which the callee is
  208.    listening for the H.245 connection.
  209.  
  210.    Either Alerting, Connect, or Release Complete must be sent by the
  211.    callee immediately upon receipt of Setup; one of these must be
  212.    received by the caller before its setup timer expires. After Alerting
  213.    is sent, the user has up to 3 minutes to accept or refuse the call.
  214.  
  215.    To be fully H.323 compliant, four additional messages must be
  216.    supported. See section 9, "Compliance".
  217.  
  218. 3.1. Setup
  219.  
  220.    The following fields of the Setup message carry useful information
  221.    for simple point-to-point conferences. Some of these fields are in
  222.    the Q.931-defined part, and some are in the H.225.0-defined
  223.    extensions. See H.225.0 and Q.931 for information on the content and
  224.    formatting of these fields.
  225.       Display - should contain caller name for display to the callee
  226.       sourceInfo - manufacturer and product version information
  227.       sourceCallSignalAddress - IP address of caller
  228.  
  229.    The following additional fields must be included as part of the
  230.    syntax. Except as noted, they may have fixed values for all simple
  231.    conferences.
  232.       Protocol discriminator
  233.       Call reference - unique for simultaneous calls
  234.       Message type
  235.       Bearer capability
  236.       protocolIdentifier
  237.       destCallSignalAddress - IP address of callee
  238.       activeMC
  239.       conferenceID - unique for every call
  240.       conferenceGoal
  241.       callType
  242.  
  243.  
  244. Lantz                                                           [Page 4]
  245.  
  246. I-D                  Usage of H.323 on the Internet        February 1997
  247.  
  248.  
  249. 3.2. Alerting
  250.  
  251.    The Alerting message contains no useful fields. When it is received,
  252.    the calling terminal should provide outgoing ring indication to the
  253.    user and stop the setup timer, which was started when the Setup
  254.    message was sent. The following fields must be included as part of
  255.    the syntax. Except as noted, they have fixed values.
  256.       Protocol discriminator
  257.       Call reference - the value received in the Setup message
  258.       Message type
  259.       protocolIdentifier
  260.       destinationInfo - manufacturer and product version information
  261.  
  262. 3.3. Connect
  263.  
  264.    The following fields of the Connect message carry useful information
  265.    for simple point-to-point conferences.
  266.       Display - should contain callee name for display to the caller
  267.       h245Address - IP address and port to establish H.245 connection
  268.       destinationInfo - manufacturer and product version information
  269.  
  270.    The following additional fields must be included as part of the
  271.    syntax. Except as noted, they have fixed values.
  272.       Protocol discriminator
  273.       Call reference - the value received in the Setup message
  274.       Message type
  275.       protocolIdentifier
  276.       conferenceID - the value received in the Setup message
  277.  
  278. 3.4. Release Complete
  279.  
  280.    The only useful information in the Release Complete message is the
  281.    reason for refusing the call. This may be carried in either the Cause
  282.    field or the reason field, depending on the specific reason. Reasons
  283.    defined by Q.850 are coded in the Cause field. Additional reasons
  284.    defined by H.225.0 are coded in the reason field. Either the Cause
  285.    field or the reason field must be present.
  286.  
  287.    The following additional fields must be included as part of the
  288.    syntax. Except as noted, they have fixed values.
  289.       Protocol discriminator
  290.       Call reference - the value received in the Setup message
  291.       Message type
  292.       protocolIdentifier
  293.  
  294. 4. Conference control
  295.  
  296.    Conference control and capability exchange messages are sent on the
  297.    second TCP connection, which the caller establishes to a dynamic port
  298.    on the callee. The messages are defined in H.245.
  299.  
  300.  
  301.  
  302.  
  303. Lantz                                                           [Page 5]
  304.  
  305. I-D                 Usage of H.323 on the Internet        February 1997
  306.  
  307.  
  308.    The following H.245 messages are necessary for a simple conference:
  309.       Terminal Capability Set, Acknowledge
  310.       Master/Slave Determination, Acknowledge, Reject
  311.       Open Logical Channel, Acknowledge, Reject
  312.       End Session
  313.  
  314.    To be fully H.323 compliant, additional messages must be supported.
  315.    See section 9, "Compliance".
  316.  
  317. 4.1. Terminal Capability Set
  318.  
  319.    Terminal Capability Set is the first message sent by each terminal on
  320.    the H.245 channel. It contains a potentially complex description of
  321.    the audio, video, multipoint, and data capabilities of the terminal.
  322.    In the simplest case, the terminal capability set may list a set of
  323.    audio and video capabilities, and indicate that the terminal can do
  324.    any of them simultaneously. If a terminal has bandwidth or processing
  325.    limits which constrain which capabilities can be performed
  326.    simultaneously, the terminal capability set can describe these
  327.    constraints. The terminal capability set may contain transmit
  328.    capabilities as well as receive capabilities, but it need not; a
  329.    terminal may choose to send any media type and format allowed by the
  330.    peer's receive capabilities, whether or not the format is listed as a
  331.    transmit capability in its own capability set. The format of the
  332.    terminal capability set is fully described in H.245.
  333.  
  334. 4.2. Master/Slave Determination
  335.  
  336.    In an H.323 conference, one entity in the conference is identified as
  337.    the master. In a multipoint conference, the master is called the
  338.    Multipoint Controller (MC), and has a significant role, as described
  339.    in section 6, "Multipoint". In a point-to-point conference, the
  340.    master has a variety of minor roles. The master in a point-to-point
  341.    conference is chosen at random, if the two terminals have similar
  342.    capabilities. However, if one terminal is capable of being MC and
  343.    the other is not, the MC-capable terminal will always be selected
  344.    master, to allow the conference to expand to multipoint if desired.
  345.  
  346.    Master/Slave Determination is sent by each terminal after it has sent
  347.    Terminal Capability Set. The terminal does not need to wait for a
  348.    response to Terminal Capability Set before sending Master/Slave
  349.    Determination. If a terminal receives Master/Slave Determination
  350.    before sending its own, it does not need to send it, but only needs
  351.    to send Master/Slave Determination Ack.
  352.  
  353.    Each terminal generates a random number and sends it in the
  354.    Master/Slave Determination message. Which terminal is the master is
  355.    determined by comparison of the terminal types and the random
  356.    numbers. If both endpoints send Master/Slave Determination, both
  357.    endpoints will reach the same conclusion about who is master. If one
  358.    endpoint receives Master/Slave Determination before sending its own,
  359.    it makes the determination. In any case each terminal sends
  360.  
  361.  
  362. Lantz                                                           [Page 6]
  363.  
  364. I-D                 Usage of H.323 on the Internet        February 1997
  365.  
  366.  
  367.    Master/Slave Determination Ack indicating its conclusion.
  368.    Master/Slave Determination Reject is sent if the random numbers
  369.    chosen by the two endpoints are the same; when this message is
  370.    received, Master/Slave Determination is sent again with a new random
  371.    number.
  372.  
  373. 4.3. Open Logical Channel
  374.  
  375.    Logical channels for audio and video are always opened by the
  376.    terminal that will send data on the channel. The Open Logical
  377.    Channel message indicates to the peer the intent to send audio or
  378.    video in a specific format. It must specify an Audio Capability or
  379.    Video Capability that is compatible with a receive capability in the
  380.    peer's terminal capability set. The Open Logical Channel message also
  381.    includes the RTCP address and port on which the opener expects to
  382.    receive receiver reports. The peer responds with an Open Logical
  383.    Channel Ack message which includes the RTP address and port at which
  384.    it expects to receive the media stream and the RTCP address and port
  385.    at which it expects to receive sender reports. (When the underlying
  386.    network is UDP, the RTP and RTCP addresses differ only in that the
  387.    UDP port for the RTCP address is one greater than the UDP port for
  388.    the RTP address. However, H.323 does not assume this, and both
  389.    addresses must be fully specified in the Open Logical Channel Ack
  390.    message.)
  391.  
  392.    If the media format is not one for which a static RTP payload type is
  393.    defined, the master assigns a dynamic payload type. If the master is
  394.    opening the channel, it puts the dynamic payload type in the Open
  395.    Logical Channel message; if the slave is opening the channel, the
  396.    master puts the dynamic payload type in the Open Logical Channel Ack
  397.    message.
  398.  
  399.    Note that there is no mechanism for the two terminals to agree on
  400.    common data formats, nor is it necessary. Each terminal chooses the
  401.    data format(s) it wishes to send, within the constraints imposed by
  402.    the receive capabilities in the peer's terminal capability set. If a
  403.    terminal is unable to support an asymmetric mode (in which it is
  404.    sending and receiving different formats), it should express this
  405.    constraint in its terminal capability set.
  406.  
  407.    The master is expected to recognize conflicts between simultaneous
  408.    open logical channel requests. If the master receives an open logical
  409.    channel request from the slave which it determines is incompatible
  410.    with an open logical channel request that it has sent, it must reject
  411.    the request from the slave. The slave is expected to accept the
  412.    channel opened by the master. The slave may then open a logical
  413.    channel that is compatible with the already opened channel(s).
  414.  
  415. 4.4. End Session
  416.  
  417.    End Session is sent by either terminal to terminate the call. When a
  418.    terminal receives End Session, it should stop sending audio and video
  419.  
  420.  
  421. Lantz                                                           [Page 7]
  422.  
  423. I-D                 Usage of H.323 on the Internet        February 1997
  424.  
  425.  
  426.    and respond with an End Session (although it should not be surprised
  427.    if the H.245 connection has already been closed!).
  428.  
  429. 5. RTP/RTCP
  430.  
  431.    H.225.0 includes the entire text of the definition of RTP/RTCP in an
  432.    annex. Although the description of RTP/RTCP was modified by the
  433.    editor of H.225.0, and it states that RTP must be used according to
  434.    the description in H.225.0, rather than according to the primary
  435.    specification of RTP, there are no substantive differences between
  436.    RTP as defined by RFC 1889 and 1890 and RTP as defined by H.225.0.
  437.  
  438.    There are a few minor differences: 1) H.225.0 says that the RTCP BYE
  439.    message cannot be relied on to terminate a session; the appropriate
  440.    H.245 procedures must be used. For consistency with RTP, an H.323
  441.    terminal should send BYE, but it should not expect to receive it and
  442.    should ignore it if it is received. 2) H.225.0 says that the marker
  443.    bit need not be set in a video frame if it would increase end-to-end
  444.    latency (i.e., if an implementation does not know where the end of a
  445.    frame is until the start of the next frame). I expect most, if not
  446.    all, H.323 implementations to set the marker bit appropriately.
  447.    3) H.225.0 says that a single RTP packet cannot contain video from
  448.    more than one video frame. RFC 1890 does not have this restriction.
  449.  
  450. 6. Multipoint
  451.  
  452.    In a multipoint conference, conference control is centralized in an
  453.    entity called the Multipoint Controller (MC). The MC may reside in
  454.    any of the terminals, or in a gatekeeper, gateway, or MCU. The
  455.    location of the MC is determined at the beginning of each conference,
  456.    during master/slave determination. By building MC capability into
  457.    each terminal, no additional equipment is required to support a
  458.    multipoint conference, and a point-to-point conference can be easily
  459.    expanded into a multipoint conference. Each terminal in a multipoint
  460.    conference establishes its Q.931 and H.245 connections with the MC.
  461.  
  462.    H.323 defines two modes of media distribution for multipoint
  463.    conferences, centralized and distributed. In a centralized multipoint
  464.    conference, each terminal sends its audio and video streams to a
  465.    Multipoint Control Unit (MCU), which redistributes them to the
  466.    terminals in the conference. In a distributed multipoint conference,
  467.    audio and video streams are sent directly from each source to all
  468.    receivers (using multicast, if available). The standard also defines
  469.    mixed mode, in which audio is centralized and video is distributed,
  470.    or vice versa.
  471.  
  472.    A terminal signals its ability to participate in a distributed
  473.    multipoint conference in the Terminal Capability Set message. It
  474.    need not be capable of taking the role of MC to participate, but it
  475.    does need to be able to send its own audio and video streams to all
  476.    other participants, receive multiple audio and video streams from the
  477.    other participants, mix the audio streams, and select one or more of
  478.  
  479.  
  480. Lantz                                                           [Page 8]
  481.  
  482. I-D                 Usage of H.323 on the Internet        February 1997
  483.  
  484.  
  485.    the video streams to display.
  486.  
  487. 6.1. Multipoint Call Setup
  488.  
  489.    The steps for multipoint call setup are the same as for point-to-
  490.    point call setup. However, each terminal must call or be called by
  491.    the MC. If a terminal that is not in a conference calls a terminal
  492.    that is in a conference but is not the MC, the called terminal
  493.    responds with the H.225.0 Facility message, which informs the caller
  494.    that it should call the MC and gives it the MC call signaling address
  495.    and the conference ID. (The callee could of course refuse the call
  496.    with a busy indication instead.)
  497.  
  498.    If a terminal in a multipoint conference wishes to invite another
  499.    terminal into the conference, it sends the Setup message to the MC.
  500.    The MC then establishes a connection to the new terminal and forwards
  501.    the Setup message to it. The calling terminal receives the Alerting
  502.    and Connect messages from the new terminal (forwarded by the MC), but
  503.    once the new terminal has accepted the call, there is no further
  504.    relationship between the calling terminal and the new terminal; the
  505.    new terminal simply appears as another terminal which has joined the
  506.    conference.
  507.  
  508. 6.2. Multipoint Conference Control
  509.  
  510.    The following H.245 messages are used in multipoint conferences:
  511.       MC Location Indication
  512.       Multipoint Mode Command
  513.       Communication Mode Command
  514.       Terminal Number Assign
  515.       Enter H243 Terminal ID, Terminal ID Response
  516.       Terminal List Request, Response
  517.       Request Terminal ID, MC Terminal ID Response
  518.       Terminal Joined Conference
  519.       Terminal Left Conference
  520.  
  521.    The first five of these messages are sent by the MC to each terminal
  522.    when it joins the multipoint conference. MC Location Indication
  523.    tells the terminal where to route callers that wish to join the
  524.    multipoint conference, as described in section 6.1, "Multipoint Call
  525.    Setup". (MC Location Indication may also be sent by the master in a
  526.    point-to-point conference, to allow the slave to expand the
  527.    conference to multipoint.) Multipoint Mode Command simply informs the
  528.    terminal that it is participating in a multipoint conference.
  529.    Communication Mode Command tells the terminal the RTP sessions that
  530.    make up the multipoint conference. The terminal should generally open
  531.    a channel for each of these sessions, and expect to receive an Open
  532.    Logical Channel command for each session from the MC on behalf of
  533.    each terminal. Terminal Number Assign tells the terminal what its
  534.    terminal number is. It must use this value as the low byte of the
  535.    SSRC for each of its media streams. This enables other terminals to
  536.    associate the media streams with the terminal so it may be correlated
  537.  
  538.  
  539. Lantz                                                           [Page 9]
  540.  
  541. I-D                Usage of H.323 on the Internet        February 1997
  542.  
  543.  
  544.    with other information about that terminal received from the MC.
  545.    Enter H243 Terminal ID is used by the MC to request the terminal's
  546.    id, which is a text string containing the human-readable name of the
  547.    terminal or (preferably) its user. The terminal responds with
  548.    Terminal ID Response.
  549.  
  550.    The terminal may request information about the other terminals in the
  551.    conference with the rest of the messages. Terminal List Request is
  552.    used by a terminal to obtain from the MC a list of the terminal
  553.    numbers of all the terminals in the conference. The MC responds with
  554.    Terminal List Response. The terminal may obtain the Terminal ID of
  555.    each terminal in the conference by sending Request Terminal ID for
  556.    each terminal. The MC responds with MC Terminal ID Response for each
  557.    request. The MC sends Terminal Joined Conference and Terminal Left
  558.    Conference indications as additional terminals join and leave the
  559.    conference so each terminal can maintain an up-to-date list of the
  560.    terminals currently in the conference.
  561.  
  562. 7. Gateways/Proxies
  563.  
  564.    Gateways are defined in H.323 to provide interoperability with
  565.    previously defined ITU video conferencing standards such as H.320
  566.    (ISDN) and H.324 (POTS). A gateway which allows an H.323 terminal to
  567.    call a standard telephone (or vice versa) is also possible. Although
  568.    proxies were not anticipated by the standard, they can be thought of
  569.    as H.323-H.323 gateways, and the implementers group has described
  570.    their use.
  571.  
  572.    For the most part, a gateway presents itself as an H.323 terminal, so
  573.    an H.323 terminal that is communicating with a non-H.323 terminal
  574.    doesn't have to function any differently than if it were
  575.    communicating with an H.323 terminal. The only difference is in the
  576.    Setup message, which must contain information specific to the path
  577.    the call is actually being routed on (such as a phone number). A
  578.    proxy also requires additional information in the Setup message, to
  579.    communicate the intended recipient of the call. The details of this
  580.    addressing information can be found in the H.323 Implementer's Guide.
  581.  
  582. 8. Gatekeepers
  583.  
  584.    The original purpose of the gatekeeper in H.323 is to control access
  585.    to the network for video conferencing. Along the way, it gained some
  586.    other responsibilities, such as address translation, which can be
  587.    used to locate gateways. Gatekeeper vendors are also adding other
  588.    features, such as conference and bandwidth usage logging, which can
  589.    be used for billing. Gatekeepers could also be used to control and
  590.    bill for access to services such as gateways to standard telephones.
  591.    A compliant terminal is required to attempt to locate and register
  592.    with a gatekeeper before conferencing, but not doing so will not
  593.    prevent it from interoperating with any other terminal.
  594.  
  595.  
  596.  
  597.  
  598. Lantz                                                          [Page 10]
  599.  
  600. I-D                  Usage of H.323 on the Internet        February 1997
  601.  
  602.  
  603. 9. Compliance
  604.  
  605.    The previous sections describe the usage of H.323 for simple
  606.    conferences. There are a number of additional messages which H.323
  607.    requires be handled. Although most H.323 implementations, even fully
  608.    compliant ones, should work with a peer that does not handle these
  609.    messages, they must be implemented to be fully compliant.
  610.  
  611.    H.323 also requires that every terminal have certain capabilities.
  612.    Every terminal must support centralized multipoint conferences, and
  613.    the H.245 messages associated with it. Every terminal must support
  614.    G.711 (although this requirement obviously cannot be met over a
  615.    modem--current implementations which are intended to operate over
  616.    low-bit-rate links use G.723.1). Every terminal that supports video
  617.    must support H.261 QCIF. Every terminal that supports H.263 must
  618.    support H.263 QCIF.
  619.  
  620.    Every terminal must attempt to locate a gatekeeper. If a gatekeeper
  621.    responds, the terminal must register with it, send admission requests
  622.    before conferencing and abide by the gatekeeper's responses. This
  623.    document does not list the required gatekeeper messages.
  624.  
  625. 9.1. Call Setup
  626.  
  627.    H.225.0 requires support for the following eight messages:
  628.       Setup
  629.       Call Proceeding
  630.       Alerting
  631.       Connect
  632.       Release Complete
  633.       Status
  634.       Status Enquiry
  635.       Facility
  636.  
  637.    Setup, Alerting, Connect, and Release Complete were discussed above.
  638.    Release Complete is also sent during conference shutdown if the Q.931
  639.    channel is still open. In a conference involving only two terminals,
  640.    either terminal may close the Q.931 channel as soon as the H.245
  641.    channel is opened, but in a conference involving a gatekeeper or
  642.    gateway, the terminal must keep the Q.931 channel open and send
  643.    Release Complete upon termination of the conference.
  644.  
  645.    Call Proceeding should be sent upon receipt of the Setup message if
  646.    no other response can immediately be sent. In general this should
  647.    not be necessary for a terminal, because Alerting can be sent
  648.    instead. If Call Proceeding is received, the only action that is
  649.    required is to disable the 4 second timer which was started when the
  650.    Setup message was sent.
  651.  
  652.    Status is sent in response to a Status Enquiry message or any message
  653.    that is not understood. If a terminal does not send either Status
  654.    Enquiry or any undefined messages, it does not need to handle receipt
  655.  
  656.  
  657. Lantz                                                          [Page 11]
  658.  
  659. I-D             Usage of H.323 on the Internet        February 1997
  660.  
  661.  
  662.    of a Status message. A terminal is required to send Status at the
  663.    proper time to be compatible with entities which expect it.
  664.  
  665.    Facility is used to redirect incoming calls, either for the purpose
  666.    of call forwarding or to cause all participants in a multipoint
  667.    conference to contact the MC. When a terminal receives Facility in
  668.    response to Setup, it sends Release Complete and closes the Q.931
  669.    channel, then establishes a new TCP connection to the call signaling
  670.    address given in the Facility message and sends a new Setup message.
  671.    (If the reason given in the Facility message is Route Call to MC, the
  672.    calling terminal may wish to ask the user if he wants to join a
  673.    multipoint conference before proceeding.)
  674.  
  675.    This table lists all the H.225.0 messages which are required and the
  676.    required usage for each of these messages.
  677.  
  678.    _____________________________________________________________________
  679.   |  Message          |  When to send         |  What to do on receipt |
  680.   |___________________|_______________________|________________________|
  681.   |  Setup            |  to initiate a        |  respond with          |
  682.   |                   |  conference           |  Alerting, Connect or  |
  683.   |                   |                       |  Release Complete      |
  684.   |___________________|_______________________|________________________|
  685.   |  Call Proceeding  |  on receipt of        |  stop 4 second timer   |
  686.   |                   |  Setup if neither     |                        |
  687.   |                   |  Alerting, Connect,   |                        |
  688.   |                   |  nor Release          |                        |
  689.   |                   |  Complete can be      |                        |
  690.   |                   |  sent immediately     |                        |
  691.   |___________________|_______________________|________________________|
  692.   |  Alerting         |  on receipt of        |  stop 4 second timer;  |
  693.   |                   |  Setup if user has    |  start 180 second      |
  694.   |                   |  been notified of     |  timer                 |
  695.   |                   |  incoming call        |                        |
  696.   |___________________|_______________________|________________________|
  697.   |  Connect          |  after receipt of     |  establish H.245       |
  698.   |                   |  Setup to accept      |  connection            |
  699.   |                   |  the incoming call    |                        |
  700.   |___________________|_______________________|________________________|
  701.   |  Release Complete |  after receipt of     |  close Q.931 channel   |
  702.   |                   |  Setup to refuse an   |  and end call          |
  703.   |                   |  incoming call or     |                        |
  704.   |                   |  during conference    |                        |
  705.   |                   |  shutdown if Q.931    |                        |
  706.   |                   |  channel is still     |                        |
  707.   |                   |  open                 |                        |
  708.   |___________________|_______________________|________________________|
  709.   |  Status           |  on receipt of        |  may be ignored        |
  710.   |                   |  Status Enquiry       |                        |
  711.   |                   |                       |                        |
  712.   |                   |                       |                        |
  713.   |___________________|_______________________|________________________|
  714.  
  715.  
  716. Lantz                                                          [Page 12]
  717.  
  718. I-D              Usage of H.323 on the Internet        February 1997
  719.  
  720.  
  721.    _____________________________________________________________________
  722.   |  Message          |  When to send         |  What to do on receipt |
  723.   |___________________|_______________________|________________________|
  724.   |  Status Enquiry   |  not required         |  send Status           |
  725.   |___________________|_______________________|________________________|
  726.   |  Facility         |  on receipt of        |  send Release Complete |
  727.   |                   |  Setup to forward     |  and establish new     |
  728.   |                   |  the incoming call    |  call to specified     |
  729.   |                   |  to another           |  address               |
  730.   |                   |  terminal or to the   |                        |
  731.   |                   |  MC in a multipoint   |                        |
  732.   |                   |  conference           |                        |
  733.   |___________________|_______________________|________________________|
  734.  
  735. 9.2. H.245 Messages
  736.  
  737.    H.323 requires the use of the following H.245 messages:
  738.       Terminal Capability Set, Acknowledge, Reject, Release
  739.       Master/Slave Determination, Acknowledge, Reject, Release
  740.       Open Logical Channel, Acknowledge, Reject
  741.       Close Logical Channel, Acknowledge
  742.       Request Channel Close, Reject, Release
  743.       Request Mode, Acknowledge, Reject, Release
  744.       Round Trip Delay Request, Response
  745.       Maintenance Loop Request, Reject, Off Command
  746.  
  747.       Send Terminal Capability Set
  748.       Flow Control Command
  749.       End Session Command
  750.       Function Not Supported
  751.       H2250 Maximum Skew
  752.       User Input Indication
  753.       Video Freeze Picture
  754.       Video Fast Update Picture
  755.       Video Fast Update GOB
  756.       Video Fast Update MB
  757.  
  758.       Multipoint Mode Command
  759.       Cancel Multipoint Mode Command
  760.       MC Location Indication
  761.       Communication Mode Command
  762.       Terminal Number Assign
  763.  
  764.    Terminal Capability Set Reject is sent if a Terminal Capability Set
  765.    message is received that is badly-formed or too large for the
  766.    receiving terminal to handle. If a terminal receives this, its
  767.    choices are to simplify its capability set or simply send End Session
  768.    to end the conference.
  769.  
  770.    Logical channels for audio and video are always opened by the
  771.    terminal that will send data on the channel, but either terminal may
  772.    wish to close the channel. If a terminal wants to close a channel
  773.  
  774.  
  775. Lantz                                                          [Page 13]
  776.  
  777. I-D             Usage of H.323 on the Internet        February 1997
  778.  
  779.  
  780.    that it has opened, it sends Close Logical Channel, which must be
  781.    acknowledged. (The peer cannot prevent a terminal from closing one of
  782.    its own channels!) If a terminal wants to close a channel that the
  783.    peer has opened, it sends Request Channel Close. The terminal
  784.    receiving this message may reject it for any reason, or it may
  785.    respond with Close Logical Channel.
  786.  
  787.    Request Mode is used to request the peer to send specific data
  788.    formats, in contrast to Terminal Capability Set, which describes what
  789.    a terminal is able to receive, not necessarily what it wants to
  790.    receive. Request Mode may be sent in a point-to-point conference
  791.    only if transmit capabilities were included in the peer's terminal
  792.    capability set, so a terminal may avoid having to process this
  793.    message by simply omitting any transmit capabilities from its
  794.    terminal capability set. If a terminal does receive this message, it
  795.    may acknowledge the request and begin using one of the modes
  796.    requested, or it may reject the request, with or without a reason. In
  797.    a multipoint conference, the MC may send Request Mode to any
  798.    terminal, and the terminal is required to comply if the requested
  799.    mode is within its capabilities.
  800.  
  801.    The Release messages for Terminal Capability Set, Master/Slave
  802.    Determination, Request Channel Close, and Request Mode are sent if no
  803.    response is received to the corresponding Request message within the
  804.    timeout period. (However, no value or range of values for the
  805.    timeout period is specified by the standard.)
  806.  
  807.    Round Trip Delay Request must be responded to with Round Trip Delay
  808.    Response. Maintenance Loop Request may be rejected for any reason.
  809.    Maintenance Loop Off Command turns off any loopback in effect, and
  810.    may be ignored if no loopback modes are supported.
  811.  
  812.    Send Terminal Capability Set requests the peer to re-send all or part
  813.    of its terminal capability set. A compliant endpoint must respond to
  814.    this by sending a Terminal Capability Set message. Flow Control
  815.    Command specifies a maximum bit rate for a specific logical channel
  816.    or the entire set of open logical channels. The bit rate limit
  817.    specified must be honored. Function Not Supported is sent if an
  818.    unsupported request, response, or command is received.
  819.  
  820.    H2250 Maximum Skew specifies the time skew between when audio and
  821.    video that were captured at the same instant are delivered to the
  822.    network. Since this time is likely to be overwhelmed by jitter in the
  823.    network, I think it is a meaningless value, but the standard requires
  824.    that an estimate be made.
  825.  
  826.    A terminal is required to allow the user to input the characters 0-9,
  827.    #, and * and send them in the User Input Indication message. This is
  828.    so that a gateway, phone mail system, or other H.323 entity can
  829.    provide services with a known user interface that all terminal will
  830.    support. This message may be ignored on receipt.
  831.  
  832.  
  833.  
  834. Lantz                                                          [Page 14]
  835.  
  836. I-D             Usage of H.323 on the Internet        February 1997
  837.  
  838.  
  839.    This table lists the H.245 messages which are required by H.323
  840.    (except for those described in section 4, "Conference Control", and
  841.    section 6, "Multipoint") and the simplest compliant behavior for each
  842.    of these messages. More sophisticated behavior is of course possible.
  843.    Where no action is specified on receipt, the message may be ignored.
  844.  
  845.    _____________________________________________________________________
  846.   |  Message          |  When to send          | What to do on receipt |
  847.   |___________________|________________________|_______________________|
  848.   |  Terminal         |  on receipt of a       | send a simpler        |
  849.   |  Capability Set   |  Terminal              | capability set or end |
  850.   |  Reject           |  Capability Set        | the conference        |
  851.   |                   |  that is badly-        |                       |
  852.   |                   |  formed or too         |                       |
  853.   |                   |  large to handle       |                       |
  854.   |___________________|________________________|_______________________|
  855.   |  Close Logical    |  if no response is     | send Close Logical    |
  856.   |  Channel          |  received to Open      | Channel Ack           |
  857.   |                   |  Logical Channel       |                       |
  858.   |                   |  within the timeout    |                       |
  859.   |                   |  period                |                       |
  860.   |___________________|________________________|_______________________|
  861.   |  Request Channel  |                        | send Request Channel  |
  862.   |  Close            |                        | Close Reject          |
  863.   |___________________|________________________|_______________________|
  864.   |  Request Mode     |                        | In a point-to-point   |
  865.   |                   |                        | conference: send      |
  866.   |                   |                        | Request Mode Reject.  |
  867.   |                   |                        | In a multipoint       |
  868.   |                   |                        | conference: if the    |
  869.   |                   |                        | requested mode is     |
  870.   |                   |                        | within capabilities,  |
  871.   |                   |                        | send Request Mode     |
  872.   |                   |                        | Acknowledge and begin |
  873.   |                   |                        | using the requested   |
  874.   |                   |                        | mode; otherwise send  |
  875.   |                   |                        | Request Mode Reject   |
  876.   |                   |                        |                       |
  877.   |                   |                        |                       |
  878.   |                   |                        |                       |
  879.   |                   |                        |                       |
  880.   |                   |                        |                       |
  881.   |                   |                        |                       |
  882.   |                   |                        |                       |
  883.   |                   |                        |                       |
  884.   |                   |                        |                       |
  885.   |                   |                        |                       |
  886.   |                   |                        |                       |
  887.   |                   |                        |                       |
  888.   |                   |                        |                       |
  889.   |                   |                        |                       |
  890.   |___________________|________________________|_______________________|
  891.  
  892.  
  893. Lantz                                                          [Page 15]
  894.  
  895. I-D             Usage of H.323 on the Internet        February 1997
  896.  
  897.  
  898.    _____________________________________________________________________
  899.   |  Message          |  When to send          | What to do on receipt |
  900.   |___________________|________________________|_______________________|
  901.   |  Terminal         |  if no response is     |                       |
  902.   |  Capability Set   |  received to the       |                       |
  903.   |  Release          |  corresponding         |                       |
  904.   |___________________|  request within the    |                       |
  905.   |  Master/Slave     |  timeout period        |                       |
  906.   |  Determination    |                        |                       |
  907.   |  Release          |                        |                       |
  908.   |___________________|                        |                       |
  909.   |  Request Channel  |                        |                       |
  910.   |  Close Release    |                        |                       |
  911.   |___________________|                        |                       |
  912.   |  Request Mode     |                        |                       |
  913.   |  Release          |                        |                       |
  914.   |___________________|________________________|_______________________|
  915.   |  Round Trip Delay |                        | send Round Trip Delay |
  916.   |  Request          |                        | Response              |
  917.   |___________________|________________________|_______________________|
  918.   |  Maintenance Loop |                        | send Maintenance Loop |
  919.   |  Request          |                        | Reject                |
  920.   |___________________|________________________|_______________________|
  921.   |  Maintenance Loop |                        | turn off any loopback |
  922.   |  Off Command      |                        | in effect; ignore if  |
  923.   |                   |                        | no loopback modes are |
  924.   |                   |                        | supported             |
  925.   |___________________|________________________|_______________________|
  926.   |  Send Terminal    |                        | re-send all or part   |
  927.   |  Capability Set   |                        | of the terminal       |
  928.   |                   |                        | capability set,       |
  929.   |                   |                        | according to the      |
  930.   |                   |                        | request               |
  931.   |___________________|________________________|_______________________|
  932.   |  Flow Control     |                        | adjust bit rates or   |
  933.   |  Command          |                        | close channels to     |
  934.   |                   |                        | meet the specified    |
  935.   |                   |                        | bit rate              |
  936.   |___________________|________________________|_______________________|
  937.   |  Function Not     |  a request,            |                       |
  938.   |  Supported        |  response, or          |                       |
  939.   |                   |  command is            |                       |
  940.   |                   |  received that         |                       |
  941.   |                   |  cannot be decoded     |                       |
  942.   |                   |  or is not             |                       |
  943.   |                   |  supported             |                       |
  944.   |___________________|________________________|_______________________|
  945.   |  H2250 Maximum    |  after opening         |                       |
  946.   |  Skew             |  associated audio      |                       |
  947.   |                   |  and video channels    |                       |
  948.   |                   |                        |                       |
  949.   |___________________|________________________|_______________________|
  950.  
  951.  
  952. Lantz                                                          [Page 16]
  953.  
  954. I-D             Usage of H.323 on the Internet        February 1997
  955.  
  956.  
  957.    _____________________________________________________________________
  958.   |  Message          |  When to send          | What to do on receipt |
  959.   |___________________|________________________|_______________________|
  960.   |  User Input       |  on user request       |                       |
  961.   |  Indication       |                        |                       |
  962.   |___________________|________________________|_______________________|
  963.   |  Video Freeze     |                        | stop sending video at |
  964.   |  Picture          |                        | the end of the        |
  965.   |                   |                        | current frame         |
  966.   |___________________|________________________|_______________________|
  967.   |  Video Fast Update|                        | perform a fast update |
  968.   |  Picture          |                        | of the specified      |
  969.   |___________________|                        | picture element at    |
  970.   |  Video Fast Update|                        | the earliest          |
  971.   |  GOB              |                        | opportunity           |
  972.   |___________________|                        |                       |
  973.   |  Video Fast Update|                        |                       |
  974.   |  MB               |                        |                       |
  975.   |___________________|________________________|_______________________|
  976.   |  Cancel Multipoint|                        | no longer required to |
  977.   |  Mode Command     |                        | comply with Request   |
  978.   |                   |                        | Mode                  |
  979.   |___________________|________________________|_______________________|
  980.  
  981. 10. References
  982.  
  983.    [1]  ITU-T Recommendation H.323 (1996), "Visual Telephone Systems and
  984.         Equipment for Local Area Networks which provide a Non-Guaranteed
  985.         Quality of Service".
  986.  
  987.    [2]  ITU-T Recommendation H.225.0 (1996), "Media Stream Packetization
  988.         and Synchronization for Visual Telephone Systems on Non-
  989.         Guaranteed Quality of Service LANs".
  990.  
  991.    [3]  ITU-T Recommendation H.245 (1996), "Control Protocol for
  992.         Multimedia Communication".
  993.  
  994.    [4]  ITU-T Recommendation H.320 (1995), "Narrow-band ISDN Visual
  995.         Telephone Systems and Terminal Equipment".
  996.  
  997.    [5]  ITU-T Recommendation H.324 (1995), "Terminal for Low Bitrate
  998.         Multimedia Communications".
  999.  
  1000.    [6]  ITU-T Recommendation Q.931 (1993), "ISDN User-Network Interface
  1001.         Layer 3 Specification for Basic Call Control".
  1002.  
  1003.    [7]  ITU-T Recommendation Q.850 (1993), "Usage of Cause and Location
  1004.         in the Digital Subscriber Signaling System No. 1 and the
  1005.         Signaling System No. 7 ISDN User Part".
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011. Lantz                                                          [Page 17]
  1012.  
  1013. I-D             Usage of H.323 on the Internet        February 1997
  1014.  
  1015.  
  1016.    [8]  ITU-T Recommendation X.680 (1994), "Information Technology -
  1017.         Abstract Syntax Notation One (ASN.1) Specification of Basic
  1018.         Notation".
  1019.  
  1020.    [9]  ITU-T Recommendation X.691 (1994), "Information Technology -
  1021.         ASN.1 Encoding Rules - Specification of Packed Encoding Rules
  1022.         (PER)".
  1023.  
  1024.    [10] RFC 1889, "RTP: A Transport Protocol for Real-Time
  1025.         Applications".
  1026.  
  1027.    [11] RFC 1890, "RTP Profile for Audio and Video Conferences with
  1028.         Minimal Control".
  1029.  
  1030.    [12] ITU-T AVC-1100, "Implementer's Guide for the ITU-T H.323
  1031.         Recommendation Series".
  1032.  
  1033. 11. Author's Address
  1034.  
  1035.    Philip Lantz
  1036.    Intel Corporation, JF2-58
  1037.    2111 NE 25th Ave.
  1038.    Hillsboro, OR 97124
  1039.  
  1040.    Phone: 503-264-8896
  1041.    E-mail: prl@ibeam.intel.com
  1042.  
  1043. INTERNET-DRAFT          EXPIRES: SEPTEMBER 1997            INTERNET-DRAFT
  1044.