SIP and VOCAL Cullen Jennings Cisco Systems, Inc [email protected].

92
SIP and VOCAL Cullen Jennings Cisco Systems, Inc [email protected]

Transcript of SIP and VOCAL Cullen Jennings Cisco Systems, Inc [email protected].

Page 1: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

SIP and VOCALCullen Jennings

Cisco Systems, [email protected]

Page 2: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 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

• BSD-like license

Page 3: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 3

Traditional TelcosTraditional Telcos

Proprietary. Favoring the vendor over the customer.

• Vendor-centric, limited interoperability

• Slow innovation, long development cycles

• Expensive and exclusive

Page 4: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 4

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

Page 5: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 5

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

Page 6: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 6

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

Page 7: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

Voice over IP ProtocolsPictorial Overview

Page 8: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 8

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

Page 9: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

Session Initiation Protocol

Page 10: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 10

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

Page 11: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 11

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

Page 12: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 12

Where It’s @Where It’s @

The SIP address is identified by a SIP URL, in the format: user@hostuser@host.

Examples of SIP URLs:

• sip:[email protected]:[email protected]

• sip:[email protected]:[email protected]

• sip:[email protected]:[email protected]

Page 13: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 13

From 2 Devices...From 2 Devices...

SIP Components

User Agent User Agent

Page 14: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 14

...to a Distributed Network......to a Distributed Network...

Redirect Server

Location Server

Registrar Server

User Agent

Proxy Server

Gateway

PSTN

SIP Components

Proxy Server

Page 15: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 15

...to a Complete Phone System...to a Complete Phone System

CDR Server(s)

Feature Server(s)

Redirect Server(s)

Provisioning Server

Policy Server(s)

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

Page 16: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

VOCALVovida Open Communications

Applications Library

Page 17: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 17

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

Page 18: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 18

A Simplified Call FlowA Simplified Call Flow

1.INVITE

1. User A dials User B’s number. User A’s SIP

Phone sends an INVITE message to Marshal

Server A.

2.INVITE2. Marshal Server A forwards the INVITE

message to the Redirect Server

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.

4. Marshal Server A forwards an INVITE message to Marshal

Server B.

4.INVITE

5. Marshal Server B sends a INVITE to User B.

5. INVITE

Redirect Server

Marshal Server B

Marshal Server A

SIP PhoneUser B

SIP PhoneUser A

6. 180 (RING)

6. User B’s SIP Phone rings. (The 180 (Ring)

message is sent back to User A’s SIP Phone.)

7. When User B picks up the SIP phone, a 200 (OK) message is

sent.

7. 200 (OK)

8. ACK

8. User A’s SIP phone responds with an ACK

(acknowledgement message)

AUDIO PATH

Page 19: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 19

System DiagramSystem Diagram

CDR Server(s)

Feature Server(s)

Redirect Server(s)

Provisioning Server

Policy Server(s)

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

Page 20: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.
Page 21: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 21

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

Page 22: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 22

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

Page 23: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 23

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

Page 24: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 24

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

Page 25: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 25

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

Page 26: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 26

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.

Page 27: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 27

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

Page 28: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 28

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

Page 29: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 29

WIFY?WIFY?

What’s in it for you:

• Build applications

• Add voice services to your ISP

• Build and manage your own PBX

Page 30: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 30

Who’s Working on it?Who’s Working on it?

Companies:Companies:•Dialpad

•Pagoo

•Cathay

•Netspeak

•Lurkers

Individuals:Individuals:• Telecom engineers

• Students

• Hobbyists

• System Integrators

• IT

Page 31: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 31

How Big is the Community?How Big is the Community?

371371697697170170Vocal 1.2.0

1156115611251125684684SIP 1.2.x

MayAprilMarch

Recent Software Downloads:

Page 32: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 32

Vovida.orgVovida.org

Mailing List: [email protected]

Product Manager: [email protected]

My e-mail address: [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.

Page 33: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

www.vovida.org

Page 34: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

Additional Material

Page 35: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

Vocal Components

Page 36: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 36

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.

Page 37: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 37

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

Page 38: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 38

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).

Page 39: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 39

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

Page 40: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 40

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.

Page 41: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 41

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

Page 42: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 42

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

Page 43: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 43

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.

Page 44: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 44

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.

Page 45: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 45

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

Page 46: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

Session Initiation Protocol

Page 47: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 47

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

Page 48: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 48

SIP FrameworkSIP Framework

• Session initiation.

• Multiple users.

• Interactive multimedia applications.

Page 49: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 49

Redirect Server

SIP Distributed ArchitectureSIP Distributed Architecture

Location Server

Registrar Server

User Agent

Proxy Server

Gateway

PSTN

SIP Components

Proxy Server

Page 50: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 50

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:

Page 51: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 51

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

Page 52: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 52

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]

Page 53: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 53

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.

Page 54: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 54

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

Page 55: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 55

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

Page 56: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

H.323

Page 57: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 57

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

Page 58: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 58

H.323 FrameworkH.323 Framework

H.323 defines:H.323 defines:• Call establishment and teardown.

• Audio visual or multimedia conferencing.

Page 59: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 59

H.323 Components H.323 Components

Terminal Gateway

Packet Based

Networks

Multipoint Control Unit

Gatekeeper

Circuit Switched

Networks

Page 60: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 60

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.

Page 61: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 61

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.

Page 62: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 62

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.

Page 63: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 63

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.

Page 64: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 64

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

Page 65: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 65

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.

Page 66: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 66

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)

Page 67: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 67

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.

Page 68: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 68

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.

Page 69: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 69

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

Page 70: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 70

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

Page 71: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

SIP and H.323

Comparing

Page 72: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 72

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.

Page 73: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 73

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.

Page 74: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 74

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/

Page 75: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 75

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.

Page 76: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 76

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.

Page 77: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 77

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.

Page 78: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 78

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

Page 79: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

MGCP

Media Gateway Control Protocol

Page 80: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 80

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

Page 81: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 81

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)

Page 82: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 82

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

Page 83: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 83

MGCP CommandsMGCP Commands

Call Agent Commands:Call Agent Commands:• EndpointConfiguration

• NotificationRequest

• CreateConnection

• ModifyConnection

• DeleteConnection

• AuditEndpoint

• AuditConnection

Gateway Commands:Gateway Commands:• Notify

• DeleteConnection

• RestartInProgress

Page 84: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 84

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.

Page 85: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 85

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.

Page 86: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 86

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 1. A user picks up analog phone and

dials a number.

2. The gateway determines how to route the call.

3. The two gateways exchange capabilities information.

4. The terminating gateway rings the phone.

5. The two gateways establish RTP/RTCP session with each other.

5.RTP/RTCP1

3

4

1

2

Page 87: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 87

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/

Page 88: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 88

References References

For more information on MGCP, refer to:

IETF

• http://www.ietf.org/rfc/rfc2705.txt?number=2705

Page 89: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 89

VOCAL ResourcesVOCAL Resources

Web site: www.vovida.org

Mailing lists: [email protected]

[email protected]

Page 90: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 90

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

Page 91: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 2001 91

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/

Page 92: SIP and VOCAL Cullen Jennings Cisco Systems, Inc fluffy@cisco.com.

O’Reilly Open Source Convention - July 27, 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