670 likes | 1.19k Views
An Introduction to Voice over IP. Lance Parr Lead Systems Administrator VoIP Laboratory Manager Texas A&M University College Station, Texas. What is VoIP?.
E N D
An Introduction to Voice over IP Lance Parr Lead Systems Administrator VoIP Laboratory Manager Texas A&M University College Station, Texas
What is VoIP? • VoIP (Voice over Internet Protocol), sometimes referred to as Internet telephony, is a method of digitizing voice, encapsulating the digitized voice into packets and transmitting those packets over a packet switched IP network.
Voice over IP - the basics • Most implementations use H.323 protocol • Same protocol that is used for IP video. • Uses TCP for call setup • Traffic is actually carried on RTP (Real Time Protocol) which runs on top of UDP.
VoIP Protocols • H.323 Multimedia Standard • H.225 RAS - Registration, Admission, Status • Q.931 - Call Signaling (Setup & Termination) • H.245 - Call Control (Preferences, Flow Control, etc.) • Lots of G.7XX CODECS for audio • SIP – Session Initialization Protocol • Covered in next presentation
RTCP RTP TCP UDP Layer 3 IP Layer 2 Ethernet/ATM
H.323 • Definition: a multimedia standard that provides a foundation to transport voice, video and data communications in an IP based non-QOS network. • H.323 Zone • Collection of terminals, gateways, MCUs registered with a single gatekeeper.
H.323 Entities • Terminals (LAN Endpoints) • Gateways (Optional but really useful) • Gatekeepers (Also optional) • MCUs
H.323 Equipment • Gateway • Device that connects H.323 voice network to non-H.323 voice network (SIP or PSTN) • Allows H.323 terminals to communication with non-H.323 terminals • Gatekeeper • Provides address translation (H.323 & E.164 to IP) • Admission control for H.323 terminals and gateways • Manage bandwidth allocation • Other optional services
H.323 Equipment • MCU (multipoint control unit) • MC – multipoint controller • Routes call and control signaling to ensure endpoint compatibility • MP – multipoint processor • Switches, mixes and processes vice and video streams to conferencing equipment
H.323 Equipment • Terminal • An endpoint that supports 2-way streaming with another H.323 terminal or gateway • Originates and terminates calls • Includes videoconferencing stations, hard phones, & soft phones
Call Setup using H.225 RAS • Registration, Admission and Status (RAS), is responsible for registration, admission, and disengaging procedures between H.323 Gatekeeper and Gateway. • Discovery: GRQ, GCF, GCR • Unicast Discovery using UDP port 1718. Endpoint knows GK IP & register directly • Multicast using UPD multicast address 224.0.1.41 – non static, less admin overhead
Call Setup using H.225 RAS • Registration by terminals, Gateways & MCUs using H.323 ID or E.164 address • RRQ Registration Request • RCF Registration Confirm • RRJ Registration Reject • URQ Un-registration Request • URF Un-registration Confirm • URJ Un-registration Confirm
H.323 – H.225 RAS Messages • LRQ – location request • Gatekeeper A requests contact information from directory gatekeeper. • LCF – location confirm • Gatekeeper B returns IP address of destination gateway to gatekeeper A.
Signaling using Q.931 messages • Q.931 is a signaling protocol used to setup, manage, and terminate H.323 connections between endpoints. • ARQ, ACF, ARJ Admission messages • LRQ, LCF, LRJ Location Request messages • IRQ, IRR, IACK, INAK Status messages • BRQ, BCF, BRJ, RAI, RAC Bandwdith messages
H.323 – H.225 RAS Messages • ARQ – admission request • Gateway A requests admission to make a call. • ACF – admission confirm • Gatekeeper A responds with IP address of destination gateway.
H.323 – H.225 RAS Messages • Request in Progress • RIP • Bandwidth change • BRQ, BCF, BRJ • Resource Availability • RAI (Indicator) • RAC (Confirm)
H.323 – H.225 RAS Messages • Gatekeeper Discovery • GRQ, CCF, GRJ • Terminal/Gateway Registration • RRQ, RCF, RRJ • Terminal/Gateway Registration • URQ, UCF, URJ • Disengage • DRQ, DCF, DRJ
H.323 – H.225 RAS Messages • Status Queries • IRQ – info request • IRR – info request response • IACK – info request ACK • INACK - info request NACK
H.323 – Q.931 Messages • Alerting • Called user has been alerted, (phone is ringing) • Call Proceeding • Call has been established, no more call establishment information will be accepted • Connect • Acceptance of call by called party • Setup • Indicates H.323 party wants to setup a connection to called party
H.323 – Q.931 Messages • Release Complete • H.225 (Q.931) call has been released, signaling channel is now open • Status • Sent when unknown call signaling message or a status inquiry message is received • Status Inquiry • Requests a call’s status
H.323 – H.245 • Establishes logical channels for transmission of H.323 data • Negotiates: • channel usage • master/slave configuration • flow control • Codec used • H.245 ports • 1024-5000 TCP in Cisco implementation
H.323 – H.245 Messages • Master/Slave Determination • Determines which terminal will be master which will be slave in the call • Terminal Capability Set • Contains information on a terminal’s ability to send and receive multimedia streams • Open Logical Channel • Opens logical channel for transport of multimedia data • Close Logic Channel • Closes the logical channel between two endpoints
H.323 – H.245 Messages • Request Mode • Receive terminal requests type of transportation from a transmit terminal • Types of Modes: • Video • Audio • Data • Encryption
H.323 – H.245 Messages • Send Terminal Capacity Set • Instructs far-end terminal to send transmit and receive capabilities • End Session Command • Indicates the end of the H.245 session
Directory and Tier 1 Gatekeeper Call Setup Directory Gatekeeper 3. LRQ 2. LRQ Tier 1 Gatekeeper Tier 1 Gatekeeper 4. LCF 1. ARQ 2. RIP 8. ACF 7. ARQ 5. ACF 6. Q.931 Call Setup VoIP PBX VoIP PBX 8. Q.931Call Proceed H.245 RTP IP Phone IP Phone
Codec ITU G.711 • G.711 is the international standard for encoding telephone audio on a 64 kbps channel. It is a pulse code modulation (PCM) scheme operating at a 8 kHz sample rate, with 8 bits per sample, fully meeting ITU-T recommendations. The module is designed and tested on the TI TMS320C54x platform but can be ported to other DSP and RISC platforms, as well as MS Windows. Information from http://www.spiritcorp.com/
Codec ITU G.711(cont) • Features • Fully compliant with ITU-T G.711 • 64 kbit/s expander input rate • 104 or 112 kbit/s expander output rate • A-law or mu-law expander input • Uniform PCM expander output • 104 or 112 kbit/s compressor input rate • 64 kbit/s compressor output rate • Uniform PCM compressor input • A-law or mu-law compressor output • Selectable frame/buffer memory size according to the system needs • Very simple application interface • Compliant with TI's eXpressDSP standard. Code is reentrant, supports multithreading and dynamic memory allocation. At the same time allows direct (non-eXpressDSP) interface to enable static memory allocation • Can be easily ported to any DSP or RISC platform
Codec ITU G.722.1 • G.722.1 is a low-bit-rate wideband coder, which codes speech at 24 kbps or 32 kbps. The quality at 32 kbps is the same as that of G.722 SB-ADPCM at 64 kbps. It uses a transform-coding scheme called Modulated Lapped Transform (MLT), with a 20 ms frame size. The algorithmic delay is 40 ms (20 ms frame size + 20 ms look-ahead).
Codec ITU G.722.1(cont) • Supports all bit rates viz. 16/32 kbps at 16 khz sampling rate • C callable API for initialization, encoding and decoding of speech data • Supports Multi-channel capability • Optimized implementation • Bit Compliant with ITU-T test vectors Information found at http://www.ittiam.com/pages/products/g722-1.htm
Codec ITU G.723.1 • G.723.1 is a speech compression algorithm standardized by ITU. G.723.1 has dual coding rates at 5.3 and 6.3 kbps. The vocoders process signals with 30 ms frames and have a 7.5 ms look-ahead and low distortion while passing DTMF tones through. The input/output of this algorithm is 16 bit linear PCM samples. • Middle bit rate G.723.1 vocoder delivers one of the highest compression ratios of any of the current ITU standards without compromising speech quality. This vocoder can perform full duplex compression and decompression functions for multimedia, visual telephony, wireless telephony, and videoconferencing products.
Codec ITU G.723.1 (cont) • Features • Fully bit exact with ITU-T G.723.1 • 5.3 and 6.3 Kbps encoded bit stream rates • Discontinuous transmission support (DTX) using Voice Activity Detection (VAD) and Comfort Noise Generation (CNG) • Includes optional High Pass Filter and optional Post Filter • Direct interface with PCM 8KHz sampled data. Both sample-by-sample and block based processing supported • Very simple application interface • Can be easily ported to any platform.
Codec ITU G.726 • ITU-T G.726 has speech compression and decompression at rates of 16, 24, 32 and 40 Kbps based on Adaptive Differential Pulse Code Modulation (ADPCM). It can be effectively used for speech compression in such applications as speech storing, digital circuit multiplication and telephony applications.
Codec ITU G.726 (cont) • Features • Fully bit exact with ITU-T G.726 • Sample-by-sample or block based analog input • 16, 24, 32 or 40 Kbps bit stream rate • A-law, mu-law and 14-bit uniform 8 kHz PCM input/output • Direct interface with PCM 8KHz sampled data. Both sample-by-sample and block based processing supported • Very simple application interface • Can be easily ported to any DSP or RISC platform
Codec ITU G.728 • ITU-T recommendation G.728 Annex G is the fixed-point version of the coding of speech at 16kbps using Low Delay Code Excited Linear Prediction (LD-CELP). It uses backward adaptation of predictors and gain to achieve an algorithmic delay of 0.625 ms. Under error-free transmission conditions the perceived quality of a 16 kbit/s LD-CELP codec is equivalent to that of a codec conforming to 32 kbit/s ADPCM. The codec is suitable for applications such as VoIP.
Codec ITU G.728(cont) • Features: • API functions for initialization, encoding and decoding of speech data • Supports Multi-channel operation Information from http://www.hellosoft.com
Codec ITU G.729 • ITU-T recommendation G.729 codec belongs to the Code-Excited Linear-Prediction coding (CELP) model speech coders and uses Conjugate-Structure Algebraic-Code-Excited Linear-Prediction (CS_ACELP) for coding speech signals at 8 kbits/sec. The coder operates on speech frames of 10 ms corresponding to 80 samples at a sampling rate of 8000 samples per second and the total algorithmic delay is 15 milliseconds. The encoder functionality includes Voice Activity Detection and Comfort Noise Generation (VAD/CNG) and the decoder is capable of accepting silence frames. G.729 provides near toll quality performance under clean channel conditions and is the default codec as prescribed by the Frame Relay Forum and is also suitable for voice over network (VoIP) applications.
Codec ITU G.729 (cont) • Features: • C-callable API functions for initialization, encoding and decoding of speech data • Voice Activity Detection and Comfort Noise Generation • Supports Multi-channel operation and Reentrancy • Code passes all test vectors specified by ITU-T • Optimized implementation
Codec ITU G.729A • ITU-T recommendation G.729 annex A (referred as G.729A) is the reduced complexity version of G.729 recommendation and operates at 8 kbits/sec. This version is developed mainly for multimedia simultaneous voice and data applications, although the use of the codec is not limited to these applications. This version is bit stream interoperable with the full version (G729). The coder operates on speech frames of 10 ms corresponding to 80 samples at a sampling rate of 8000 samples per second and the total algorithmic delay is 15 milliseconds. The encoder functionality includes Voice Activity Detection and Comfort Noise Generation (VAD/CNG) and the decoder is capable of accepting silence frames. The performance of this codec may not be as good as the G729 in certain circumstances. The codec is suitable for voice over network (VoIP) applications
Codec ITU G.729A (cont) • Features: • C-callable API functions for initialization, encoding and decoding of speech data • Voice Activity Detection and Comfort Noise Generation • Supports Multi-channel operation and Reentrancy • Code passes all test vectors specified by ITU-T • Optimized implementation
GIPS • GIPS Enhanced G.711 - G.711 with GIPS developed enhancement providing superior packet loss robustness. GIPS Enhanced G.711 consists of the G.711 codec combined with an enhancement to provide packet loss robustness. Call setup is done with G.711 and the enhancement is detected and activated after call setup if both end points have the enhancement. The enhancement unit works similarly to an encryption method. The packets are transcoded to provide packet loss robustness instead of privacy. A SoundWare solution with GIPS Enhanced G.711 in combination with NetEQ™ provides a PSTN speech quality level at packet loss/delay rates up to 10%. This is achieved without increasing the bit rate, and without significant increases in latency and complexity. • Information provided by http://www.globalipsound.com
GIPS (cont) • GIPS Enhanced G.711Quality:At parity with PSTN, even under severe packet loss conditions • SAMPLING RATE:8 kHz • BITRATE:Variable, in average equal to G.711COMPLEXITY: Very lowPACKET LOSS ROBUSTNESS: Very highALGORITHMIC DELAY:Equal to G.711 • VOICE ACTIVITY DETECTION: Available • COMPATIBILITY:Transparent with G.711 at the end-points and is only activated if the both end-points are improved with a GIPS codecDTMF, • FAX AND MODEM COMPATIBLE:Yes
Speech Codec Comparison • Codec TypeRate Algorithmic Delay(ms) • G.711 A-Law / µ-Law 64 0 • G.722 SB-ADPCM 64/ 56/ 48 0 • G.723.1/ AMP-MLQ/ACELP* 6.3/ 5.3 37.5 • G.726 ADPCM 16/ 24/ 32/ 40 0 • G.727 Embedded ADPCM 16/ 24/ 32/ 40 0 • G.728 LD-CELP 16 < 2 • G.729 CS-ACELP 8 15 • G.729 ACS-ACELP 8 15 • G.729 BCS-ACELP* 8 15 • G.729 ABCS-ACELP* 8 15
Notes on Table • All codecs are voice-band and run at an 8kHz sampling rate, except for G.722 which has a 7kHz bandwidth and 16kHz sample rate • * These rates are nominal due to utilization of silence compression schemes • G.711 and G.722 are provided free of charge with G.728 if required for H.320 • Algorithmic delay of "non-predictive" codecs is effectively zero Information from http://www.spa.com.au/faqs/codecs.html