Building Telephony Systems with OpenSER
eBook - ePub

Building Telephony Systems with OpenSER

Flavio E. Goncalves

Buch teilen
  1. 324 Seiten
  2. English
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

Building Telephony Systems with OpenSER

Flavio E. Goncalves

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

In Detail

OpenSER is a flexible, free open-source VoIP server based on the Session Initiation Protocol (SIP), an application-layer control (or signaling) protocol for creating, modifying, and terminating sessions with one or more participants, including internet telephone calls, multimedia distribution, and multimedia conferences.
 
Engineered to power IP telephony infrastructures up to large scale, OpenSER is written in pure C for Linux/Unix-like systems with architecture-specific optimizations to offer high performance; it is able to handle 4 million users on a single processor server. The server keeps track of users, sets up VoIP sessions, relays instant messages, and creates space for new plug-in applications.

It can be used on systems with limited resources as well as on carrier-grade servers, scaling up to thousands of call setups per second. It is customizable, being able to feature as fast load balancer; SIP server flavors: registrar, location server, proxy server, redirect server; gateway to SMS/XMPP; or advanced VoIP application server.

This book teaches how to develop a fast and flexible Session Initiation Protocol (SIP) server using OpenSER and shows how OpenSER can be used to implement features not available in Asterisk PBX.

Approach

This book is a well illustrated, step-by-step guide to building a SIP based network using OpenSER.

Who this book is for

This book is for readers who want to understand how to build a SIP provider from scratch using OpenSER. Telephony and Linux experience will be helpful but is not essential. Readers need not have prior knowledge of OpenSER.

Häufig gestellte Fragen

Wie kann ich mein Abo kündigen?
Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
(Wie) Kann ich Bücher herunterladen?
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Welcher Unterschied besteht bei den Preisen zwischen den Aboplänen?
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Was ist Perlego?
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Unterstützt Perlego Text-zu-Sprache?
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ist Building Telephony Systems with OpenSER als Online-PDF/ePub verfügbar?
Ja, du hast Zugang zu Building Telephony Systems with OpenSER von Flavio E. Goncalves im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Computer Science & Information Technology. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Jahr
2008
ISBN
9781847193735

Building Telephony Systems with OpenSER

Flavio E. Goncalves


Table of Contents

