VoIP–Embedded Software Architecture
Two major types of information must be handled to interface telephony equipment to a packet network: voice and signaling information.
As shown in Figure 4, VoIP software interfaces to both streams of information from the telephony network and converts them to a single stream of packets transmitted to the packet network. The software functions are divided into four general areas.


Figure 4

Figure 4: VoIP Software Architecture

Voice Packet Software Module

This software, also known as the voice-processing module, typically runs on a digital-signal processor (DSP), prepares voice samples for transmission over the packet network. Its components perform echo cancellation, voice compression, voice-activity detection, jitter removal, clock synchronization, and voice packetization.
Telephony-Signaling Gateway Software Module
This software interacts with the telephony equipment, translating signaling into state changes used by the packet protocol module to set up connections. These state changes are on-hook, off-hook, trunk seizure, etc. This software supports ear, mouth, earth, and magneto (E&M) Type I, II, III, IV, and V; loop or ground start foreign exchange station (FXS); foreign exchange office (FXO); and integrated services digital network (ISDN) basic rate interface (BRI) and primary rate interface (PRI).
Packet Protocol Module
This module processes signaling information and converts it from the telephony-signaling protocols to the specific packet-signaling protocol used to set up connections over the packet network (e.g., Q.933 and voice-over-frame relay signaling). It also adds protocol headers to both voice and signaling packets before transmission into the packet network.
Network-Management Module
This module provides the voice-management interface to configure and maintain the other modules of the voice-over-packet system. All management information is defined in American National Standards Institute (ANSI).1 and complies with signaling network-management protocol (SNMP) V1 syntax. A proprietary voice packet management information base (MIB) is supported until standards evolve in the forums. The software is partitioned to provide a well-defined interface to the DSP software usable for multiple voice packet protocols and applications. The DSP processes voice data and passes voice packets to the microprocessor with generic voice headers. The microprocessor is responsible for moving voice packets and adapting the generic voice headers to the specific voice packet protocol that is called for by the application, such as real-time protocol (RTP), voice over frame relay (VoFR), and voice telephony over ATM (VToA). The microprocessor also processes signaling information and converts it from supported telephony-signaling protocols to the packet network signaling protocol [e.g. H.323 IP, frame relay, or ATM signaling]. This partitioning provides a clean interface between the generic voice-processing functions, such as compression, echo cancellation, and voice-activity detection, and the application-specific signaling and voice protocol processing.