VoIP PBX Technology

VoIP Telephony Technology is developed very quick and will replace the analog phone in near future. Traditional phone line are also replacing the VOIP server binding with optical fiber internet.

Analog PBX

Tens years ago, the process ability of computer wasn’t powerful to handle mutil-tasks, especially on voice and video process. At the time, voice was processed to analog electrical signal, then exchange in PBX still in “analog” way.  Usually add-on hardware will be added into PBX, the cost would become huge if your business need big quantity of extensions.  This is why only giant business could have own PBX.

 VoIP Techology

IP-based voice transmission (Voice over Internet Protocol, abbreviation: VoIP) is a voice call technology that uses Internet Protocol (IP) to achieve voice calls and multimedia conferences, that is, communicate via the Internet. Other informal names are IP telephony, Internet telephony, broadband telephony, and broadband phone service.

VoIP can be used for many Internet access devices, including VoIP phones, smart phones, and personal computers, to make calls and send text messages via cellular networks and Wi-Fi.

IP-Phone

The IP phone digitizes the voice signal, compresses and encodes the package, transmits it through the network, and then decompresses it to restore the digital signal to sound for the other party to hear. The basic process of voice from the source to the destination:

  • Acousto-electric conversion: convert sound waves into electrical signals through piezoelectric ceramics and other similar devices
  • Quantization sampling: converting analog electrical signals into digital signals according to a certain sampling method (such as pulse code modulation, or PCM)
  • Data packet: Combine a certain length of digitized voice signal into a frame. Then, according to the ITU (International Telecommunication Union Telecommunication Standardization Department) standard, these voice frames are encapsulated into an RTP (Realtime Transport Protocol) Protocol) messages, and are further encapsulated into UDP messages and IP messages.
  • Transmission: IP packets are transferred from the source to the destination on the IP network
  • De-jitter: remove the jitter sound caused by the uneven transmission speed of data packets in the network
  • Unpack
  • Electroacoustic conversion
  • Addressing
  • Voice codec
  • Echo cancellation and echo suppression
  • Transmission IP
  • De-jitter

H.323

H.323 is a common VoIP standard. It was proposed by ITU-T in 1996. It was originally used for video conferencing on a local area network (LAN) and was later applied to VoIP network phones.

H.323 defines a comprehensive specification that enables terminal devices on the network to follow these specifications and communicate smoothly, including voice compression formats (G.711, G.729, G.723.1) and image compression formats (H. 261, H.263), call signaling (H.225), control signaling (H.245), registration and authentication (RAS: Registration Admission Status).

The H.323 architecture is composed of 4 components, including terminal equipment (Terminal), gateway (Gateway), gateway administrator (Gatekeeper), multipoint control unit (MCU: Multipoint Control Unit), which can perform single point to single point or Single-point-to-multipoint communication.

For VoIP applications, H.323 has many sub-protocols and high complexity, and many technical problems are limited, and it is not easy to expand for new applications. Therefore, the IETF (Internet Engineering Task Force) respectively proposed the MGCP (Media Gateway Control Protocol) protocol in August 1999 and the SIP (Session Initiation Protocol) new architecture in March 1999, trying to simplify the complexity of H. The voice transmission function provides high scalability.

Protocol for VoIP Telephony Technology

Session Initiation Protocol (SIP)

SIP is the IETF protocol standard for creating VoIP call connections. SIP is an application layer control protocol used to create, modify, and terminate sessions with one or more participants. The structure of SIP is similar to HTTP (Client-Server Protocol). The client makes a request and sends it to the server, and the server sends a response back to the client after processing these requests. The request and response form a transaction.

The Media Gateway Control Protocol (MGCP)

MGCP is a VoIP protocol proposed by Cisco and Telcordia. It defines the communication service between the call control unit (call proxy or media gateway) and the telephone gateway. MGCP is a control protocol that allows the central console to monitor IP phone and gateway events and notify them to send content to a designated address. In the MGCP structure, the intelligent call control is placed outside the gateway and handled by the call control unit (call agent). At the same time, the control units are called to maintain synchronization with each other and send consistent commands to the gateway.

The Media Gateway Control Protocol (Megaco)

MEGACO is the result of joint efforts of IETF and ITU-T (ITU-T H.248 recommendation). Megaco/H.248 is a protocol used to control the protocol unit of a physically separated multimedia gateway, so that the call control can be separated from the media conversion. Megaco/H.248 describes the connection between a media gateway (MG) used to convert circuit-switched voice to packet-based communication traffic and a media gateway controller that specifies the service logic for such traffic. Megaco/H.248 informs the media gateway to connect the data stream from outside the data packet or unit data network to the data packet or unit data stream, such as the real-time transport protocol (RTP). From the perspective of the relationship between VoIP structure and gateway control, Megaco/H.248 is quite similar to MGCP in nature, but Megaco/H.248 supports a wider range of networks, such as ATM

Session Initiation Protocol (SIP)

SIP is the IETF protocol standard for creating VoIP call connections. SIP is an application layer control protocol used to create, modify, and terminate sessions with one or more participants. The structure of SIP is similar to HTTP (Client-Server Protocol). The client makes a request and sends it to the server, and the server sends a response back to the client after processing these requests. The request and response form a transaction.  

The Media Gateway Control Protocol (MGCP)