Building Telephony Systems with OpenSER
Credits
About the Author
About the Reviewers
Preface
What This Book Covers
What You Need for This Book
Who This Book Is For
Conventions
Reader Feedback
Customer Support
Downloading the Example Code for the Book
Errata
Questions
1. Introduction to SIP
SIP Basics
SIP Proxy in the Context of a VOIP Provider
SIP Operation Theory
SIP Registration Process
Server Operating as a SIP Proxy
Server Operating as a SIP Redirect
Basic Messages
SIP Dialog Flow
SIP Transactions and Dialogs
The RTP Protocol
Codecs
DTMF-Relay
Real Time Control Protocol (RTCP)
Session Description Protocol (SDP)
The SIP Protocol and the OSI Model
The VoIP Provider "Big Picture"
SIP Proxy
User, Administration, and Provisioning Portal
PSTN Gateway
Media Server
Media Proxy or RTP Proxy for Nat Traversal
RADIUS Accounting
CDRTool Rating
Monitoring Tools
Where You Can Find More Information
Summary
2. The SIP Express Router
Where Are We?
What is the SIP Express Router?
What Software to Use, SER or OpenSER?
Usage Scenarios
OpenSER Architecture
Core and Modules
Sections of the File openser.cfg
Sessions, Dialogs, and Transactions
openser.cfg Message Processing
SIP Proxy—Expected Behavior
Stateful Operation
Differences between Strict Routing and Loose Routing
Understanding SIP and RTP
Summary
3. OpenSER Installation
Hardware Requirements
Software Requirements
Lab—Installing Linux for OpenSER
Downloading and Installing OpenSER v1.2
Lab—Running OpenSER at the Linux Boot
OpenSER v1.2 Directory Structure
Configuration Files (etc/openser)
Modules (/lib/openser/modules)
Binaries (/sbin)
Log Files
Startup Options
Summary
4. OpenSER Standard Configuration
Where Are We?
Analyzing the Standard Configuration
Using the Standard Configuration
Routing Basics
Transactions and Dialogs
Initial and Sequential Requests
Routing in a Context of a Transaction
Routing in the Context of a Dialog
Lab—Tracking a Complete Dialog
Lab—Running Stateless
Lab—Disabling record-route
Summary
5. Adding Authentication with MySQL
Where Are We?
The AUTH_DB Module
The REGISTER Authentication Sequence
Register Sequence (Packets Captured by ngrep)
Register Sequence Code Snippet
The INVITE Authentication Sequence
INVITE Sequence Packet Capture
Digest Authentication
WWW-Authenticate Response Header
The Authorization Request Header
QOP—Quality of Protection
Installing MySQL Support
openser.cfg File Analysis
The Openserctl Shell Script
Openserctl Resource File
Openserctlrc File
Using OpenSER with Authentication
Enhancing the Script
Managing Multiple Domains
Alternative Routes
Register Requests (route[2])
Non-Register Requests (route[3])
Managing Calls Coming from Our Domain
Inbound-to-Inbound—route[10]
Inbound-to-Outbound—route[11]
Outbound-to-Inbound—route[12]
Outbound-to-Outbound—route[13]
The Functions check_to() and check_from()
Using Aliases
Handling CANCEL requests and retransmissions
Full Script with All the Resources Above
Lab—Enhancing the Security
Lab—Using Aliases
Summary
6. Building the User Portal with SerMyAdmin
SerMyAdmin
Lab—Installing SerMyAdmin
Basic Tasks
Registering a New User
Approving a New User
User Management
Domain Management
Interface Customization
Summary
7. Connectivity to the PSTN
Where Are We?
Requests Sent to the Gateway
Requests Coming From the Gateway
openser.cfg Inspection
Lab—Using Asterisk as a PSTN Gateway
Asterisk Gateway (sip.conf)
Cisco 2601 Gateway
Using LCR (Least Cost Routes)
The LCR Module
Configuration Diagram
VoIP Provider Dial Plan
The LCR Table
The Gateways Table
The Gateway Groups Table
Adding, Removing, and Showing LCR and Gateways
Openserctl LCR-Related Commands.
Notes:
Examples:
Lab—Using the LCR Feature
lcr Gateway Groups
lcr Gateways
lcr Routes
Securing re-INVITES
Blacklists and "473/Filtered Destination" messages
Summary
8. Call Forward and Voice Mail
Call Forwarding
Pseudo-Variables
AVP (Attribute-Value Pair) Overview
AVPOPS Module Loading and Parameters
Implementing Blind Call Forwarding
Lab—Implementing Blind Call Forwarding
Implementing Call Forward on Busy or nanswered
Inspecting the Configuration File
Lab—Testing the Call Forward Feature
Summary
9. SIP NAT Traversal
NAT Types
Full Cone
Restricted Cone
Port Restricted Cone
Symmetric
NAT Firewall Table
Solving the SIP NAT Traversal Challenge
Implementing a Far-End NAT Solution
RFC3581 and the force_rport() Function
Solving the Traversal of RTP Packets
Handling REGISTER Requests behind NAT
Determining if the Client is behind NAT
Handling INVITE Messages behind NAT
Handling the Responses
MediaProxy Installation and Configuration
Installing MediaProxy
openser.cfg Analysis
Modules Loading
Modules' Parameters
Register Message Processing
Invite Message Processing
BYE and CANCEL Message Processing
RE-INVITE Message Handling
Reply Message Handling
Routing Script
Invite Diagram
Packet Sequence
Lab Using MediaProxy for NAT Traversal
Implementing a Near-End NAT Solution
Why STUN Does Not Work with Symmetric NAT Devices
Comparing STUN with TURN (Media Relay Server)
ALG—Application Layer Gateways
ICE (Interactive Connection Establishment)
Summary
10. OpenSER Accounting and Billing
Objectives
Where Are We?
VoIP Provider Architecture
Accounting Configuration
LAB—Accounting using MySQL
openser.cfg Analysis
Accounting using RADIUS
Installation of FreeRADIUS and CDRTool
Packages and Dependencies
Create and Configure the Database for the Radius server
Configuration of the FreeRADIUS Server
Configure the ...

Inhaltsverzeichnis