10021.The Problems and Pitfalls of Getting H.323 Safely Through Firewalls

http://www.chebucto.ns.ca/~rakerman/articles/ig-h323_firewalls.html



Intel® Internet Video Phone Trial Applet 2.2
The Problems and Pitfalls of Getting H.323 Safely Through Firewalls



THIS H.323 and Firewalls (DOCUMENT) IS PROVIDED "AS IS" WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. Intel disclaims all liability, including liability for infringement of any proprietary rights, relating to use of information. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted herein.

Copyright(c) 1997 Intel Corporation.
* Other brands and names are the property of their respective owners.

Except that a license is hereby granted to copy and reproduce this Document for internal use only.

This document is an intermediate draft for comment only and is subject to change without notice. Readers should not design products based on this document.



Contents

1. Overview

2. Executive Summary

3. Introduction to H.323

4. How H.323 Works

5. Classifying Firewall Solutions

6. What's so difficult about getting H.323 through firewalls?

7. Implications of an H.323 Proxy

8. How H.323 works (with proxy-relevant info)

9. A Proxy Architecture

10. An H.323 application

11. Modifying an H.323 application to support proxies

12. Appendix I - Sources of Additional H.323 Information

13. Appendix II - H.323 Decoder Ring

14. Appendix III - Trace Output from a Typical Call

15. Index





H.323 and Firewalls

The problems and pitfalls of getting H.323 safely through firewalls

1. Overview

This document is intended for implementers - both firewall developers planning to implement H.323 support and H.323 application developers planning to add proxy support to their products. With two audiences holding vastly different perspectives and experiences, this paper will often seem to explain the patently obvious (perhaps glossing over some important details). Please accept our apologies up front and bear with us; there is important new information for both groups.

The first part of this document provides an overview of H.323 - what the protocol is, why it's important, and how it works. The second section provides a framework for discussing firewall issues, including a taxonomy for classifying firewalls. The third section discusses the issues of H.323 and proxies - why H.323 is hard for firewalls, and what implications a proxy has on H.323 applications. The fourth section is a short overview of the changes necessary to an H.323 application to support proxies. Finally, the appendices provide additional information, including pointers to other sources, a `decoder ring' for the ITU-T's `alphabet soup' of protocols, and a detailed trace from a typical H.323 call.

2. Executive Summary

H.323 is an international standard for conferencing over packet-based networks. Its main benefits are:

(1) a single standard to permit Internet telephony products to inter-operate,

(2) interoperability standards for ISDN- and telephony-based conferencing systems, and

(3) the flexibility to support different hardware, software, and network capabilities.

What's so difficult about getting H.323 through firewalls? The short answer is that H.323 is complex, uses dynamic ports, and includes multiple UDP streams.

To modify an H.323 application to support proxies, the following changes are needed:

  • Support configuration of a local proxy (and usage of it as appropriate)
  • Support configuration of external proxy address and registration of this address with Address Resolution Services (e.g., User Locator Service)
  • Allow users to enter both pieces of addressing information (proxy address and user name/address) in any address books
  • Whenever possible, populate the destCallSignalingAddress,destinationAddress, and remoteExtensionAlias fields within the H.323 Setup message (as outlined in AVC-1100 referenced in Appendix I)

3. Introduction to H.323

3.1. What is H.323 ?

The personal computer is rapidly becoming a key communication device for millions of users. This trend has been accelerated by the explosion of the Internet. While electronic mail is still the dominant method of computer communications, electronic conferencing, both voice and video connectivity, is attracting an avid set of users. The main issue for computer communication centers on standard ways of providing connectivity - from call control (finding other parties, ringing, etc.) to video and audio encoding. Intel (and most of the rest of the industry) believes that real-time, multimedia communications standards such as H.323 provide an unparalleled ability for compatibility and subsequent expansion.

The ITU-T (International Telecommunications Union) H.323 standard defines how a flexible, real-time, interactive set of multimedia communications can be exchanged on packet-based networks. Personal computers can inter-operate sharing a rich mixture of audio, video and data across all forms of packet-based Inter/Intranets and circuit-switched networks. This internationally-sanctioned standard is the first standard that was provided through the collective input of both traditional telephony communications experts and those from the computer communications arena. In addition to fully-interactive media communications such as conferencing, H.323 also has provisions for other forms of communication, such as multi-media streaming.

The complete specification documents and other related information can be found at http://www.itca.org/ under the subheading of Teleconferencing Standards.

3.2. H.323 Network

The diagram below illustrates the most elementary H.323 configuration on a network. The environment comprises two or more clients that run a multimedia application utilizing the H.323 protocol. As stated previously, any combination of audio, video, or data may be exchanged between the endpoints. Current implementations on IP networks need nothing more from the network than to provide IP addresses of each endpoint, as with any terminal-to-terminal communication.

Although H.323 requires very little for the simplest implementation model, the standard does define a number of H.323 entities (and protocol interactions). The entities such as Gatekeepers, MCs, MCUs, Gateways, and Proxies each provide some additional functionality to the H.323 environment. The picture below illustrates these entities and their logical relationship.

A gatekeeper acts as monitor of all H.323 calls within its zone on the LAN. It provides two main services: call permissioning and address resolution. An H.323 client that wants to place a call can do so with the assistance of the gatekeeper. The gatekeeper provides the address resolution to the destination client (this division of work is due to alias name registration procedures). During this address resolution phase, the gatekeeper may also make permissioning decisions based upon available bandwidth. The gatekeeper can act as an administration point on the network for IT/IS managers to control H.323 traffic on (and off) the network.

A gateway provides the ability for H.323 devices to operate in heterogeneous network environments. These environments can be different in both the communications protocols that they use, and the fundamental transports that carry those communications. Gateways provide interoperability with other standards-based media devices. The H.323 standard pre-defines a number of Gateway devices; this list will expand as gateways are developed to bridge to other environments. Currently gateways are defined for H.320 (ISDN-based Video Conferencing terminals), H.324 (Telephony-based Video Conferencing terminals), and POTS (Plain Old Telephone System) devices. In short, gateways provide the ability to match up dissimilar devices (for example, a plain voice-only telephone with a multimedia terminal).

An MCU (Multipoint Control Unit) provides the ability to have multiparty, multimedia conferences. It coordinates all of the media capabilities of the participants and can provide features such as audio mixing and video selection for endpoints that cannot accomplish this locally. The MCU can provide chair control and rostering capabilities in multi-point conferences. It also facilitates the graceful entrance and exit of conference participants.

