Introduction to Internet telephony VoIP - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

Introduction to Internet telephony VoIP

Description:

Two stage lookup: DNS: uses naming authority pointer and service records ... Via: response traverses the reverse request path ... – PowerPoint PPT presentation

Number of Views:387
Avg rating:3.0/5.0
Slides: 42
Provided by: sanjaychou
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Internet telephony VoIP


1
Introduction to Internet telephony (VoIP)
  • Kundan Singh

2
Agenda
  • Introducing VoIP
  • What does it take to build simple audio
    telephony?
  • Inside Session Initiation Protocol (SIP)
  • What are the main features of SIP
  • VoIP services using SIP
  • How do we implement various services like call
    transfer, auto-attendant, voicemail?

3
Audio Packet Transfer
  • Digitization (e.g., sampling at 8kHz, 16 bits per
    sample, i.e, 128 kb/s or 320 bytes per 20 ms)
  • Real-time compression/encoding (e.g., G.729A at 8
    kb/s)
  • Transport to remote IP address and port number
    over UDP (Why not TCP?)
  • Processing on receiver side is the reverse

4
Sampling, Quantization, Encoding
1010111101101101
Encode each quantized sample into 8 bit code
word PCM 8000 x 8 bits 64 kb/s Other
techniques (differential coding, linear
prediction) 2.4 kb/s to 64 kb/s
Sample at twice the highest voice frequency 2 x
40008000 Hz (interval of 125 µsec)
Round off samples to one of 256 levels
(introduces noise)
5
Problems with UDP
  • Unreliable UDP
  • Packet loss
  • Out-of-order (very rarely)
  • Jitter (delay variation)

6
Receive buffer (playout buffer or circular
buffer)
while (true) buf read(au,20ms) //blocks
if (!silence) sendto(remote, buf) buf
get(20 ms) write(au, buf)
playout buffer
while (true) buf recvfrom(...) // blocks
put(buf)
7
Receive buffer (playout buffer or circular
buffer)
  • Receive buffer to absorb jitter
  • Tradeoff in buffer size
  • Adaptive delay adjustment
  • Sequence number to detect packet loss Just
    ignore the loss!

Sender
Receiver
8
Timestamp vs sequence number
  • Silence suppression
  • Variable length packets

Sender
t1
t2
t3
t4
t5
t6
t7
t8
t9
Silence
1
2
3
4
5
6
7
1
2
3
4
5
6
7
Receiver
Playout time vs packet loss detection
9
Real-time Transport Protocol (RTP)
IP header
Sequence number
Payload type
CC
M
V
P
X
UDP header
Timestamp (proportional to sampling time)
RTP Header
Source identifier (SSrc)
Encoded Audio
Optional contributors list (CSrc)
msg
RTP media transport RTCP QoS feedback
sendto(, msg, ) recvfrom(, msg, )
10
RTP-based conference
ssrc5263
ssrc7182
224.1.2.38000
Session identified using receive IP address port
ssrc2639
ssrc9844
11
RTP-based conference
Mixer mixes multiple streams, and puts rtp.ssrcs
of contributors in the mixed packet as rtp.csrc
Transcoder converts one encoding to another.
Typically to accommodate heterogeneous bandwidth
links.
?-law
Mixer
Transcoder
?
?-law
?
G.729
G.729
?-law
?-law
12
Why do we need signaling?
Alice 128.59.19.194
Bob 202.16.49.27
Sam 154.28.32.112
Henry 125.33.2.81
  • Locate destination user
  • Negotiate session parameters

13
Session Initiation Protocol (SIP)
  • Address similar to email sipalice_at_home.com
  • Two stage lookup
  • DNS uses naming authority pointer and service
    records
  • Database or service logic within a domain

