The Voice Over Internet Protocol VOIP Presented by
The Voice Over Internet Protocol (VOIP) Presented by: Christopher Thorpe Course: TCP/IP and Upper Layer Protocols Instructor: Professor Amer May 10 th 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 (Sig. Tran)
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 << 1 ms G. 723. 1, Algebraic Codebook Excited Linear Prediction, Good quality, � � � Delay 67 -97 ms G. 729, Conjugate Structure-ACELP, Good quality, Delay 25 -35 ms 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 Audio Services – Encoding and Compression RTP RTSP RTCP Transport layer Network layer UDP Audio Services – Control and Signaling H. 225 RAS Q. 931 UDP H. 323 H. 245 TCP IP Link layer Physical layer Underlying LAN or WAN Technology
VOIP using SIP Application layer Transport layer Network layer Audio Services – Encoding, Compression RTP RTSP UDP Audio Services – Control and Signaling RTCP SIP UDP/TCP IP Link layer Physical layer Underlying LAN or WAN Technology
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… sip. mcast. net, 224. 0. 1. 75 saturn Bell-tell X-tel y-tel REGISTER sip: bell-tel. com SIP/2. 0 Via: SIP/2. 0/UDP saturn. bell-tel. com From: sip: watson@bell-tel. com To: sip: watson@bell-tel. com Call-ID: 70710@saturn. bell-tel. com Cseq: 1 REGISTER Contact: sip: watson@saturn. belltel. com: 3890; transport=udp Expires: 7200
VOIP using SIP �Before you make a call… 401 Unauthorized Authentication challenge nonce="dcd 98 b 7102 dd 2 f 0 e 8 b 11 d 0 f 6 00 bfb 0 c 093" saturn Bell-tell X-tel Y-tel
VOIP using SIP �Before you make a call… Registration Authentication response="6629 fae 49393 a 05397450 978507 c 4 ef 1" saturn Bell-tell X-tel Y-tel
VOIP using SIP �Before you make a call… Bell-tell 200 - OK saturn X-tel Y-tel
VOIP using SIP �Before you make a call… Bell-tell Watson’s information saturn X-tel Y-tel
SIP – Making a call Establishing INVITE: address, options OK: address Communicating ACK Exchanging Audio Terminating BYE
SIP Connection Through Two Proxy Servers User A Proxy 1 1 Proxy 2 INVITE sip: User. B@ss 1. wcom SIP/2. 0 Via: SIP/2. 0/UDP here. com: 5060 From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com Call-ID: 12345600@here. com Cseq: 1 INVITE Contact: Big. Guy sip: User. A@here. com Content-Type: application/sdp Content-Length: 147 V=0 O = User. A 2890844526 IN IP 4 here. com S = Session SDP C = IN IP 4 100. 101. 102. 103 T=00 M = audio 49170 RTP/AVP 0 A = rtpmap: 0 PCMU/8000 User B
SIP Connection Through Two Proxy Servers User A Proxy 1 2 Proxy 2 User B SIP/2. 0 407 Proxy Authorization Required Via: SIP/2. 0/UDP here. com: 5060 From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com Call-ID: 12345600@here. com Cseq: 1 INVITE Proxy-Authenticate: Digest realm=“MCI World. Com SIP” Domain=“wcom. com”, nonce=“wf 84 f 1 ceczx 41 ae 6 cbe 5 aea 9 c 8 e 88 d 359” Opaque=“”, stale = “FALSE”, algorithm=“MD 5” Content-Length: 0
SIP Connection Through Two Proxy Servers User A Proxy 1 3 Proxy 2 User B ACK sip: User. B@ss 1. wcom SIP/2. 0 Via: SIP/2. 0/UDP here. com: 5060 From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com Call-ID: 12345600@here. com Cseq: 1 INVITE Content-Length: 0
SIP Connection Through Two Proxy Servers User A Proxy 1 4 Proxy 2 User B INVITE sip: User. B@ss 1. wcom SIP/2. 0 From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com Cseq: 1 INVITE Authorization: Digest username=“User. A”, Nonce = “wf 84 f 1 ceczx 41 ae 6 cbe 5 aea 9 c 8 e 88 d 359” Uri=sip: ss 1. wcom. com, Response=“ 42 ce 3 cef 44 b 22 f 50 c 6 a 6071 bc 8” Content-Type: application/sdp Content-Length: 147
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 5 INVITE sip: User. B@ss 2. wcom SIP/2. 0 Via: SIP/2. 0/UDP ss 1. wcom: 5060 Via: SIP/2. 0/UDP here. com: 5060 Record-Route: sip: User. B@ss 1. wcom. com From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com User B
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 6 SIP/2. 0 100 Trying Via: SIP/2. 0/UDP here. com: 5060 From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com Call-ID: 12345600@here. com Cseq: 1 INVITE Content-Length: 0 User B
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 INVITE sip: User. B@ss 2. wcom SIP/2. 0 Via: SIP/2. 0/UDP ss 2. wcom: 5060 Via: SIP/2. 0/UDP ss 1. wcom: 5060 Via: SIP/2. 0/UDP here. com: 5060 Record-Route: sip: User. B@ss 2. wcom. com , sip: User. B@ss 1. wcom. com From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com User B 7
SIP Connection Through Two Proxy Servers User A Proxy 1 SIP/2. 0 100 Trying Via: SIP/2. 0/UDP ss 1. wcom. com: 5060 Via: SIP/2. 0/UDP here. com: 5060 From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com Call-ID: 12345600@here. com Cseq: 1 INVITE Content-Length: 0 Proxy 2 8 User B
SIP Connection Through Two Proxy Servers User A Proxy 1 SIP/2. 0 180 Ringing Via: SIP/2. 0/UDP ss 2. wcom. com: 5060 Via: SIP/2. 0/UDP ss 1. wcom. com: 5060 Via: SIP/2. 0/UDP here. com: 5060 From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com ; tag = 314159 Call-ID: 12345600@here. com Cseq: 1 INVITE Content-Length: 0 Proxy 2 User B 9
SIP Connection Through Two Proxy Servers User A Proxy 1 SIP/2. 0 180 Ringing Via: SIP/2. 0/UDP ss 1. wcom. com: 5060 Via: SIP/2. 0/UDP here. com: 5060 From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com ; tag = 314159 Call-ID: 12345600@here. com Cseq: 1 INVITE Content-Length: 0 Proxy 2 10 User B
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 11 User B SIP/2. 0 180 Ringing Via: SIP/2. 0/UDP here. com: 5060 From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com ; tag = 314159 Call-ID: 12345600@here. com Cseq: 1 INVITE Content-Length: 0
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 SIP/2. 0 200 OK Via: SIP/2. 0/UDP ss 2. wcom: 5060 Via: SIP/2. 0/UDP ss 1. wcom: 5060 Via: SIP/2. 0/UDP here. com: 5060 Record-Route: sip: User. B@ss 2. wcom. com , sip: User. B@ss 1. wcom. com From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com Call-ID: 12345600@here. com Cseq: 1 INVITE Contact: Big. Guy sip: User. A@here. com Content-Type: application/sdp Content-Length: 134 User B 12
SIP Connection Through Two Proxy Servers User A Proxy 1 SIP/2. 0 200 OK Via: SIP/2. 0/UDP ss 1. wcom: 5060 Via: SIP/2. 0/UDP here. com: 5060 Record-Route: sip: User. B@ss 2. wcom. com , sip: User. B@ss 1. wcom. com From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com Call-ID: 12345600@here. com Cseq: 1 INVITE Contact: Big. Guy sip: User. A@here. com Content-Type: application/sdp Content-Length: 134 Proxy 2 User B 13
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 14 User B SIP/2. 0 200 OK Via: SIP/2. 0/UDP here. com: 5060 Record-Route: sip: User. B@ss 2. wcom. com , sip: User. B@ss 1. wcom. com From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@here. com Call-ID: 12345600@here. com Cseq: 1 INVITE Contact: Big. Guy sip: User. A@here. com Content-Type: application/sdp Content-Length: 134
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 15 User B ACK sip: User. B@ss 1. wcom. com SIP/2. 0 Via: SIP/2. 0/UDP here. com: 5060 Route: sip: User. B@ss 2. wcom. com , sip: User. B@there. com From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@there. com ; tag = 314159 Call-ID: 12345601@here. com Cseq: 1 ACK Content-Length: 0
SIP Connection Through Two Proxy Servers User A Proxy 1 ACK sip: User. B@ss 2. wcom. com SIP/2. 0 Via: SIP/2. 0/UDP ss 1. wcom. com: 5060 Via: SIP/2. 0/UDP here. com: 5060 Route: sip: User. B@there. com , From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@there. com ; tag = 314159 Call-ID: 12345601@here. com Cseq: 1 ACK Content-Length: 0 Proxy 2 User B 16
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 ACK sip: User. B@ss 2. wcom. com SIP/2. 0 Via: SIP/2. 0/UDP ss 2. wcom. com: 5060 Via: SIP/2. 0/UDP ss 1. wcom. com: 5060 Via: SIP/2. 0/UDP here. com: 5060 From: Big. Guy sip: User. A@here. com To: Little. Guy sip: User. B@there. com ; tag = 314159 Call-ID: 12345601@here. com Cseq: 1 ACK User B 17
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 Two-way Media Flow User B
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 BYE sip : User. A@ss 2. wcom. com SIP/2. 0 Via: SIP/2. 0/UDP there. com: 5060 Route: sip: User. A@ss 1. wcom. com , sip: User. A@here. com From: Little. Guy sip: User. B@there. com ; tag = 314159 To: Big. Guy sip: User. A@here. com Call-ID: 12345601@here. com Cseq: 1 BYE Content-Length: 0 User B 18
SIP Connection Through Two Proxy Servers User A Proxy 1 BYE sip : User. A@ss 2. wcom. com SIP/2. 0 Via: SIP/2. 0/UDP ss 2. wcom. com: 5060 Via: SIP/2. 0/UDP there. com: 5060 Route: sip: User. A@ss 1. wcom. com , sip: User. A@here. com From: Little. Guy sip: User. B@there. com ; tag = 314159 To: Big. Guy sip: User. A@here. com Call-ID: 12345601@here. com Cseq: 1 BYE Content-Length: 0 Proxy 2 User B 19
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 20 User B BYE sip : User. A@here. com SIP/2. 0 Via: SIP/2. 0/UDP ss 1. wcom. com: 5060 Via: SIP/2. 0/UDP ss 2. wcom. com: 5060 Via: SIP/2. 0/UDP there. com: 5060 From: Little. Guy sip: User. B@there. com ; tag = 314159 To: Big. Guy sip: User. A@here. com Call-ID: 12345601@here. com Cseq: 1 BYE Content-Length: 0
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 21 User B SIP/2. 0 200 OK Via: SIP/2. 0/UDP ss 1. wcom. com: 5060 Via: SIP/2. 0/UDP ss 2. wcom. com: 5060 Via: SIP/2. 0/UDP there. com: 5060 From: Little. Guy sip: User. B@there. com ; tag = 314159 To: Big. Guy sip: User. A@here. com Call-ID: 12345601@here. com Cseq: 1 BYE Content-Length: 0
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B SIP/2. 0 200 OK Via: SIP/2. 0/UDP ss 2. wcom. com: 5060 Via: SIP/2. 0/UDP there. com: 5060 From: Little. Guy sip: User. B@there. com ; tag = 314159 To: Big. Guy sip: User. A@here. com Call-ID: 12345601@here. com Cseq: 1 BYE Content-Length: 0 22
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B SIP/2. 0 200 OK Via: SIP/2. 0/UDP there. com: 5060 From: Little. Guy sip: User. B@there. com ; tag = 314159 To: Big. Guy sip: User. A@here. com Call-ID: 12345601@here. com Cseq: 1 BYE Content-Length: 0 23
H. 323 Architecture
Figure 25. 27 TCP/IP Protocol Suite H. 323 example 39
VOIP using H. 323 �Before you make a call…. Gateway discovery Gatekeeper Request GRQ GRQ request. Seq. Num protocol. Identifier non. Stadard. Data ras. Address endpoint. Type gatekeeper. Identifier call. Services endpoint. Alias
VOIP using H. 323 �Before you make a call…. Gateway discovery Gatekeeper Confirm RCF RRJ request. Seq. Num protocol. Identifier non. Stadard. Data gatekeeper. Identifier ras. Address Gatekeeper Reject request. Seq. Num protocol. Identifier non. Stadard. Data gatekeeper. Identifier Reject. Reason
VOIP using H. 323 �Before you make a call…. Gateway registration Request RRQ request. Seq. Num protocol. Identifier non. Stadard. Data discovery complete Call. Signal. Address ras. Address terminal. Type terminal. Alias terminal. Identifier endpoint. Vendor
VOIP using H. 323 �Before you make a call…. Gateway registration Registration Confirm RCF request. Seq. Num protocol. Identifier non. Stadard. Data Call. Signal. Address terminal. Alias gatekeeper. Identifier endpoint. Vendor
VOIP using H. 323 �When you make a call…. ARQ ACF Setup Call Proceeding ARQ ACF Alerting Connect
H. 323 vs. VS SIPSIP H. 232 H. 323 SIP Philosophy Designed for multimedia Designed to session b/w two communication over different points types of networks Reliability Designed to handle failure of network entities No defined procedures for handling device failure Message Encoding Addressing Encodes in compact binary format Encodes in ASCII text format. Hence easy to debug and process Flexible addressing scheme using URLs and E. 164 numbers Understands only URLs style addresses Architecture Monolithic Modular
Real Time Protocol (RTP) Ver P X Contr. M count Payload type Sequence number Timestamp Synchronization source identifier Contributor identifier Type 0 1 2 3 5 -6 Application PCMµ Audio 1016 G 721 audio GSM audio DV 14 audio Type 7 8 9 10 -11 14 Application LPC audio PCMA audio G 722 audio L 16 audio MPEG audio Type 15 26 31 32 33 Application G 728 audio Motion JPEG H. 261 MPEG 1 video MPEG 2 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 Qo. S. 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 Login Wait for 6 seconds No Start Send UDP PDUs to HC IP addresses and ports Failure Response within 5 seconds Yes TCP connection attempt with HC IP address and port Yes Connection attempts == 5? Yes No Connected ? TCP connection attempt with HC IP address and port 443 (HTTPS port) No Success Yes No TCP connection attempt with HC IP address and port 80 Connected ?
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?
- Slides: 57