IP TelephonyIP Telephony(Voice Over IP)(Voice Over IP)
Patrick DuffPatrick Duff
Illustrations from Global KnowledgeIllustrations from Global Knowledge
Why Voice Over IPWhy Voice Over IP
Cheaper voice communicationsCheaper voice communications
Offers the ability to combine a voice Offers the ability to combine a voice network with a data networknetwork with a data network
Voice Over IP will offer solutions to Voice Over IP will offer solutions to efficiently send voice (and video) over pre-efficiently send voice (and video) over pre-existing networks existing networks
DefinitionsDefinitions
IP – Internet Protocol; Determines the IP – Internet Protocol; Determines the format of packets and their addresses as format of packets and their addresses as they are sent over the networkthey are sent over the networkRTP – Realtime Transport Protocol; part of RTP – Realtime Transport Protocol; part of voice packet that contains digitized audiovoice packet that contains digitized audioFrame – container of data sent over a Frame – container of data sent over a networknetworkPacket – smaller container sent over a Packet – smaller container sent over a networknetwork
DefinitionsDefinitions
Multiplexers – combine many Multiplexers – combine many communications to be transmitted on one communications to be transmitted on one linelineCodec – encoder/decoderCodec – encoder/decoderPCM – pulse code modulationPCM – pulse code modulationLAN – Local Area NetworkLAN – Local Area NetworkWAN – Wide Area NetworkWAN – Wide Area NetworkPayload – information delivered by the Payload – information delivered by the packet or framepacket or frame
Existing NetworksExisting Networks
Already send out data packetsAlready send out data packets
Maximum Transmission Latency is the Maximum Transmission Latency is the maximum amount of bytes allowed in a maximum amount of bytes allowed in a frame (packet)frame (packet)
Ethernet transmission MTUs are 1500, Ethernet transmission MTUs are 1500, approximately 15 times larger than Voice approximately 15 times larger than Voice MTUsMTUs
So?So?
It takes 214 ms for an Ethernet frame to It takes 214 ms for an Ethernet frame to reach it’s destinationreach it’s destinationA Voice packet has to wait for this frame to A Voice packet has to wait for this frame to finish, exceeding the 150 ms ideal for finish, exceeding the 150 ms ideal for voice communication, and even the 190 voice communication, and even the 190 ms delay for slightly delayed voice ms delay for slightly delayed voice communicationcommunicationThis delay is unacceptable in voice This delay is unacceptable in voice communicationcommunication
SolutionsSolutions
Prioritizing traffic (voice before data)Prioritizing traffic (voice before data)Use Frame Relay Access Device to break Use Frame Relay Access Device to break down data frames into the same size as down data frames into the same size as voice packetsvoice packets The FRAD will then alternate voice and data The FRAD will then alternate voice and data
packets according to prioritypackets according to priority
Upgrading to a T1Upgrading to a T1 Reducing transmission time from 214 ms to Reducing transmission time from 214 ms to
134 ms134 ms
MultiplexersMultiplexers
A voice communications requires only a A voice communications requires only a 4Khz range of frequency4Khz range of frequency
Existing networks can handle a lot more Existing networks can handle a lot more than thisthan this
Multiplexers put multiple communication Multiplexers put multiple communication channels through one wirechannels through one wire
Time Division MultiplexersTime Division Multiplexers
Time Division converts an analog signal Time Division converts an analog signal into a digital signalinto a digital signal
Time Division Multiplexers put each Time Division Multiplexers put each channel into a specific time slotchannel into a specific time slot
Each channel has it’s turn to send it’s Each channel has it’s turn to send it’s signal over the networksignal over the network
Codecs for Voice CompressionCodecs for Voice Compression
““G.711 is a specific PCM scheme that G.711 is a specific PCM scheme that samples voice 8,000 times per second and samples voice 8,000 times per second and converts the 8-bit samples into a digital converts the 8-bit samples into a digital stream.”stream.”Other codecsOther codecs G.729G.729 G.723.1G.723.1
Feeser, Stuart. “Introduction to Voice Over IP”Feeser, Stuart. “Introduction to Voice Over IP”
G.711 PCMG.711 PCM
The G.711 codec uses an 8000 sample The G.711 codec uses an 8000 sample per second clock to convert the 8 bit signal per second clock to convert the 8 bit signal into a digital streaminto a digital stream
At each point of amplitude, the measure is At each point of amplitude, the measure is increased to improve fidelityincreased to improve fidelity
This is called compandingThis is called companding
Companding MethodsCompanding Methods
µ-law - used in North Americaµ-law - used in North America
A-law - used in Europe A-law - used in Europe
µ-lawµ-law
16 logarithmic divisions16 logarithmic divisions
Each contains 16 linearly spaced steps Each contains 16 linearly spaced steps
Only has 255 stepsOnly has 255 steps 0 is not used0 is not used
A-lawA-law
16 logarithmic divisions16 logarithmic divisions
Each contains 16 logarithmically spaced Each contains 16 logarithmically spaced stepssteps
Uses all 256 stepsUses all 256 steps
Size of Voice PacketsSize of Voice Packets
Every byte is not sent out as soon as it is Every byte is not sent out as soon as it is encodedencoded
A packet is created with a 58 byte headerA packet is created with a 58 byte header Two main sizes of packets are usedTwo main sizes of packets are used
20 ms20 ms
60 ms60 ms
20 millisecond packets20 millisecond packets
Collects data for 20 msCollects data for 20 ms
50 packets per second50 packets per second
160 bytes per packet160 bytes per packet
Calculating overheadCalculating overhead 58 bytes * 8 bits per byte * 50 packets per 58 bytes * 8 bits per byte * 50 packets per
second = 23.2 Kbps overheadsecond = 23.2 Kbps overhead
20 millisecond packets20 millisecond packets
BenefitsBenefits Less delay than 60 ms samplingLess delay than 60 ms sampling Good for LANs or WANsGood for LANs or WANs
DisadvantagesDisadvantages More overhead More overhead
50 packets must be sent per second50 packets must be sent per second
60 millisecond packets60 millisecond packets
Collects data for 60 msCollects data for 60 ms
16 2/3 packets per second16 2/3 packets per second
480 bytes per packet480 bytes per packet
Calculating overheadCalculating overhead 58 bytes * 8 bits per byte * 16.7 packets per 58 bytes * 8 bits per byte * 16.7 packets per
second = 7.75 Kbps overheadsecond = 7.75 Kbps overhead
60 millisecond packets60 millisecond packets
BenefitsBenefits Less overheadLess overhead
Only 16 2/3 packets need to be sent per secondOnly 16 2/3 packets need to be sent per second Good for connecting through modemsGood for connecting through modems
DisadvantagesDisadvantages More delayMore delay
58 byte header58 byte header
6 bytes for the MAC address source6 bytes for the MAC address source
6 bytes for the MAC address destination6 bytes for the MAC address destination
4 bytes for IP address originating source4 bytes for IP address originating source
4 bytes for IP address destination4 bytes for IP address destination
2 bytes for Transport Address Source2 bytes for Transport Address Source The port address at the point of originThe port address at the point of origin
2 bytes for Transport Address Destination2 bytes for Transport Address Destination The port address at the destinationThe port address at the destination
58 byte header (cont.)58 byte header (cont.)
1 byte for priority of the packet1 byte for priority of the packet
2 bytes for the sequence number2 bytes for the sequence number Where this packet belongs in the total number Where this packet belongs in the total number
of packetsof packets
1 byte for the HOP counter1 byte for the HOP counter How many routers this packet went throughHow many routers this packet went through
2 bytes for the Payload type2 bytes for the Payload type What this packet is carryingWhat this packet is carrying
58 byte header (cont.)58 byte header (cont.)
4 bytes for the Timestamp header4 bytes for the Timestamp header4 bytes for the synchronization source4 bytes for the synchronization source IP address of the computer that created this IP address of the computer that created this
packetpacket
1 byte for the Version1 byte for the Version Version number of the itemsVersion number of the items
3 bytes for the Protocol ID3 bytes for the Protocol ID Rules governing hardware address, network Rules governing hardware address, network
address and transport addressaddress and transport address
58 byte header (cont.)58 byte header (cont.)
4 bytes for flags4 bytes for flags
4 bytes for validity of the payload 4 bytes for validity of the payload (checksum)(checksum)
4 bytes for length4 bytes for length
4 bytes for frame check sequence4 bytes for frame check sequence Payload validity checked at each router or Payload validity checked at each router or
ethernet switchethernet switch
Packet SwitchingPacket Switching
Voice Packets containVoice Packets contain
RTP = Real Time ProtocolRTP = Real Time Protocol
UDP = User Datagram ProtocolUDP = User Datagram Protocol
IP = Internet ProtocolIP = Internet Protocol
MAC = Media Access ControlMAC = Media Access Control
When a packet is sent outWhen a packet is sent out
Each part of the Each part of the header directs the header directs the packet to it’s packet to it’s destinationdestination
Voice Over IP in ActionVoice Over IP in Action
Convert voice to dataConvert voice to data
Send out data, start creating new packetSend out data, start creating new packet
What happens when Net Traffic is heavy What happens when Net Traffic is heavy and packets arrive out of order or in and packets arrive out of order or in different intervals than sent out?different intervals than sent out?
The Jitter BufferThe Jitter Buffer
Collects the packetsCollects the packets
Each packet is time stamped according to Each packet is time stamped according to the 8000 tick per second clock as to when the 8000 tick per second clock as to when the packet was createdthe packet was created
The jitter buffer will collect all the packets The jitter buffer will collect all the packets and detect time irregularities between and detect time irregularities between packets with a synchronized 8000 tick per packets with a synchronized 8000 tick per second clock second clock
The Jitter BufferThe Jitter Buffer
So packets arrived too fast, too slow, or So packets arrived too fast, too slow, or out of orderout of order
Step 1, reorder packetsStep 1, reorder packets
Step 2, determine slowest arriving packetStep 2, determine slowest arriving packet
Step 3, determine delay of packetStep 3, determine delay of packet
Step 4, delay all other packets the same Step 4, delay all other packets the same amount of timeamount of time
Silence SuppressionSilence Suppression
Most of the time during voice Most of the time during voice communications, one member is not communications, one member is not talkingtalking
Instead of sending empty packets, don’t Instead of sending empty packets, don’t send any packetssend any packets
After not sending packets, how do we re-After not sending packets, how do we re-synchronize with the jitter buffer?synchronize with the jitter buffer?
Silence SuppressionSilence Suppression
20 ms packet example:20 ms packet example:Each packet should arrive every 160 ticksEach packet should arrive every 160 ticksThe packets aren’t out of order, but have The packets aren’t out of order, but have skipped some timeskipped some timeThe jitter buffer looks at the time stamp The jitter buffer looks at the time stamp and delays the packet according to the and delays the packet according to the amount of time between the last packet’s amount of time between the last packet’s timestamp and the current packet’s timestamp and the current packet’s timestamptimestamp
RTP MixersRTP Mixers
RTP mixers combine multiple incoming RTP mixers combine multiple incoming signals, then sends them to all intended signals, then sends them to all intended receiversreceivers
Source timing isn’t always synchronizedSource timing isn’t always synchronized
The RTP mixer decides it’s own time The RTP mixer decides it’s own time stamping and sends the combined signal stamping and sends the combined signal with a new time stampwith a new time stamp
Why RTP Mixers?Why RTP Mixers?
A conference call with 4 callersA conference call with 4 callers
One voice signal goes to the other 3One voice signal goes to the other 3
If two people talk at the same timeIf two people talk at the same time The mixer mixes the two voices and sends it The mixer mixes the two voices and sends it
to the two silent peopleto the two silent people The two people talking don’t get the mixed The two people talking don’t get the mixed
signal, only the signal of the other person signal, only the signal of the other person talkingtalking
TranslatorTranslator
If two people on the same Voice Over IP If two people on the same Voice Over IP call use two different size packetscall use two different size packets 60 ms60 ms 20 ms20 ms
The translator on each side will accept the The translator on each side will accept the incoming data even though it’s sending out incoming data even though it’s sending out data in a different formatdata in a different format
TCPTCP
Transfer Control ProtocolTransfer Control Protocol
3 step connection setup3 step connection setup
Sends 1 packet, waits for Sends 1 packet, waits for acknowledgementacknowledgement
Sends 2 packets, waits for Sends 2 packets, waits for acknowledgementacknowledgement
Number of packets increases Number of packets increases exponentiallyexponentially
TCP (cont.)TCP (cont.)
Number of packets increases Number of packets increases exponentially until a threshold is reachedexponentially until a threshold is reached
At this threshold, the number of packets At this threshold, the number of packets sent reverts back to one and then increase sent reverts back to one and then increase linearly until a new lower threshold is linearly until a new lower threshold is determineddetermined
This second threshold is the connection This second threshold is the connection speedspeed
TCPTCPGood for data, bad for voiceGood for data, bad for voice
Too much delay in the 3 step setupToo much delay in the 3 step setup
The acknowledgement confirms that data The acknowledgement confirms that data is transferred successfully, but creates too is transferred successfully, but creates too much delay for voice transfermuch delay for voice transfer
UDPUDP
User Datagram ProtocolUser Datagram Protocol
No connection acknowledgementNo connection acknowledgement
No transfer acknowledgementNo transfer acknowledgement
Send packets and forgets themSend packets and forgets them
Since 5% packet loss is acceptable for a Since 5% packet loss is acceptable for a voice communication, UDP is idealvoice communication, UDP is ideal
Basics of TelephonyBasics of Telephony
TransmissionTransmission Transfer of data from one end to anotherTransfer of data from one end to another
SwitchingSwitching Converting data from one medium to anotherConverting data from one medium to another Analog to DigitalAnalog to Digital
SignalingSignaling Setting up and tearing down a callSetting up and tearing down a call
Making a CallMaking a Call
Dial a numberDial a number
Sends a message to your Private Branch Sends a message to your Private Branch eXchangeeXchange
Sends a message to your Central OfficeSends a message to your Central Office Generates Initial Address MessageGenerates Initial Address Message
Connects to CO of receiving endConnects to CO of receiving end Sometimes through Tandem COSometimes through Tandem CO
Sends message to PBX of receiving endSends message to PBX of receiving end
Rings the phone on the receiving endRings the phone on the receiving end
Making a CallingMaking a Calling
SignalingSignaling
SS7 (System Signaling 7)SS7 (System Signaling 7) Allows a telephone network to setup route and Allows a telephone network to setup route and
control callscontrol calls 3 major components of SS73 major components of SS7
SCP (Signal Control Point)SCP (Signal Control Point) Helps determine how to route a callHelps determine how to route a call
SSP (Signal Switching Point)SSP (Signal Switching Point) Starts, teminates and combines callsStarts, teminates and combines calls
STP (Signal Transfer Point)STP (Signal Transfer Point) Routes network traffic between switchesRoutes network traffic between switches
SignalingSignaling
AddressingAddressing
E.164 AddressingE.164 Addressing NANP North American NANP North American
Numbering PlanNumbering Plan Area codeArea code CO numberCO number Line NumberLine Number
ConclusionConclusion
FREE LONG DISTANCE CALLING!FREE LONG DISTANCE CALLING!
Existing networks are barely able to carry Existing networks are barely able to carry VOIP communicationsVOIP communications
More developments compress the voice More developments compress the voice communication more and more, as communication more and more, as networks keep improvingnetworks keep improving
Possibly the new way to make phone Possibly the new way to make phone calls?calls?