office.com
Bob
home.com
Alice
128.59.19.194
columbia.edu
yahoo.com
Jane
128.59.19.61
dig t naptr columbia.edu columbia.edu. 3600 IN
NAPTR 1 0 "s" "SIPD2U" "" _sip._udp.columbia.edu.
columbia.edu. 3600 IN NAPTR 2 0 "s" "SIPD2T" ""
_sip._tcp.columbia.edu. dig t srv
_sip._udp.columbia.edu _sip._udp.columbia.edu.
3600 IN SRV 10 10 5060 cocoa.cc.columbia.edu. _si
p._udp.columbia.edu. 3600 IN SRV 10 10 5060
eclair.cc.columbia.edu. dig t a
cocoa.cc.columbia.edu cocoa.cc.columbia.edu.
3600 IN A 128.59.59.199
14
SIP message format
Request
INVITE sipalice_at_home.com SIP/2.0 From Bob
To Alice Subj
ect How are you? ...
Response
SIP/2.0 200 OK From Bob To
Alice Subject How are you? ...
15
Session Description Protocol (SDP)
INVITE alice_at_home.com I can support ?-law and
G.729 Send me audio at 202.16.49.276780
Alice
Bob
128.59.19.194
202.16.49.27
OK I can support ?-law Send me audio at
128.59.19.1948000
ACK
16
SDP message format and offer answer
Request
INVITE sipalice_at_home.com SIP/2.0 ... v0 obob
26172 27162 IN IP4 202.16.49.27 sSIP call cIN
IP4 202.16.49.27 t0 0 maudio 6780 RTP/AVP 0 8
5 mvideo 6790 RTP/AVP 31
Response
SIP/2.0 200 OK ... cIN IP4 128.59.19.194 t0
0 maudio 8000 RTP/AVP 0 8 mvideo 0 RTP/AVP 31
17
Agenda
  • Introducing VoIP
  • What does it take to build simple audio
    telephony?
  • Inside Session Initiation Protocol (SIP)
  • What are the main features of SIP
  • VoIP services using SIP
  • How do we implement various services like call
    transfer, auto-attendant, voicemail?

18
SIP is, SIP is not
  • SIP core protocol for establishing sessions in
    the Internet (peer-to-peer)
  • Transports session description information from
    initiator (caller) to receiver (callee)
  • Allows change of parameters in mid-session
  • Terminate session
  • NOT for distribution of multimedia data
  • NOT suitable for media gateway control
  • . . .
  • SIP applications typically fall in following
    categories
  • setting up voice-over-IP calls
  • setting up multimedia conferences
  • event notification IM and presence
  • text and general messaging
  • signaling transport

19
Addressing
  • Personal mobility
  • Examples
  • Alice Smith
  • sipalice_at_128.59.19.1945070
  • sipalice_at_columbia.eduuserphonetransporttcp

20
SIP message format
  • Very similar to HTTP/1.1
  • Text-based, request-response
  • Request method operates on the resource/entity
    identified in URI
  • Headers
  • To, From, Call-ID, CSeq transaction
    identification
  • Via response traverses the reverse request path
  • Content-Length, Content-Type message body
    information
  • Syntax
  • White-space doesnt matter except in first line
  • Lines can be folded
  • Multi-valued header fields can be combiled as a
    comma-list
  • Requests
  • INVITE, ACK, BYE, CANCEL related to call setup
    and tear down
  • OPTIONS, INFO, COMET, PRACK, SUBSCRIBE, NOTIFY,
    PUBLISH, REFER,
  • Responses
  • Provisional 100 Trying, 180 Ringing, 183 Session
    progress,
  • Success 200 OK, 202 Pending,
  • Redirection 301 Moved permanently, 302 Moved
    temporarily,
  • Request failure 400 Bad Request, 401
    Unauthorized, 404 Not found, 480 Not available,
    486 Busy here,
  • Server failure 500 Internal server error, 501
    Not implemented,
  • Global failure 600 Busy everywhere, 603 Decline,

21
Building blocks
  • SIP user agent
  • IP phone, PC, conference bridge,
  • SIP redirect server
  • returns new location for requests
  • SIP stateless proxy
  • routes call requests
  • SIP (forking) stateful proxy
  • routes call requests
  • SIP registrar
  • accepts name to address mapping
  • Location server
  • maintains name to address mapping
  • Maintaining state
  • stateless each request and each response handled
    independently
  • Fast load balancing proxies robust
  • (transaction) stateful remember a whole
    request/response transaction
  • Enterprise servers, . . .
  • call stateful remember a call from beginning to
    end
  • Billing, NAT traversal, . . .

