Title: Voice over IP VoIP
1Voice over IP - VoIP
- SMD151
- Peter.Parnes_at_ltu.se
2Overview
- What is VoIP?
- Toll ByPass
- RTP
- Control Protocols
- MGCP
- H323
- SIP in detail
3What is Voice over IP
- The packetisation and transport of classic public
switched telephone system audio over an IP
network. - The analog audio stream is encoding in a digital
format, with possible compression, and
encapsulating it in IP for transport over your
LAN/WAN or the public internet
4Categories of VoIP
- Private and Desktop Skype, Microsoft Netmeeting,
ohphone, gphone, Asterisk, Marratech, etc. - Enterprise Small IP phone deployments, IP PBX,
Cisco Callmanager. - ISP/Carrier Toll Bypass services, VOIP
wholesale, using equipment by vendors such as
Cisco, Lucent, Avaya, etc. - Telco Grade Local service, Last mile delivery,
total phone services, high dependability and
availability.
5Toll ByPass
6How does it work?
- VoIP is not a protocol.
- VoIP is a collection of protocols and devices
that allow for the encoding, transport and
routing of audio calls over IP networks. - PSTN ? VoIP ? PSTN
- Native VoIP ? PSTN
- Native VoIP ? Native VoIP
7The Guts
- RTP (Real-Time Transport Protocol)
- RTCP (Real-Time Control Protocol)
- RTP is a UDP stream with no intelligence for QoS
or resource reservation - Contains a packet number for detection of packet
loss and re-sequencing of out of order packets. - Unidirectional two streams in any call
8RTP
9RTCP Sender Report
- Real-time Transfer Control Protocol Sender Report
10RTCP Receiver Report
11Control Protocols - SIP
- SIP Session Initiation Protocol.
- SIP is a textual based client/server protocol.
This makes debugging easy as its invite etc
messages are human readable. -
- INVITE sip021326001_at_203.109.130.945060userph
one SIP/2.0 - Via SIP/2.0/UDP 10.30.60.205060
- From "Mr Anderson" ltsip099639951_at_10.30.60.205
060gttag1ACC.8D00 - To ltsip021326001_at_203.109.130.945060gttag3598
70F0-16CD - Call-ID 00C0.95C9.5818.4013.1ACC.8D00_at_10.30.60.
20 - CSeq 5257 ACK
- Content-Length 0
- Max-Forwards 70
- Contact sip099639951_at_10.30.60.205060
12Control Protocols MGCP
- MGCP Media Gateway Control Protocol.
- MGCP is a master/slave protocol where all the
smarts resides in the gateway controller and not
the gateway.
13Control Protocols H323
14Control Protocols H323
- value H323_UserInformation
-
- h323-uu-pdu
-
- h323-message-body releaseComplete
-
- protocolIdentifier 0 0 8 2250 0 4
- callIdentifier
-
- guid '3E940C894E1311D8A33E919F0987C365
'H -
-
- h245Tunneling TRUE
-
-
15H323
16H323 Call Setup Version 1
- H.323 call setup consisted of
- Q.931 call signaling (1st TCP connection)
- H.245 capability exchange (2nd TCP connection)
- H.225.0 establish logical channels (3rd TCP
connection) - Now send RTP...
- Each TCP connection requires a SYN exchange
before data can be sent, plus the usual TCP
timeouts on packet loss. - Connection setup was excessively slow.
17H323 Evolution
- H.323 has evolved so that many of the original
defects have been reduced. - Unfortunately you still need to implement the old
mechanisms too to be compliant. - Two new methods of setup
- H.245 tunneling over the H.225.0 connection.
- H.323v2 FastStart
18H323 FastStart
19Control Protocols
- SIP
- MGCP
- H323
- Skinny Ciscos IP phone control protocol
-
20Summary
- What is VoIP?
- Toll ByPass
- RTP
- Control Protocols
- H323
- MGCP
- SIP
21Questions?
22SIP Overview
- SIP - Introduction
- SIP architecture and philosophy
- Methods Used in SIP
- SIP messages responses
- Security
- Summary
- References
- Nishita Vora Pandya
23SIP is
- An Application-layer control (signaling) protocol
- creating, modifying and terminating sessions with
one or more participants. - Sessions include
- Internet multimedia conferences,
- Internet telephone calls
- multimedia distribution.
- Members in a session can communicate via
- Multicast
- mesh of unicast relations
- combination of these.
- Text based
- Model similar to HTTP uses client-server model
24SIP Basic Functionality
- Supports 5 facets of communication
- User location determination of the end system to
be used for communication - User capabilities determination of the media and
media parameters to be used - User availability determination of the
willingness of the called party to engage in
communications - Call setup "ringing", establishment of call
parameters at both called and calling party - Call handling including transfer and termination
of calls.
25SIP Functionality (cont.)
- SIP can also initiate multi-party calls using a
multipoint control unit (MCU) or fully-meshed
interconnection instead of multicast. - You can try in Marratech
- Internet telephony gateways that connect Public
Switched Telephone Network (PSTN) parties can
also use SIP to set up calls between them.
26Development of SIP
- SIP developed by Handley, Schulzrinne, Schooler,
and Rosenberg - - Submitted as Internet-Draft 7/97
- Assigned RFC 2543 in 3/99
- Goals Re-use of Maximum Interoperability with
existing protocols - Alternative to ITUs H.323
- - H.323 used for IP Telephony since 1994
- - Problems No new services, addressing, features
- - Concerns scalability, extensibility
27SIP Philosophy
- Internet Standard
- - IETF - http//www.ietf.org
- Reuse Internet addressing (URLs, DNS, proxies)
- - Utilizes rich Internet feature set
- Reuse HTTP coding
- - Text based
- Makes no assumptions about underlying protocol
- TCP, UDP, X.25, frame, ATM, etc.
- Support of multicast
28SIP Architecture
- SIP uses client/server architecture
- Client - originates message
- Server - responds to or forwards message
- Elements
- SIP User Agents (SIP Phones)
- SIP Servers (Proxy or Redirect - used to locate
SIP users or to forward messages.) - Can be stateless or stateful
- SIP Gateways
- To PSTN for telephony interworking
- To H.323 for IP Telephony interworking
29SIP Entities User Agents
- User Agents
- User Agent Client (UAC)
- Initiates SIP requests
- User Agent Server (UAS)
- Returns SIP responses
30SIP Entities Network Servers
- Network Servers
- Proxy Decides next hop and forwards request,
relays call signaling , operates in a
transactional manner, saves no session state - Redirect Sends address of next hop back to
client, redirects callers to other servers - Registrar Accepts REGISTER requests from
clients, maintains users whereabouts at a
location server - Diff. types may be co-located.
31SIP Operation
- SIP Addressing
- Locating a SIP Server
- Sending SIP Requests SIP Transactions
- SIP Methods
- SIP Responses
- Subsequent Requests and Responses
32Step 1SIP Addressing
- Uses Internet URLs
- Uniform Resource Identifiers
- Supports both Internet and PSTN addresses
- General form is name_at_domain
- To complete a call, needs to be resolved down to
User_at_Host - Examples
- sippeter_at_parnes.com
- sipJ.T. Kirk ltkirk_at_starfleet.govgt
- sip46-8-50555699_at_digisip.netuserphone
- sipguest_at_10.64.1.1
33Step 2 Locating a SIP server
- A caller first locates the appropriate server
- When client wants to send a request URI
- client will either send it to
- - Locally configured Proxy server
- - IP address port corresponding to the
- request URI similar to the one in step 1
- Client must determine IP address, port of server
and the protocol to be used.
34Locating (cont.)
- Client
- Send the request to the servers IP address if
the host part of request URI is an IP address
otherwise - Should try to contact a server at the port listed
in request URI. If no port specified then try
port 5060 - Use specified protocol if applicable
- otherwise use UDP if supported,
- if UDP fails or otherwise use TCP
- Find one or more address of server by querying
DNS, - NAPTR, SRV, CNAME, A
- Results MAY be cached.
- Capability to interpret ICMP messages must exist
35Step 3Send a SIP request
- Once the host part has been resolved to a SIP
server, - client sends 1 / more SIP requests to
that server - receives 1 / more responses from the server.
- SIP Request-line (Messages) defined as
- ltMethodgt ltSPgt Request-URI ltSPgtSIP-Version
ltCRLFgt - (SPSpace, CRLFCarriage Return and Line
Feed) - (Method INVITE ACK OPTIONS
- BYE CANCEL
REGISTER) - Example
- INVITE sippeter_at_parnes.com SIP/2.0
36Order of Operation
- Step 1 Caller Issues Initial INVITE Request
- Step 2 Callee Issues Response
- Step 3 Caller Receives Response to Initial
- request
- Step 4 Caller or Callee Generate Subsequent
- requests
- Step 5 Receive Subsequent Requests
- Step 6 BYE to end session
- Step x CANCEL may be issued
37Simple Example
Audio, video, ...
38Methods (cont.)
- 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 a session (hanging up)
- CANCEL cancels a pending invite
- REGISTER binds a permanent address to current
location, may convey user data - OPTIONS capability inquiry
39Redirect Example
40Redirect Example
41Relaying a Call
42Relay Example
43Relay and Topology Hiding
44SIP Negotiation
45SIP Negotiation
46Multi-register Example
47Proxy Server Example
48Redirect Server Example
49SIP Responses
- SIP Responses defined as (HTTP-style)
- SIP-Version SP Status-Code SP Reason-Phrase
CRLF - (SPSpace, CRLFCarriage Return and Line Feed)
- Example
- SIP/2.0 404 Not Found
- First digit gives Class of response
50SIP Responses (cont.)
- 1xy Informational
- request received , continuing to process
request - 2xy Success
- action successfully recvd., understood
accepted - 3xy Redirection
- Further action to be taken to complete the
request - 4xy Client error
- request contains syntax error or cant be
completed at this server - 5xy Server error
- server fails to fulfill an apparently valid
request - 6xy global failure,
- request is invalid at any server
51Step 4 Generate Subsequent Requests
- Once the call has been established
- either the caller or callee may generate INVITE
or BYE requests to change or terminate the call.
- For the desired call leg the headers are set as
follows (both including any tags) - - the To header field is set to the remote
address, and - - the From header field is set to the local
address. - The Contact header field may be different than
the Contact header field sent in a previous
response or request. - The Request-URI may be set to the value of the
Contact header field received in a previous
request or response from the remote party, or to
the value of the remote address. supports
mobility
52SIP Requests Example
- Required Headers (fields)
- Via Shows route taken by request.
- Call-ID unique identifier generated by client.
- CSeq Command Sequence number
- generated by client
- Incremented for each successive request
INVITE sippicard_at_wcom.com SIP/2.0 Via
SIP/2.0/UDP host.wcom.com5060 From Alan
Johnston ltsipalan.johnston_at_wcom.comgt To Jean
Luc Picard ltsippicard_at_wcom.comgt Call-ID
314159_at_host.wcom.com CSeq 1 INVITE
53Via Field in Header
- The Request headers include a Via field
- The Via field indicates the path taken by the
request so far. - Every proxy adds a Via Header with its address to
make sure that responses within a transaction
take the same path (to avoid loops, or to make
sure that same firewall will be hit on the way
back) - This prevents request looping and ensures replies
take the same path as the requests, which assists
in firewall traversal and other unusual routing
situations.
54Via Headers and Routing
- Via headers are used for routing SIP messages
- Requests
- Request initiator puts address in Via header
- Servers check Via with senders address, then add
own address, then forward. (if different, add
received parameter) - Responses
- Response initiator copies request Via headers.
- Servers check Via with own address, then forward
to next Via address - All Via headers are copied from request to
response in order - Response is sent to address in top Via header
55Via Header (cont.)
56VIA Example
57Via Example Response
58Step 5 Receiving Subsequent Requests
- Subsequent to receipt, the following checks are
made - 1. If the Call-ID is new,
- - the request is for a new call, regardless
of the values - of the To and From header fields.
- 2. If the Call-ID exists,
- - the request is for an existing call.
- - If the To, From, Call-ID, and CSeq values
exactly match (including tags) those of any
requests received previously, - - the request is a retransmission.
- 3. If there was no match to the previous step,
- - To From fields compared against existing
call leg local and remote addresses. - - If there is a match, the CSeq in the
request gt last CSeq - received on that leg,
- - the request is a new transaction for an
existing call leg.
59Reliability
- If UDP is used
- -SIP client should retransmit a BYE, CANCEL,
OPTIONS, or REGISTER request, exponential
backoff, starting at a T1 second interval,
doubling the interval for each packet, and
capping off at a T2 second interval. - -Retransmit a INVITE request with an interval
that starts at T1 seconds, exponential back off,
cease retransmissions if a provisional or
definitive response recvd., or once it has sent a
total of 7 request packets - Clients using TCP do not need to retransmit
requests
60Authentication Encryption
- SIP supports a variety of approaches
- end to end encryption
- hop by hop encryption
- Proxies can require authentication
- Responds to INVITEs with 407 Proxy-Authentication
Required - Client INVITEs again with Proxy-Authorization
header. - Stacked!!
- SIP Users can require authentication
- Responds to INVITEs with 401 Unauthorized
- Client INVITEs with Authorization header
61Features and Benefits
62Features and Benefits(cont.)
63SIP vs. H323
- H.323 uses TCP for setup
- UDP gives better timing control
- UDP is critical for very large proxies that wish
to be stateless. - H.323 uses ASN.1 Packed Encoding Rules
- For a long time only one company sold an ASN.1
compiler that could compile H.323's ASN.1 - SIP uses an HTTP-like syntax.
- Much easier to write and to debug.
- Much experience with HTTP
64SIP Summary
- SIP is
- Relatively easy to implement
- Gaining vendor and carrier acceptance
- Very flexible in service creation
- Extensible and scaleable
- Appearing in products right now
- SIP provides its own reliability mechanism is
therefore independent of the packet layer and
only requires an unreliable datagram service
65But
- SIP is not
- Going to make PSTN inter-working easy
- Going to solve all IP Telephony issues (QoS)
- Secure !?
- SIP is still evolving and being extended as
technology matures and SIP products are
socialized in the marketplace. - Newer RFCs 3261 through 3265
66Questions?