Title: Multimedia Communication in the Internet VoIP and SIP
1Multimedia Communication in the InternetVoIP
and SIP
2Description of Multimedia
3Session Description Protocol (SDP)
- Convey sufficient information to enable
participation in a multimedia session - SDP includes description of
- Media to use (codec, sampling rate)
- Media destination (IP address and port number)
- Session name and purpose
- Times the session is active
- Contact information
- Note indeed SDP is a data format rather than a
protocol.
RFC2327
4Example Session Description Protocol (SDP)
- v0
- osisalem 28908044538 289080890 IN IP4
193.175.132.118 - sSIP Tutorial
- esisalem_at_fokus.gmd.de
- cIN IP4 126.16.69.4
- t28908044900 28908045000
- maudio 49170 RTP/AVP 0 98
- artpmap98 L16/11025/2
Receivers IP address
Supported RTP payload types
Receivers port number
I am ready to receive G.711 (0) and L16 (98)
audio at IP address 126.16.69.4, port number
49170.
5IP Telephony
6Why Another Phone System?
- Carrying voice on IP-based packet networks first
identified by Cohen in 1977 - Commercialization and standardization began in
1995 Vocaltec the first company to ship IP2PSTN
gateways (proprietary) - ITU-T standardized H.323 to recreate ISDN
- SIP standardization began in IETF in 1995
- Adoption of SIP for use in 3GPP in late nineties
- Motivation
- Cost saving through telco by-passing
- Service Integration
7Why Another Phone System?
- Lower transport costs
- Routing is cheaper than switching (lower
equipment and line prices) - Network is not only dedicated to voice
- More efficient bandwidth usage
- Variable compression (often lower than 64kb/s)
- Usage of silence suppression
- Application integration
- Support voice, video or text all at the same time
with the same network - Integrate intelligent applications easily
(initiate a call when something happens)
8IP-Telephony is not just Telephony!!!!
- IP-Telephony signaling is not about
- Reengineering PSTN
- Carrying PSTN over IP
- Providing QoS
- Solving the business model dilemma
- Introducing world peace
- IP-Telephony is just another Internet application
but with special requirements - More stringent QoS requirements but so would
video conferencing and distributed gaming - Interaction with legacy technology
- Regulatory issues
- Comparisons to legacy services
9Basic Internet Telephony Scenarios
- PC-to-PC (MS NetMeeting, appliances)
- PC-to-phone (net2phone.com)
10PC-to-phone/PC Scenario
Egress PSTN Gateway
PSTN Phone
IP SoftPhone
IP Hard-Phone
- Benefits
- Cost-savings
- Service integration Many todays installation
serve as PBX replacement today.
IP SoftPhone
11Phone-2-phone Scenario
PSTN Phone
Ingress PSTN Gateway
PSTN Phone
- Benefit
- Cost savings through telco bypass. Most of the
voice path in the Internet which has no notion of
distance and duration in its charging model.
Egress PSTN Gateway
12Shift in Motivation Since Nineties
- Telco prices dropping, cost saving not as
appealing as in the past - Berlin-Prague before market liberalization in
1995 1DM a minute - Berlin-Prague today 4.50 cents (factor of 11)
- Expectations set high on service integration
- Voicemail2email, click-to-dial, conferencing,
instant messaging and presence, etc. - Shift in business mode be telco on your own
doable without large investments and operational
costs. Seen as an opportunity for small
businesses.
Source http//www.billigertelefonieren.de/
13Completed Work
- Since beginning, lot of focus has been paid to
quality of service to assure nice voice - Network provisioning
- QoS Signaling (RSVP, diffserv)
- Packet-loss concealment
- Less concern today backbones overprovisioned,
end-devices improved and burned in hardware - Signaling for IP Telephony Well Understood Today
- Session Initiation Protocol (RFC3261)
- Gateways to PSTN
14SIP Implementations Widely Available
SNOM Pingtel Allied Telesyn
Cisco
Intertex Cisco Siemens
Mitel Microsoft
Free SIP server with capacity that can server
VoIP signaling for Bay Area.
and many more http//www.iptel.org/info/product
s/
15Integrated Applications
- Distributed games
- SIP Quake sighted!
- Virtual reality
- Web-pages and applets
- Links in e-mails
- Web-IVRs
- Click-to-dial
- Directory Services
- Video conferencing
- Instant Messaging
- voicemail notifications
- stock notifications
- callback notification
- Calendars
- pre-setup conference calls
- Unified Messaging
- voicemail2email
etc.
16Example Trial Site
- Provides just signaling services
- gives users a unique globally reachable address
- resembles Web-hosting in IP world or NetCentrex
in PSTN world - no media transport -- only signaling relayed,
media does not hit the server at all - To set it up, we needed
- PC
- Freely available software
- IP access
- one part-time undergraduate student
- Users need
- IP phone (either in SW or HW)
- Complimentary services may be easily provided by
other parties, users just need to set up their
signaling preferences - bridging to PSTN, voicemail--2-email, etc.
17Protocols
18What Problems Do Need to Be Solved for VoIP?
- Session management
- Users may move from terminal to terminal with
different capabilities and change their
willingness to communicate - To set-up a communication session between two or
more users, a signaling protocol is needed - Session Initiation Protocol (SIP) supports
locating users, session negotiation
(audio/video/instant messaging, etc.) and
changing session state - Media Transport
- Getting packetized voice over lossy and congested
network in real-time - RTP protocol for transmitting real-time data
such as audio, video and games - End-to-end delivery underlying IP connects the
whole world - Supporting protocols DNS, IP , routing protocol,
AAA, gateway location, QoS, etc. - IETF Practice Decomposition Principle Separate
protocols are used for separate purposes.
Signaling protocol separate from media and QoS
signaling. All of them on top of IP.
19Protocol Zoo (Hourglass Model)
Media
RTP
H.323
SIP
RTCP
HTTP
UDP
SCTP
TCP
IPv4/IPv6
AALx
PPP
GPRS
V.x
SONET
Ethernet
ATM
20Packetized Communication
Signaling Protocol
Call Server
Media Transport
End Users
End Users
IP Router
- Note
- Every packet may take a completely different path
- Signaling takes typically different path than
media does - Both signaling and media as well as other
applications (FTP, web, email, ) look alike
up to transport layer and share the same fate
21Components Integration with SIP
PSTN Gateway
- All components use SIP
- They are glued together using a proxy server that
implements a routing policy for signaling
SMS Gateway
IP Phone Pool
Softphones And Messaging applications
SIP proxy
Applications
Other domains
22SIP (RFC3261) - General Purpose Presence Protocol
- SIP is not limited to Internet telephony
- SIP establishes user presence
- SIP messages can convey arbitrary signaling
payload session description, instant messages,
JPEGs, any MIME types - Suitable for applications having a notion of
session - distributed virtual reality systems,
- network games (Quake II/III implementations),
- video conferencing, etc.
- Applications may leverage SIP infrastructure
(Call Processing, User Location, Authentication) - Instant Messaging and Presence
- SIP for Appliances
23SIP Is Not
- Transport Protocol
- QoS Reservation Protocol
- Gateway Control Protocol
- It does NOT dictate ...
- Product features and services (color of your
phone and distinctive ringing melodies, number of
simultaneous calls your phone can handle, dont
disturb feature, ...) - network configuration
24SIP Workhorses
- SIP Proxy Server
- relays call signaling, i.e. acts as both client
and server - operates in a transactional manner, i.e., it
keeps no session state - transparent to end-devices
- does not generate messages on its own (except ACK
and CANCEL) - Allows for additional services (call forwarding,
AAA, forking, etc.) - SIP Redirect Server
- redirects callers to other servers
- SIP Registrar
- accept registration requests from users
- maintains users whereabouts at a Location Server
- (like GSM HLR)
25SIP End-devices
- User Agent (user application)
- UA Client (originates calls)
- UA Server (listens for incoming calls)
- Types of UAs
- Softphone and hardphones
- Messaging clients
- PSTN gateways
- Media servers (voicemail)
- Etc.
26SIP Addresses
- SIP gives you a globally reachable address.
- Callees bind their temporary address to the
global one using SIP REGISTER method. - Callers use this address to establish real-time
communication with callees. - URLs used as address data format examples
- sipjiri_at_iptel.org
- sipvoicemail_at_iptel.org?subjectcallme
- sipsales_at_hotel.xy geo.position48.54_-123.84_12
0 - must include host, may include user name, port
number, parameters (e.g., transport), etc. - may be embedded in Webpages, email signatures,
printed on your business card, etc. - address space unlimited
- non-SIP URLs can be used as well (mailto, http,
...)
27SIP RFC3261 Methods
- INVITE initiates sessions
- session description included in message body
- re-INVITEs used to change session state
- ACK confirms session establishment
- can only be used with INVITE
- BYE terminates sessions
- CANCEL cancels a pending INVITE
- OPTIONS capability inquiry
- REGISTER binds a permanent address to current
location may convey user data (CPL scripts)
28SIP Extension Methods
- UPDATE precondition met
- (draft-ietf-sip-manyfolks-resource)
- PRACK provisional reliable responses
acknowledgement - (draft-ietf-sip-100rel)
- INFO mid-call signaling
- (RFC 2976)
- SUBSCRIBE/ instant messaging
- NOTIFY/ (draft-ietf-simple-)
- MESSAGE
29SIP Response Codes
- Borrowed from HTTP xyz explanatory text
- Receivers need to understand response class (x)
- x80 and higher codes avoid conflicts with future
HTTP response codes - 1yz Informational
- 100 Trying
- 180 Ringing (processed locally)
- 181 Call is Being Forwarded
- 2yz Success
- 200 ok
- 3yz Redirection
- 300 Multiple Choices
- 301 Moved Permanently
- 302 Moved Temporarily
30SIP Response Codes (cont.)
- 4yz Client error
- 400 Bad Request
- 401 Unauthorized
- 482 Loop Detected
- 486 Busy Here
- 5yz Server failure
- 500 Server Internal Error
- 6yz Global Failure
- 600 Busy Everywhere
31SIP Message Structure
Response
Request
SIP/2.0 200 OK Via SIP/2.0/UDP
here.com5060 From BigGuy ltsipUserA_at_here.comgt To
LittleGuy ltsipUserB_at_there.comgttag65a35 Call-I
D 12345601_at_here.com CSeq 1 INVITE Subject
Happy Christmas Contact LittleGuy
ltsipUserB_at_there.comgt Content-Type
application/sdp Content-Length 134
INVITE sipUserB_at_there.com SIP/2.0 Via
SIP/2.0/UDP here.com5060 From BigGuy
ltsipUserA_at_here.comgt To LittleGuy
ltsipUserB_at_there.comgt Call-ID 12345600_at_here.com C
Seq 1 INVITE Subject Happy Christmas Contact
BigGuy ltsipUserA_at_here.comgt Content-Type
application/sdp Content-Length 147
Message Header Fields
v0 oUserB 2890844527 2890844527 IN IP4
there.com sSession SDP cIN IP4
110.111.112.113 t0 0 maudio 3456 RTP/AVP 0
artpmap0 PCMU/8000
v0 oUserA 2890844526 2890844526 IN IP4
here.com sSession SDP cIN IP4
100.101.102.103 t0 0 maudio 49172 RTP/AVP
0 artpmap0 PCMU/8000
Payload
receive RTP G.711-encoded audio at
100.101.102.10349172
32SIP Registration
- Bind a SIP address to an IP number
- Registration sent to SIP registrar responsible
for the domain - Sisalem_at_iptel.org -gt registrar iptel.org
- Find registrar through DNS
- Registration is needed to receive calls
- Not necessarily needed for initiating calls
33SIP Registrar
This registration example establishes presence
of user with address jiri_at_iptel.org and binds
this address to users current location
195.37.78.173.
Location Server
SIP Registrar (domain iptel.org)
34Basic SIP Call-Flow (Proxy Mode)
Location Server
Proxy
sipjiri_at_195.37.78.173
Caller_at_sip.com
35Proxy Server Functionality
- Serve as rendezvous point at which callees are
globally reachable - Perform routing function, i.e., determine to
which SIP hop (UA/proxy/redirect) signaling
should be relayed - Allow for call processing logic.
- users signaling preferences
- AAA
- firewall control
- etc.
- Forking Several destinations may be tried for a
request sequentially or in parallel.
36Proxy Chaining
- SIP proxies may be arbitrarily chained and add
different values along the signaling path - least-cost gateway routing
- load distribution
- processing users preferences
- etc.
- In some case a local outbound proxy may be
involved - provides locally important call processing logic
(e.g., identifying nearest 911) - manages firewall
- provides least-gateway-cost routing service
- IP phones must know address of the proxymay be
configured manually or with a configuration
protocol (DHCP, TFTP, ... ) - Servers have to avoid loops and recognize spirals
37Proxy Chaining - an Example
Callers administrative domain
Administrative domain of a PSTN gateway operator
gw01.asia.pstn.com
pstn.com
asia.pstn.com
4
3
2
1
Callers outbound proxy accomplishes firewall
traversal.
Destinations first-hit proxy identifies a
proxy serving dialed area.
Proxy in the target area distributes load in a
gateway farm.
Note signaling (in red) may take a completely
different path from media (in blue).
38Ability to Try Multiple Destinations Forking
- A proxy may fork a request to multiple
destinations either in parallel (reach me
everywhere) or serially (forward no reply). - A proxy can cancel pending parallel searches
after a successful response is received. - A proxy can iterate through redirection responses
(recursive forking). - The first OK is taken.
39Stateful versus Stateless Proxy Operational Mode
- SIP Proxies may operate either in stateful or
stateless mode which of the modes is used
depends on implementation or configuration. - stateless mode
- Usage good for heavy-load scenarios -- works
well for example if they act as application-layer
load distributors. - Behavior
- proxies just receive messages, perform routing
logic, send messages out and forget anything they
knew - they should cache results of SIP routing logic as
it is not able to distinguish between
retransmissions and new requests -- and would
result in new execution of SIP routing logic for
every retransmission
40Stateful versus Stateless Proxy Operational Mode
- stateful mode
- Usage good for implementing some services (e.g.,
forward on no reply) - Behavior
- proxies maintain state during entire transaction
they remember outgoing requests as well as
incoming requests that generated them until
transaction is over - a forking proxy should be stateful
- reduce retransmission time by acting on behalf of
sender closer to destination
41Stateful Proxy Refers to Transactions
SIP state forgotten as soon as transaction over
- SIP proxies deliver a one-time rendezvous
service (as opposed to state storage service). - Thus a stateful proxy just keeps state during a
SIP rendezvous transaction and completely
forgets it afterwards. - A SIP proxy is not aware of existing calls. In
case of failure, existing calls are NOT affected!
INVITE a_at_a.com
Legend SIP signaling SIP state media
42Tell Other Parties Where You Are Contact Header
Field
- In general, it indicates where users may be
reached for subsequent requests - Minimize proxys involvement in transactions
once all parties know each others contact
address they can communicate directly and proxy
server is no more needed - used for the next-try in 3xx redirection
responses - may include multiple weighted addresses
- if behind a firewall, the Contact header field
carries public servers address - In REGISTER method
- indicates current SIP address of requestor
- if different from current registration, it is
added to current registration list - if equal, contact parameters including updated
and expiration timer updated - 2xx replies return a list of current
registrations - Expires 0 removes an entry, if along with
Contact all entries are removed - Note Multiple header fields with the same
field-name may be present in a message if and
only if the entire field-value for that header
field is defined as a comma-separated list (i.e.,
(values)).
43SIP Operation in Redirect Mode
Location Server
Caller_at_sip.com
Proxy
Callee_at_home.com
44SIP Server -- Proxy versus Redirection
- A SIP server may either proxy or redirect a
request - Which of the two method applies is an
implementation or configuration issue. It may be
statically configured or dynamically determined
(CPL). - Redirection useful if a user moves or changes her
provider (PSTN The number you have dialed is
not available.) -- caller does not need to try
the original server next time. - Redirection stateless.
- Proxy useful if forking, AAA, firewall control
needed. In general, proxying grants more control
to the server. - Signaling using a proxy faster if RTT between
call originator and destination domain is the
major delay contributor.
45Routing Basics
- Requests could be sent directly to the contact
address - Media addresses are exchanged in SDP
- Replies follow the same path as the requests
- Each proxy adds a VIA header indicating its
address - Receiver gets a list in the form of
- VIA proxy_1, proxy_2 .....proxy_n
- Receiver sends the reply back to le last proxy in
the via header (proxy_n) which forwards the reply
to proxy_n-1 - Proxies that want to see all future requests of a
user add a RecordRoute header - Receiver get a list of RR proxy_1, proxy_2
..proxy_n - RR list is included in reply
- Sender directs its future requests to proxy_1,
which forwards it to proxy_2 ....
46Summary of SIP Properties
- Textual (HTTP-like) client-server protocol
- Easy to debug, extend and process with textual
operating systems - End-2-end
- It puts most of intelligence into end-devices
good for scalability and extensibility - Internet addressing using URIs
- E.g., sipjiri_at_iptel.org
- Non-SIP URIs possible to (e.g., they may be used
to redirect a caller to webpage) - Address space unlimited and may be used to create
services (sipsales_at_hotel.xy geo.position48.54_
-123.84_120) - It delivers mobility User can register from one
or more locations with IP connectivity