Other entities outbound proxy, back-to-back user
agent (b2bua), application-level-gateway (ALG),
Typically implemented in a single software or box
22
Message routing
  • Response follows the reverse request path
  • Via header in SIP message records the request path
  • Request routing decision at each hop
  • Usually direct end-to-end transport after initial
    request
  • Forcing request path Record-route and Route
    headers.
  • Request forking parallel vs sequential (use
    q-value in Contact)
  • Caller and callee info further govern request
    routing

q1.0
q0.7
q0.2
23
Example call setup
Alice
(9) ok
(8)
_at_residence.net
(10)
_at_visiting.com
(6)
unavailable (7)
(6)
(5)
(3) invite
(4) moved
_at_school.edu
(12) ok
(6)
Bob
(2) moved
(11) cancel
_at_home.com
(1) invite
_at_lab.school.edu
_at_yahoo.com
24
Transport
  • SIP can operate on any packet network, reliable
    or unreliable
  • UDP most common
  • Low state overhead
  • But small max packet size
  • TCP
  • Use with SSL
  • Connection setup overhead
  • Head of line blocking for trunks (use SCTP
    instead)
  • Transport reliability
  • Request retransmissions, exponential back-off
    interval
  • INVITE different than other methods
  • Retransmit INVITE response after provisional
    response was sent

25
NAT traversal
  • Problem
  • Solutions
  • Smart servers
  • (open)SER allows detecting nodes behind a NAT
  • Use application level gateway and media-proxy
  • SIP Signaling
  • Symmetric response routing for UDP (rport)
  • Connection reuse for TCP/TLS (sip-outbound)
  • Media
  • STUN Simple traversal of UDP through NAT
  • TURN Traversal using relay NAT
  • ICE Interactive connectivity establishment

iptel.org
L10.1.2.35060
26
NAT traversal (ICE)
  • Address gathering
  • Negotiation
  • Connectivity check

STUN server stun01.sipphone.com
R192.1.2.37002
example.net
INVITE (offer)
OK (answer)
E128.59.19.1948123
L10.1.2.38000
192.168.1.26000
10.1.2.38000
Gather addresses 192.168.1.26000
(local) 135.59.22.996000 (external) 192.1.2.4900
4 (relay)
Gather addresses (L,E,R) 10.1.2.38000
(local) 128.59.19.1948123 (external) 192.1.2.370
02 (relay)
27
Agenda
  • Introducing VoIP
  • What does it take to build simple audio
    telephony?
  • Inside Session Initiation Protocol (SIP)
  • What are the main features of SIP
  • VoIP services using SIP
  • How do we implement various services like call
    transfer, auto-attendant, voicemail?

28
IP telephony services (PSTN)
  • Call routing services pre-call, one party
  • speed dial
  • call forwarding
  • follow me
  • call filtering/blocking (in/out)
  • do not disturb
  • distinctive ringing
  • Call handling features
  • autoanswer
  • Multi-party features
  • call waiting
  • call transfer (blind, consultative)
  • conference call
  • call park
  • call pickup
  • music on hold
  • call monitoring

IP-telephony cant win by just providing what
PSTN has
29
IP telephony services (Internet)
  • Presence-enabled calls
  • place call only if callee is available
  • Presence-enabled conferencing
  • call conference participants when all are online
    and not busy
  • IM conference alerts
  • receive IM when someone joins a conference
  • Unified messaging
  • receive email, IM alert for new voicemails

Programmability of services
30
Where do the services reside?
Double ringing sound when boss calls
Enter your authentication PIN for billing
Use finger for locating user
B2BUA
Endpoint
Make call when boss is online
Proxy/registrar
Endpoint
Forward to office phone during day, and home
phone during evening
Service control on client vs server
31
Endpoint call control
  • Language for End System Services (LESS) for
    endpoint service creation
  • Direct user interaction, direct media control
  • Handle converged information, e.g., call,
    presence, email
  • Example when buddy is online, make a call
  • require"generic presence ui"
  • text"Calling " /