MGCP is a VoIP protocol proposed by Cisco and Telcordia. It defines the communication service between the call control unit (call proxy or media gateway) and the telephone gateway. MGCP is a control protocol that allows the central console to monitor IP phone and gateway events and notify them to send content to a designated address. In the MGCP structure, the intelligent call control is placed outside the gateway and handled by the call control unit (call agent). At the same time, the control units are called to maintain synchronization with each other and send consistent commands to the gateway.

The Media Gateway Control Protocol (Megaco)

MEGACO is the result of joint efforts of IETF and ITU-T (ITU-T H.248 recommendation). Megaco/H.248 is a protocol used to control the protocol unit of a physically separated multimedia gateway, so that the call control can be separated from the media conversion. Megaco/H.248 describes the connection between a media gateway (MG) used to convert circuit-switched voice to packet-based communication traffic and a media gateway controller that specifies the service logic for such traffic. Megaco/H.248 informs the media gateway to connect the data stream from outside the data packet or unit data network to the data packet or unit data stream, such as the real-time transport protocol (RTP). From the perspective of the relationship between VoIP structure and gateway control, Megaco/H.248 is quite similar to MGCP in nature, but Megaco/H.248 supports a wider range of networks, such as ATM

More and more Powerful CPU

After long-time devlopment of computer hardware, PC’s CPU becomes powerful enough to hand voice signal process and exchange, which relayed on special customized hardware in the past.  A regular PC or X86 server finally has chance to be a “soft” PBX—IP PBX. 

A good example about ten years ago, an Indian business man run a server with Xeon CPU and 32GB memory as IP PBX, which was successful to process more than 500 cocurrent calls from overseas.

What’s Asterisk?

Asterisk is the first private branch exchange (PBX) system implemented with open source software. Asterisk was developed by Mark Spencer, the founder of Digium, when he was still studying at Auburn University in 1999.

VOIP TELEPHONY TECHNOLOGY

As with other subscriber exchange systems, Asterisk also supports calls to another extension, and calls to the public switched telephone network and IP telephone system. The name Asterisk is derived from the asterisk “*”.

Asterisk uses a dual-track authorization model. The free model uses the GNU General Public License (GPL) authorization, while the commercial authorization uses the proprietary model. This authorization does not require the system source code to be disclosed.

The initial development platform of the system was Linux, and it can now run on a wide variety of platforms, including NetBSD, OpenBSD, FreeBSD, Mac OS X and Solaris. Some people ported the system to the Microsoft Windows platform, which is AsteriskWin32.

Asterisk is a very lightweight system that can run on embedded systems such as OpenWrt.

Functions of Asterisk

Asterisk includes many functions that are only available in expensive commercial switch systems, such as voice mail, multi-party voice conferencing, interactive voice response (IVR), telephone menus, and call center. Administrators can also write dialing scripts through the built-in extension operating language of Asterisk to achieve special functions. It is even possible to write compatible modules in C language, or develop Asterisk Gateway Interface (AGI) programs in any compatible language through stdin and stdout or network TCP socket.

If the Asterisk system dials to the public switched telephone network or the trunk link public switched telephone network, the administrator must install appropriate hardware. For example, various PCI interface cards officially produced by Digium are used to provide Asterisk with the ability to connect T1, E1 lines or other traditional lines. Mainland China also has compatible interface cards like OpenVox, which are relatively inexpensive.

Asterisk supports a very wide range of video telephony and IP telephony protocols [. Including Session Initiation Protocol (SIP), Media Gateway Control Protocol (MGCP) and H.323 protocols. Asterisk is compatible with most SIP phones. The Inter-Asterisk eXchange (IAX2) protocol is a trunk link protocol between Asterisk PBX switches natively provided by Asterisk. Some VoIP service providers even natively support the IAX2 protocol.

In order to meet the mixed service environment of traditional telephones and IP telephones, Asterisk allows managers to create a new single telephone system, or gradually transfer existing telephone systems to new technologies. Some companies directly use Asterisk to replace traditional switches, while some companies use Asterisk to provide advanced features, such as voice mail, or change long-distance calls through Asterisk to network transmission to achieve a cost-saving mechanism.

As Asterisk is too professional and complex, there are also a large number of simplified communication systems derived from Asterisk to make it easier for users to use. For example, elastix, trixbox, which are popular in Europe and America, or Freeiris ibased in China.

What’s Freeswitch

The FreeSWITCH project was first announced at O’Reilly Media’s ETEL conference in January 2006. [In June 2007, FreeSWITCH was adopted by Truphone. In August 2007, Gaboogie announced the use of FreeSWITCH as a conference call platform.

The first official version 1.0.0 of FreeSWITCH (Phoenix) was released on May 26, 2008. A minor update was released on July 24, 2008. Version 1.2.1 was released in August 2012. Anthony Minessale announced the release of version 1.2.0 at ClueCon 2012. At this stage, the FreeSWITCH development team maintains two branches: the stable version (version 1.6) and the development version (version 1.7).

The latest version:1.10.5 was released on August 18, 2020.

According to its main developer Anthony Minessale, FreeSWITCH is committed to making a soft switch, which is built on a solid core and driven by a finite state machine. The goals of the project include stability, scalability, and abstraction. In order to reduce complexity and avoid reinventing the wheel, FreeSWITCH uses other open source and free software libraries to provide the necessary functions.

How to build IP PBX ?