920 likes | 1.11k Views
SIP and VOCAL. David Bryan & Cheung Tam Jasomi Networks, Inc. Cisco Systems, Inc. dbryan@jasomi.com cktam@cisco.com. VOCAL System. The Vovida Open Communications Applications Library (VOCAL) Carrier grade VoIP system 80+ person-years and millions of $ of development
E N D
SIP and VOCAL David Bryan & Cheung Tam Jasomi Networks, Inc. Cisco Systems, Inc. dbryan@jasomi.com cktam@cisco.com
VOCAL 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
VOCAL System • Elevator Statement VOCAL is the software that enables a core network to support a Voice over IP system.
Traditional Telcos • Proprietary: Favoring the vendor over the customer • Vendor-centric, limited interoperability • Slow innovation, long development cycles • Expensive and exclusive
Voice 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
Open Source VoIP • Cheap and accessible. Developers can create the following: • New features that don’t 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
Why Does Cisco Support Open Source VoIP? • It’s 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
Voice over IP Protocols Pictorial Overview
SIP, H.323 and MGCP Call Control and Signaling Signaling and Gateway Control Media Audio/ Video H.323 H.225 H.245 Q.931 RAS SIP MGCP RTP RTCP 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.
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
SIP 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
User Agent User Agent From 2 Devices... SIP Components
...to a Distributed Network... PSTN User Agent Gateway
V V COPS/OSP SIP IP Phones RADIUS SNMP Network Manager 3rd Party Billing System ...to a Complete Phone System Phone Gateway Gateway Marshal Server (Gateway) Provisioning Server Redirect Server Feature Server CDR 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
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 VOCAL: Say What?
2.INVITE 3. 302 (Moved Temporarily) Marshal Server A Marshal Server B Redirect Server 4.INVITE 6. 180 (RING) 1.INVITE 5. INVITE SIP Phone User B SIP Phone User A 7. 200 (OK) 8. ACK AUDIO PATH A Simplified Call Flow 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. 5. Marshal Server B sends an INVITE message to User B. The Audio Path is established. 7. User B, by picking up the phone, sends a 200 (OK) message. 8. User A’s phone responds with an ACK (acknowledgement message) 2. Marshal Server A forwards the INVITE message to the Redirect Server 6. User B’s phone rings and sends a 180 (Ring) message back to User A’s phone. 1. User A calls User B. User A’s Phone sends an INVITE message to Marshal Server A.
V V COPS/OSP SIP IP Phones RADIUS SNMP Network Manager 3rd Party Billing System System Diagram Phone Gateway Gateway Marshal Server (Gateway) Provisioning Server Redirect Server Feature Server CDR 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
V V COPS/OSP SIP IP Phones RADIUS SNMP Network Manager 3rd Party Billing System Redundancy Phone Gateway Gateway Marshal Server (Gateway) Provisioning Server Redirect Servers Feature Servers CDR Servers 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
= In progress Soft phone Load Gen VXML RTSP CPL JTAPI 3PCC = Already here CGI = API’s = Provide your own ! API API API API Feature Servers Redirect Server Marshal Server SIP UA API SIP Stack Operating System: Linux, Solaris, Windows Block Diagram
V Example 1 Build your own soft phone CSPS or partner’s SIP Proxy Soft phone API SIP VOCAL SIP UA SIP Gateway API VOCAL SIP Stack Phone
V SIP IP Phones Example 2 Build your own CPL features CPL scripts API CSPS or partner’s VOCAL Feature Server SIP Proxy API Gateway SIP VOCAL SIP Stack SIP SIP Phone
V SIP IP Phones Example 3 Build your own Routing Engine Routing Logic API VOCAL Redirect Server API VOCAL SIP Stack Invite Gateway Redirect Phone
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
WIFY? • What’s in it for you: • Build applications • Add voice services to your ISP • Build and manage your own PBX
Recent Software Downloads: • March • April • May • SIP 1.2.x • 684 • 1125 • 1156 • Vocal 1.2.0 • 170 • 697 • 371 How Big is the Community?
Vovida.org • Mailing List: Vocal@vovida.org • Product Manager: dhawk@cisco.com • A few of our many contributors:
www.vovida.org David Bryan & Cheung Tam Jasomi Networks Cisco Systems, Inc dbryan@jasomi.com cktam@cisco.com
6 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.
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: VOCAL Components
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. VOCAL Components (2)
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 VOCAL Components (3)
Redirect 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
Provisioning 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).
Marshal Server Redirect Server SIP Phone SIP URL = userA@hostname.com 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. The Provisioning Server checks to see if userA@hostname.com is an authorized user. Provisioning Server 2.REGISTER 3. 200 (OK) Once userA@hostname.com has been registered, the Redirect Server sends a 200 message (OK). 1. REGISTER 4. 200 (OK)
Marshal 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.
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 Feature Server Supports new feature scripting using C++ and Call Processing Language (CPL), an XML based language for IP telephony features • VOCAL-supported applications: • Unified Messaging • Conferencing
Features – 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
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.
Policy 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.
Scalability 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
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
SIP Framework Instant Messaging • Session initiation. • Multiple users. • Interactive multimedia applications. Personal Mobility Distance Learning Video Conferencing Email Voice Calls MPEG, MP3, Audio, HTML,XML
Redirect Server Registrar Server Location Server Proxy Server Proxy Server SIP Distributed Architecture SIP Components PSTN User Agent Gateway
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. SIP Messages – Methods and Responses SIP components communicate by exchanging SIP messages: