Building Telephony Systems with OpenSER
eBook - ePub

Building Telephony Systems with OpenSER

Flavio E. Goncalves

Condividi libro
  1. 324 pagine
  2. English
  3. ePUB (disponibile sull'app)
  4. Disponibile su iOS e Android
eBook - ePub

Building Telephony Systems with OpenSER

Flavio E. Goncalves

Dettagli del libro
Anteprima del libro
Indice dei contenuti
Citazioni

Informazioni sul libro

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.

Domande frequenti

Come faccio ad annullare l'abbonamento?
È semplicissimo: basta accedere alla sezione Account nelle Impostazioni e cliccare su "Annulla abbonamento". Dopo la cancellazione, l'abbonamento rimarrà attivo per il periodo rimanente già pagato. Per maggiori informazioni, clicca qui
È possibile scaricare libri? Se sì, come?
Al momento è possibile scaricare tramite l'app tutti i nostri libri ePub mobile-friendly. Anche la maggior parte dei nostri PDF è scaricabile e stiamo lavorando per rendere disponibile quanto prima il download di tutti gli altri file. Per maggiori informazioni, clicca qui
Che differenza c'è tra i piani?
Entrambi i piani ti danno accesso illimitato alla libreria e a tutte le funzionalità di Perlego. Le uniche differenze sono il prezzo e il periodo di abbonamento: con il piano annuale risparmierai circa il 30% rispetto a 12 rate con quello mensile.
Cos'è Perlego?
Perlego è un servizio di abbonamento a testi accademici, che ti permette di accedere a un'intera libreria online a un prezzo inferiore rispetto a quello che pagheresti per acquistare un singolo libro al mese. Con oltre 1 milione di testi suddivisi in più di 1.000 categorie, troverai sicuramente ciò che fa per te! Per maggiori informazioni, clicca qui.
Perlego supporta la sintesi vocale?
Cerca l'icona Sintesi vocale nel prossimo libro che leggerai per verificare se è possibile riprodurre l'audio. Questo strumento permette di leggere il testo a voce alta, evidenziandolo man mano che la lettura procede. Puoi aumentare o diminuire la velocità della sintesi vocale, oppure sospendere la riproduzione. Per maggiori informazioni, clicca qui.
Building Telephony Systems with OpenSER è disponibile online in formato PDF/ePub?
Sì, puoi accedere a Building Telephony Systems with OpenSER di Flavio E. Goncalves in formato PDF e/o ePub, così come ad altri libri molto apprezzati nelle sezioni relative a Computer Science e Information Technology. Scopri oltre 1 milione di libri disponibili nel nostro catalogo.

Informazioni

Anno
2008
ISBN
9781847193735
Edizione
1

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

Indice dei contenuti