The H.323 standard provides a foundation for
audio, video, and data communications across IP-based networks,
including the Internet. H.323 is an umbrella recommendation from the
International Telecommunications Union (ITU) that sets standards for
multimedia communications over Local Area Networks (LANs) that do
not provide a guaranteed Quality of Service (QoS). These networks
dominate today’s corporate desktops and include packet-switched
TCP/IP and IPX over Ethernet, Fast Ethernet and Token Ring network
technologies. Therefore, the H.323 standards are important building
blocks for a broad new range of collaborative, LAN-based
applications for multimedia communications. It includes parts of
H.225.0 - RAS, Q.931, H.245 RTP/RTCP and audio/video codecs, such as
the audio codecs (G.711, G.723.1, G.728, etc.) and video codecs
(H.261, H.263) that compress and decompress media streams.
Media streams are transported on RTP/RTCP. RTP
carries the actual media and RTCP carries status and control
information. The signalling is transported reliably over TCP. The
following protocols deal with signalling:
- RAS manages registration, admission,
status.
- Q.931 manages call setup and termination.
- H.245 negotiates channel usage and
capabilities.
- H.235 security and authentication.
Click here
for information on how to decode and analyze H.323 protocols.

H.323 protocols in relation to the OSI
model
Click here
for information on how to simulate thousands of H.323 calls.
RTP
Click here
for information on how to analyze RTP for jitter, lost packets and
more.
RFC 1889: http://www.cis.ohio-state.edu/htbin/rfc/rfc1889.html
The Real-time Transport (RTP) Protocol provides
end-to-end network transport functions suitable for applications
transmitting real-time data such as audio, video or simulation data,
over multicast or unicast network services. RTP does not address
resource reservation and does not guarantee quality-of-service for
real-time services. The data transport is augmented by a control
protocol (RTCP) to allow monitoring of the data delivery in a manner
scalable to large multicast networks, and to provide minimal control
and identification functionality. RTP and RTCP are designed to be
independent of the underlying transport and network layers. The
protocol supports the use of RTP-level transla tors and mixers.
The format of the RTP Fixed Header Fields is
shown in the following illustration:
0 |
7 |
V |
P |
X |
CSRC count |
M |
Payload type |
Sequence number (2 bytes) |
Timestamp (4
bytes) |
SSRC (4 bytes) |
CSRC (0-60 bytes) |
RTP fixed
header fields
V Version.
Identifies the RTP version.
P Padding. When set,
the packet contains one or more additional padding octets at the end
which are not part of the payload.
X Extension bit.
When set, the fixed header is followed by exactly one header
extension, with a defined format.
CSRC
count Contains the
number of CSRC identifiers that follow the fixed header.
M Marker. The
interpretation of the marker is defined by a profile. It is intended
to allow significant events such as frame boundaries to be marked in
the packet stream.
Payload
type Identifies the
format of the RTP payload and determines its interpretation by the
application. A profile specifies a default static mapping of payload
type codes to payload formats. Additional payload type codes may be
defined dynamically through non-RTP means.
Sequence
number Increments by one
for each RTP data packet sent, and may be used by the receiver to
detect packet loss and to restore packet sequence.
Timestamp Reflects the
sampling instant of the first octet in the RTP data packet. The
sampling instant must be derived from a clock that increments
monotonically and linearly in time to allow synchronization and
jitter calculations. The resolution of the clock must be sufficient
for the desired synchronization accuracy and for measuring packet
arrival jitter (one tick per video frame is typically not
sufficient).
SSRC Identifies the
synchronization source. This identifier is chosen randomly, with the
intent that no two synchronization sources within the same RTP
session will have the same SSRC identifier.
CSRC Contributing
source identifiers list. Identifies the contributing sources for the
payload contained in this packet.
RTCP
RFC 1889: http://www.cis.ohio-state.edu/htbin/rfc/rfc1889.html
The RTP control protocol (RTCP) is based on the
periodic transmission of control packets to all participants in the
session, using the same distribution mechanism as the data packets.
The underlying protocol must provide multiplexing of the data and
control packets, for example using separate port numbers with UDP.
The format of the header is shown in the
following illustration:
0 |
7 |
Version
|
P |
Reception report count |
Packet type |
Length
|
RTCP
structure
Version Identifies the RTP
version which is the same in RTCP packets as in RTP data packets.
The version defined by this specification is two (2).
P Padding. When set,
this RTCP packet contains some additional padding octets at the end
which are not part of the control information. The last octet of the
padding is a count of how many padding octets should be ignored.
Padding may be needed by some encryption algorithms with fixed block
sizes. In a compound RTCP packet, padding should only be required on
the last individual packet because the compound packet is encrypted
as a whole.
Reception
report count The number of
reception report blocks contained in this packet. A value of zero is
valid. Packet type Contains the constant 200 to identify this as an
RTCP SR packet.
Length The length of this
RTCP packet in 32-bit words minus one, including the header and any
padding. (The offset of one makes zero a valid length and avoids a
possible infinite loop in scanning a compound RTCP packet, while
counting 32-bit words avoids a validity check for a multiple of 4.)
RAS
H.225: http://www.itu.int/itudoc/itu-t/rec/h/h225-0.html
The Registration, Admission and Status (RAS)
channel is used to carry messages used in the gatekeeper discovery
and endpoint registration processes which associate an endpoint's
alias address with its call signalling channel transport address.
The RAS channel is an unreliable channel. Since the RAS messages are
transmitted on an unreliable channel, H.225.0 recommends time-outs
and retry counts for various messages. An endpoint or gatekeeper
which cannot respond to a request within the specified timeout may
use the Request in Progress (RIP) message to indicate that it is
still processing the request. An endpoint or gatekeeper receiving
the RIP resets its timeout timer and retry counter.
H.225
H.225: http://www.itu.int/itudoc/itu-t/rec/h/h225-0.html
H.225.0 v2 is a standard which covers
narrow-band visual telephone services defined in H.200/AV.120-Series
Recommendations. It specifically deals with those situations where
the transmission path includes one or more packet based networks,
each of which is configured and managed to provide a non-guaranteed
Quality of Service (QoS) which is not equivalent to that of N-ISDN
such that additional protection or recovery mechanisms beyond those
mandated by Rec. H.320 is necessary in the terminals. H.225.0
describes how audio, video, data, and control information on a
packet based network can be managed to provide conversational
services in H.323 equipment.
The structure of H.225 follows the Q.931
standard as shown in the following illustration:
8 |
1 |
Protocol Discriminator |
0 0 0 0
|
Length of call reference bits |
Call reference value |
0 |
Message type |
Other Information
Elements |
Q.931 header
structure
Protocol discriminator Distinguishes messages for user-network call control from
other messages.
Length of call reference value Length of the call reference value.
Call reference value Identifies the call or facility registration/cancellation
request at the local user-network interface to which the particular
message applies.
Message Type Identifies the function of the message sent.
Other information elements Contents of the message.
H.245
H.245:http://www.itu.int/itudoc/itu-t/rec/h/h245.html
H.245 is line transmission of non-telephone
signals. It includes receiving and transmitting capabilities as well
as mode preference from the receiving end, logical channel
signalling, and Control and Indication. Acknowledged signalling
procedures are specified to ensure reliable audiovisual and data
communication.
H.245 messages are in ASN.1 syntax. They consist
of an exchange of messages. MultimediaSystemControlMessage message
types can be defined as request, response, command and indication
messages. The following additional message sets are available:
- Master Slave Determination messages
- Terminal capability messages
- Logical channel signalling messages
- Multiplex Table signalling messages
- Request Multiplex Table signalling
messages
- Request Mode messages
- Round Trip Delay messages
- Maintenance Loop messages
- Communication Mode Messages
- Conference Request and Response
Messages
- TerminalID
- Commands and Indications
H.261
H.261: http://www.cis.ohio-state.edu/htbin/rfc/rfc2032.html
H.261 describes a video stream for transport
using the real-time transport protocol, RTP, with any of the
underlying protocols that carry RTP. The format of the header is
shown in the following illustration:
0 - 2
|
3 - 5
|
6
|
7
|
SBIT |
EBIT |
I |
V |
GOBN |
MBAP |
MBAP |
QUANT |
HMVD |
HMVD |
VMVD |
H.261 header
structure
SBIT Start bit. (3
bits) Number of most significant bits that are to be ignored in the
first data octet.
EBIT End bit. (3
bits) Number of least significant bits that are to be ignored in the
last data octet.
I INTRA-frame
encoded data field. (1 bit) Set to 1 if this stream contains only
INTRA-frame coded blocks and to 0 if this stream may or may not
contain INTRA-frame coded blocks. The sense of this bit may not
change during the course of the RTP session.
V Motion Vector
flag. (1 bit) Set to 0 if motion vectors are not used in this stream
and to 1 if motion vectors may or may not be used in this stream.
The sense of this bit may not change during the course of the
session.
GOBN GOB number. (4
bits) Encodes the GOB number in effect at the start of the packet.
Set to 0 if the packet begins with a GOB header.
MBAP Macroblock
address predictor. (5 bits) Encodes the macroblock address predictor
(i.e., the last MBA encoded in the previous packet). This predictor
ranges from 0-32 (to predict the valid MBAs 1-33), but because the
bit stream cannot be fragmented between a GOB header and MB 1, the
predictor at the start of the packet can never be 0. Therefore, the
range is 1-32, which is biased by -1 to fit in 5 bits. Set to 0 if
the packet begins with a GOB header.
QUANT Quantizer
field. (5 bits) Shows the Quantizer value (MQUANT or GQUANT) in
effect prior to the start of this packet. Set to 0 if the packet
begins with a GOB header.
HMVD Horizontal
motion vector data field. (5 bits) Represents the reference
horizontal motion vector data (MVD). Set to 0 if V flag is 0 or if
the packet begins with a GOB header, or when the MTYPE of the last
MB encoded in the previous packet was not MC. HMVD is encoded as a
2's complement number, and `10000' corresponding to the value -16 is
forbidden (motion vector fields range from +/-15).
VMVD Vertical
motion vector data (VMVD). (5 bits) Reference vertical motion vector
data (MVD). Set to 0 if V flag is 0 or if the packet begins with a
GOB header, or when the MTYPE of the last MB encoded in the previous
packet was not MC. VMVD is encoded as a 2's complement number, and
`10000' corresponding to the value -16 is forbidden (motion vector
fields range from +/-15).
H.263
RFC2190 (RTP): http://www.cis.ohio-state.edu/htbin/rfc/rfc2190.html H.263: http://www.itu.int/itudoc/itu-t/rec/h/h263.html
H.263 specifies the payload format for
encapsulating an H.263 bitstream in the Real-Time Transport Protocol
(RTP). Three modes are defined for the H.263 payload header. An RTP
packet can use one of the three modes for H.263 video streams
depending on the desired network packet size and H.263 encoding
options employed. The shortest H.263 payload header (mode A)
supports fragmentation at Group of Block (GOB) boundaries. The long
H.263 payload headers (modes B and C) support fragmentation at
Macroblock (MB) boundaries.
For each RTP packet, the RTP fixed header is
followed by the H.263 payload header, which is followed by the
standard H.263 compressed bitstream. The size of the H.263 payload
header is variable depending on the modes. The layout of an RTP
H.263 video packet is shown as:
4 bytes
|
RTP header
|
H.263 payload
header |
H.263 bitstream |
RTP H.263 video
packet
Three formats (mode A, mode B and mode C) are
defined for the H.263 payload header. In mode A, an H.263 payload
header of four bytes is present before the actual compressed H.263
video bitstream. It allows fragmentation at GOB boundaries. In mode
B, an 8-byte H.263 payload header is used and each packet starts at
MB boundaries without the PB-frames option. Finally, a 12-byte H.263
payload header is defined in mode C to support fragmentation at MB
boundaries for frames that are coded with the PB-frames option.
The mode of each H.263 payload header is
indicated by the F and P fields in the header. Packets of different
modes can be intermixed. The format of the header for mode A is
shown in the following illustration:
0
|
1
|
2 - 4
|
5 - 7
|
F |
P |
SBIT |
EBIT |
SRC |
I |
U |
S |
A |
R |
R (cont.) |
DBQ |
TRB |
TR |
H.263 mode A payload header
structure
F Flag bit
indicates the mode of the payload header. Values are as
follows: 0 - mode A. 1 - mode B or mode C depending on P
bit.
P P bit specifies
the optional PB-frames mode. 0 - normal I or P frame. 1 -
PB-frames. When F=1, P also indicates modes as follows: 0 -
mode B. 1 - mode C.
SBIT Start bit
position specifies number of most significant bits that are ignored
in the first data byte.
EBIT End bit
position specifies number of least significant bits that are ignored
in the last data byte.
SRC Source format
(bit 6,7 and 8 in PTYPE in the standard H.263 compressed bitstream)
specifies the resolution of the current picture.
I Picture coding
type (bit 9 in PTYPE in the standard H.263 compressed
bitstream). 0 - intra-coded. 1 - inter-coded.
U Set to 1 if the
Unrestricted Motion Vector option (bit 10 in PTYPE in the standard
H.263 compressed bitstream) was set to 1 in the current picture
header, otherwise 0.
S Set to 1 if the
Syntax-based Arithmetic Coding option (bit 11 in PTYPE in the
standard H.263 compressed bitstream) was set to 1 for the current
picture header, otherwise 0.
A Set to 1 if the
Advanced Prediction option (bit 12 in PTYPE in the standard H.263
compressed bitstream) was set to 1 for current picture header,
otherwise 0.
DBQ Differential
quantization parameter used to calculate quantizer for the B frame
based on quantizer for the P frame, when PB-frames option is used.
The value should be the same as DBQUANT in the standard H.263
compressed bitstream. Set to zero if PB-frames option is not
used.
TRB Temporal
Reference for the B frame in the standard H.263 compressed
bitstream. Set to zero if PB-frames option is not
used.
TR Temporal
Reference for the P frame in the standard H.263 compressed
bitstream. Set to zero if the PB-frames option is not
used.
The format of the header for mode B is shown
here:
0
|
1
|
2 - 4
|
5 - 7
|
F |
P |
SBIT |
EBIT |
SRC |
QUANT |
GOBN |
MBA |
MBA (cont.) |
R |
I |
U |
S |
A |
HMV1 |
HMV1 (cont.) |
VMV1 |
VMV1 (cont.) |
HMV2 |
HMV2 |
VMV2 |
H.263 mode B payload header
structure
F, P, SBIT, EBIT, SRC, I, U, S and A are defined
the same as in mode A.
QUANT Quantization
value for the first MB coded at the starting of the packet. Set to 0
if the packet begins with a GOB header.
GOBN GOB number in
effect at the start of the packet. GOB number is specified
differently for different resolutions.
MBA The address
within the GOB of the first MB in the packet, counting from zero in
scan order. For example, the third MB in any GOB is given
MBA=2.
HMV1, VMV1 Horizontal and vertical motion vector predictors for the
first MB in this packet. When four motion vectors are used for the
current MB with advanced prediction option, they are the motion
vector predictors for block number 1 in the MB. Each 7-bit field
encodes a motion vector predictor in half pixel resolution as a 2's
complement number.
HMV2, VMV2 Horizontal and vertical motion vector predictors for
block number 3 in the first MB in this packet when four motion
vectors are used with the advanced prediction option. This is needed
because block number 3 in the MB needs different motion vector
predictors from other blocks in the MB. These two fields are not
used when the MB only has one motion vector. Each 7 bits field
encodes a motion vector predictor in half pixel resolution as a 2's
complement number.
The format of the header for mode C is shown
here:
0
|
1
|
2 - 4
|
5 - 7
|
F |
P |
SBIT |
EBIT |
SRC |
QUANT |
GOBN |
MBA |
MBA (cont.) |
R |
I |
U |
S |
A |
HMV1 |
HMV1 (cont.) |
VMV1 |
VMV1 (cont.) |
HMV2 |
HMV2 |
VMV2 |
RR
|
RR (cont.) |
DBQ |
TRB |
TR |
H.263 mode C payload header
structure
F, P, SBIT, EBIT, SRC, I, U, S, A, DBQ, TRB and
TR are defined the same as in mode A. QUANT, GOBN, MBA, HMV1, VMV1,
HMV2, VNV2 are defined the same as in mode B.
RR Reserved, set to
zero (19 bits).
H.235
H.235: http://www.itu.int/itudoc/itu-t/rec/h/h235.html
H.235 provides enhancements within the framework
of the H.3xx-Series Recommendations to incorporate security services
such as Authentication and Privacy (data encryption). H.235 should
work with other H series protocols that utilize H.245 as their
control protocol.
All H.235 messages are encrypted as in ASN.1.
H.450.1
The H.45o series defines Supplementary Services
for H.323, namely Call Transfer and Call Diversion.
The H.450.1 protocol deals with the procedures
and signalling protocol between H.323 entities for the control of
supplementary services. This signalling protocol is common to all
H.323 supplementary services. The protocol is derived from the
generic functional protocol specified in ISO/IEC 11582 for Private
Integrated Services Networks (PISN).
The H.450 protocol is used to exchange
signalling information to control supplementary services over a LAN.
It works together with the H.225 protocol.
This protocol has no header as all messages are
in text, in ASN.1 format.
H.450.2
This is a Call Transfer supplementary service
for H.323. The H.450.2 protocol describes the procedures and
signalling protocol for the call transfer supplementary service in
H.323 networks. This supplementary service allows the served user A
to transform an existing call (from user A to B) to a new call
between user B and a third user C selected by A. User A may or may
not have a call established with the third user prior to the call
transfer. This is based on H.450.1
This protocol has no header as all messages are
in text, in ASN.1 format.
H.450.3
The H.450.3 is a call diversion supplementary
service for H.323. It describes the procedures and signalling
protocol for the call diversion supplementary service in H.323
networks. This includes the services Call Forwarding Unconditional
(SS-CFU), Call Forwarding Busy (SS-CFB), Call Forwarding No Reply
(SS-CFNR) and Call Deflection (SS-CD). These are all supplementary
services, which apply during call establishment, providing a
diversion of an incoming call to another destination endpoint. This
is based on H.450.1
This protocol has no header as all messages are
in text, in ASN.1 format.
T.38
The T.38 IP-based fax service maps the T.30 fax
protocol onto an IP network. Both fax and voiced data are managed
through a single gateway. T.38 uses 2 protocols, one for UDP packets
and one for TCP packets. Data is encoded using ASN.1 to ensure a
standard technique. It allows users to transfer facsimile documents
between 2 standard fax terminals over the Internet or other network
using IP protocols. H.323 can be used here in the same way that it
is used to support Voice over IP.
TCP
messages
The T.38 data (Internet Fax Protocol) is
contained in the payload of the TCP or UDP messages. The T.38 packet
provides an alert for the start of a message. An ASN.1 Application
tag identifies it; if this tag is not present the session is
aborted.
The following is the format of the TCP Internet
Fax Protocol packets.
Type The type
field contains the type of message. It describes the function of and
the data of the packet.
Type can be T30_Indicator or T30_Data
Data The data
field is dependent on the type field. It contains the T.30 HDLC
control data and the Phase C image (or BFT) data. It contains one or
more fields. Each field has 2 parts.
UDP
messages
T.38 messages may also be sent over the UDP
transport layer. The UDP header is followed by the UDPTL payload
which consists of sequence number and a payload.
Sequence
number |
Mandatory
message (primary) |
Optional redundant
message
or optional FEC message
|
Sequence
number The sequence number is used to identify the
sequencing in the payload.
T.125
The T.120 family of protocols describe protocols
and services for multipoint Data Conferencing including multilayer
protocols which considerably enhance multimedia, MCU and codec
control capabilities, permitting greater MCU operational
sophistication beyond that described in H.231 and H.243.
T.125 describes the Multipoint Communication
Service Protocol (MCS).
It defines:
- Procedures for a single protocol for the
transfer of data and control information from one MCS provider to
a peer MCS provider.
- The structure and encoding of the MCS
protocol data units used for the transfer of data and control
information.
Procedures may be:
- Interactions between 2 parallel MCS providers
by exchanging MCS protocol data.
- Interactions between MCS providers and users
by exchanging MCS primitives.
- Interactions between an MSC provider and a
transport service provider by exchanging transport service
primitives.
The MCS provider communicates with MCS users
through a MCSAP (MCS Service Access Point), by means of MCS
primitives defined in T.122. MCSPDU (MCS protocol Data unit)
exchanges occur between MCS providers that host the same MCS domain.
The MCS provider can have multiple peers; each reached directly by a
different MCS connection or indirectly through a peer MCS provider.
An MCS connection is composed of either one MAP connection or one or
more transport connections. The protocol exchanges are preformed
using the transport layer using a pair of TSAPs (Transport Service
Access Points).
The MCS PDU is the MCS protocol data unit. This
is the information exchanged in the MCS protocol consisting of
control information transferred between MCS providers to coordinate
their joint operation and possibly data transferred on behalf of MCS
users for whom they provide service. Each MCSPDU is transported as
one TSDU (Transport service data unit) across a TC (Transport
connection) belonging to an MCS connection. Connect MCSPDUs are
unlimited in size. Domain MCSPDUs are limited in size by a parameter
of the MCS domain.
The structure of Version 2 and Version 3 MCSPDUs
is defined in ASN.1 and appears as text or numeric
messages.
search ][ protocols by family
][
index of
protocols
|