Synopses & Reviews
While many books describe the theory behind Voice over IP, only Practical VoIP Using VOCAL describes how such a phone system was actually built, and how you too can acquire the source code, install it onto a system, connect phones, and make calls.
VOCAL (the Vovida Open Communication Application Library) is an open source software project that provides call control, routing, media, policy, billing information and provisioning on a system that can range from a single box in a lab with a few test phones to a large, multi-host carrier grade network supporting hundreds of thousands of users. VOCAL is freely available from the Cisco Systems-sponsored Vovida.org community web site (www.vovida.org).
A Silicon Valley start-up called Vovida Networks, Inc (think of VOice, VIdeo, DAta) created VOCAL and invested over one hundred man years into its development. Since Cisco acquired Vovida in 2000, individuals representing every significant telecom company and service provider in the world have downloaded the source code. Today, more and more people are successfully building VOCAL into professional solutions, while contributing fixes and new functionality back to Vovida.org.
Because VOCAL is open source, you can look "under the hood" to the base code and protocol stack levels and discover not only how the system works, but also how common problems are being worked out in the development environment. We're hoping that you will be inspired to take this system to another level by implementing a feature or functionality that no one has thought of before.
Written by a team from Vovida Networks, Practical VoIP Using VOCAL includes the following topics
:
- Installing and configuring VOCAL 1.4.0 onto a single host and onto a multi-host network with phones and gateways
- C++, C and Java architecture found within VOCAL
- Provisioning a VoIP system
- SIP (Session Initiation Protocol), SDP (Session Description Protocol) and RTP (Real-time Transport Protocol) for call control and media
- TRIP (Telephony Routing over IP), DNS SRV and ENUM for routing
- MGCP (Media Gateway Control Protocol) and H.323 for call control and translation into SIP
- COPS (Common Open Policy Service), OSP (Open Settlement Protocol) and RSVP (Reservation Protocol) for policy and Quality of Service
- RADIUS (Remote Authentication Dial In User Service) for interfacing with billing servers
- SNMP (Simple Network Management Protocol)
If you're interested in VoIP, this is the only book available that focuses on the real issues facing programmers and administrators who need to work with these technologies.
Synopsis
While many books describe the theory behind Voice over IP, only "Practical VoIP Using VOCAL describes how such a phone system was actually built, and how you too can acquire the source code, install it onto a system, connect phones, and make calls. VOCAL (the Vovida Open Communication Application Library) is an open source software project that provides call control, routing, media, policy, billing information and provisioning on a system that can range from a few test phones to a large, multi-host carrier grade network supporting hundreds of thousands of users. VOCAL is freely available from the Cisco Systems-sponsored Vovida.org community web site (www.vovida.org).Because VOCAL is open source, you can look "under the hood" to the base code and protocol stack levels and discover not only how the system works, but also how common problems are being worked out in the development environment. You can take this system to another level by implementing a feature or functionality that no one's thought of before.
Synopsis
This guide shows programmers and administrators how to implement, program and administer VOIP systems using open source tools instead of more expensive options.
Synopsis
While many books describe the theory behind Voice over IP, only Practical VoIP Using VOCAL describes how such a phone system was actually built, and how you too can acquire the source code, install it onto a system, connect
About the Author
Cullen Jennings is the Manager of Software Development in the Voice Architecture Group at Cisco Systems. Previously, he was vice president of engineering for Vovida Networks. His background includes management, consulting, and development both for technology-based companies and for educational institutions. Cullen is a member of the IEEE and ACM and has published numerous technical articles.
Luan Dang is Director of Software Development at Cisco Systems. Previously, Luan was Senior Vice President, Chief Technology Officer and Co-Founder of Vovida Networks. Luan is currently a member of the Technical Advisory Council for the International Softswitch Consortium and has previously filed telephony patents for voice-over-IP (1999) and caller IP (1998). Luan has also been granted a patent for the display screen management apparatus in 2000.
Table of Contents
Preface; How to Use This Book; How This Book Is Organized; Conventions Used in This Book; How to Contact Us; Acknowledgments; Chapter 1: VOCAL: Say, What?; 1.1 What's This All About?; 1.2 System Architecture; 1.3 Where's This Going?; 1.4 What's in This for You?; Chapter 2: Setting Up a Phone System at Home; 2.1 Hardware Requirements; 2.2 Software Requirements; 2.3 Acquiring VOCAL Software; 2.4 Installing and Deploying VOCAL; 2.5 Testing Your Installation; 2.6 Accessing Provisioning; 2.7 Installing and Running a UA from Separate Hosts; 2.8 Configuring Software UAs; 2.9 Starting, Restarting, and Stopping VOCAL; Chapter 3: Setting Up an Internal Trial System; 3.1 Interfacing with the PSTN; 3.2 Setting Up a Redundant System; 3.3 Configuring a PSTN Gateway; 3.4 Installing VOCAL onto a Multihost System; 3.5 Working with VOCAL; Chapter 4: Provisioning Users; 4.1 Quick Step for Provisioning Users; 4.2 Logging into the Provisioning System; 4.3 User Configuration Screen; 4.4 Adding, Viewing, Editing, and Deleting Users; Chapter 5: Configuring System Parameters and Dial Plans; 5.1 Login Procedure; 5.2 Configuring Servers; 5.3 The System Folder; Chapter 6: Provisioning Servers; 6.1 The Servers Folder; 6.2 Call Detail Record Servers; 6.3 Redirect Server; 6.4 User Agent Marshal Server; 6.5 Gateway Marshal Servers; 6.6 Conference Bridge Marshal Server; 6.7 Internetwork Marshal Server; 6.8 Feature Servers; 6.9 Voice Mail Feature Servers; 6.10 JTAPI Servers; 6.11 Heartbeat Server; 6.12 Policy Servers; Chapter 7: Session Initiation Protocol and Related Protocols; 7.1 What Is SIP?; 7.2 Sample Message Flows; 7.3 Message Headers; 7.4 SDP Messages; 7.5 Sample SIP Call Message Flow; 7.6 Forking; 7.7 Weird Situations; Chapter 8: Vovida SIP Stack; 8.1 Architecture; 8.2 Constructing and Deconstructing Messages; 8.3 Parsing; 8.4 Transporting; 8.5 Compiling and Running the Stack; 8.6 Bugs/Limitations; Chapter 9: Base Code; 9.1 State Machine; 9.2 Class Structure; 9.3 High-Level Flow; 9.4 Key Data Structures; 9.5 Dependencies; Chapter 10: VOCAL User Agent; 10.1 Call Processing; 10.2 Multicall Processing; 10.3 Looking Through the Code; 10.4 Other UA Processes; 10.5 B2BUA; Chapter 11: SIP Proxy: Marshal Server; 11.1 High-Level Design; 11.2 Functionality; 11.3 Security; 11.4 Authentication; Chapter 12: Redirect Server; 12.1 High-Level Design; 12.2 Routing; 12.3 Ongoing Development; Chapter 13: CPL Feature Server; 13.1 What Are Features?; 13.2 Core Features; 13.3 Set Features; 13.4 New Features; 13.5 SIP Messages and Feature Servers; 13.6 Scriptable Feature Development; 13.7 How CPL Script Converts to a C++ State Machine; 13.8 Feature Activation; 13.9 How to Develop a Feature; 13.10 Feature Server Files; 13.11 Writing Your Next Killer Feature; Chapter 14: Unified Voice Mail Server; 14.1 High-Level Design; 14.2 Voice Mail Feature Server; 14.3 Voice Mail User Agent; 14.4 Voice Mail Server; 14.5 Setting Up a Voice Mail System; Chapter 15: MGCP Translator; 15.1 Media Gateway Control Protocol; 15.2 MGCP Translator; 15.3 Test Tools; 15.4 Future Development; 15.5 Detailed Message Flows; 15.6 State Diagram; Chapter 16: H.323 Translator; 16.1 H.323 Background; 16.2 Registration and Admission; 16.3 Source Code; 16.4 Getting Started; Chapter 17: System Monitoring; 17.1 SNMP Support; 17.2 MIBs; 17.3 SNMP Daemon; 17.4 Network Manager; 17.5 Agent API; 17.6 SNMP GUI; 17.7 Adding MIBs; 17.8 Creating New Agent Code; 17.9 Heartbeat Server; Chapter 18: Quality of Service and Billing; 18.1 Quality of Service; 18.2 Billing; 18.3 OSP; 18.4 Billing and Toll Fraud; Chapter 19: Provisioning; 19.1 Old Provisioning System; 19.2 Mascarpone Provisioning System; 19.3 Provisioning Server; 19.4 Provisioning Interface Libraries; 19.5 Java User Interface; 19.6 GUI Screens; 19.7 DTD for Data Definition; 19.8 Examples of Protocol Transmissions/Replies; VOCAL SIP UA Configuration File; General; SIP Port and Transport; Proxy Server; Transfer and Conferencing; Registration; Ringback; RTP; Call Waiting; Call Progress Timer; Subscribe/Notify; Dialing Timers; Dial Patterns; Speed Dial List; RSVP Configuration; Manual Call ID; Load Generation; Testing Tools; genPutUsers.pl; Netcat; Colophon;