We have analyzed some protocols and the content of the protocol stack. I believe everyone understands the content of the H.323 protocol. Here we will explain the development of this protocol stack. Developing an H.323 protocol stack is an extremely arduous task in the communication design process. The difficulty lies in the following: complex protocol stack development requires years of engineering design resources, in addition, mastering these complex standards also requires the accumulation of knowledge and learning process. This article will discuss the problems, ambiguities, and difficulties encountered in the development of H.323 protocol stacks and VoIP application systems.
Developing an IP address bearer voice (VoIP) Application System Using the H.323 protocol stack based on the primitive (primitive) is not a small task because a robust application system is created, it takes a lot of time to study vague standards and complex state machines.
This article uses examples to illustrate the implementation of the process and the definition of the primitive (primitive), to illustrate how to build an application system based on the primitive interface and an alternative solution based on the simple interface. Before developing the protocol stack, we recommend that you look at the basic H.323 Standards. H.323 is a standard promulgated by the International Telecommunication Union (ITU) and consists of a series of specific protocols, including Q.931, H.225, H.245, and ASN.1. To provide call signaling functions, H.225 and Q.931 standards are incorporated in the H.323 section. H.245 defines multiple processes to facilitate exchange capability, master-slave determination, and channel signaling. Finally, ASN.1 specifies the data format to enable the endpoints compatible with H.323 to communicate with each other.
Basic Concepts
When using H.323, it is critical to correctly understand the terms primitive and process. The primitive is used to describe the structure or message transmitted between the application layer and the lower layer of the H.323 protocol stack. H.323 defines multiple primitives. There are four types: request, indication, response, and confirmation. The number of parameters for each primitive is variable, which is determined by the relevant process. These parameters indicate the communication information between the application layer and the protocol stack layer.
Each protocol in the H.323 protocol family defines a set of processes. Each process represents a state machine. In most cases, the state machine defines a group of messages in the form of primitives, which are sent and received in a specific order. These primitives facilitate communication between the application layer and the lower layer.
The process provides specific functions that can be asynchronously started or terminated, or remain active throughout the conversation after being started. For example, H.245 processes include master-slave judgment, capability information interchange, unidirectional and bidirectional channel signaling. Only the signaling channel remains active during the actual conversation. Others are sent and received after activation, and then terminated. The Q.931/H.225 process includes call establishment and removal. Figure 1 shows the implementation of a complete H.323 protocol stack development. It is worth noting that this implementation depends on the network protocol stack and the real-time operating system (RTOS ). Most application systems require RTOS to process multiple processes and/or calls simultaneously.