Title: An Introduction to Voice over IP
1An Introduction to Voice over IP
- Lance Parr
- Lead Systems Administrator
- VoIP Laboratory Manager
- Texas AM University
- College Station, Texas
2What 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.
3Voice 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.
4VoIP 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
5Heres how it stacks up
6How they fit in The ISO Model
7RTCP
RTP
UDP
TCP
Layer 3 IP
Layer 2 Ethernet/ATM
8Comparison of Packet vs. Circuit Switching
9H.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.
10H.323 Entities
- Terminals (LAN Endpoints)
- Gateways (Optional but really useful)
- Gatekeepers (Also optional)
- MCUs
11H.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
12H.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
13H.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
14Call 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
15Call 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
16H.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.
17Signaling 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
18H.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.
19H.323 H.225 RAS Messages
- Request in Progress
- RIP
- Bandwidth change
- BRQ, BCF, BRJ
- Resource Availability
- RAI (Indicator)
- RAC (Confirm)
20H.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
21H.323 H.225 RAS Messages
- Status Queries
- IRQ info request
- IRR info request response
- IACK info request ACK
- INACK - info request NACK
22H.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
23H.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 calls status
24H.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
25H.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 terminals 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
26H.323 H.245 Messages
- Request Mode
- Receive terminal requests type of transportation
from a transmit terminal - Types of Modes
- Video
- Audio
- Data
- Encryption
27H.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
28H.323 Call Setup via Gatekeepers
29Directory 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
30Gatekeeper Peering and Redundancy
31Codec 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/
32Codec 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
33Codec 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).
34Codec 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/p
roducts/g722-1.htm
35Codec 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.
36Codec 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.
37Codec 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.
38Codec 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
39Codec 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.
40Codec 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
41Codec 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.
42Codec 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
43Codec 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
44Codec 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
45GIPS
- 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.c
om
46GIPS (cont)
- GIPS Enhanced G.711QualityAt parity with PSTN,
even under severe packet loss conditions - SAMPLING RATE8 kHz
- BITRATEVariable, in average equal to
G.711COMPLEXITY Very lowPACKET LOSS ROBUSTNESS
Very highALGORITHMIC DELAYEqual to G.711 - VOICE ACTIVITY DETECTION Available
- COMPATIBILITYTransparent 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 COMPATIBLEYes
47Speech 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 lt 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
48Notes 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
49Matching PSTN Quality
50Better Than PSTN Quality
51VOIP Codecs - bandwidth vs. Quality
- The tradeoffs
- How much do you need (quality)?
- How much can you afford?
- How much coding delay can you tolerate?
- Do you have special needs?
52Issues with VoIP
- Firewalls
- NAT
- QoS
- Network Testing
53VoIP Issues Firewalls
- A set of security mechanisms than an organization
implements to prevent unsecured access from the
outside world to its internal network. - Typically work by blocking access of certain
network protocols to specific ports.
54VoIP Issues NAT
- Helps protect the intranet from exposure to
unwanted traffic by providing one single external
address to remote users. - Translates local intranet addresses into an
external address. - Remote users connect to this external address to
connect to the local user, without actually
knowing its local address.
55Issues with Firewalls and NAT
- H.323 requires the use of specific static ports
for RAS messages, and a number of dynamic ports
for RTP. - SIP has one port (5060) for SIP messages, as well
as dynamic ports for RTP. - For these protocols to pass the firewall, the
specific static and the range of dynamic ports
must be opened for all traffic.
56H.323 Ports used by Cisco equipment
- Source Call Manager Dest. Gatekeeper
- Description Type Destination Port
- H.225 RAS UDP 1719
- Source Call Manager Dest. Call Manager
- Description Type Destination Port
- H.225 Call Setup TCP 1720
- H.245 Call Control TCP 1024-5000
57H.323 Ports used by Cisco equipment
- Source Gatekeeper Dest. Gatekeeper
- Description Type Destination Port
- H.225 RAS UDP 1719
- Source Terminal Dest. Call Manager
- Description Type Destination Port
- Skinny TCP 2000
58H.323 Ports used by Cisco equipment
- Source Terminal Dest. Terminal
- Description Type Destination Port
- RTP UDP 1024-65535
- RTCP UDP 1024-65535
59Port Usage
- Cisco Call Manager -- Call Control for IP Phone
- 2000 TCP
- Cisco Call Manager -- H.225 Signaling
- 1720 TCP
- Cisco IP Phone -- RTP Streaming
- 16384-32766 UDP (dynamically allocated)
- Cisco IP Phone TFTP, DNS
- 49152-53247 TCP (dynamically allocated)
- Cisco IP Phone Call Control
- 49152-53247 TCP (dynamically allocated)
60Voice Over IP - the reasons that we have all
heard!
- Perception
- It is cheaper to run just one network.
- It is easier to integrate advanced technology
when your phone is on the network (CTI). - If you dont do it someone else will.
- Reality
- Convergence will occur some day so it is
important that we build the required
relationships now.
61TCP/IP implementations
- Departmental VOIP PBX
- Centralized VOIP PBX
- Road warriors
- VOIP trunking
- Intranet
- Internet
62VOIP decisions
- Power for VOIP phones
- E-911 mapping
- Which Codec to use
63Parameters the impact VOIP- How much is to much?
- Packet loss
- Latency
- Jitter
64QoS issues
- QoS has been added to the H.245 OLC packets to
allow endpoints to set QoS parameters for the
media streams, including RSVP parameters. H.323
only communicates QoS information between H.323
devices. Actual reservation and control of
resources is outside the scope of the standard.
65QoS options
- Prioritize by Application
- Prioritize by Address - many applications
- Create separate VLANs
66(No Transcript)