Post on 25-Feb-2016
description
The Voice Over Internet Protocol (VOIP)Presented by: Christopher ThorpeCourse: TCP/IP and Upper Layer ProtocolsInstructor: Professor AmerMay 10th 2011
Slides used from: Varsha Mahadevan, Kevin Jeffay,
Behrouz Forouzan
VOIP Standards
International Telecommunications Union (ITU) H.323 – Visual Telephone Systems and
Equipment for Local Area Networks which Provide a Non-Guaranteed Quality of Service
Internet Engineering Task Force (IETF) Session Initiation Protocol (SIP) Media Gateway Control (Megaco) Signal Transport (SigTran)
Reasons for VOIP’s growth
Demand for multimedia communication.
Demand for integration of voice and data networks.
Demand for greater flexibility. Cost reduction in long distance
telephone calls.
VOIP Components Media Encoding
G.711, Pulse Coded Modulation, Excellent quality, Delay << 1ms G.723.1, Algebraic Codebook Excited Linear Prediction, Good quality,
Delay 67-97ms G.729, Conjugate Structure-ACELP, Good quality, Delay 25-35ms
Gateway Control ITU H.GCP IETF MGCP, MEGACO, IPDC
Media Transport Real Time Protocol (RTP) Real Time Control Protocol (RTCP)
Signaling H.323 – ITU recommendation for telephone on local area networks Session Initiation Protocols (SIP) Session Description Protocol (SDP)
VOIP using H.323
Application layer
Transport layer
Network layer
Link layer
Physical layer
Underlying LAN or WAN Technology
IP
UDP
RTSP
UDP
TCP
H.323
Audio Services – Encoding and Compression
Audio Services – Control and Signaling
RTCP H.245RTP H.225RAS Q.93
1
VOIP using SIP
Application layer
Transport layer
Network layer
Link layer
Physical layer
Underlying LAN or WAN Technology
IP
UDP
RTP
RTSP
UDP/TCP
SIP
Audio Services – Encoding, Compression
Audio Services – Control and Signaling
RTCPRTP
UDP
Session Initiation Protocol (SIP) Major Features
User location – Determines the end system to used for communications.
User availability – Determines called party’s willingness to engage in communications.
Feature negotiation – Matches device capabilities.
Call setup – Establishment of call parameters.
Call handling – Transfer and termination of call.
VOIP using SIP
Before you make a call…Bell-tell
X-tel
y-tel
sip.mcast.net, 224.0.1.75
REGISTER sip:bell-tel.com SIP/2.0Via: SIP/2.0/UDP saturn.bell-tel.comFrom: sip:watson@bell-tel.comTo:sip:watson@bell-tel.comCall-ID: 70710@saturn.bell-tel.comCseq:1 REGISTERContact: sip:watson@saturn.bell-tel.com:3890;transport=udpExpires: 7200
saturn
VOIP using SIP
Before you make a call…Bell-tell
X-tel
Y-tel
401 UnauthorizedAuthentication challengenonce="dcd98b7102dd2f0e8b11d0f600bfb0c093"
saturn
VOIP using SIP
Before you make a call…Bell-tell
X-tel
Y-tel
RegistrationAuthentication responseresponse="6629fae49393a05397450978507c4ef1"
saturn
VOIP using SIP
Before you make a call…Bell-tell
X-tel
Y-tel
200 - OK
saturn
VOIP using SIP
Before you make a call…Bell-tell
X-tel
Y-tel
saturn
Watson’sinformation
SIP – Making a call
Establishing
Communicating
Terminating
INVITE: address, options
OK: address
ACK
Exchanging Audio
BYE
SIP Connection Through Two Proxy Servers
INVITE sip:UserB@ss1.wcom SIP/2.0Via: SIP/2.0/UDP here.com:5060From: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.comCall-ID: 12345600@here.comCseq: 1 INVITEContact: BigGuy sip:UserA@here.comContent-Type: application/sdpContent-Length: 147
V = 0O = UserA 2890844526 2890844526 IN IP4 here.comS = Session SDPC = IN IP4 100.101.102.103T = 0 0M = audio 49170 RTP/AVP 0A = rtpmap: 0 PCMU/8000
User A User BProxy 1 Proxy 2
1
SIP Connection Through Two Proxy Servers
SIP/2.0 407 Proxy Authorization RequiredVia: SIP/2.0/UDP here.com:5060From: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.comCall-ID: 12345600@here.comCseq: 1 INVITEProxy-Authenticate: Digest realm=“MCI WorldCom SIP”Domain=“wcom.com”, nonce=“wf84f1ceczx41ae6cbe5aea9c8e88d359”Opaque=“”, stale = “FALSE”, algorithm=“MD5”Content-Length: 0
User A User BProxy 1 Proxy 2
2
SIP Connection Through Two Proxy Servers
ACK sip:UserB@ss1.wcom SIP/2.0Via: SIP/2.0/UDP here.com:5060From: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.comCall-ID: 12345600@here.comCseq: 1 INVITEContent-Length: 0
User A User BProxy 1 Proxy 2
3
SIP Connection Through Two Proxy Servers
INVITE sip:UserB@ss1.wcom SIP/2.0From: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.comCseq: 1 INVITEAuthorization:Digest username=“UserA”, Nonce = “wf84f1ceczx41ae6cbe5aea9c8e88d359”Uri=sip:ss1.wcom.com,Response=“42ce3cef44b22f50c6a6071bc8”Content-Type: application/sdpContent-Length: 147
User A User BProxy 1 Proxy 2
4
SIP Connection Through Two Proxy Servers
INVITE sip:UserB@ss2.wcom SIP/2.0Via: SIP/2.0/UDP ss1.wcom:5060Via: SIP/2.0/UDP here.com:5060Record-Route: sip:UserB@ss1.wcom.comFrom: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.com
User A User BProxy 1 Proxy 2
5
SIP Connection Through Two Proxy Servers
SIP/2.0 100 TryingVia: SIP/2.0/UDP here.com:5060From: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.comCall-ID: 12345600@here.comCseq: 1 INVITEContent-Length: 0
User A User BProxy 1 Proxy 2
6
SIP Connection Through Two Proxy Servers
INVITE sip:UserB@ss2.wcom SIP/2.0Via: SIP/2.0/UDP ss2.wcom:5060Via: SIP/2.0/UDP ss1.wcom:5060Via: SIP/2.0/UDP here.com:5060Record-Route: sip:UserB@ss2.wcom.com , sip:UserB@ss1.wcom.comFrom: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.com
User A User BProxy 1 Proxy 2
7
SIP Connection Through Two Proxy Servers
SIP/2.0 100 TryingVia: SIP/2.0/UDP ss1.wcom.com:5060Via: SIP/2.0/UDP here.com:5060From: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.comCall-ID: 12345600@here.comCseq: 1 INVITEContent-Length: 0
User A User BProxy 1 Proxy 2
8
SIP Connection Through Two Proxy Servers
SIP/2.0 180 RingingVia: SIP/2.0/UDP ss2.wcom.com:5060Via: SIP/2.0/UDP ss1.wcom.com:5060Via: SIP/2.0/UDP here.com:5060From: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.com ; tag = 314159Call-ID: 12345600@here.comCseq: 1 INVITEContent-Length: 0
User A User BProxy 1 Proxy 2
9
SIP Connection Through Two Proxy Servers
SIP/2.0 180 RingingVia: SIP/2.0/UDP ss1.wcom.com:5060Via: SIP/2.0/UDP here.com:5060From: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.com ; tag = 314159Call-ID: 12345600@here.comCseq: 1 INVITEContent-Length: 0
User A User BProxy 1 Proxy 2
10
SIP Connection Through Two Proxy Servers
SIP/2.0 180 RingingVia: SIP/2.0/UDP here.com:5060From: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.com ; tag = 314159Call-ID: 12345600@here.comCseq: 1 INVITEContent-Length: 0
User A User BProxy 1 Proxy 2
11
SIP Connection Through Two Proxy Servers
SIP/2.0 200 OKVia: SIP/2.0/UDP ss2.wcom:5060Via: SIP/2.0/UDP ss1.wcom:5060Via: SIP/2.0/UDP here.com:5060Record-Route: sip:UserB@ss2.wcom.com , sip:UserB@ss1.wcom.comFrom: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.comCall-ID: 12345600@here.comCseq: 1 INVITEContact: BigGuy sip:UserA@here.comContent-Type: application/sdpContent-Length: 134
User A User BProxy 1 Proxy 2
12
SIP Connection Through Two Proxy Servers
SIP/2.0 200 OKVia: SIP/2.0/UDP ss1.wcom:5060Via: SIP/2.0/UDP here.com:5060Record-Route: sip:UserB@ss2.wcom.com , sip:UserB@ss1.wcom.comFrom: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.comCall-ID: 12345600@here.comCseq: 1 INVITEContact: BigGuy sip:UserA@here.comContent-Type: application/sdpContent-Length: 134
User A User BProxy 1 Proxy 2
13
SIP Connection Through Two Proxy Servers
SIP/2.0 200 OKVia: SIP/2.0/UDP here.com:5060Record-Route: sip:UserB@ss2.wcom.com , sip:UserB@ss1.wcom.comFrom: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@here.comCall-ID: 12345600@here.comCseq: 1 INVITEContact: BigGuy sip:UserA@here.comContent-Type: application/sdpContent-Length: 134
User A User BProxy 1 Proxy 2
14
SIP Connection Through Two Proxy Servers
ACK sip:UserB@ss1.wcom.com SIP/2.0Via: SIP/2.0/UDP here.com:5060Route: sip:UserB@ss2.wcom.com , sip:UserB@there.comFrom: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@there.com ; tag = 314159Call-ID: 12345601@here.comCseq: 1 ACKContent-Length: 0
User A User BProxy 1 Proxy 2
15
SIP Connection Through Two Proxy Servers
ACK sip:UserB@ss2.wcom.com SIP/2.0Via: SIP/2.0/UDP ss1.wcom.com:5060Via: SIP/2.0/UDP here.com:5060Route: sip:UserB@there.com ,From: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@there.com ; tag = 314159Call-ID: 12345601@here.comCseq: 1 ACKContent-Length: 0
User A User BProxy 1 Proxy 2
16
SIP Connection Through Two Proxy Servers
ACK sip:UserB@ss2.wcom.com SIP/2.0Via: SIP/2.0/UDP ss2.wcom.com:5060Via: SIP/2.0/UDP ss1.wcom.com:5060Via: SIP/2.0/UDP here.com:5060From: BigGuy sip:UserA@here.comTo: LittleGuy sip:UserB@there.com ; tag = 314159Call-ID: 12345601@here.comCseq: 1 ACK
User A User BProxy 1 Proxy 2
17
SIP Connection Through Two Proxy Servers
User A User BProxy 1 Proxy 2
Two-way Media Flow
SIP Connection Through Two Proxy Servers
User A User BProxy 1 Proxy 2
18
BYE sip : UserA@ss2.wcom.com SIP/2.0Via: SIP/2.0/UDP there.com:5060Route: sip:UserA@ss1.wcom.com , sip:UserA@here.comFrom: LittleGuy sip:UserB@there.com ; tag = 314159 To: BigGuy sip:UserA@here.comCall-ID: 12345601@here.comCseq: 1 BYEContent-Length: 0
SIP Connection Through Two Proxy Servers
User A User BProxy 1 Proxy 2
19
BYE sip : UserA@ss2.wcom.com SIP/2.0Via: SIP/2.0/UDP ss2.wcom.com:5060Via: SIP/2.0/UDP there.com:5060Route: sip:UserA@ss1.wcom.com , sip:UserA@here.comFrom: LittleGuy sip:UserB@there.com ; tag = 314159 To: BigGuy sip:UserA@here.comCall-ID: 12345601@here.comCseq: 1 BYEContent-Length: 0
SIP Connection Through Two Proxy Servers
User A User BProxy 1 Proxy 2
20
BYE sip : UserA@here.com SIP/2.0Via: SIP/2.0/UDP ss1.wcom.com:5060Via: SIP/2.0/UDP ss2.wcom.com:5060Via: SIP/2.0/UDP there.com:5060From: LittleGuy sip:UserB@there.com ; tag = 314159 To: BigGuy sip:UserA@here.comCall-ID: 12345601@here.comCseq: 1 BYEContent-Length: 0
SIP Connection Through Two Proxy Servers
User A User BProxy 1 Proxy 2
21
SIP/2.0 200 OKVia: SIP/2.0/UDP ss1.wcom.com:5060Via: SIP/2.0/UDP ss2.wcom.com:5060Via: SIP/2.0/UDP there.com:5060From: LittleGuy sip:UserB@there.com ; tag = 314159 To: BigGuy sip:UserA@here.comCall-ID: 12345601@here.comCseq: 1 BYEContent-Length: 0
SIP Connection Through Two Proxy Servers
User A User BProxy 1 Proxy 2
22
SIP/2.0 200 OKVia: SIP/2.0/UDP ss2.wcom.com:5060Via: SIP/2.0/UDP there.com:5060From: LittleGuy sip:UserB@there.com ; tag = 314159 To: BigGuy sip:UserA@here.comCall-ID: 12345601@here.comCseq: 1 BYEContent-Length: 0
SIP Connection Through Two Proxy Servers
User A User BProxy 1 Proxy 2
23
SIP/2.0 200 OKVia: SIP/2.0/UDP there.com:5060From: LittleGuy sip:UserB@there.com ; tag = 314159 To: BigGuy sip:UserA@here.comCall-ID: 12345601@here.comCseq: 1 BYEContent-Length: 0
H.323 Architecture
TCP/IP Protocol Suite 39
Figure 25.27 H.323 example
Find IP addressof gatekeeper
Q.931 messagefor setup
RTP for audio exchangeRTCP for management
Q.931 messagefor termination
VOIP using H.323
Before you make a call….
GRQ
GRQ
GRQ
Gatekeeper RequestrequestSeqNumprotocolIdentifiernonStadardDatarasAddressendpointTypegatekeeperIdentifiercallServicesendpointAlias
Gateway discovery
VOIP using H.323
Before you make a call….
RCF
RRJ
RRJ
Gatekeeper ConfirmrequestSeqNumprotocolIdentifiernonStadardDatagatekeeperIdentifierrasAddress
Gatekeeper RejectrequestSeqNumprotocolIdentifiernonStadardDatagatekeeperIdentifierRejectReason
Gateway discovery
VOIP using H.323
Before you make a call….
RRQRegistration RequestrequestSeqNumprotocolIdentifiernonStadardDatadiscovery completeCallSignalAddressrasAddressterminalTypeterminalAliasterminalIdentifierendpointVendor
Gateway registration
VOIP using H.323
Before you make a call….
RCFRegistration ConfirmrequestSeqNumprotocolIdentifiernonStadardDataCallSignalAddressterminalAliasgatekeeperIdentifierendpointVendor
Gateway registration
VOIP using H.323
When you make a call….
ARQACF
Setup Call Proceeding
ARQACF
AlertingConnect
H.323 vs SIP
H.323 SIP
Philosophy Designed for multimedia communication over different types of networks
Designed to session b/w two points
Reliability Designed to handle failure of network entities
No defined procedures for handling device failure
Message Encoding
Encodes in compact binary format
Encodes in ASCII text format. Hence easy to debug and process
Addressing Flexible addressing scheme using URLs and E.164 numbers
Understands only URLs style addresses
Architecture Monolithic Modular
H.232 VS SIP
Real Time Protocol (RTP)
Ver P X Contr.count M Payload type Sequence
number
Timestamp
Synchronization source identifier
Contributor identifier
Contributor identifier
Type Application Type Application Type Application0 PCMµ Audio 7 LPC audio 15 G728 audio1 1016 8 PCMA audio 26 Motion JPEG2 G721 audio 9 G722 audio 31 H.2613 GSM audio 10-11 L16 audio 32 MPEG1 video
5-6 DV14 audio 14 MPEG audio 33 MPEG2 video
Real Time Control Protocol (RTCP) Five types of PDUs.
Sender Report – 200▪ Contains transmission and reception statistics for all RTP
packets sent during an interval. Receiver Report – 201▪ Informs senders and other recipients about QoS.
Source destination Message – 202▪ Contains additional information about source. Eg email,
telephone number or address of owner. Bye Message – 203▪ Announces to all receivers that the source is leaving the
session. Application-Specific Message – 204▪ Allows the specification of new message type
RTCP PDUs
VOIP Challenges - Jitter
VOIP Challenges - Jitter
VOIP Challenges - Jitter
VOIP Challenges – Echo
Speaker Echo Reflections at interconnections within
PSTN.
Listener Echo Multiple speaker echoes reflected toward
listener.
VOIP using Skype
VOIP using Skype LoginStart
Send UDP PDUs to HC IP addresses and portsResponse within 5 seconds
TCP connection attempt with HC IP address and port
Connected ? Success
Wait for 6 seconds
YesNo
Yes
No
TCP connection attempt with HC IP address and port 80
Connected ?
TCP connection attempt with HC IP address and port 443 (HTTPS port)
Connected ?
Connection attempts ==
5?Failure
Yes
Yes
No
No
Yes
No
Skype Call Establishment Call Establishment
without NAT Call Establishment
with NAT
Skype Call Maintenance and Teardown Skype call “keep
alive” process Skype call
teardown
Questions?