An H.323 proxy acts in a manner similar to other types of proxies - it acts on behalf of entities on one side to contact entities on the other. The H.323 proxy typically sits on an enterprise firewall and monitors all H.323 calls between the enterprise and the Internet. The proxy ensures that only valid H.323 traffic goes through the firewall. It also enforces access control policies (these are different from the bandwidth permissioning controls of the Gatekeeper). These access control policies may include determining which users can initiate or receive H.323 calls, what destinations are appropriate, and whether a particular user is allowed to use video facilities. The proxy can be considered a special case of an H.323 gateway in that it accepts H.323 calls from one side and passes those calls to H.323 terminals on the other side. Security-conscious enterprises will not deploy H.323 applications for access to the `outside world' unless an H.323 proxy is available on their firewall. Allowing H.323 traffic to punch holes in a firewall is not an acceptable solution as it defeats the explicit purpose of the firewall.

3.3. Key Benefits of H.323

H.323 offers benefits to end-users, developers and service providers of Internet telephony and Internet multimedia applications. First and foremost is the interoperability among H.323 applications from different vendors; users have the ability to upgrade capabilities without having to relearn applications, and have a greater choice of vendors.

All H.323-compliant applications have a common level of operation that they must provide. This includes base functionality for voice, video and data. Users of these products can be assured that two applications that claim H.323 compliance can inter-operate at this level. Additionally, the H.323 standard supports a wide variety of encodings for voice and data communication. By upgrading their codecs (the encoding and decoding software), user applications can scale upwards to get better performance. A user who upgrades to a faster connection or a more powerful processor could take advantage of a higher quality codec. Due to the wide adoption of the standard, there will be more competition and a greater choice of vendors. Vendors will compete on price and functionality of their application and will be unable to `lock in' users based on a proprietary protocol.

The benefits to developers and service providers are scaleability (both in hardware and software), opportunity for value-added services, and interoperability with legacy systems.

Software that is developed to the H.323 standard is scaleable in hardware. This implies that the more powerful the PC, the better the performance of the software. This allows application developers to provide faster software simply by having the users upgrade hardware.

The H.323 standard itself provides new business opportunities for value-added services such as billing, call tracking, and automatic call distribution. This opportunity is similar to the opportunities for businesses provided by the traditional telecommunication companies. The H.323 standard also defines how an H.323 system will inter-operate with other legacy systems based on regular telephone or ISDN lines. This gateway capability gives vendors a way to support their legacy applications into the existing customer base.

3.4. Intel's involvement in H.323 standard

