The Voice Over Internet Protocol (VOIP)

Post on 25-Feb-2016

34 views 0 download

Tags:

description

Presented by: Christopher Thorpe Course: TCP/IP and Upper Layer Protocols Instructor: Professor Amer May 10 th 2011. The Voice Over Internet Protocol (VOIP). Slides used from: Varsha Mahadevan , Kevin Jeffay , Behrouz Forouzan. VOIP Standards. - PowerPoint PPT Presentation

transcript

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?