SIP and VOCALDavid Bryan & Cheung TamJasomi Networks, Inc. Cisco Systems, [email protected] [email protected]
Silicon Valley Linux Users’ Group – September 5, 2001 2
VOCAL SystemVOCAL 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
Silicon Valley Linux Users’ Group – September 5, 2001 3
VOCAL SystemVOCAL System
Elevator Statement
VOCAL is the software that enables a core network to
support a Voice over IP system.
VOCAL is the software that enables a core network to
support a Voice over IP system.
Silicon Valley Linux Users’ Group – September 5, 2001 4
Traditional TelcosTraditional Telcos
Proprietary: Favoring the vendor over the customer
• Vendor-centric, limited interoperability
• Slow innovation, long development cycles
• Expensive and exclusive
Silicon Valley Linux Users’ Group – September 5, 2001 5
Voice over IPVoice over IP
Open standards, rapid development and greater choices for customers
Packet routing:Packet routing: more efficient use of network resources
Network management:Network management: less expensive to operate one network
Feature development:Feature development: web-based applications are being developed and deployed quickly
Silicon Valley Linux Users’ Group – September 5, 2001 6
Open Source VoIPOpen Source VoIP
Cheap and accessible. Developers can create the following:
• New featuresNew features that don’t exist on the PSTN
• Enhanced functions and solutionsEnhanced functions and solutions that can accelerate the general adoption of VoIP in businesses and residences
• Processes and componentsProcesses and components that encourage others to express new ideas
Silicon Valley Linux Users’ Group – September 5, 2001 7
Why Does Cisco Support Open Source VoIP?
Why Does Cisco Support Open Source VoIP?
It’s good for business:
• Puts packets on the networkPuts packets on the network — Helps sell gateways and routers
• Distributive technologyDistributive technology
• Helps win over new customersHelps win over new customers who want to control their destiny and their application source code
Voice over IP ProtocolsPictorial Overview
Silicon Valley Linux Users’ Group – September 5, 2001 9
RTCPRTP
SIP, H.323 and MGCPSIP, H.323 and MGCP
IP
MGCP
Call Control and Signaling Signaling and Gateway Control
Media
H.225
Q.931
H.323
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.
TCP
RAS
UDP
SIPH.245
Audio/Video
RTSP
Session Initiation Protocol
Silicon Valley Linux Users’ Group – September 5, 2001 11
What is SIP?What 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
Silicon Valley Linux Users’ Group – September 5, 2001 12
SIP is Simply...SIP is Simply...
An ASCII protocol, based on HTTP and SMTP, that enables:
• Initializing, establishing and tearing Initializing, establishing and tearing downdown call sessions
• BuildingBuilding flexible distributed systems
• InteroperatingInteroperating with other web-based applications
Silicon Valley Linux Users’ Group – September 5, 2001 14
From 2 Devices...From 2 Devices...
SIP Components
User Agent User Agent
Silicon Valley Linux Users’ Group – September 5, 2001 15
...to a Distributed Network......to a Distributed Network...
User Agent Gateway
PSTN
Silicon Valley Linux Users’ Group – September 5, 2001 16
...to a Complete Phone System...to a Complete Phone System
CDR Server
Feature Server
Redirect Server
Provisioning Server
Policy Server
H.323 Terminal
Gateway
Internet
ClearingHouse
MGCP Device
Gateway
Phone
Marshal Server
H.323/SIP Translator
Marshal Server
Marshal Server(Gateway)
Marshal Server
MGCP/SIP Translator
Marshal Server
3rd Party Billing System
RADIUS
COPS/OSP
SNMP Network Manager
V V
SIP IP Phones
VOCALVovida Open Communications
Applications Library
Silicon Valley Linux Users’ Group – September 5, 2001 18
VOCAL: Say What?VOCAL: Say What?
A library of communications applications that provides:
Open source software modules:Open source software modules: Primarily SIP-based, with some rough translators to H.323 and MGCP endpoints
A tool kit:A tool kit: Building blocks that allow development of new VoIP features, applications and services
Silicon Valley Linux Users’ Group – September 5, 2001 19
The Audio Path is established.
A Simplified Call FlowA Simplified Call Flow
1.INVITE
2.INVITE
4.INVITE
5. INVITE
Redirect Server
Marshal Server B
Marshal Server A
SIP PhoneUser B
SIP PhoneUser A
6. 180 (RING)
7. 200 (OK)
8. ACK
8. User A’s phone responds with an ACK (acknowledgement message)
AUDIO PATH
3. 302 (Moved Temporarily)
7. User B, by picking up the phone, sends a 200 (OK) message.6. User B’s phone rings and sends a 180 (Ring) message back to User A’s 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 Server1. User A calls User B. User A’s Phone sends an INVITE message to Marshal Server A.
Silicon Valley Linux Users’ Group – September 5, 2001 20
System DiagramSystem Diagram
CDR Server
Feature Server
Redirect Server
Provisioning Server
Policy Server
H.323 Terminal
Gateway
Internet
ClearingHouse
MGCP Device
Gateway
Phone
Marshal Server
H.323/SIP Translator
Marshal Server
Marshal Server(Gateway)
Marshal Server
MGCP/SIP Translator
Marshal Server
3rd Party Billing System
RADIUS
COPS/OSP
SNMP Network Manager
V V
SIP IP Phones
Silicon Valley Linux Users’ Group – September 5, 2001 22
RedundancyRedundancy
CDR Servers
Feature Servers
Redirect Servers
Provisioning Server
Policy Servers
H.323 Terminal
Gateway
Internet
ClearingHouse
MGCP Device
Gateway
Phone
Marshal Server
H.323/SIP Translator
Marshal Server
Marshal Server(Gateway)
Marshal Server
MGCP/SIP Translator
Marshal Server
3rd Party Billing System
RADIUS
COPS/OSP
SNMP Network Manager
V V
SIP IP Phones
Silicon Valley Linux Users’ Group – September 5, 2001 23
Block DiagramBlock Diagram
VX
ML
VX
ML
RT
SP
RT
SP
3PC
C3P
CC
CCGI
GI
= In progress
SIP StackSIP Stack
SIP UASIP UA FeatureFeatureServersServers
RedirectRedirectServerServer
MarshalMarshalServerServer
Lo
ad G
enL
oad
Gen
CP
LC
PL
JTA
PI
JTA
PI = Already here
Operating System:Operating System:Linux, Solaris, Linux, Solaris, WindowsWindows
So
ft S
oft
ph
on
ep
ho
ne
= Provide your own !
APIAPI
= API’s
APIAPI APIAPI APIAPIAPIAPI
Silicon Valley Linux Users’ Group – September 5, 2001 24
Example 1Example 1
VOCAL SIP Stack
VOCAL SIP UA
API
Soft phone
API
Build your own soft phone
SIPProxy
V
Phone
CSPS or partner’s
GatewaySIP
SIP
Silicon Valley Linux Users’ Group – September 5, 2001 25
Example 2Example 2
VOCAL SIP Stack
VOCAL Feature Server
API
CPL scripts
API
Build your own CPL features
SIPProxy
V
Phone
CSPS or partner’s
Gateway
SIP
SIPSIP
SIP IP Phones
Silicon Valley Linux Users’ Group – September 5, 2001 26
Example 3Example 3
VOCAL SIP Stack
VOCAL Redirect Server
API
Routing Logic
API
Build your own Routing Engine
VPhone
Gateway
Invite
Redirect
SIP IP Phones
Silicon Valley Linux Users’ Group – September 5, 2001 27
Future Features Future Features
How SIP will be used:• Phone Calls (IP<->IP and IP<->PSTN)
• Instant Messaging
• Presence
• Games
What’s missing: • IVR
• Voice Recognition
• Auto attendant
Silicon Valley Linux Users’ Group – September 5, 2001 28
WIFY?WIFY?
What’s in it for you:
• Build applications
• Add voice services to your ISP
• Build and manage your own PBX
Silicon Valley Linux Users’ Group – September 5, 2001 30
How Big is the Community?How Big is the Community?
371371697697170170Vocal 1.2.0
1156115611251125684684SIP 1.2.x
MayAprilMarch
Recent Software Downloads:
Silicon Valley Linux Users’ Group – September 5, 2001 31
Vovida.orgVovida.org
Mailing List: [email protected]
Product Manager: [email protected]
A few of our many contributors:
Steve A. Teju A. Casey B Shervin B. Laura B. Vicki B. Amit B. Wendy B.
David B. Eoin C. Riva C. Amit C. Renee C. Ian C. Dion C. Julie C.
Enlai C. Luan D. Mikey D. Charles E. Jeff G. Don G. Kenny H. Cisco H.
Doug H. Grace H. Wenqing J. Amber J. Cullen J. Alan K. David K. Sharon K.
Mason K. Raghavan K. Sunitha K. Tarun K. Neetha K. Kim L. Chok L. Mike L.
Jack L. Hong L. Hsin-shi L. Marc L. Bob L. Rob M. Mallik M. Kevin M.
Par M. Tom M. Eddie M. Matt N. Bryan O. Sean O. Surendra P. Deepali R.
Vincent R. Mahesh S. Erin S. James S. Barbara S. Monika S. Jennifer S. Oscar T.
Cheung T. Larry T. Rick T. Krishan V. Mai V. Doug W. Quinn W. Han Y.
Tina Z. Jenny Z. Mitch Z. Vlad Z.
www.vovida.orgDavid Bryan & Cheung Tam
Jasomi Networks Cisco Systems, [email protected] [email protected]
Additional Material
Vocal Components
Silicon Valley Linux Users’ Group – September 5, 2001 35
6 Degrees of Separation6 Degrees of Separation
Basic SIP calling process:
1. Registering, initiating and locating users.2. Determining acceptable media — negotiating session
descriptions between users.3. Determining the willingness of the called party to
communicate — calls are accepted or rejected through response messages.
4. Setting up accepted calls.5. Modifying or handling calls through features — for
example, call transfer.6. Terminating the call.
Silicon Valley Linux Users’ Group – September 5, 2001 36
VOCAL ComponentsVOCAL Components
Redirect Server:Redirect Server: SIP-based location, registration and routing services.
Provisioning Server:Provisioning Server: Stores all subscriber and server data.
Feature Server:Feature Server: Uses CPL to provide basic telephony features including:
• Call Forward
• Call Blocking
• Call Screening
•Call Return
•Caller ID Blocking
Silicon Valley Linux Users’ Group – September 5, 2001 37
VOCAL Components (2)VOCAL Components (2)
Marshal Server:Marshal Server: Performs authentication and collects call detail records.
CDR Server:CDR Server: Collects billing records from Marshals, buffers them, and talks RADIUS to 3rd part billing systems.
Policy Server:Policy Server: Uses COPS to enable RSVP on routers. Uses OSP to communicate settlement info with VoIP clearing houses.
Silicon Valley Linux Users’ Group – September 5, 2001 38
VOCAL Components (3)VOCAL Components (3)
H.323 and MGCP Translators:H.323 and MGCP Translators: Line side translation from H.323 or MGCP endpoints into a SIP network.
SIP Stack:SIP Stack: Linux- and Solaris- based implementation of the SIP protocol.
SIP User Agent:SIP User Agent: Client-side agent to terminate voice calls.
Other Protocol Stacks:Other Protocol Stacks: MGCP, RTP, COPS, RADIUS and TRIP
Silicon Valley Linux Users’ Group – September 5, 2001 39
Redirect ServerRedirect 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
Silicon Valley Linux Users’ Group – September 5, 2001 40
Provisioning ServerProvisioning 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).
Silicon Valley Linux Users’ Group – September 5, 2001 41
Marshal Server - Authentication
Marshal 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.
SIP PhoneSIP URL = [email protected]
Marshal Server
1. REGISTER
2.REGISTER
3. 200 (OK)
The Provisioning Server checks to see if
[email protected] is an authorized user.
Once [email protected]
has been registered, the Redirect Server sends a
200 message (OK).
4. 200 (OK)
Redirect Server
Provisioning Server
Silicon Valley Linux Users’ Group – September 5, 2001 42
Marshal Server - BillingMarshal Server - Billing
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.
Silicon Valley Linux Users’ Group – September 5, 2001 43
Feature ServerFeature Server
VOCAL-supported core VOCAL-supported core network features: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 VOCAL-supported set- based features:features:
• Transfer
• Caller ID
• Call Waiting
• 3 Way Calling
Supports new feature scripting using C++ and Call Processing Language (CPL), an XML based language for IP telephony features
VOCAL-supported applications:VOCAL-supported applications:• Unified Messaging
• Conferencing
Silicon Valley Linux Users’ Group – September 5, 2001 44
Features – Scripting with CPLFeatures – Scripting with CPL
Call Processing Language (CPL) is: 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
Silicon Valley Linux Users’ Group – September 5, 2001 45
Call Detail Record (CDR) Server
Call Detail Record (CDR) Server
The Call 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.
Silicon Valley Linux Users’ Group – September 5, 2001 46
Policy ServerPolicy Server
Functions: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: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.
Silicon Valley Linux Users’ Group – September 5, 2001 47
Scalability: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: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
Scalability and RedundancyScalability and Redundancy
Session Initiation Protocol
Silicon Valley Linux Users’ Group – September 5, 2001 49
What is SIP?What 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
Silicon Valley Linux Users’ Group – September 5, 2001 50
SIP FrameworkSIP Framework
• Session initiation.
• Multiple users.
• Interactive multimedia applications.
Silicon Valley Linux Users’ Group – September 5, 2001 51
Redirect Server
SIP Distributed ArchitectureSIP Distributed Architecture
Location Server
Registrar Server
User Agent
Proxy Server
Gateway
PSTN
SIP Components
Proxy Server
Silicon Valley Linux Users’ Group – September 5, 2001 52
SIP Messages – Methods and Responses
SIP Messages – Methods and Responses
SIP Requests: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:SIP Responses:• 1xx - Informational Messages.
• 2xx - Successful Responses.
• 3xx - Redirection Responses.
• 4xx - Request Failure Responses.
• 5xx - Server Failure Responses.
• 6xx - Global Failures Responses.
SIP components communicate by exchanging SIP messages:
Silicon Valley Linux Users’ Group – September 5, 2001 53
SIP HeadersSIP 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 sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 192.168.6.21:5060
From: sip:[email protected]
To: <sip:[email protected]>
Call-ID: [email protected]
CSeq: 100 INVITE
Expires: 180
User-Agent: Cisco IP Phone/ Rev. 1/ SIP enabled
Accept: application/sdp
Contact: sip:[email protected]:5060
Content-Type: application/sdp
Silicon Valley Linux Users’ Group – September 5, 2001 54
SIP AddressingSIP Addressing
The SIP address is identified by a SIP URL, in the format: user@host. Examples of SIP URLs:
• sip:[email protected]
• sip:[email protected]
• sip:[email protected]
Silicon Valley Linux Users’ Group – September 5, 2001 55
Process for Establishing Communication
Process for Establishing Communication
Establishing communication using SIP usually occurs in six steps:
1. Registering, initiating and locating the user.
2. Determine the media to use – involves delivering a description of the session that the user is invited to.
3. 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.
4. Call setup.
5. Call modification or handling – example, call transfer (optional).
6. Call termination.
Silicon Valley Linux Users’ Group – September 5, 2001 56
RegistrationRegistration
• 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.
SIP Messages:REGISTER – Registers the address listed in the To header field.200 – OK.
Proxy/ Registration Server
SIP PhoneUser
Location/Redirect Server
REGISTER REGISTER
200200
Silicon Valley Linux Users’ Group – September 5, 2001 57
Simplified SIP Call Setup and Teardown
Simplified SIP Call Setup and Teardown
302 (Moved Temporarily)
INVITE
200 (OK)200 (OK)
ACK
INVITE302
(Moved Temporarily)ACK
INVITE
180 (Ringing)180 (Ringing)180 (Ringing)
200 (OK)ACKACK ACK
RTP MEDIA PATH
BYEBYE BYE
200 (OK)200 (OK) 200 (OK)Call Teardown
MediaPath
Call Setup
INVITE
Location/Redirect ServerProxy Server Proxy Server User AgentUser AgentINVITE
H.323
Silicon Valley Linux Users’ Group – September 5, 2001 59
What is H.323?What 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
Silicon Valley Linux Users’ Group – September 5, 2001 60
H.323 FrameworkH.323 Framework
H.323 defines:H.323 defines:• Call establishment and teardown.
• Audio visual or multimedia conferencing.
Silicon Valley Linux Users’ Group – September 5, 2001 61
H.323 Components H.323 Components
Terminal Gateway
Packet Based
Networks
Multipoint Control Unit
Gatekeeper
Circuit Switched
Networks
Silicon Valley Linux Users’ Group – September 5, 2001 62
H.323 TerminalsH.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.
Silicon Valley Linux Users’ Group – September 5, 2001 63
H.323 GatewayH.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.
Silicon Valley Linux Users’ Group – September 5, 2001 64
H.323 GatekeepersH.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.
Silicon Valley Linux Users’ Group – September 5, 2001 65
H.323 Multipoint Control UnitH.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.
Silicon Valley Linux Users’ Group – September 5, 2001 66
H.323 is an “Umbrella” Specification
H.323 is an “Umbrella” Specification
Call Control and SignalingCall 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.
Call Control and
Signaling
Data/FaxMedia
IP
UDP
RTP
Audio
Codec
G.711
G.723
G.729
Video
Codec
H.261
H.263RTCP
H.225
Q.931
H.225
RASH.245T.120 T.38
TCP TCPUDPTCP
Data/FaxData/FaxT.120 – Data conferencing.
T.38 – Fax.
MediaMedia H.261 and H.263 – Video codecs.
G.711, G.723, G.729 – Audio codecs.
RTP/RTCP – Media.
H.323H.323
Silicon Valley Linux Users’ Group – September 5, 2001 67
Other ITU H. Recommendation that work with H.323
Other ITU H. Recommendation that work with H.323
Protocol Description
H.235 Specifies security and encryption for H.323 and H.245 based terminals.
H.450.N H.450.1 specifies framework for supplementary services. H.450.N recommendation specifies supplementary services such as call transfer, call diversion, call hold, call park, call waiting, message waiting indication, name identification, call completion, call offer, and call intrusion.
H.246 Specifies internetworking of H Series terminals with circuit switched terminals.
Silicon Valley Linux Users’ Group – September 5, 2001 68
H.323 Components and Signaling
H.323 Components and Signaling
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.
PSTN
Gatekeeper
Terminal
H.225/RAS messages over RAS channel
GatewayH.245 messages over call control channel
H.225/Q.931 messages over call signaling channel
H.225/RAS messages over RAS channel
H.225/Q.931 (optional) H.225/Q.931 (optional)
H.245 messages (optional) H.245 messages (optional)
Silicon Valley Linux Users’ Group – September 5, 2001 69
Process for Establishing Communication
Process for Establishing Communication
Establishing communication using H.323 is a five-step process:
1. Call setup.
2. Initial communication and capabilities exchange.
3. Audio/video communication establishment.
4. Call services.
5. Call termination.
Silicon Valley Linux Users’ Group – September 5, 2001 70
Simplified H.323 Call SetupSimplified 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.
Terminal A Gatekeeper Terminal B
RAS messagesCall Signaling Messages
1. ARQ
2. ACF
5. ARQ6. ACF
3. SETUP4. Call Proceeding
7.Alerting8.Connect
H.245 Messages
RTP Media Path
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.
Silicon Valley Linux Users’ Group – September 5, 2001 71
Versions of H.323Versions of H.323
Version Reference for key feature summary
H.323 Version 3 http://www.packetizer.com/iptel/h323/whatsnew_v3.html
Date
H.323 Version 1 New release. Refer to the specification.
http://www.packetizer.com/iptel/h323/
May 1996
H.323 Version 2 http://www.packetizer.com/iptel/h323/whatsnew_v2.html
January 1998
September 1999
H.323 Version 4 November 2000 http://www.packetizer.com/iptel/h323/whatsnew_v4.html
Silicon Valley Linux Users’ Group – September 5, 2001 72
References References
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
SIP and H.323
Comparing
Silicon Valley Linux Users’ Group – September 5, 2001 74
Comparing SIP and H.323 - Similarities
Comparing 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.
Silicon Valley Linux Users’ Group – September 5, 2001 75
Comparing SIP and H.323 - Strengths
Comparing 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.
Silicon Valley Linux Users’ Group – September 5, 2001 76
Table 1 - SIP and H.323
H.323SIP
ITU.IETF.
Peer-to-Peer. Peer-to-Peer.
Telephony based. Borrows call signaling protocol from ISDN Q.SIG.
Internet based and web centric. Borrows syntax and messages from HTTP.
Intelligent H.323 terminals.Intelligent user agents.
H.323 Gatekeeper.SIP proxy, redirect, location, and registration servers.
Widespread.Interoperability testing between various vendor’s products is ongoing at SIP bakeoffs.
SIP is gaining interest.
Information
Standards Body
Relationship
Origins
Client
Core servers
Current Deployment
Interoperability IMTC sponsors interoperability events among SIP, H.323, and MGCP. For more information, visit: http://www.imtc.org/
Silicon Valley Linux Users’ Group – September 5, 2001 77
Table 2 - SIP and H.323Table 2 - SIP and H.323
Information H.323SIP
Capabilities Exchange
Supported by H.245 protocol. H.245 provides structure for detailed and precise information on terminal capabilities.
SIP uses SDP protocol for capabilities exchange. SIP does not provide as extensive capabilities exchange as H.323.
Control Channel Encoding Type
Binary ASN.1 PER encoding.Text based UTF-8 encoding.
Server Processing
Version 1 or 2 – Stateful.
Version 3 or 4 – Stateless or stateful.
Stateless or stateful.
Quality of Service
Bandwidth management/control and admission control is managed by the H.323 gatekeeper.
The H323 specification recommends using RSVP for resource reservation.
SIP relies on other protocols such as RSVP, COPS, OSP to implement or enforce quality of service.
Silicon Valley Linux Users’ Group – September 5, 2001 78
Table 3 - SIP and H.323Table 3 - SIP and H.323
Information H.323SIP
Security Registration - If a gatekeeper is present, endpoints register and request admission with the gatekeeper.
Authentication and Encryption -H.235 provides recommendations for authentication and encryption in H.323 systems.
Registration - User agent registers with a proxy server.
Authentication - User agent authentication uses HTTP digest or basic authentication.
Encryption - The SIP RFC defines three methods of encryption for data privacy.
Endpoint Location and Call Routing
Uses E.164 or H323ID alias and a address mapping mechanism if gatekeepers are present in the H.323 system.
Gatekeeper provides routing information.
Uses SIP URL for addressing.
Redirect or location servers provide routing information.
Silicon Valley Linux Users’ Group – September 5, 2001 79
Table 4 – SIP and H.323Table 4 – SIP and H.323
Information H.323SIP
Features Basic call features.Basic call features.
Conferencing Basic conferencing without conference or floor control.
Comprehensive audiovisual conferencing support.
Data conferencing or collaboration defined by T.120 specification.
Service or Feature Creation
Supports flexible and intuitive feature creation with SIP using SIP-CGI and CPL.
Some example features include presence, unified messaging, or find me/follow me.
H.450.1 defines a framework for supplementary service creation.
Note: Basic call features include: call hold, call waiting, call transfer, call forwarding, caller identification, and call park.
Silicon Valley Linux Users’ Group – September 5, 2001 80
ReferenceReference
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
MGCP
Media Gateway Control Protocol
Silicon Valley Linux Users’ Group – September 5, 2001 82
What is MGCP?What 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
Silicon Valley Linux Users’ Group – September 5, 2001 83
ComponentsComponents
Call agentCall agent or media gateway media gateway controllercontroller
• Provides call signaling, control and processing intelligence to the gateway.
• Sends and receives commands to/from the gateway.
GatewayGateway
• 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)
SIPH.323
MGCP MGCP
Media Gateway(MG)
Media Gateway(MG)
Silicon Valley Linux Users’ Group – September 5, 2001 84
Simplified Call FlowSimplified 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.
Gateway A Gateway B
AnalogPhone A
AnalogPhone B
Call AgentMedia Gateway Controller
MGCP MGCP
RTP/RTCP
Silicon Valley Linux Users’ Group – September 5, 2001 85
MGCP CommandsMGCP Commands
Call Agent Commands:Call Agent Commands:• EndpointConfiguration
• NotificationRequest
• CreateConnection
• ModifyConnection
• DeleteConnection
• AuditEndpoint
• AuditConnection
Gateway Commands:Gateway Commands:• Notify
• DeleteConnection
• RestartInProgress
Silicon Valley Linux Users’ Group – September 5, 2001 86
Characteristics of MGCPCharacteristics of MGCP
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.
Silicon Valley Linux Users’ Group – September 5, 2001 87
MGCP, SIP and H.323MGCP, 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.
Call Agent/Media
Gateway Controller
Media Gateway
MGCP
H.323 Gateway
H.323Gateway
H.323
Media RTP/RTCP
In this example, an H.323 gateway is “decomposed” into:
–A call agent that provides signaling.
–A gateway that handles media.
MGCP protocol is used to control the gateway.
Silicon Valley Linux Users’ Group – September 5, 2001 88
Example ComparisonExample Comparison
MGCPMGCP1. A user picks up analog phone and dials a
number.
2. The gateway notifies call agent of the phone (endpoint) event.
3. The Call agent determines capabilities, routing information, and issues a command to the gateways to establish RTP/RTCP session with other end.
H.323Gateway
H.323Gateway
AnalogPhone
AnalogPhone
Gateway A Gateway B
AnalogPhone
Call Agent/Media
Gateway Controller
RTP/RTCP
AnalogPhone
H.323H.323 2. A user picks up analog phone and
dials a number.
3. The gateway determines how to route the call.
4. The two gateways exchange capabilities information.
5. The terminating gateway rings the phone.
6. The two gateways establish RTP/RTCP session with each other.
5.RTP/RTCP1
3
4
1
2
Silicon Valley Linux Users’ Group – September 5, 2001 89
What is Megaco?What 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-charter.html
• Packetizer - http://www.packetizer.com/iptel/h248/
Silicon Valley Linux Users’ Group – September 5, 2001 90
References References
For more information on MGCP, refer to:
IETF
• http://www.ietf.org/rfc/rfc2705.txt?number=2705
Silicon Valley Linux Users’ Group – September 5, 2001 91
VOCAL ResourcesVOCAL Resources
Web site: www.vovida.org
Mailing lists: [email protected]
Silicon Valley Linux Users’ Group – September 5, 2001 92
General VoIP ReferenceGeneral 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
Silicon Valley Linux Users’ Group – September 5, 2001 93
SIP References SIP 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/
Silicon Valley Linux Users’ Group – September 5, 2001 94
General VoIP ReferenceGeneral 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