Intel actively participated in the development of the H.323 specification within the ITU-T. Intel is a founding member (with companies like Microsoft, PictureTel, and Lucent) of the International Multimedia Teleconferencing Commission (IMTC), an organization that is driving the adoption of H.323 in the industry. Intel is an active IMTC member and sponsors events such as interoperability trials and development meetings, and has provided technical resources to get the H.323 specification-wide peer review and acceptance. Intel has also developed and shipped the Intel Internet Phone (available for free download at http://www.intel.com/). This was the first H.323-compliant telephony application on the PC and in the market in general.

3.5. Vendors supporting H.323

Intel's Internet Phone is H.323-compliant. In addition, the following vendors have announced plans for H.323-based products:

  • Microsoft
  • Lucent
  • PictureTel
  • 8x8
  • Radvision
  • Videoserver
  • Vocaltec
  • British Telecom
  • Teles
  • First Virtual

4. How H.323 Works

Below we diagram a point-to-point H.323 call. We've focused primarily on the messages of interest to a proxy, and excluded the details of things like negotiating an audio encoding scheme.

In all of our examples, we will use Alice and Bob. When we start dealing with firewalls, we consider Alice to be an external user, most often attempting to call Bob, who is protected by a firewall.

Let us begin by understanding the basics of a point-to-point call. The call is managed at three different layers. We start with Alice making a TCP connection to the well known port for H.323, port 1720.

Bob and Alice send Q.931 packets across this connection. As part of this exchange, Bob and Alice also send an ephemeral (dynamic and greater than 1024) port to be used for the H.245 connection. According to the standard, once the H.245 connection is established, the Q.931 connection may be dropped (without sending a Release Complete message), without affecting the rest of the H.323 call. In practice, the Q.931 connection is typically left up.

The H.245 connection is made from the caller to the ephemeral port negotiated across the Q.931 stream. H.245 handles all of the call parameter negotiations, such as which codecs to use. H.245 also has commands that cause UDP connections to be made. Essentially, once the audio (and video) codecs and parameters have been negotiated, the H.245 session executes an OpenLogicalChannel sequence. This sequence sends the transmitter's RTCP address and port number as well as the receiver's RTP and RTCP address and port number for a particular media stream (for example, audio or video). It should be noted that in H.323, each logical channel is considered to be one way. Therefore, for two people to exchange audio, two logical channels must be opened - one from Alice to Bob, and another from Bob to Alice. Also, the RTP protocol requires two UDP `connections', using adjacent streams. One connection is for RTP, the actual data stream, and the other is for RTCP, which has control information (and is bi-directional). The associated RTCP and RTP streams are required to be one port apart (with the RTP port being even and the RTCP being the next higher odd).

4.1. Adding a proxy

The diagram below shows how the call messages are handled when a proxy is inserted into the stream. Remember, this is only required by firewalls that use application proxying - packet filtering, circuit filtering, and address translation firewalls all operate at the IP layer, and therefore are transparent to the callers.

When a proxy is inserted, the Q.931 phase of the call looks like this:

Below we've shown the proxy connections for the H.245 session. To help understand the complexity, we've also shown example port numbers. Note that we selected small port numbers for illustrative purposes only; in reality, these port numbers are all ephemeral and therefore larger than 1024.

5. Classifying Firewall Solutions

Generally speaking, firewall solutions fall into one of the four categories shown below in Table 1. While there are products that offer features that fall into multiple categories, this breakdown will suffice to illustrate the various difficulties of passing H.323 through firewalls in each general category.

TypeFeatures Hides Internal Addresses?
Packet Filtering RouterBlocks/allows connections based on addressing information in IP header. Makes decisions based solely on the information in each packet's header - this provides no way to connect a UDP request with its corresponding reply.
No
Circuit (or connection) GatewayMuch like packet filtering router, but maintains limited state. This solution allows a UDP request to trigger an opening in the firewall for a reply, for a limited time. May have a limited understanding of some application protocols. Can dynamically open up ports for associated streams, such as an FTP control connection on port 20, causing an opening for the data connection on port 21.
No
Address Translating FirewallSame features and problems as circuit gateway, but hides the internal addresses by translating all addresses as they cross the firewall.
Yes
Application ProxyActually participates in the application protocol - is visible to the applications. Typically, an internal client connects to the proxy and then the proxy connects to the external server. To the internal client, the proxy looks like a server, while it looks like a client to the external server. Proxies must also perform address translation, essentially, since their address is the one presented to the external server.
Yes

Table 1. Basic Firewall Architectures

Because of H.323's heavy use of ephemeral (dynamic) ports, the only way for a packet filtering router to support H.323 is to open up all UDP and TCP ports above 1024 in each direction. This policy does not provide much protection.

A circuit gateway can provide better support for H.323 if it can disassemble the packets on the control streams and dynamically open up the firewall as indicated. This is better than the solution above because the only ports that are open are those associated with the H.323 connection. However, disassembling the packets is not as easy as it sounds.

An address translating firewall (ATF) can use much of the same solution set as the circuit gateway above. However, the ATF must also be able to recompose valid data in the control streams, since it must change the address (and perhaps port) information as it traverses the firewall.

Finally, an application proxy must implement a partial H.323 stack to manage the connections on both sides. Like an ATF (above), an application proxy must be able to encode and decode the control streams to perform address translation. However, the application proxy has one additional complication - it is visible to the end points. That means that the end points (H.323 applications) must place calls to the proxy's address. The problem is: how does the proxy know who the actual intended callee is? Fortunately, H.323 has fields to provide this information, but this means that the H.323 applications need to fill in those fields. In essence, they need to be slightly enhanced to become proxy-aware, much as web browsers have been enhanced to support web proxies. We will discuss the required enhancements later in this document.

6. What's so difficult about getting H.323 through firewalls?

The short answer is that H.323 is complex, uses dynamic ports, and includes multiple UDP streams. Here is a summary of the relevant issues:

  • An H.323 call is made up of many different simultaneous connections. At least two of the connections are TCP. For an audio-only conference, there may be up to 4 different UDP `connections' made.
  • All connections except one are made to ephemeral (dynamic) ports.
  • Calls can be initiated from outside the firewall, as well as from inside. This is different from today's commonly-provided incoming support, the web for example, where external users are just pointed at a single-function server visible outside the firewall. For conferencing to be useful, external users need to be able to establish calls directly with internal users' desktop systems.
  • The addresses and port numbers are exchanged within the data stream of the `next higher' connection. For example, the port number for the H.245 connection is established within the Q.931 data stream. (This makes it particularly difficult for address translating firewalls, which must modify the addresses inside those data streams.)
  • Most of the control information is encoded in ASN.1 (only the User-User Information within Q.931 Protocol Data Units, or PDUs, is ASN.1-encoded (other parts of each Q.931 PDU are not encoded). For those unfamiliar with ASN.1, suffice it to say that it is a complex encoding scheme, which does not end up with fixed byte offsets for address information. In fact, the same version of the same application connecting to the same destination may negotiate to include different options, changing the byte offsets.

7. Implications of an H.323 Proxy

Using our Firewall classification scheme above, an H.323 proxy is an Application Proxy. Using the ITU terminology, an H.323 proxy is really a form of H.323 Gateway. However, this Gateway is unique in a couple of ways. First of all, it uses H.323 on both sides (as opposed to translating between H.320 and H.323 or between H.324 and H.323). The H.323-only aspect means a proxy need not have a complete H.323 stack implemented. Instead, it need only act upon certain messages and can forward other messages - providing an `intelligent conduit' or `lightweight terminal', if you will.

7.1. Where it Fits

An H.323 proxy fits into an existing screened subnet firewall architecture as an Application Gateway. In the picture below, all traffic is routed through the dual-homed application gateway. The proxy runs as one service on that gateway.

7.2. Protocol Dependencies

In order to successfully proxy H.323, it is vital that certain optional fields within the Q.931 Setup message be populated by H.323 Endpoints. These fields live in the User-User Information within the Q.931 Setup PDU, and should be populated according to the following rules:

  • destCallSignalingAddress = IP address (if known) of the destination proxy/gateway (if one exists) or the destination machine
  • destinationAddress = A routable alias name that can be mapped to the destination proxy/gateway/endpoint IP address (for example, a DNS name)
  • remoteExtensionAddress = H.323 user alias (E.164 address or H323 ID)

The use of these fields is documented in the H.323 Implementor's Guide (AVC_1076) document available at ftp://ftp.intel.com/pub/H.323/DOCS/AVC-1100.doc.

7.3. Why you can't just grab information at specific byte offsets

In a word: ASN.1. For the gory details, check out the appropriate documents listed in Appendix I. One need not actually write the code to pack and unpack the ASN.1-encoded PDUs, as there are commercial compilers that handle that function. For example, Intel used a compiler from OSS in developing our Intel Internet Phone product.

ASN.1 includes variable length and optional fields. This means that things don't necessarily stay in the same place. In the worst case, this means that two different calls, made between the same people running the same version of the same software may have addressing information at different byte offsets, because they selected different options.

While all of this paints a not-very-rosy picture, it's not really as bad as it sounds. By using a compiler, all of the packet-coding details are handled automatically - the developer can just make simple function calls to get packets encoded and decoded into C structures.

8. How H.323 works (with proxy-relevant info)

Below, in Table 2 and Table 3, we provide details of the relevant PDUs for proxying H.323.

PDUScenarioPrincipal Action
SetupRequest for a new call arrives on the call signaling channel (well known port)1. Send Proceeding message back to caller.
2. Determine if call was originated externally or internally.
3. Verify if Setup-UUIE.destCallSignalingAddress is present and valid (not the address of the proxy machine itself). If so, this is the destination address. Go to step 6.
4. If it is not present or valid, walk through alias list in Setup-UUIE.calleeAliasName and attempt to find and resolve a valid destination address (using DNS). If this fails, and call is internal-to-external, reject the call. If DNS name is present, validate that it is not of the proxy machine itself (and if it is, remove it from the alias list before forwarding this alias list in a new Setup message). If a valid DNS name is found and resolved to a network address, and has a user part, and there is no remoteExtensionAlias, then create a remoteExtensionAlias comprised of the user part information for the outgoing Setup message. If valid address is determined, go to step 6.
5. If call is external to internal, and remoteExtensionAlias is present, attempt to translate it to an IP address (using DNS, a gatekeeper, or some other local means).
6. Once a destination IP address has been determined, make a TCP connection to the destination address.
7. Forward modified Setup message.
Connect
Called party sends back to calling party1. If UUIE.H245Address is present, then update the information in UUIE.H245Address and UUIE.destinationInfo.
2. Forward PDU.
Release-
Complete
Either party can send1. Release/Clean up all resources for H.245 and RTP channels.
2. Forward PDU.
3. Cleanup resources related to the Q931 connection and close the connection.
AlertingSent by callee1. Forward with corrected Call Reference Value (CRV).
All other PDUs
 
1. Forward with corrected Call Reference Value (CRV).

Table 2. Proxy-Relevant Q.931 PDUs

PDUScenarioPrincipal Action
Open
Logical
Channel
Sender wants to open a channel1. If dataType is audio or video, then
  • Allocate local ports for RTCP and RTP streams (on both sides of the firewall) making sure that RTP port is even and RTCP is next higher odd.
    2. Replace RTCP address in PDU with that of the proxy.
    3. Forward PDU.
Open
Logical
Channel
Ack
Receiver accepts sender's request to open a channel1. If channel is unknown drop the PDU.
2. For a known channel,
  • Update port mapping between local and remote ports.
  • Activate packet forwarding on the RTP and RTCP sessions.
    3. Replace RTP and RTCP addressing in PDU with those used by the proxy.
    4. Forward PDU.
Open
Logical
Channel
Reject
Receiver rejects sender's request to open a channel1. If channel is unknown drop the PDU.
2. For a known channel,
  • Release all port resources.
    3. Forward PDU.
Open
Logical
Channel
One side wants to close down an established channel1. If channel is unknown drop the PDU.
2. For known a channel,
  • Stop packet forwarding on RTP and RTCP ports for this channel.
  • Release all port resources.
    3. Forward PDU.
End
Session
One side wants to close down all channels and end the call1. For all the channels connected between the endpoints
  • Stop packet forwarding on corresponding RTP and RTCP ports.
  • Release all UDP port resources.
    2. Forward PDU.
    3. Cleanup resources related to the H.245 connection and close the connection.
    4. Send a Release Complete on both Q.931 calls and close the connection.
All other PDUs
 
1. Forward PDU.

Table 3. Proxy-Relevant H.245 PDUs

9. A Proxy Architecture

To understand the complexities of getting H.323 through firewalls, we built a proxy*. We found that there were two main jobs to do: (1) handle the H.323 and H.245 protocols, and (2) pass the data packets back and forth. The requirements for each job are slightly different -- the focus of the packet-passer being to stream packets through as fast as possible - trying to be a minimal bottleneck, while still providing some level of security.

The focus of the H.323 layer is on call control. In that role it concentrates on proper call setup, maintaining access control, and creating the complete environment for the packet-passer to operate optimally.

* The proxy built in our lab is not being offered as a product.


10. An H.323 application

The Intel Internet Phone application is the H.323 terminal that we have had the most experience with. It conforms to the H.323 standards, but has a few additional implementation details one might want to consider.

The first such feature is its use of the User Locator Service (ULS) to find another party to talk to. There are two primary reasons for this: first, H.323-based telephony is new, so it makes sense to have a place where people who have this capability can find each other. Over time, this may change and everyone will have this capability.

The second reason is that people don't always have a constant IP address. Mobile users get an IP address from the Internet Service Provider they've connected to, office workers can be assigned different IP addresses by services such as DHCP, and some users want to connect both from the office and from home. ULS provides a place for users to register their current IP address.

ULS actually uses HTTP as a transport. A user updates their location with an HTTP "POST", and finds other users with HTTP "GET"s.

11. Modifying an H.323 application to support proxies

11.1. The Short Form: Changes needed in the normal H.323 terminals

H.323 terminals can be `proxy friendly' by:

  • Supporting configuration of a local proxy (and usage of it as appropriate).
  • Supporting configuration of external proxy address and registration of this address with Address Resolution Services (e.g., User Locator Service)
  • Allowing users to enter both pieces of addressing information in any address books.
  • Populating either the destCallSignaling Address or destinationAddress fields (or both of them), and the remoteExtensionAlias field within an H.323 Setup message.
11.2. User interface changes

To provide proxy support, an H.323 application developer needs to make a few minor enhancements. The first, and most obvious, is to provide a way for the user to enter proxy-related information. This comes in two flavors: (1) allowing the user to configure their application so it knows about their own company's proxy, and (2) allowing the user to enter a `phone number' (address) for a destination that sits behind a proxy.

The configuration process should also allow the user to specify which addresses are not proxied so that internal calls are made directly. This is very similar to configuring web browsers to use proxies.

11.3. Calling a remote system behind a proxy

If the called destination sits behind a proxy, the calling party must connect to the remote proxy, and tell that proxy who he really wants to talk to. Fortunately, the H.323 setup message supports this. If there is a remote proxy, the destCallSignaling Address and/or the destinationAddress (alias list) must contain the address of the proxy.

The remoteExtensionAlias field should contain the information about the actual target user. Note that this information can be one of two forms: an H.323-specific alias name (an arbitrary string) or an E.164 address (a phone number). The proxy must resolve (or have resolved) the name into an IP address. There is nothing to say that the string does or does not contain a DNS name or dotted IP address - it is just a Unicode string of up to 256 characters.

Whenever possible, the application should always fill in these fields. When calling a remote system not behind a proxy, the fields may still be populated without any adverse effect.

11.4. Calling from a system behind a local proxy

For calls made through a local proxy, the application must be able to decide whether the destination of the call will go through a proxy or not (this way local calls don't need a proxy).

If a local proxy will be used, the application must use the local proxy's address as the IP destination for the TCP connection that begins the H.323 call. The desired destination information is passed in the Q.931 setup message. This is done by filling in the destCallSignalingAddress ,destinationAddress ,and remoteExtensionAlias fields within the User-User Information, as described above.

11.5. Publishing a proxied address

If a proxied H.323 application publishes its address electronically, then it must publish both the proxy's address and the name of the actual user. As mentioned above, the user name can be in one of many forms. Selecting a form that is resolved at connect time, such as a DNS name, is preferred to using an IP address, since this will allow the system to move or reconnect without requiring an address book change. If DNS names or IP addresses are used for the user name, and if the proxy is expected to use these instead of doing an address translation of some arbitrary string, then the proxy must perform the resolution (this may be a configuration option). However, if the proxy is simply translating some alias string to a DNS name or IP address, then there is really no reason to have the string itself be the DNS name or IP address.

Similarly, we recommend publishing the proxy's address as its DNS name. This will allow the proxy to be scaled beyond one system, as well as providing support for fail-over.

12. Appendix I - Sources of Additional H.323 Information

12.1. ITU documentation

The following documents are available through the ITU.

  • ITU-T Recommendation H.323 (May 28, 1996), "Visual Telephone Systems and Equipment for Local Area Networks Which Provide A Non-Guaranteed Quality of Service."
  • ITU-T Recommendation H.245, Revision 2 (June 4, 1996), " Blue Sky Associates."
  • ITU-T Recommendation H.225.0 (May 28, 1996), " Media Stream Packetization and Synchronization on Non-Guaranteed Quality of Service LANs."
  • ITU-T Recommendation X.680 (1994), " Information Technology - Abstract Syntax Notation One (ASN.1) Specification of Basic Notation."
  • ITU-T Recommendation X.691 (1994), " Information Technology - ASN.1 Encoding Rules - Specification of Packed Encoding Rules (PER)."
  • ITU-T Recommendation H.245 (1995), " Control Protocol for MultiMedia Communication."
12.2. Implementor's Group

The official line on the implementor's group (as found in ftp://ftp.intel.com/pub/H.323/FAQ.txt) is as follows:

  • This "H.323 Implementor's Group" e-mail reflector is an open communications forum for persons, companies, and organizations who wish to participate and benefit from the information disseminated here. The "H.323 Implementor's Group" is an open forum for entities who wish to accelerate the market deployment of interoperable H.323-compliant real-time multimedia communications applications through cooperation with other entities engaged in similar activities. Membership and participation in this forum is open and unrestricted.

The email reflector can be subscribed to by sending email to listserv@mailbag.jf.intel.com with subscribe h323implementors in the body of the message.

Other information available at the implementor's group FTP site is listed below:

  • H.323 implementor's Guide, December 17, 1996 (available at ftp://ftp.intel.com/pub/H.323/DOCS/AVC-1100.doc). This document is being submitted to the ITU for inclusion in Revision 2 of the H.323 specifications.
  • H.323 FAQ (Frequently Asked Questions) - ftp://ftp.intel.com/pub/H.323/FAQ.txt.
  • Many other contributions in ftp://ftp.intel.com/pub/H.323/contributions.

13. Appendix II - H.323 Decoder Ring

This `decoder ring' was created to help the Intel development team understand how H.323 compares to the technology used in early versions of ProShare® Video Conferencing software. We felt its inclusion in this document would help clarify the meaning of the myriad of relevant multimedia protocols.



13.1. Audio compression

  • G.711: 64 Kbps, 8K samples/sec, 8-bit companded PCM (A-law or µ -law), high quality, low complexity. Required for H.320 and H.323.
  • G.722: ADPCM audio encode/decode (64 kbit/s, 7 kHz) .
  • G.723: Speech coder at 6.3 and 5.3 Kbps data rate. Medium complexity. Required for H.324; Optional for H.323.
  • G.728: 16 Kbps, LD-CELP, high quality speech coder, very high complexity. Optional for H.320 and H.323.
  • G.729: 8Kbps, LD-CELP, high quality speech coder, medium complexity. G.DSVD is an interoperable subset.
  • GSM: Group Special Mobile -- European telephony standard, not ITU. Used by ProShare Video Conferencing software versions 1.0-1.8. 13Kbps, medium quality for voice only, low complexity.
13.2. Video compression algorithms

  • H.261: Supports 352x288 (CIF or FCIF) and 176x144 (QCIF). DCT-based algorithm tuned for 2B to 6B ISDN communication. Required for H.320, H.323, and H.324.
  • H.263: Much-improved derivative of H.261, tuned for POTS data rates. Mostly aimed at QCIF and Sub-QCIF (128x96 -- SQCIF). Optional for H.323 and H.324, although industry is focusing on it for POTS. Being added as an option to H.261.
  • MRV: Indeo* video compression technology tuned for ISDN and LAN data rates.

    Note: Indeo is now supported by Ligos.

13.3. Data Sharing standards

  • T.120: Data conferencing, either standalone or alongside H.320, H.323, or H.324.
13.4. Communication Standards

  • H.221: Frame Structure 64-1920 Kbps.
  • H.223: Multiplexing protocol for low-bit rate multimedia communication.
  • H.225: Media Stream Packetization and synchronization on non-guaranteed quality-of-service LANs.
  • H.230: Frame synchronous control and indication signals for audio visual systems.
  • H.242: System for establishing audio visual terminals using digital channels up to 2 Mbps.
  • H.243: Procedures for establishing communication between three or more audio visual terminals using digital channels up to 2 Mbps.
  • H.245: Control of communications between visual telephone systems and terminal equipment on non-guaranteed bandwidth LANs.

14. Appendix III - Trace Output from a Typical Call

The following section is a detailed trace of the PDUs produced during a `normal' H.323 call.

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:21.480
LAYER: Q931
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
243 octets (hex output):
08 02 00 d6 05 04 03 88 c0 a5 28 09 72 65 76 65
69 6c 6c 65 00 7e 00 db 05 10 18 06 00 08 91 4a
00 01 22 c0 b5 00 80 80 14 49 6e 74 65 6c 20 49
6e 74 65 72 6e 65 74 20 50 68 6f 6e 65 00 03 31
2e 30 00 00 01 40 05 00 74 00 77 00 65 00 65 00
62 00 31 00 86 86 d5 15 06 b8 00 b3 91 4e fb e2
21 d0 11 8f a3 00 aa 00 af 38 21 01 00 b5 00 80
80 80 80 72 65 76 65 69 6c 6c 65 40 62 6f 67 75
73 2e 63 6f 6d 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 68 74 74 70 3a 2f 2f 67 64 61 6e 6e 65
65 6c 2e 6a 66 2e 69 6e 74 65 6c 2e 63 6f 6d 2f
63 67 69 2d 62 69 6e 2f 75 6c 73 31 30 2e 62 61
74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: Setup
Protocol Discriminator: 8
Call Reference:
length (in octets): 2
value (in hex): 00 d6 , flag: 0 - origination side
Bearer capability:
length: 3
coding standard: 0x0
information transfer capability: 0x8
transfer mode: 0x2
information transfer rate: 0x0
user information layer 1 protocol: 0x5
Display:
length: 9
display information: reveille
User-user:
length: 219
protocol discriminator: 5
h323_uu_pdu: setup:
protocolIdentifier: 0, 0, 8, 2250, 0, 1
sourceInfo:
vendor:
35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
productId:
21 octet(s) (hex output):
49 6E 74 65 6C 20 49 6E
74 65 72 6E 65 74 20 50
68 6F 6E 65 00
versionId:
4 octet(s) (hex output):
31 2E 30 00
terminalInfo:
destinationAddress:
h323_ID:
6 octet(s) (hex output):
74 00 77 00 65 00
destCallSignalAddress:
ipAddress: 134.134.213.21
port: 1720
conferenceID:
16 octet(s) (hex output):
B3 91 4E FB E2 21 D0 11
8F A3 00 AA 00 AF 38 21
conferenceGoal: create
callType: pointToPoint
nonStandardIdentifier:
h221NonStandard:
35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
data:
length: 128
value: reveille@bogus.com
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:21.490
LAYER: Q931
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
23 octets (hex output):
08 02 80 d6 02 7e 00 0f 05 01 00 06 00 08 91 4a
00 01 08 80 01 28 00
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: Proceeding
Protocol Discriminator: 8
Call Reference:
length (in octets): 2
value (in hex): 00 d6 , flag: 1 - destination side
User-user:
length: 15
protocol discriminator: 5
h323_uu_pdu: callProceeding:
protocolIdentifier: 0, 0, 8, 2250, 0, 1
destinationInfo:
gateway:
GtwyInf_nonStandardData:
h323:

END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:21.530
LAYER: Q931
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
246 octets (hex output):
08 02 00 02 05 04 03 88 c0 a5 28 09 72 65 76 65
69 6c 6c 65 00 7e 00 de 05 10 18 06 00 08 91 4a
00 01 2a c0 b5 00 80 80 14 49 6e 74 65 6c 20 49
6e 74 65 72 6e 65 74 20 50 68 6f 6e 65 00 03 31
2e 30 00 40 01 28 00 01 40 05 00 74 00 77 00 65
00 65 00 62 00 31 00 86 86 d5 15 06 b8 00 40 cf
21 53 9d 23 d0 11 ab cd 00 a0 c9 1a bb 91 01 00
b5 00 80 80 80 80 72 65 76 65 69 6c 6c 65 40 62
6f 67 75 73 2e 63 6f 6d 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 68 74 74 70 3a 2f 2f 67 64 61
6e 6e 65 65 6c 2e 6a 66 2e 69 6e 74 65 6c 2e 63
6f 6d 2f 63 67 69 2d 62 69 6e 2f 75 6c 73 31 30
2e 62 61 74 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: Setup
Protocol Discriminator: 8
Call Reference:
length (in octets): 2
value (in hex): 00 02 , flag: 0 - origination side
Bearer capability:
length: 3
coding standard: 0x0
information transfer capability: 0x8
transfer mode: 0x2
information transfer rate: 0x0
user information layer 1 protocol: 0x5
Display:
length: 9
display information: reveille
User-user:
length: 222
protocol discriminator: 5
h323_uu_pdu: setup:
protocolIdentifier: 0, 0, 8, 2250, 0, 1
sourceInfo:
vendor:
35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
productId:
21 octet(s) (hex output):
49 6E 74 65 6C 20 49 6E
74 65 72 6E 65 74 20 50
68 6F 6E 65 00
versionId:
4 octet(s) (hex output):
31 2E 30 00
gateway:
GtwyInf_nonStandardData:
h323:

terminalInfo:
destinationAddress:
h323_ID:
6 octet(s) (hex output):
74 00 77 00 65 00
destCallSignalAddress:
ipAddress: 134.134.213.21
port: 1720
conferenceID:
16 octet(s) (hex output):
40 CF 21 53 9D 23 D0 11
AB CD 00 A0 C9 1A BB 91
conferenceGoal: create
callType: pointToPoint
nonStandardIdentifier:
h221NonStandard:
35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
data:
length: 128
value: reveille@bogus.com
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:21.891
LAYER: Q931
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
23 octets (hex output):
08 02 80 02 02 7e 00 0f 05 01 00 06 00 08 91 4a
00 01 08 80 01 28 00
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: Proceeding
Protocol Discriminator: 8
Call Reference:
length (in octets): 2
value (in hex): 00 02 , flag: 1 - destination side
User-user:
length: 15
protocol discriminator: 5
h323_uu_pdu: callProceeding:
protocolIdentifier: 0, 0, 8, 2250, 0, 1
destinationInfo:
gateway:
GtwyInf_nonStandardData:
h323:

END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:21.891
LAYER: Q931
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
23 octets (hex output):
08 02 00 d6 02 7e 00 0f 05 01 00 06 00 08 91 4a
00 01 08 80 01 28 00
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: Proceeding
Protocol Discriminator: 8
Call Reference:
length (in octets): 2
value (in hex): 00 d6 , flag: 0 - origination side
User-user:
length: 15
protocol discriminator: 5
h323_uu_pdu: callProceeding:
protocolIdentifier: 0, 0, 8, 2250, 0, 1
destinationInfo:
gateway:
GtwyInf_nonStandardData:
h323:

END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:23.593
LAYER: Q931
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
226 octets (hex output):
08 02 80 02 07 04 03 88 c0 a5 28 06 74 77 65 65
62 31 7e 00 cd 05 12 40 06 00 08 91 4a 00 01 00
86 86 d5 15 06 b9 2a c0 b5 00 80 80 14 49 6e 74
65 6c 20 49 6e 74 65 72 6e 65 74 20 50 68 6f 6e
65 00 03 31 2e 30 00 40 01 28 00 40 cf 21 53 9d
23 d0 11 ab cd 00 a0 c9 1a bb 91 40 b5 00 80 80
80 80 74 77 65 65 62 31 40 73 6f 6d 65 77 68 65
72 65 2e 63 6f 6d 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 68 74 74 70 3a 2f 2f 67 64 61 6e 6e 65 65
6c 2e 6a 66 2e 69 6e 74 65 6c 2e 63 6f 6d 2f 63
67 69 2d 62 69 6e 2f 75 6c 73 31 30 2e 62 61 74
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: Connect
Protocol Discriminator: 8
Call Reference:
length (in octets): 2
value (in hex): 00 02 , flag: 1 - destination side
Bearer capability:
length: 3
coding standard: 0x0
information transfer capability: 0x8
transfer mode: 0x2
information transfer rate: 0x0
user information layer 1 protocol: 0x5
Display:
length: 6
display information: tweeb1
User-user:
length: 205
protocol discriminator: 5
h323_uu_pdu: connect:
protocolIdentifier: 0, 0, 8, 2250, 0, 1
Cnnct_UUIE_h245Address:
ipAddress: 134.134.213.21
port: 1721
destinationInfo:
vendor:
35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
productId:
21 octet(s) (hex output):
49 6E 74 65 6C 20 49 6E
74 65 72 6E 65 74 20 50
68 6F 6E 65 00
versionId:
4 octet(s) (hex output):
31 2E 30 00
gateway:
GtwyInf_nonStandardData:
h323:

terminalInfo:
conferenceID:
16 octet(s) (hex output):
40 CF 21 53 9D 23 D0 11
AB CD 00 A0 C9 1A BB 91
nonStandardIdentifier:
h221NonStandard:
35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
data:
length: 128
value: tweeb1@somewhere.com
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:23.623
LAYER: Q931
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
226 octets (hex output):
08 02 80 d6 07 04 03 88 c0 a5 28 06 74 77 65 65
62 31 7e 00 cd 05 12 40 06 00 08 91 4a 00 01 00
86 86 d5 85 06 b9 2a c0 b5 00 80 80 14 49 6e 74
65 6c 20 49 6e 74 65 72 6e 65 74 20 50 68 6f 6e
65 00 03 31 2e 30 00 40 01 28 00 b3 91 4e fb e2
21 d0 11 8f a3 00 aa 00 af 38 21 40 b5 00 80 80
80 80 74 77 65 65 62 31 40 73 6f 6d 65 77 68 65
72 65 2e 63 6f 6d 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 68 74 74 70 3a 2f 2f 67 64 61 6e 6e 65 65
6c 2e 6a 66 2e 69 6e 74 65 6c 2e 63 6f 6d 2f 63
67 69 2d 62 69 6e 2f 75 6c 73 31 30 2e 62 61 74
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: Connect
Protocol Discriminator: 8
Call Reference:
length (in octets): 2
value (in hex): 00 d6 , flag: 1 - destination side
Bearer capability:
length: 3
coding standard: 0x0
information transfer capability: 0x8
transfer mode: 0x2
information transfer rate: 0x0
user information layer 1 protocol: 0x5
Display:
length: 6
display information: tweeb1
User-user:
length: 205
protocol discriminator: 5
h323_uu_pdu: connect:
protocolIdentifier: 0, 0, 8, 2250, 0, 1
Cnnct_UUIE_h245Address:
ipAddress: 134.134.213.133
port: 1721
destinationInfo:
vendor:
35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
productId:
21 octet(s) (hex output):
49 6E 74 65 6C 20 49 6E
74 65 72 6E 65 74 20 50
68 6F 6E 65 00
versionId:
4 octet(s) (hex output):
31 2E 30 00
gateway:
GtwyInf_nonStandardData:
h323:

terminalInfo:
conferenceID:
16 octet(s) (hex output):
B3 91 4E FB E2 21 D0 11
8F A3 00 AA 00 AF 38 21
nonStandardIdentifier:
h221NonStandard:
35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
data:
length: 128
value: tweeb1@somewhere.com
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:23.984
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
123 octets (hex output):
02 70 01 06 00 08 81 75 00 02 80 0d 00 00 3c 00
01 00 00 01 00 00 01 00 00 04 80 00 00 32 00 03
c0 00 01 30 20 b5 00 80 80 08 07 70 00 04 0c 06
00 00 80 00 02 30 20 b5 00 80 80 08 07 71 00 08
25 04 00 00 80 00 03 30 20 b5 00 80 80 08 07 72
00 0c 25 05 00 00 80 00 04 30 20 b5 00 80 80 08
07 73 00 10 2b 06 00 00 00 80 00 04 00 00 00 00
00 01 00 00 02 00 00 03 00 00 04
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: TerminalCapabilitySet

Sequence Number: 1
ProtocolIdentifiers: 0, 0, 8, 245, 0, 2,
Multiplex Capability: h2250Capability
maximumAudioDelayJitter: 60
Receive Multipoint Capability:
Transmit Multipoint Capability:
Receive And Transmit Multipoint Capability:
Capability Table:
1: G.7231 Audio
MaxAl_sduAudioFrames: 4
Silence Suppression

2: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 70 00 04 0C 06 00 00

3: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 71 00 08 25 04 00 00

4: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 72 00 0C 25 05 00 00

5: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 73 00 10 2B 06 00 00

Capability Descriptors:
0:
1,
2,
3,
4,
5,
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:23.984
LAYER: H245
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
123 octets (hex output):
02 70 01 06 00 08 81 75 00 02 80 0d 00 00 3c 00
01 00 00 01 00 00 01 00 00 04 80 00 00 32 00 03
c0 00 01 30 20 b5 00 80 80 08 07 70 00 04 0c 06
00 00 80 00 02 30 20 b5 00 80 80 08 07 71 00 08
25 04 00 00 80 00 03 30 20 b5 00 80 80 08 07 72
00 0c 25 05 00 00 80 00 04 30 20 b5 00 80 80 08
07 73 00 10 2b 06 00 00 00 80 00 04 00 00 00 00
00 01 00 00 02 00 00 03 00 00 04
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: TerminalCapabilitySet

Sequence Number: 1
ProtocolIdentifiers: 0, 0, 8, 245, 0, 2,
Multiplex Capability: h2250Capability
maximumAudioDelayJitter: 60
Receive Multipoint Capability:
Transmit Multipoint Capability:
Receive And Transmit Multipoint Capability:
Capability Table:
1: G.7231 Audio
MaxAl_sduAudioFrames: 4
Silence Suppression

2: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 70 00 04 0C 06 00 00

3: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 71 00 08 25 04 00 00

4: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 72 00 0C 25 05 00 00

5: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 73 00 10 2B 06 00 00

Capability Descriptors:
0:
1,
2,
3,
4,
5,
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:23.994
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
7 octets (hex output):
01 00 32 80 0b d4 d7
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: MasterSlaveDetermination

Terminal Type: 50
Determination Number: 775383
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:23.994
LAYER: H245
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
7 octets (hex output):
01 00 32 80 0b d4 d7
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: MasterSlaveDetermination

Terminal Type: 50
Determination Number: 775383
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:24.685
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
3 octets (hex output):
21 80 01
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: TerminalCapabilitySetAck

Sequence Number: 1
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:24.685
LAYER: H245
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
3 octets (hex output):
21 80 01
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: TerminalCapabilitySetAck

Sequence Number: 1
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:24.685
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
123 octets (hex output):
02 70 01 06 00 08 81 75 00 02 80 0d 00 00 3c 00
01 00 00 01 00 00 01 00 00 04 80 00 00 32 00 03
c0 00 01 30 20 b5 00 80 80 08 07 70 00 04 0c 06
00 00 80 00 02 30 20 b5 00 80 80 08 07 71 00 08
25 04 00 00 80 00 03 30 20 b5 00 80 80 08 07 72
00 0c 25 05 00 00 80 00 04 30 20 b5 00 80 80 08
07 73 00 10 2b 06 00 00 00 80 00 04 00 00 00 00
00 01 00 00 02 00 00 03 00 00 04
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: TerminalCapabilitySet

Sequence Number: 1
ProtocolIdentifiers: 0, 0, 8, 245, 0, 2,
Multiplex Capability: h2250Capability
maximumAudioDelayJitter: 60
Receive Multipoint Capability:
Transmit Multipoint Capability:
Receive And Transmit Multipoint Capability:
Capability Table:
1: G.7231 Audio
MaxAl_sduAudioFrames: 4
Silence Suppression

2: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 70 00 04 0C 06 00 00

3: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 71 00 08 25 04 00 00

4: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 72 00 0C 25 05 00 00

5: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 73 00 10 2B 06 00 00

Capability Descriptors:
0:
1,
2,
3,
4,
5,
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:24.685
LAYER: H245
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
123 octets (hex output):
02 70 01 06 00 08 81 75 00 02 80 0d 00 00 3c 00
01 00 00 01 00 00 01 00 00 04 80 00 00 32 00 03
c0 00 01 30 20 b5 00 80 80 08 07 70 00 04 0c 06
00 00 80 00 02 30 20 b5 00 80 80 08 07 71 00 08
25 04 00 00 80 00 03 30 20 b5 00 80 80 08 07 72
00 0c 25 05 00 00 80 00 04 30 20 b5 00 80 80 08
07 73 00 10 2b 06 00 00 00 80 00 04 00 00 00 00
00 01 00 00 02 00 00 03 00 00 04
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: TerminalCapabilitySet

Sequence Number: 1
ProtocolIdentifiers: 0, 0, 8, 245, 0, 2,
Multiplex Capability: h2250Capability
maximumAudioDelayJitter: 60
Receive Multipoint Capability:
Transmit Multipoint Capability:
Receive And Transmit Multipoint Capability:
Capability Table:
1: G.7231 Audio
MaxAl_sduAudioFrames: 4
Silence Suppression

2: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 70 00 04 0C 06 00 00

3: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 71 00 08 25 04 00 00

4: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 72 00 0C 25 05 00 00

5: NonStandard Audio
t35CountryCode: 181
t35Extension: 0
manufacturerCode: 32896
Value: 8 octets (hex output):
07 73 00 10 2B 06 00 00

Capability Descriptors:
0:
1,
2,
3,
4,
5,
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:24.695
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
7 octets (hex output):
01 00 32 80 8b 7d e8
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: MasterSlaveDetermination

Terminal Type: 50
Determination Number: 9141736
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:24.695
LAYER: H245
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
7 octets (hex output):
01 00 32 80 8b 7d e8
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: MasterSlaveDetermination

Terminal Type: 50
Determination Number: 9141736
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:24.695
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
2 octets (hex output):
20 a0
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: MasterSlaveDeterminationAck

Role: SLAVE
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:24.695
LAYER: H245
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
2 octets (hex output):
20 a0
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: MasterSlaveDeterminationAck

Role: SLAVE
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:25.85
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
3 octets (hex output):
21 80 01
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: TerminalCapabilitySetAck

Sequence Number: 1
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:25.85
LAYER: H245
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
3 octets (hex output):
21 80 01
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: TerminalCapabilitySetAck

Sequence Number: 1
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:25.85
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
2 octets (hex output):
20 80
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: MasterSlaveDeterminationAck

Role: MASTER
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:25.85
LAYER: H245
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
2 octets (hex output):
20 80
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: MasterSlaveDeterminationAck

Role: MASTER
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:25.85
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
21 octets (hex output):
03 00 00 00 0d 00 03 c0 00 0b 0f 00 01 00 86 86
d5 c8 13 81 00
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: OpenLogicalChannel

Forward Logical Channel Number: 1
Capability: G.7231 Audio
MaxAl_sduAudioFrames: 4
Silence Suppression
fLCPs_mPs_h2250LCPs:
SessionID: 1
SilenceSuppression: FALSE
H2250LCPs_mdCntrlChnnl:
Unicast Address: IP, 134.134.213.200
TSAPIdentifier: 4993
H2250LCPs_mdGrntdDlvry: FALSE
H2250LCPs_mCGDy: FALSE
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:25.95
LAYER: H245
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
21 octets (hex output):
03 00 00 00 0d 00 03 c0 00 0b 0f 00 01 00 86 86
d5 85 07 d3 00
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: OpenLogicalChannel

Forward Logical Channel Number: 1
Capability: G.7231 Audio
MaxAl_sduAudioFrames: 4
Silence Suppression
fLCPs_mPs_h2250LCPs:
SessionID: 1
SilenceSuppression: FALSE
H2250LCPs_mdCntrlChnnl:
Unicast Address: IP, 134.134.213.133
TSAPIdentifier: 2003
H2250LCPs_mdGrntdDlvry: FALSE
H2250LCPs_mCGDy: FALSE
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:26.587
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
21 octets (hex output):
03 00 00 00 0d 00 03 c0 00 0b 0f 00 01 00 86 86
d5 15 07 d1 00
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: OpenLogicalChannel

Forward Logical Channel Number: 1
Capability: G.7231 Audio
MaxAl_sduAudioFrames: 4
Silence Suppression
fLCPs_mPs_h2250LCPs:
SessionID: 1
SilenceSuppression: FALSE
H2250LCPs_mdCntrlChnnl:
Unicast Address: IP, 134.134.213.21
TSAPIdentifier: 2001
H2250LCPs_mdGrntdDlvry: FALSE
H2250LCPs_mCGDy: FALSE
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:26.587
LAYER: H245
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
21 octets (hex output):
03 00 00 00 0d 00 03 c0 00 0b 0f 00 01 00 86 86
d5 85 07 d1 00
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: OpenLogicalChannel

Forward Logical Channel Number: 1
Capability: G.7231 Audio
MaxAl_sduAudioFrames: 4
Silence Suppression
fLCPs_mPs_h2250LCPs:
SessionID: 1
SilenceSuppression: FALSE
H2250LCPs_mdCntrlChnnl:
Unicast Address: IP, 134.134.213.133
TSAPIdentifier: 2001
H2250LCPs_mdGrntdDlvry: FALSE
H2250LCPs_mCGDy: FALSE
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:26.587
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
22 octets (hex output):
22 c0 00 00 02 80 0f 0c 00 86 86 d5 15 07 d0 00
86 86 d5 15 07 d1
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: OpenLogicalChannelAck

Forward Logical Channel Number: 1
frwrdMltplxAckPrmtrs:
H2250LCAPs_mdChnnl:
Unicast Address: IP, 134.134.213.21
TSAPIdentifier: 2000
H2250LCAPs_mdCntrlChnnl:
Unicast Address: IP, 134.134.213.21
TSAPIdentifier: 2001
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:26.617
LAYER: H245
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
22 octets (hex output):
22 c0 00 00 02 80 0f 0c 00 86 86 d5 85 07 d0 00
86 86 d5 85 07 d1
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: OpenLogicalChannelAck

Forward Logical Channel Number: 1
frwrdMltplxAckPrmtrs:
H2250LCAPs_mdChnnl:
Unicast Address: IP, 134.134.213.133
TSAPIdentifier: 2000
H2250LCAPs_mdCntrlChnnl:
Unicast Address: IP, 134.134.213.133
TSAPIdentifier: 2001
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:27.689
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
22 octets (hex output):
22 c0 00 00 02 80 0f 0c 00 86 86 d5 c8 13 80 00
86 86 d5 c8 13 81
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: OpenLogicalChannelAck

Forward Logical Channel Number: 1
frwrdMltplxAckPrmtrs:
H2250LCAPs_mdChnnl:
Unicast Address: IP, 134.134.213.200
TSAPIdentifier: 4992
H2250LCAPs_mdCntrlChnnl:
Unicast Address: IP, 134.134.213.200
TSAPIdentifier: 4993
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:27.689
LAYER: H245
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
22 octets (hex output):
22 c0 00 00 02 80 0f 0c 00 86 86 d5 85 07 d2 00
86 86 d5 85 07 d3
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: OpenLogicalChannelAck

Forward Logical Channel Number: 1
frwrdMltplxAckPrmtrs:
H2250LCAPs_mdChnnl:
Unicast Address: IP, 134.134.213.133
TSAPIdentifier: 2002
H2250LCAPs_mdCntrlChnnl:
Unicast Address: IP, 134.134.213.133
TSAPIdentifier: 2003
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:37.974
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
5 octets (hex output):
64 80 00 00 08
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: MiscellaneousIndication

Logical Channel Number: 1
LogicalChannelInactive
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:37.984
LAYER: H245
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
5 octets (hex output):
64 80 00 00 08
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: MiscellaneousIndication

Logical Channel Number: 1
LogicalChannelInactive
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:37.984
LAYER: H245
DIRECTION: Received
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
2 octets (hex output):
45 20
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: EndSessionCommand

Disconnect
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:37.984
LAYER: Q931
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
24 octets (hex output):
08 02 80 d6 5a 08 03 00 00 90 7e 00 0b 05 05 40
06 00 08 91 4a 00 01 58
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: Release Complete
Protocol Discriminator: 8
Call Reference:
length (in octets): 2
value (in hex): 00 d6 , flag: 1 - destination side
Cause:
length: 3
coding standard: 0x0
location: 0x0
recommendation: 0x0
cause value: 0x10
User-user:
length: 11
protocol discriminator: 5
h323_uu_pdu: releaseComplete:
protocolIdentifier: 0, 0, 8, 2250, 0, 1
reason: RlsCmpltRsn_undfndRsn
END_PDU: ================================ END PDU =============================

START_PDU: ============================= START PDU ============================
TIMESTAMP: 14:26:37.994
LAYER: Q931
DIRECTION: Sent
RAW_PDU: - - - - - - - - RAW PDU - - - - - - - -
24 octets (hex output):
08 02 80 02 5a 08 03 00 00 90 7e 00 0b 05 05 40
06 00 08 91 4a 00 01 58
DECODED_PDU: - - - - - - - DECODED PDU - - - - - - -
PDU_TYPE: Release Complete
Protocol Discriminator: 8
Call Reference:
length (in octets): 2
value (in hex): 00 02 , flag: 1 - destination side
Cause:
length: 3
coding standard: 0x0
location: 0x0
recommendation: 0x0
cause value: 0x10
User-user:
length: 11
protocol discriminator: 5
h323_uu_pdu: releaseComplete:
protocolIdentifier: 0, 0, 8, 2250, 0, 1
reason: RlsCmpltRsn_undfndRsn
END_PDU: ================================ END PDU =============================

15. Index

None at this time.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本火锅店点餐系统采用Java语言和Vue技术,框架采用SSM,搭配Mysql数据库,运行在Idea里,采用小程序模式。本火锅店点餐系统提供管理员、用户两种角色的服务。总的功能包括菜品的查询、菜品的购买、餐桌预定和订单管理。本系统可以帮助管理员更新菜品信息和管理订单信息,帮助用户实现在线的点餐方式,并可以实现餐桌预定。本系统采用成熟技术开发可以完成点餐管理的相关工作。 本系统的功能围绕用户、管理员两种权限设计。根据不同权限的不同需求设计出更符合用户要求的功能。本系统中管理员主要负责审核管理用户,发布分享新的菜品,审核用户的订餐信息和餐桌预定信息等,用户可以对需要的菜品进行购买、预定餐桌等。用户可以管理个人资料、查询菜品、在线点餐和预定餐桌、管理订单等,用户的个人资料是由管理员添加用户资料时产生,用户的订单内容由用户在购买菜品时产生,用户预定信息由用户在预定餐桌操作时产生。 本系统的功能设计为管理员、用户两部分。管理员为菜品管理、菜品分类管理、用户管理、订单管理等,用户的功能为查询菜品,在线点餐、预定餐桌、管理个人信息等。 管理员负责用户信息的删除和管理,用户的姓名和手机号都可以由管理员在此功能里看到。管理员可以对菜品的信息进行管理、审核。本功能可以实现菜品的定时更新和审核管理。本功能包括查询餐桌,也可以发布新的餐桌信息。管理员可以查询已预定的餐桌,并进行审核。管理员可以管理公告和系统的轮播图,可以安排活动。管理员可以对个人的资料进行修改和管理,管理员还可以在本功能里修改密码。管理员可以查询用户的订单,并完成菜品的安排。 当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。在本功能里用户可以进行点餐。用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定。用户可以管理购物车里的菜品。用户可以管理自己的订单,在订单管理界面里也可以进行查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值