570 likes | 585 Views
Learn about Voice Over Internet Protocol (VOIP) standards and protocols like H.323 and SIP. Explore VOIP components, call setup, and network layers for efficient communication. Presented by Christopher Thorpe, May 10th, 2011.
E N D
Presented by: Christopher Thorpe Course: TCP/IP and Upper Layer Protocols Instructor: Professor Amer May 10th 2011 The Voice Over Internet Protocol (VOIP) Slides used from: VarshaMahadevan, Kevin Jeffay, BehrouzForouzan
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 Audio Services – Encoding and Compression Audio Services – Control and Signaling Application layer H.225 H.323 RTSP RTCP RAS Q.931 H.245 RTP Transport layer TCP UDP UDP Network layer IP Link layer Underlying LAN or WAN Technology Physical layer
VOIP using SIP Audio Services – Encoding, Compression Audio Services – Control and Signaling Application layer RTP RTCP RTP RTSP SIP Transport layer UDP/TCP UDP UDP Network layer IP Link layer Underlying LAN or WAN Technology Physical layer
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 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.bell-tel.com:3890;transport=udp Expires: 7200 sip.mcast.net, 224.0.1.75 saturn X-tel y-tel
VOIP using SIP • Before you make a call… 401 Unauthorized Authentication challenge nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093" Bell-tell saturn X-tel Y-tel
VOIP using SIP • Before you make a call… Registration Authentication response response="6629fae49393a05397450978507c4ef1" Bell-tell saturn 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 INVITE: address, options Establishing OK: address ACK Communicating Exchanging Audio Terminating BYE
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B 1 INVITE sip:UserB@ss1.wcom SIP/2.0 Via: SIP/2.0/UDP here.com:5060 From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com Call-ID: 12345600@here.com Cseq: 1 INVITE Contact: BigGuysip:UserA@here.com Content-Type: application/sdp Content-Length: 147 V = 0 O = UserA 2890844526 2890844526 IN IP4 here.com S = Session SDP C = IN IP4 100.101.102.103 T = 0 0 M = audio 49170 RTP/AVP 0 A = rtpmap: 0 PCMU/8000
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B SIP/2.0 407 Proxy Authorization Required Via: SIP/2.0/UDP here.com:5060 From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com Call-ID: 12345600@here.com Cseq: 1 INVITE Proxy-Authenticate: Digest realm=“MCI WorldCom SIP” Domain=“wcom.com”, nonce=“wf84f1ceczx41ae6cbe5aea9c8e88d359” Opaque=“”, stale = “FALSE”, algorithm=“MD5” Content-Length: 0 2
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B ACK sip:UserB@ss1.wcom SIP/2.0 Via: SIP/2.0/UDP here.com:5060 From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com Call-ID: 12345600@here.com Cseq: 1 INVITE Content-Length: 0 3
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B INVITE sip:UserB@ss1.wcom SIP/2.0 From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com Cseq: 1 INVITE Authorization:Digestusername=“UserA”, Nonce = “wf84f1ceczx41ae6cbe5aea9c8e88d359” Uri=sip:ss1.wcom.com, Response=“42ce3cef44b22f50c6a6071bc8” Content-Type: application/sdp Content-Length: 147 4
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B 5 INVITE sip:UserB@ss2.wcom SIP/2.0 Via: SIP/2.0/UDP ss1.wcom:5060 Via: SIP/2.0/UDP here.com:5060 Record-Route: sip:UserB@ss1.wcom.com From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B 6 SIP/2.0 100 Trying Via: SIP/2.0/UDP here.com:5060 From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com Call-ID: 12345600@here.com Cseq: 1 INVITE Content-Length: 0
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B INVITE sip:UserB@ss2.wcom SIP/2.0 Via: SIP/2.0/UDP ss2.wcom:5060 Via: SIP/2.0/UDP ss1.wcom:5060 Via: SIP/2.0/UDP here.com:5060 Record-Route: sip:UserB@ss2.wcom.com , sip:UserB@ss1.wcom.com From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com 7
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B SIP/2.0 100 Trying Via: SIP/2.0/UDP ss1.wcom.com:5060 Via: SIP/2.0/UDP here.com:5060 From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com Call-ID: 12345600@here.com Cseq: 1 INVITE Content-Length: 0 8
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss2.wcom.com:5060 Via: SIP/2.0/UDP ss1.wcom.com:5060 Via: SIP/2.0/UDP here.com:5060 From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com ; tag = 314159 Call-ID: 12345600@here.com Cseq: 1 INVITE Content-Length: 0 9
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss1.wcom.com:5060 Via: SIP/2.0/UDP here.com:5060 From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com ; tag = 314159 Call-ID: 12345600@here.com Cseq: 1 INVITE Content-Length: 0 10
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B SIP/2.0 180 Ringing Via: SIP/2.0/UDP here.com:5060 From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com ; tag = 314159 Call-ID: 12345600@here.com Cseq: 1 INVITE Content-Length: 0 11
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B SIP/2.0 200 OK Via: SIP/2.0/UDP ss2.wcom:5060 Via: SIP/2.0/UDP ss1.wcom:5060 Via: SIP/2.0/UDP here.com:5060 Record-Route: sip:UserB@ss2.wcom.com , sip:UserB@ss1.wcom.com From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com Call-ID: 12345600@here.com Cseq: 1 INVITE Contact: BigGuysip:UserA@here.com Content-Type: application/sdp Content-Length: 134 12
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom:5060 Via: SIP/2.0/UDP here.com:5060 Record-Route: sip:UserB@ss2.wcom.com , sip:UserB@ss1.wcom.com From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com Call-ID: 12345600@here.com Cseq: 1 INVITE Contact: BigGuysip:UserA@here.com Content-Type: application/sdp Content-Length: 134 13
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B SIP/2.0 200 OK Via: SIP/2.0/UDP here.com:5060 Record-Route: sip:UserB@ss2.wcom.com , sip:UserB@ss1.wcom.com From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@here.com Call-ID: 12345600@here.com Cseq: 1 INVITE Contact: BigGuysip:UserA@here.com Content-Type: application/sdp Content-Length: 134 14
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B ACK sip:UserB@ss1.wcom.com SIP/2.0 Via: SIP/2.0/UDP here.com:5060 Route: sip:UserB@ss2.wcom.com , sip:UserB@there.com From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@there.com ; tag = 314159 Call-ID: 12345601@here.com Cseq: 1 ACK Content-Length: 0 15
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B ACK sip:UserB@ss2.wcom.com SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060 Via: SIP/2.0/UDP here.com:5060 Route: sip:UserB@there.com , From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@there.com ; tag = 314159 Call-ID: 12345601@here.com Cseq: 1 ACK Content-Length: 0 16
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B ACK sip:UserB@ss2.wcom.com SIP/2.0 Via: SIP/2.0/UDP ss2.wcom.com:5060 Via: SIP/2.0/UDP ss1.wcom.com:5060 Via: SIP/2.0/UDP here.com:5060 From: BigGuysip:UserA@here.com To: LittleGuysip:UserB@there.com ; tag = 314159 Call-ID: 12345601@here.com Cseq: 1 ACK 17
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B Two-way Media Flow
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B BYE sip : UserA@ss2.wcom.com SIP/2.0 Via: SIP/2.0/UDP there.com:5060 Route: sip:UserA@ss1.wcom.com , sip:UserA@here.com From: LittleGuysip:UserB@there.com ; tag = 314159 To: BigGuysip:UserA@here.com Call-ID: 12345601@here.com Cseq: 1 BYE Content-Length: 0 18
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B BYE sip : UserA@ss2.wcom.com SIP/2.0 Via: SIP/2.0/UDP ss2.wcom.com:5060 Via: SIP/2.0/UDP there.com:5060 Route: sip:UserA@ss1.wcom.com , sip:UserA@here.com From: LittleGuysip:UserB@there.com ; tag = 314159 To: BigGuysip:UserA@here.com Call-ID: 12345601@here.com Cseq: 1 BYE Content-Length: 0 19
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B BYE sip : UserA@here.com SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060 Via: SIP/2.0/UDP ss2.wcom.com:5060 Via: SIP/2.0/UDP there.com:5060 From: LittleGuysip:UserB@there.com ; tag = 314159 To: BigGuysip:UserA@here.com Call-ID: 12345601@here.com Cseq: 1 BYE Content-Length: 0 20
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.wcom.com:5060 Via: SIP/2.0/UDP ss2.wcom.com:5060 Via: SIP/2.0/UDP there.com:5060 From: LittleGuysip:UserB@there.com ; tag = 314159 To: BigGuysip:UserA@here.com Call-ID: 12345601@here.com Cseq: 1 BYE Content-Length: 0 21
SIP Connection Through Two Proxy Servers User A Proxy 1 Proxy 2 User B SIP/2.0 200 OK Via: SIP/2.0/UDP ss2.wcom.com:5060 Via: SIP/2.0/UDP there.com:5060 From: LittleGuysip:UserB@there.com ; tag = 314159 To: BigGuysip:UserA@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: LittleGuysip:UserB@there.com ; tag = 314159 To: BigGuysip:UserA@here.com Call-ID: 12345601@here.com Cseq: 1 BYE Content-Length: 0 23
Figure 25.27H.323 example TCP/IP Protocol Suite
VOIP using H.323 • Before you make a call…. Gateway discovery Gatekeeper Request requestSeqNum protocolIdentifier nonStadardData rasAddress endpointType gatekeeperIdentifier callServices endpointAlias GRQ GRQ GRQ
VOIP using H.323 • Before you make a call…. Gateway discovery Gatekeeper Confirm requestSeqNum protocolIdentifier nonStadardData gatekeeperIdentifier rasAddress RCF RRJ Gatekeeper Reject requestSeqNum protocolIdentifier nonStadardData gatekeeperIdentifier RejectReason RRJ
VOIP using H.323 • Before you make a call…. Gateway registration Registration Request requestSeqNum protocolIdentifier nonStadardData discovery complete CallSignalAddress rasAddress terminalType terminalAlias terminalIdentifier endpointVendor RRQ
VOIP using H.323 • Before you make a call…. Gateway registration Registration Confirm requestSeqNum protocolIdentifier nonStadardData CallSignalAddress terminalAlias gatekeeperIdentifier endpointVendor RCF
VOIP using H.323 • When you make a call…. ARQ ACF Setup Call Proceeding ARQ ACF Alerting Connect
H.232 VS SIP H.323 vs SIP
Real Time Protocol (RTP) Contr. count Ver P X M Payload type Sequence number Timestamp Synchronization source identifier Contributor identifier Contributor identifier
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