Abstract: Over the last few years, many multimedia conferencing and Voice over Internet Protocol (VoIP) applications have been developed due to the use of signaling protocols in providing video, audio and text chatting services between at least two participants. This study compares between the bandwidth of the widely common signaling protocol; Inter-Asterisk eXchange Protocol (IAX) based-mini header and other VoIP protocols based-RTP header during the media session using different codecs types. A full duplex bandwidth has been calculated in case of first call, additional call and 30 calls using four common speech codecs. As IAX protocol has a multiplexing feature, so for each additional call, the headers of data link, network and transport protocol are reused. This means that bandwidth value in the first call differs from the value of the additional call. Unlike the other VoIP protocols, both the first and the additional call values are equal since all the headers in the audio packet should be calculated again for each call. The trunking property leads to a performance improvement of IAX protocol over the other VoIP protocols in terms of bandwidth consumption.
INTRODUCTION
Over the last decade, multimedia techniques have been developed rapidly to enable users to communicate between each other over the internet using all types of chatting services such as instant messages, audio and video1-3. In general, chatting applications sessions are handled by using signaling protocols which take place in the session layer (L5) in the Open Systems Interconnection (OSI) model4-9. Layer 5 provides the mechanism for opening, closing and managing a session between end-user application processes.
This study presents the bandwidth measurements for IAX protocol and other VoIP protocols by using different codecs and different number of calls in order to show the higher performance of IAX protocol than other VoIP protocol especially when used by network applications that focus on the data transfer capacity utilization issue.
IAX PROTOCOL
Mark Spencer has created the Inter-Asterisk eXchange (IAX) protocol for asterisk that performs VoIP signaling10,11. Many systems and servers provide the support for IAX protocol such as soft-switches (Asterisk Private Branch exchange) PBX systems and soft-phones. The IAX protocol can manage, control and transmit any type of media (especially the voice call) through the Internet Protocol (IP) networks12. Currently, IAX1 has been changed to IAX2 which is the second version of the IAX protocol. Call Setup, call teardown and real time media exchange functions are supported by IAX protocol13. By using IAX, voice streams are conveyed in binary format. Furthermore, IAX supports the trunk connections concept for any number of calls. The bandwidth usage is reduced when this concept is being used because all the protocol overhead is shared by two IAX nodes for the whole calls. Over a single link, IAX provides multiplexing channels14,15.
The IAX protocol is used for many purposes16,17; firstly, it is to minimize bandwidth usage for both control and media transmissions with specific emphasis on individual voice calls, secondly, to provide Network Address Translation (NAT) transparency, thirdly, to support the ability to transmit dial plan information and lastly, to support efficient implementation of intercom and paging features.
The IAX audio packet format during the media transporting session can be divided into four parts. They are IP header (20 Bytes), UDP header (8 Bytes), IAX mini header (4 Bytes) and the payload (the size of the payload relies on the type of the codec that the protocol uses).
OTHER VOIP PROTOCOLS
The VoIP protocols usually use RTP protocol to carry the payload during the media session except IAX protocol which uses its own header (mini header) to handle the media exchange. Such VoIP protocols-based RTP are: H.323, MGCP, SIP, RSW and Jingle18,19.
The audio packet format during the media transporting session for each of the aforementioned protocols can be divided into four parts. They are IP header (20 Bytes), UDP header (8 Bytes), RTP header (12 Bytes) and the payload (the size of the payload relies on the type of the codec that the protocol uses).
SPEECH CODECS
Following codecs used in this study to find the IAX bandwidth which are G.711, G.726, G.729, GSM20,21,22.
G.711: G.711 is an ITU-T standard for audio companding which is primarily used in telephony. Its formal name is Pulse Code Modulation (PCM) of voice frequencies. G.711 is a very commonly used waveform codec. G.711 is a narrowband audio codec that provides toll-quality audio at 64 kbit sec1. There are two slightly different versions: μ-law which is basically used in North America and A-law, which is used in the most countries outside North America. Two enhancements to G.711 have been published: G.711.0 utilizes in reducing the bandwidth usage and G.711.1 increases the audio quality by increasing the bandwidth.
G.726: G.726 is an ITU-T ADPCM speech codec standard covering the transmission of voice at rates 16, 24, 32 and 40 kbit sec1. It was introduced to supersede both G.721, which covered ADPCM at 32 kbit sec1 and G.723, which described ADPCM for 24 and 40 kbit sec1. G.726 also introduced a new 16 kbit sec1 rate. The four bit rates associated with G.726 are often referred to the bit size of a sample which are 2, 3, 4 and 5-bits respectively. The most commonly used mode is 32 kbit sec1 which doubles the usable network capacity by using half the rate of G.711. G.726 is mainly used on the international trunks in the phone network, as well as, it is the standard codec used in DECT wireless phone systems.
G.729: G.729 is an audio data compression algorithm that compressed digital voice packets of 10 msec duration. It is officially described as coding of speech at 8 kbit sec1 using code-excited linear prediction speech coding (CS-ACELP). Because of its low bandwidth requirements, G.729 is mostly used in Voice over Internet Protocol (VoIP) applications where bandwidth must be conserved, such as conference calls. G.729 has been extended with various features, commonly designated as G.729A [or A annex], G.729B [or B annex] and G.729AB.
Global System for Mobile (GSM) communication: Full Rate (FR or GSM-FR or GSM 06.10 or sometimes simply GSM) was the first digital speech coding standard used in the GSM digital mobile phone system. The bit rate of the codec is 13 kbit sec1 or 1.625 bit/audio sample (often padded out to 33 bytes/20 msec or 13.2 kbit sec1). The quality of the coded speech is quite poor by modern standards but at the time of development (early 1990s), it was a good compromise between computational complexity and quality, requiring only on the order of a million additions and multiplications per second. The codec is still widely used in networks around the world. Gradually FR will be replaced by Enhanced Full Rate (EFR) and Adaptive Multi-Rate (AMR) standards which provide much higher speech quality with lower bit rate.
The bandwidth for the first call and the additional calls are calculated for both protocols. In order to compute the required bandwidth for the number of conversations (n) full duplex, the below formula should be applied23:
(1) |
IAX Based-mini header bandwidth: In order to find the bandwidth of the first call for IAX protocol, the supported codec should be identified with its constraints. In general, the payload size of G.711 is 160 bytes and 50 packets can be transmitted per second. Firstly, the total size of the packet (TPS) in the first call must be known by determining five parameters; the size of the protocol header in the data link layer L2 (Ethernet), the size of the protocol header in the network layer (IP), the size of the transport protocol header (UDP), the size of the session protocol header (IAX) and the size of the voice payload (VPS):
TPS | = | Ethernet+IP+UDP+IAX mini header+VPS |
TPS | = | 18 bytes+20 bytes+8 bytes+4 bytes+160 bytes |
= | 210 bytes = 1680 bits |
After calculating the total size of packet, the result of TPS is multiplied by the number of packets per second (PPS) in order to find the bandwidth of the first call:
BW | = | 1680 bits×50 = 84 Kbps for the first call |
The IAX protocol has a multiplexing feature, so for each additional call, the headers of data link, network and transport protocol are reused, as a result:
TPS | = | 4 bytes+160 bytes = 164 bytes = 1312 bits |
BW | = | TPS×PPS = 1312 bits×50 |
= | 65.6 Kbps for additional call |
For example, the bandwidth of the voice chat which includes 30 calls is (Bandwidth of the first call+the bandwidth of the additional 29 calls)×2:
BW30calls | = | (84 Kbps+65.6 Kbps×29)×2 |
= | 3972.8 Kbps (approximately 4 Mbps) |
In order to find the bandwidth in case of using G.726, the VPS value should be settled to 80 bytes which is the payload size of G.726 audio codec.
Thus:
TPS | = | 18 bytes+20 bytes+8 bytes+4 bytes+80 bytes |
= | 130 bytes = 1040 bits | |
BW | = | 1040 bits×50 = 52 Kbps for the first call |
The total size of the packet for the additional call can be calculated as:
TPS | = | 4 bytes + 80 bytes = 84 bytes = 672 bits |
BW | = | TPS×PPS = 672 bits×50 |
= | 33.6 Kbps for additional call |
So, the bandwidth for 30 calls can be founded as follows:
BW30calls | = | (52 Kbps+33.6 Kbps×29)×2 |
= | 2052.8 Kbps (approximately 2 Mbps) |
In order to find the bandwidth in case of using G.729, the VPS value should be settled to 20 bytes which is the payload size of G.729 audio codec.
Thus:
TPS | = | 18 bytes+20 bytes+8 bytes+4 bytes+20 bytes |
= | 70 bytes = 560 bits | |
BW | = | 560 bits×50 = 28 Kbps for the first call |
The total of the additional packet size is:
TPS | = | 4 bytes+20 bytes = 24 bytes = 192 bits |
BW | = | TPS×PPS = 192 bits×50 |
= | 9.6 Kbps for additional call |
As a result:
BW30calls | = | (28 Kbps+9.6 Kbps×29)×2 |
= | 612.8 Kbps (approximately 0.6 Mbps) |
In order to find the bandwidth in case of using GSM, the VPS value should be settled to 33 bytes which is the payload size of GSM audio codec.
Thus:
TPS | = | 18 bytes+20 bytes+8 bytes+4 bytes+33 bytes |
= | 83 bytes = 664 bits | |
BW | = | 664 bits×50 = 33.2 Kbps for the first call |
The TPS for the additional call is:
TPS | = | 4 bytes + 33 bytes = 37 bytes = 296 bits |
BW | = | TPS×PPS = 296 bits×50 |
= | 14.8 Kbps for additional call |
Therefore:
BW30calls | = | (33.2 Kbps+14.8 Kbps ×29)×2 |
= | 924.8 Kbps (approximately 0.9 Mbps) |
A Comparison among the IAX bandwidth values for each first call, additional call and 30 calls with different types of voice codecs are illustrated in Table 1.
VoIP protocol based-RTP bandwidth: Only IAX has a trunking feature, so for each additional call, the headers of data link, network and transport protocol are reused, whereas, all the IP, UDP, RTP headers with the payload have to be calculated again for each call for the rest of VoIP protocols, as a result, the bandwidth for the first call and the additional call will be the same.
In order to find the bandwidth in case of using G.711, the VPS value should be settled to 160 bytes which is the payload size of G.711 audio codec.
Thus:
TPS | = | Ethernet+IP+UDP+RTP+VPS |
TPS | = | 18 bytes+20 bytes+8 bytes+12 bytes+160 bytes |
= | 218 bytes = 1744 bits | |
BW | = | TPS×PPS = 1744 bits×50 = 87.2 Kbps for one call |
The bandwidth for 30 calls = (Bandwidth for one call×30)×2
Table 1: | IAX bandwidth used by different codecs |
IAX: Inter-asterisk exchange, GSM: Global system for mobile communication |
BW30calls | = | (87.2 Kbps×30)×2 |
= | 5232 Kbps (approximately 5.2 Mbps) |
In order to find the bandwidth in case of using G.726, the VPS value should be settled to 80 bytes which is the payload size of G.726 audio codec.
Thus:
TPS | = | Ethernet+IP+UDP+RTP+VPS |
TPS | = | 18 bytes+20 bytes+8 bytes+12 bytes+80 bytes |
= | 138 bytes = 1104 bits | |
BW | = | TPS×PPS = 1104 bits×50 = 55.2 Kbps for one call |
The bandwidth for 30 calls = (Bandwidth for one call×30)×2
BW30calls | = | (55.2 Kbps×30)×2 |
= | 3312 Kbps (approximately 3.3 Mbps) |
In order to find the bandwidth in case of using G.729, the VPS value should be settled to 20 bytes which is the payload size of G.729 audio codec.
Thus:
TPS | = | Ethernet+IP+UDP+RTP+VPS |
TPS | = | 18 bytes+20 bytes+8 bytes+12 bytes+20 bytes |
= | 78 bytes = 624 bits | |
BW | = | TPS×PPS = 624 bits×50 = 31.2 Kbps for one call |
The bandwidth for 30 calls = (Bandwidth for one call×30)×2
BW30calls | = | (31.2 Kbps×30)×2 |
= | 1872 Kbps (approximately 1.9 Mbps) |
In order to find the bandwidth in case of using GSM, the VPS value should be settled to 33 bytes which is the payload size of GSM audio codec.
Thus:
TPS | = | Ethernet+IP+UDP+RTP+VPS |
TPS | = | 18 bytes+20 bytes+8 bytes+12 bytes+33 bytes |
= | 91 bytes = 728 bits | |
BW | = | TPS×PPS = 728 bits×50 = 36.4 Kbps for one call |
Table 2: | RTP bandwidth used by different codecs |
RTP: Real-time transport protocol, GSM: Global system for mobile communication |
The bandwidth for 30 calls = (Bandwidth for one call×30×2
BW30calls | = | (36.4 Kbps×30)×2 |
= | 2184 Kbps (approximately 2.2 Mbps) |
A comparison among the RTP bandwidth values for each first call, additional call and 30 calls with different types of voice codecs are illustrated in Table 2.
CONCLUSION
Due to having a trunking property by IAX protocol, the performance improvement of IAX over other VoIP protocols in terms of bandwidth consumption has been introduced. Many codecs have been used for bandwidth calculations (G.711, G.726, G.729 and GSM) as well as different number of calls (first call, additional call and thirty calls). This difference in codec type and number of calls are mainly to prove the priority of using IAX protocol rather than other VoIP protocol in some media services that concentrate on the bandwidth consumption issue.
SIGNIFICANT STATEMENT
This study shows the performance improvement of IAX protocol over other VoIP protocols by providing a comparison in terms of bandwidth consumption. Four different codecs have been used during the bandwidth calculations in case of the first call, additional call and 30 calls in order to prove that as having a trunking property in IAX protocol, IAX provides better performance than any other VoIP protocol regardless the codec type supported or the number of calls. This comparison emphasizes the preferential use of IAX protocol in some media services that concentrate on the bandwidth consumption issue.