Title: SIP and VOCAL
1SIP and VOCAL
- David Bryan Cheung Tam
- Jasomi Networks, Inc. Cisco Systems, Inc.
- dbryan_at_jasomi.com cktam_at_cisco.com
2VOCAL System
- The Vovida Open Communications Applications
Library (VOCAL) - Carrier grade VoIP system
- 80 person-years and millions of of
development - 1.8 Million Busy Hour Call Attempts
- Features and functions that you can use today
- FreeBSD-like license
3VOCAL System
VOCAL is the software that enables a core
network to support a Voice over IP system.
4Traditional Telcos
- Proprietary Favoring the vendor over the
customer - Vendor-centric, limited interoperability
- Slow innovation, long development cycles
- Expensive and exclusive
5Voice over IP
- Open standards, rapid development and greater
choices for customers - Packet routing more efficient use of network
resources - Network management less expensive to operate one
network - Feature development web-based applications are
being developed and deployed quickly
6Open Source VoIP
- Cheap and accessible. Developers can create the
following - New features that dont exist on the PSTN
- Enhanced functions and solutions that can
accelerate the general adoption of VoIP in
businesses and residences - Processes and components that encourage others to
express new ideas
7Why Does Cisco Support Open Source VoIP?
- Its good for business
- Puts packets on the network Helps sell gateways
and routers - Distributive technology
- Helps win over new customers who want to control
their destiny and their application source code
8Voice over IP Protocols
9SIP, H.323 and MGCP
Call Control and Signaling
Signaling and Gateway Control
Media
Audio/ Video
H.323
H.225
RTCP
RTP
MGCP
Q.931
RAS
SIP
H.245
RTSP
TCP
UDP
IP
H.323 Version 1 and 2 supports H.245 over TCP,
Q.931 over TCP and RAS over UDP. H.323 Version 3
and 4 supports H.245 over UDP/TCP and Q.931 over
UDP/TCP and RAS over UDP. SIP supports TCP and
UDP.
10Session Initiation Protocol
11What is SIP?
Session Initiation Protocol - An application
layer signaling protocol that defines initiation,
modification and termination of interactive,
multimedia communication sessions between users.
IETF RFC 2543 Session Initiation Protocol
12SIP is Simply...
- An ASCII protocol, based on HTTP and SMTP, that
enables - Initializing, establishing and tearing down call
sessions - Building flexible distributed systems
- Interoperating with other web-based applications
13Where Its _at_
- The SIP address is identified by a SIP URL, in
the format user_at_host. - Examples of SIP URLs
- siphostname_at_vovida.org
- siphostname_at_192.168.10.1
- sip14085551212_at_vovida.org
14From 2 Devices...
SIP Components
15...to a Distributed Network...
PSTN
User Agent
Gateway
16...to a Complete Phone System
Phone
Gateway
Gateway
Marshal Server (Gateway)
CDR Server
Feature Server
Redirect Server
Provisioning Server
Policy Server
Marshal Server
Internet
Clearing House
Marshal Server
Marshal Server
H.323/SIP Translator
H.323 Terminal
MGCP/SIP Translator
Marshal Server
MGCP Device
17VOCALVovida Open CommunicationsApplications
Library
18VOCAL Say What?
- A library of communications applications that
provides - Open source software modules Primarily
SIP-based, with some rough translators to H.323
and MGCP endpoints - A tool kit Building blocks that allow
development of new VoIP features, applications
and services
19A Simplified Call Flow
The Audio Path is established.
8. User As phone responds with an ACK
(acknowledgement message)
7. User B, by picking up the phone, sends a 200
(OK) message.
6. User Bs phone rings and sends a 180 (Ring)
message back to User As phone.
5. Marshal Server B sends an INVITE message to
User B.
4. Marshal Server A forwards an INVITE message to
Marshal Server B.
3. The Redirect Server responds with routing
information and instructs the Marshal Server A
that User B can be contacted via the Marshal
Server B.
2. Marshal Server A forwards the INVITE message
to the Redirect Server
1. User A calls User B. User As Phone sends an
INVITE message to Marshal Server A.
20System Diagram
Phone
Gateway
Gateway
Marshal Server (Gateway)
CDR Server
Feature Server
Redirect Server
Provisioning Server
Policy Server
Marshal Server
Internet
Clearing House
Marshal Server
Marshal Server
H.323/SIP Translator
H.323 Terminal
MGCP/SIP Translator
Marshal Server
MGCP Device
21(No Transcript)
22Redundancy
Phone
Gateway
Gateway
Marshal Server (Gateway)
CDR Servers
Feature Servers
Redirect Servers
Provisioning Server
Policy Servers
Marshal Server
Internet
Clearing House
Marshal Server
Marshal Server
H.323/SIP Translator
H.323 Terminal
MGCP/SIP Translator
Marshal Server
MGCP Device
23Block Diagram
24Example 1
Build your own soft phone
CSPS or partners
SIP Proxy
Soft phone
API
SIP
VOCAL SIP UA
SIP
Gateway
API
VOCAL SIP Stack
Phone
25Example 2
Build your own CPL features
CPL scripts
API
CSPS or partners
VOCAL Feature Server
SIP Proxy
API
Gateway
SIP
VOCAL SIP Stack
SIP
SIP
Phone
26Example 3
Build your own Routing Engine
Routing Logic
API
VOCAL Redirect Server
API
VOCAL SIP Stack
Invite
Gateway
Redirect
Phone
27Future Features
- How SIP will be used
- Phone Calls (IPlt-gtIP and IPlt-gtPSTN)
- Instant Messaging
- Presence
- Games
- Whats missing
- IVR
- Voice Recognition
- Auto attendant
28WIFY?
- Whats in it for you
- Build applications
- Add voice services to your ISP
- Build and manage your own PBX
29Whos Working on it?
- Companies
- Dialpad
- Pagoo
- Cathay
- Netspeak
- Jasomi
- Lurkers
- Individuals
- Telecom engineers
- Students
- Hobbyists
- System Integrators
- IT
30How Big is the Community?
- Recent Software Downloads
31Vovida.org
- Mailing List Vocal_at_vovida.org
- Product Manager dhawk_at_cisco.com
- A few of our many contributors
32www.vovida.org
- David Bryan Cheung Tam
- Jasomi Networks Cisco Systems, Inc
- dbryan_at_jasomi.com cktam_at_cisco.com
33Additional Material
34Vocal Components
356 Degrees of Separation
- Basic SIP calling process
- Registering, initiating and locating users.
- Determining acceptable media negotiating
session descriptions between users. - Determining the willingness of the called party
to communicate calls are accepted or rejected
through response messages. - Setting up accepted calls.
- Modifying or handling calls through features
for example, call transfer. - Terminating the call.
36VOCAL Components
- Redirect Server SIP-based location, registration
and routing services. - Provisioning Server Stores all subscriber and
server data. - Feature Server Uses CPL to provide basic
telephony features including
37VOCAL Components (2)
- Marshal Server Performs authentication and
collects call detail records. - CDR Server Collects billing records from
Marshals, buffers them, and talks RADIUS to 3rd
part billing systems. - Policy Server Uses COPS to enable RSVP on
routers. Uses OSP to communicate settlement info
with VoIP clearing houses.
38VOCAL Components (3)
- H.323 and MGCP Translators Line side translation
from H.323 or MGCP endpoints into a SIP network. - SIP Stack Linux- and Solaris- based
implementation of the SIP protocol. - SIP User Agent Client-side agent to terminate
voice calls. - Other Protocol Stacks MGCP, RTP, COPS, RADIUS
and TRIP
39Redirect Server
- Provides SIP redirect, location, and registration
services/functions. - Stores contact and feature subscription data for
all registered subscribers - Stores and provides dial plan and routing
information - Feature and Marshal Servers forwards INVITE
messages to the Redirect Server to obtain routing
information to route a call
40Provisioning Server
- Stores data on each user or server within the
VOCAL system - Accessible from a Java-based GUI via an Internet
browser this allows you to configure the VOCAL
system and to administer users - Allows you to add and provision new modules for
redundancy and scalability - All data is stored in XML format in a Linux
directory structure - Uses subscribe notify method to distribute
provisioning information throughout the VOCAL
system - Subscribers can also access their feature
information from an Internet browser this
allows subscribers to enable or disable certain
features that they have subscribed to. (For
example, call forwarding).
41Marshal Server - Authentication
- The Marshal Server currently supports
authentication of the user by - Access control verification of IP address
against an access list - Digest authentication verification of username
and password - The Marshal Server obtains user information from
the Provisioning Server and/or the Redirect
Server to authenticate the user.
The Provisioning Server checks to see if
userA_at_hostname.com is an authorized user.
Provisioning Server
2.REGISTER
3. 200 (OK)
Once userA_at_hostname.com has been registered, the
Redirect Server sends a 200 message (OK).
1. REGISTER
4. 200 (OK)
42Marshal Server - Billing
- Billing
- Each Marshal server collects call detail record
information (such as the start and stop of the
call) and forwards CDR data to 3rd party billing
systems using the Remote Authentication Dial In
User Server (RADIUS) accounting protocol.
43Feature Server
Supports new feature scripting using C and Call
Processing Language (CPL), an XML based language
for IP telephony features
- VOCAL-supported core network features
- Call Blocking
- Caller ID Blocking
- Call Forward All
- Call Forward No Answer
- Call Forward Busy
- Call Return
- Call Screen
- VOCAL-supported set- based features
- Transfer
- Caller ID
- Call Waiting
- 3 Way Calling
- VOCAL-supported applications
- Unified Messaging
- Conferencing
44Features Scripting with CPL
- Call Processing Language (CPL) is
- An XML-based scripting language for describing
Internet telephony services and creating end-user
service features - A lightweight language that is not a complete
programming language it has no variables, loops
or ability to run external programs - A facility to enable decision making based on
call properties such as time of day, calling
party, called party and priority and action
application such as call forwarding, call
blocking, redirecting calls and sending e-mail - An IETF draft
45Call Detail Record (CDR) Server
- The Call Detail Record (CDR) Server
- Collects billing data from Marshal Servers
- Stores CDR for each call
- Forwards billing data to 3rd party billing system
using Remote Authentication Dial In User Server
(RADIUS) accounting protocol over UDP. - A third-party billing system can generate
invoices from the billing data.
46Policy Server
- Functions
- To administer admission request for bandwidth and
Quality of Service (QoS) - Acts as a Policy Decision Point (PDP)
- Provides Internetworking Marshal Server with
information on enforcing QoS - Provides Policy Enforcement Points (PEP)
routers or gateways with information or
requests to reserve bandwidth for the duration of
a specific call - Communicates using
- Common Open Policy Service (COPS) protocol -
used to communicate authorization
request/responses between a Policy Server and
Internetwork Marshal Servers or PEPs - Open Settlement Protocol (OSP) used to exchange
authentication, authorization, pricing and
accounting information with clearinghouse servers
when there are multiple VoIP network or service
providers.
47Scalability and Redundancy
- Scalability
- Modular approach - Redirect, Marshal and Feature
Servers can be added in parallel - These all use a round robin load balancing
between all the active servers within any group - Redundancy
- Active servers exchange multicast heartbeat info
every 250 ms - If a server drops, no established calls will be
lost. Calls in an intermediate state may be lost - If a server loses heartbeat with another server
in the system, it will simply route messages to
another server within the same group - Redirect and Provisioning Servers maintain data
and will synchronize before coming on-line
48Session Initiation Protocol
49What is SIP?
Session Initiation Protocol - An application
layer signaling protocol that defines initiation,
modification and termination of interactive,
multimedia communication sessions between users.
IETF RFC 2543 Session Initiation Protocol
50SIP Framework
Instant Messaging
- Session initiation.
- Multiple users.
- Interactive multimedia applications.
Personal Mobility
Distance Learning
Video Conferencing
Email
Voice Calls
MPEG, MP3, Audio, HTML,XML
51SIP Distributed Architecture
SIP Components
PSTN
User Agent
Gateway
52SIP Messages Methods and Responses
SIP components communicate by exchanging SIP
messages
- SIP Requests
- INVITE Initiates a call by inviting user to
participate in session. - ACK - Confirms that the client has received a
final response to an INVITE request. - BYE - Indicates termination of the call.
- CANCEL - Cancels a pending request.
- REGISTER Registers the user agent.
- OPTIONS Used to query the capabilities of a
server. - INFO Used to carry out-of-bound information,
such as DTMF digits.
- SIP Responses
- 1xx - Informational Messages.
- 2xx - Successful Responses.
- 3xx - Redirection Responses.
- 4xx - Request Failure Responses.
- 5xx - Server Failure Responses.
- 6xx - Global Failures Responses.
53SIP Headers
- SIP borrows much of the syntax and semantics from
HTTP. - A SIP messages looks like an HTTP message
message formatting, header and MIME support. - An example SIP header
- --------------------------------------------------
--------------- - SIP Header
- --------------------------------------------------
--------------- - INVITE sip5120_at_192.168.36.180 SIP/2.0
- Via SIP/2.0/UDP 192.168.6.215060
- From sip5121_at_192.168.6.21
- To ltsip5120_at_192.168.36.180gt
- Call-ID c2943000-e0563-2a1ce-2e323931_at_192.168.6.2
1 - CSeq 100 INVITE
- Expires 180
- User-Agent Cisco IP Phone/ Rev. 1/ SIP enabled
- Accept application/sdp
- Contact sip5121_at_192.168.6.215060
- Content-Type application/sdp
54SIP Addressing
- The SIP address is identified by a SIP URL, in
the format user_at_host. - Examples of SIP URLs
- siphostname_at_vovida.org
- siphostname_at_192.168.10.1
- sip14083831088_at_vovida.org
55Process for Establishing Communication
- Establishing communication using SIP usually
occurs in six steps - Registering, initiating and locating the user.
- Determine the media to use involves delivering
a description of the session that the user is
invited to. - Determine the willingness of the called party to
communicate the called party must send a
response message to indicate willingness to
communicate accept or reject. - Call setup.
- Call modification or handling example, call
transfer (optional). - Call termination.
56Registration
- Each time a user turns on the SIP user client
(SIP IP Phone, PC, or other SIP device), the
client registers with the proxy/registration
server. - Registration can also occur when the SIP user
client needs to inform the proxy/registration
server of its location. - The registration information is periodically
refreshed and each user client must re-register
with the proxy/registration server. - Typically the proxy/registration server will
forward this information to be saved in the
location/redirect server.
Proxy/ Registration Server
SIP Messages REGISTER Registers the address
listed in the To header field. 200 OK.
57Simplified SIP Call Setup and Teardown
302 (Moved Temporarily)
ACK
INVITE
Call Setup
302 (Moved Temporarily)
ACK
MediaPath
Call Teardown
58H.323
59What is H.323?
Describes terminals and other entities that
provide multimedia communications services over
Packet Based Networks (PBN) which may not provide
a guaranteed Quality of Service. H.323 entities
may provide real-time audio, video and/or data
communications.
ITU-T Recommendation H.323 Version 4
60H.323 Framework
- H.323 defines
- Call establishment and teardown.
- Audio visual or multimedia conferencing.
61H.323 Components
Circuit Switched Networks
62H.323 Terminals
- H.323 terminals are client endpoints that must
support - H.225 call control signaling.
- H.245 control channel signaling.
- RTP/RTCP protocols for media packets.
- Audio codecs.
- Video codecs support is optional.
63H.323 Gateway
- A gateway provides translation
- For example, a gateway can provide translation
between entities in a packet switched network
(example, IP network) and circuit switched
network (example, PSTN network). - Gateways can also provide transmission formats
translation, communication procedures
translation, H.323 and non-H.323 endpoints
translations or codec translation.
64H.323 Gatekeepers
- Gatekeepers provide these functions
- Address translation.
- Admission control.
- Bandwidth control.
- Zone management.
- Call control signaling (optional).
- Call authorization (optional).
- Bandwidth management (optional).
- Call management (optional).
- Gatekeepers are optional but if present in a
H.323 system, all H.323 endpoints must register
with the gatekeeper and receive permission before
making a call.
65H.323 Multipoint Control Unit
- MCU provide support for conferences of three or
more endpoints. - An MCU consist of
- Multipoint Controller (MC) provides control
functions. - Multipoint Processor (MP) receives and
processes audio, video and/or data streams.
66H.323 is an Umbrella Specification
Media H.261 and H.263 Video codecs. G.711,
G.723, G.729 Audio codecs. RTP/RTCP Media.
H.323
Data/Fax T.120 Data conferencing. T.38 Fax.
- Call Control and Signaling
- H.245 - Capabilities advertisement, media channel
establishment, and conference control. - H.225
- Q.931 - call signaling and call setup.
- RAS - registration and other admission control
with a gatekeeper.
67Other ITU H. Recommendation that work with H.323
Protocol
Description
68H.323 Components and Signaling
H.225/RAS messages over RAS channel
H.225/RAS messages over RAS channel
H.225/Q.931 (optional)
H.225/Q.931 (optional)
Gatekeeper
H.245 messages (optional)
H.245 messages (optional)
H.225/Q.931 messages over call signaling channel
PSTN
H.245 messages over call control channel
Terminal
- H.245 A protocol for capabilities
advertisement, media channel establishment and
conference control. - H.225 - Call Control.
- Q.931 A protocol for call control and call
setup. - RAS Registration, admission and status protocol
used for communicating between an H.323
endpoint and a gatekeeper.
69Process for Establishing Communication
- Establishing communication using H.323 is a
five-step process - Call setup.
- Initial communication and capabilities exchange.
- Audio/video communication establishment.
- Call services.
- Call termination.
70Simplified H.323 Call Setup
- Both endpoints have previously registered with
the gatekeeper. - Terminal A initiate the call to the gatekeeper.
(RAS messages are exchanged). - The gatekeeper provides information for Terminal
A to contact Terminal B. - Terminal A sends a SETUP message to Terminal B.
- Terminal B responds with a Call Proceeding
message and also contacts the gatekeeper for
permission. - Terminal B sends a Alerting and Connect message.
- Terminal B and A exchange H.245 messages to
determine master slave, terminal capabilities,
and open logical channels. - The two terminals establish RTP media paths.
1. ARQ
2. ACF
3. SETUP
4. Call Proceeding
5. ARQ
6. ACF
7.Alerting
8.Connect
H.245 Messages
RTP Media Path
RAS messages
Call Signaling Messages
Note This diagram only illustrates a simple
point-to-point call setup where call signaling is
not routed to the gatekeeper. Refer to the H.323
recommendation for more call setup scenarios.
71Versions of H.323
Version
Reference for key feature summary
Date
H.323 Version 3
http//www.packetizer.com/iptel/h323/whatsnew_v3.h
tml
September 1999
72References
- For more information on H.323, refer to
- ITU-T
- http//www.itu.int/itudoc/itu-t/rec/index.html
- Packetizer
- http//www.packetizer.com/iptel/h323/
- Open H.323
- http//www.openH323.org
73Comparing
74Comparing SIP and H.323 - Similarities
- Functionally, SIP and H.323 are similar. Both SIP
and H.323 provide - Call control, call setup and teardown.
- Basic call features such as call waiting, call
hold, call transfer, call forwarding, call
return, call identification, or call park. - Capabilities exchange.
75Comparing SIP and H.323 - Strengths
- H.323 Defines sophisticated multimedia
conferencing. H.323 multimedia conferencing can
support applications such as whiteboarding, data
collaboration, or video conferencing. - SIP Supports flexible and intuitive feature
creation with SIP using SIP-CGI (SIP-Common
Gateway Interface) and CPL (Call Processing
Language). - SIP Third party call control is currently only
available in SIP. Work is in progress to add
this functionality to H.323.
76Table 1 - SIP and H.323
77Table 2 - SIP and H.323
Information
H.323
SIP
78Table 3 - SIP and H.323
79Table 4 SIP and H.323
80Reference
- This section cites a document that provides a
comprehensive comparison on H.323 and SIP - Dalgic, Ismail. Fang, Hanlin. Comparison of
H.323 and SIP for IP Telephony Signaling in
Proc. of Photonics East, (Boston, Massachusetts),
SPIE, Sept. 1999. - http//www.cs.columbia.edu/hgs/papers/others/
Dalg9909_Comparison.pdf
81MGCP
- Media Gateway Control Protocol
82What is MGCP?
Media Gateway Control Protocol - A protocol for
controlling telephony gateways from external call
control elements called media gateway controllers
or call agents.
IETF RFC 2705 Media Gateway Control Protocol
83Components
- Call agent or media gateway controller
- Provides call signaling, control and processing
intelligence to the gateway. - Sends and receives commands to/from the gateway.
- Gateway
- Provides translations between circuit switched
networks and packet switched networks. - Sends notification to the call agent about
endpoint events. - Execute commands from the call agents.
Call Agent or Media Gateway Controller (MGC)
Call Agent or Media Gateway Controller (MGC)
SIP H.323
MGCP
MGCP
84Simplified Call Flow
- When Phone A goes off-hook Gateway A sends a
signal to the call agent. - Gateway A generates dial tone and collects the
dialed digits. - The digits are forwarded to the call agent.
- The call agent determines how to route the call.
- The call agent sends commands to Gateway B.
- Gateway B rings phone B.
- The call agent sends commands to both gateways to
establish RTP/RTCP sessions.
MGCP
MGCP
RTP/RTCP
Gateway A
Gateway B
85MGCP Commands
- Call Agent Commands
- EndpointConfiguration
- NotificationRequest
- CreateConnection
- ModifyConnection
- DeleteConnection
- AuditEndpoint
- AuditConnection
- Gateway Commands
- Notify
- DeleteConnection
- RestartInProgress
86Characteristics of MGCP
- MGCP
- A master/slave protocol.
- Assumes limited intelligence at the edge
(endpoints) and intelligence at the core (call
agent). - Used between call agents and media gateways.
- Differs from SIP and H.323 which are peer-to-peer
protocols. - Interoperates with SIP and H.323.
87MGCP, SIP and H.323
- MGCP divides call setup/control and media
establishment functions. - MGCP does not replace SIP or H.323. SIP and H.323
provide symmetrical or peer-to-peer call
setup/control. - MGCP interoperates with H.323 and SIP. For
example, - A call agent accepts SIP or H.323 call setup
requests. - The call agent uses MGCP to control the media
gateway. - The media gateway establishes media sessions with
other H.323 or SIP endpoints.
88Example Comparison
- MGCP
- A user picks up analog phone and dials a number.
- The gateway notifies call agent of the phone
(endpoint) event. - The Call agent determines capabilities, routing
information, and issues a command to the gateways
to establish RTP/RTCP session with other end.
- H.323
- A user picks up analog phone and dials a number.
- The gateway determines how to route the call.
- The two gateways exchange capabilities
information. - The terminating gateway rings the phone.
- The two gateways establish RTP/RTCP session with
each other.
3
2
Call Agent/Media Gateway Controller
5.RTP/RTCP
4
1
1
RTP/RTCP
Gateway A
Gateway B
89What is Megaco?
- A protocol that is evolving from MGCP and
developed jointly by ITU and IETF - Megaco - IETF.
- H.248 or H.GCP - ITU.
- For more information, refer to
- IETF - http//www.ietf.org/html.charters/megaco-ch
arter.html - Packetizer - http//www.packetizer.com/iptel/h248/
90References
- For more information on MGCP, refer to
- IETF
- http//www.ietf.org/rfc/rfc2705.txt?number2705
91VOCAL Resources
- Web site www.vovida.org
- Mailing lists vocal_at_vovida.org
- sip_at_vovida.org
92General VoIP Reference
- Pulver IP Telephony News
- http//www.pulver.com
- Internet Telephony
- http//www.internettelephony.com
- An overview poster of the SIP, MGCP, and H323
protocols. - http//www.protocols.com/voip/posvoip.pdf
93SIP References
- For more information about SIP, refer to
- IETF
- http//www.ietf.org/html.charters/sip-charter.html
- Henning Schulzrinne's SIP page
- http//www.cs.columbia.edu/hgs/sip/
94General VoIP Reference
- Pulver IP Telephony News
- http//www.pulver.com
- Internet Telephony
- http//www.internettelephony.com
- An overview poster of the SIP, MGCP, and H323
protocols. - http//www.protocols.com/voip/posvoip.pdf