1 Introduction
With the rapid development of computer network technology and multimedia communication technology, the TV conference or multimedia conference is generally concerned about the industry. The current IP-based H.323 TV conference system has become a hot spot studying and development. The H.323 protocol is developed on the basis of the original H.320 protocol, which is fully compatible with the original H.320 system. H.323 can run on a common network architecture, thereby have network independence, and it also provides network bandwidth management functions, support multi-point conference and multicast function, and implements multimedia products of different vendors. And the interoperability of the application.
2, H.323 system and terminal structure
H.323 is the standard established by the International Telecommunication Union Telecommunications Standard Ministry (ITU-T) to transmit audio, video and data on a package-based network. [1]. It describes the business of call signaling and control, multimedia transmission, and control, bandwidth control, and multi-point conferences, mainly by terminalkeeper, gatekeeper, and multipoint control unit (MCU) 4 composition. The basic components of the H.323 system are "zone", and one field includes at least one terminal, and there must be one and only one GK. Figure 1 is a typical H.323 system.
The H.323 terminal is a client that provides one-way or bidirectional real-time communication, with the codec and display functions of the video and audio signals, and also has data communication functions such as transfer still images, files, sharing applications [2]. The H.323 terminal allows asymmetrical video transmission, that is, communication between communication can be transmitted in different image formats, frame rates, and rates, which brings great flexibility to the participants. The terminal structure and corresponding protocol used in this system are as follows:
(1) H.225: Call signaling and media stream packaging protocols based on grouping multimedia communication systems, define specific signaling and RTP / RTCP usage in communication;
(2) RAS: The protocol between endpoints and gatekeepers, using the message in H.225 to realize registration, access license, bandwidth modification, state, and removal program, etc. between endpoints and gatekeepers, and open the RAS signaling path Establishing other H.323 pathways, RAS, call signaling pathways, and H.245 control paths are independent, and there is no RAS signaling without the gatekeeper;
(3) G.711: Speech PCM codec standard (64 kbit / s);
(4) G.722: 7 kHz audio card decoding standard (64 kbit / s);
(5) G.723.1: Low speed speech compression decoding suggestion provides efficient speech compression decoding (5.3 kbit / s or 6.3 kbit / s);
(6) G.729: Low speed voice codec decoding suggestions, telephone network quality speech coding (8 kbit / s);
(7) H.261: Video encoding standard (N × 64 kbit / s);
(8) H.263: Low-bit rate video codec standard (rate is determined by the network and terminal, the lowest can be 20 kbit / s);
(9) H.245: Multimedia communication control protocol, management of end-to-end control messages of H.323 system, including capabilities, logical channels, etc.
(10) T.120: Multimedia data transfer protocol.
3, H.323 terminal implementation method
3.1 API and application structure
The H.323 terminal implemented this article uses the API, such as OpenH323 Library, PWLIB (Portable Windows Library). OpenH323 library [3] is an open source C class library established on PWLIB [3], which is described in H323 Version 2.0 for Windows platforms and UNIX platforms. OpenH323 library is more complicated, including more than 100 classes, each class represents a single unit or function in the H.323 protocol [4], mainly H323ndPoint, H323Listener, H323Transport, H323Connection, H323Capability, H323Channel, H323capability and H323Codec these classes, which are the most important thing about H323ndPoint and H323Connection, the former is all based on OpenH323 library. The application generally wants to create an instance of the derived class of the H323ndPoint class because various major classes of the entire OpenH323 library can be called and processed directly or indirectly through the H323ndPoint class. Applications can define various attributes and methods in the H323ndPoint derived class, which can be used to set some of the initialization or basic properties of the terminal, such as the name of the music file played, and the default call setting, The ability of the terminal and the like. It can be seen that the relationship between the various classes is quite close and complicated, however, there is also a very clear main line. The core of the above figure is endpoint (h323ndpoint), which contains 3 functions:
(1) Capability management - Corresponding to Capability: The derived class of each Capability class corresponds to a derived class of a H323CODEC class, and the CODEC instance is used in an instance of logical channel Channel. CODEC's instance is created by the relevant Capability instance.
(2) Connection Management - Corresponding Connection: A terminal can contain multiple connections, manage these connections by a "Connect Dictionary", each connection may correspond to multiple Channel and Negotiator.
(3) Listening Management - Corresponding Listener: The listening thread creates a Transport instance when receiving incoming, and then establishing the connection on the basis of Transport. Develop the multimedia application based on the H.323 protocol with OpenH323 Library.
3.2 Terminal Example
The development environment of this system is a local area network composed of a laboratory PC. Each PC is equipped with a multimedia device such as a camera, a microphone. It uses WINGDOWS2000PROFESSIONAL to use VC 6.0 as a development tool. This example mainly includes the MYH323ENDPOINT class (representing the terminal, inheriting from H323ndPoint), the MyH323Connection class (represents a connection, inherits from H323Connection) and several user interface classes, Figure 5 is a flow chart of terminal implementation, including the following stages:
(1) Application initialization: This part is mainly to initialize the application, including the display of the help information of the various commands of the application, analyzing user input, setting application parameters, etc.
(2) Creating a MyH323ndPoint instance: This is achieved by calling the constructor of the MyH323ndPoint class inherited from the H323ndPoint class.
(3) Initialize the MYH323ENDPOINT instance: Call the MyH323ndPoint: Initialise function initializes the terminal instance, including setting (obtain) local username, local listening port, default call settings, find and set video audio devices and parameters, set terminal ability set Open the RAS channel and the H.225 TCP channel.
(4) Waiting for incoming or initiating call: According to the user's command, enter the waiting incoming state (open TCP listening thread) or initiate a new call (call myh323ndpoint :: makeoutGoingCall). (5) Waiting for the user command: call the MyH323ndPoint :: AWAITTERMINATION function, wait for the user's input command, and then perform different operations according to the user's input command (call hold, call forward, adjust the volume ...).
H323 terminals generally follow the following five processes when launching a call or accepting an incoming call:
A: Call establishment, including receiving control (H.225 signaling, RAS process);
B: Communication capacity exchange and mode setting to coordinate the interoperability of both parties (H.245 control);
C: Establish a sound image communication logic channel, including the establishment of conference communication (H.245 control process);
D: Call services during communication, including bandwidth modifications, extended by point-to-point communication into conference communication, etc. (H.225 signaling, RAS process);
E: Call end, close all channels (H.245 control process).
4 Conclusion
Based on the introduction of the H.323 TV conference system and its terminal structure, this paper explains how to implement the H.323 TV conference system terminal with OpenH323 Li-Brary.