32
Network call control
  • Common gateway interface -- SIP-CGI (RFC 3050)
  • Call processing language -- CPL (XML-based,
    allows GUI)
  • SIP servlets (Java)

Priority.pl
SIP_FROM SIP_TO stdin
CGI-PROXY-REQUEST stdout
33
Call transfer
  • REFER
  • Blind/ consultation/ attended

B
A
C
active call
REFER C Referred-By B
INVITE C Referred-By B
BYE A
active call
34
B2BUA and third-party call control
  • Back-to-back UA
  • Incoming call triggers outgoing call
  • Services
  • Calling card
  • Anonymizer

B
A
C
INVITE
OK (SDP1)
ACK
INVITE (SDP1)
OK (SDP2)
ACK
INVITE (SDP2)
OK
ACK
35
Voicemail
  • Various design alternatives

36
Interactive voice response using VoiceXML
Gateway
VXML Browser
PSTN
Telephone
IVR platform
  • Voice and telephony functions
  • (ASR, TTS, DTMF)
  • Service logic (application specific)

37
VoiceXML contd.

Your ID, please.


Enter your Id nameid
Telephony, speech synthesis or audio output, user
input and grammar, program flow, variable and
properties, error handling,
38
DTMF
PSTN
Internet
Telephone
SIP/PSTN gateway
Internet user
Audio
D
SIP INFO
D
RTP/ RFC2833
39
Interworking with telephone network
sipbob_at_home.com
1-415-123-4567
  • IP to telephone
  • Static mapping
  • 1-212854xxxx_at_gw1.columbia.edu
  • Gateway information is dynamic
  • Overlapping networks
  • Multiple providers
  • Load balancing
  • Telephony routing over IP (TRIP)
  • Route advertisement
  • Can be implemented in outbound proxy
  • Suitable for current hierarchical network
  • 1 _at_service.mci.com at 4/min
  • 1212 _at_nyc.gw.com at 1/min
  • 1212939 _at_itgw1.columbia.edu free
  • Telephone to IP
  • Gateway knows the SIP server
  • ENUM E164 numbering (using DNS)
  • 1 212 9397042 2.4.0.7.9.3.9.2.1.2.1.e164.arpa
    siphgs_at_cs.columbia.edu
  • Suitable for relatively static contacts

Telephone network
Telephone subscriber
SIP/PSTN gateway
SIP server
IP endpoint
  • Translating audio (µ-law/A-law)
  • Translating signaling (PRI/T1,ISUP)
  • Overlap signaling
  • Advanced features in SIP are lost in PSTN
  • Translating identifiers (phone number)
  • Determining transition points

40
Summary
  • Introducing VoIP
  • Basic audio transfer, why we need RTP and
    SIP/SDP?
  • Inside SIP
  • Message format, addressing, building blocks,
    routing, transport, NAT traversal,
  • VoIP services using SIP
  • Types of services, programmability, call
    transfer, third-party, voicemail, interactive
    voice response, telephone interworking,

41
VoIP activities
  • IETF working groups sip, sipping, mmusic, xcon,
    p2psip, simple, impp, iptel, enum, ecrit, avt,
    sigtran, midcom,
  • Elsewhere 3GPP, ITU-T, W3C, Jabber/XSF,
    ETSI-Tiphon, IMTC, sip-forum, VON,

42
References
  • SIP RFC 3261-3265 http//www.cs.columbia.edu/sip
  • RTP RFC 3550, 3551, http//www.cs.columbia.edu/h
    gs/rtp
  • My thesis http//www.cs.columbia.edu/kns10/publi
    cation/thesis.pdf (part III Enterprise IP
    telephony)
  • Open source SIP server http//www.openser.org
  • Free SIP accounts http//iptel.org
Write a Comment
User Comments (0)
About PowerShow.com