E-book details

Building Telephony Systems with OpenSER. A step-by-step guide to building a high performance Telephony System

Building Telephony Systems with OpenSER. A step-by-step guide to building a high performance Telephony System

Flavio E. Goncalves, Bogdan Andrei Iancu (EUR), Flavio E Goncalves

Ebook
  • Building Telephony Systems with OpenSER
    • 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 ProxyExpected Behavior
      • Stateful Operation
      • Differences between Strict Routing and Loose Routing
      • Understanding SIP and RTP
        • Summary
    • 3. OpenSER Installation
      • Hardware Requirements
      • Software Requirements
      • LabInstalling Linux for OpenSER
      • Downloading and Installing OpenSER v1.2
      • LabRunning 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
        • LabTracking a Complete Dialog
        • LabRunning Stateless
        • LabDisabling 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
          • QOPQuality 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-Inboundroute[10]
              • Inbound-to-Outboundroute[11]
              • Outbound-to-Inboundroute[12]
              • Outbound-to-Outboundroute[13]
      • The Functions check_to() and check_from()
      • Using Aliases
      • Handling CANCEL requests and retransmissions
      • Full Script with All the Resources Above
      • LabEnhancing the Security
      • LabUsing Aliases
      • Summary
    • 6. Building the User Portal with SerMyAdmin
      • SerMyAdmin
        • LabInstalling 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
      • LabUsing 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:
        • LabUsing 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
          • LabImplementing Blind Call Forwarding
      • Implementing Call Forward on Busy or nanswered
      • Inspecting the Configuration File
      • LabTesting 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)
          • ALGApplication Layer Gateways
          • ICE (Interactive Connection Establishment)
        • Summary
    • 10. OpenSER Accounting and Billing
      • Objectives
      • Where Are We?
        • VoIP Provider Architecture
        • Accounting Configuration
        • LABAccounting 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 RADIUS Client (radiusclient-ng)
        • Configure OpenSER
        • Test the Configuration after Making a Call
      • Using CDRTool for Rating
        • LABCDRTool Installation
        • LABUsing CDRTool
      • CDRTool Architecture
      • How CDRTool Rates a Call
        • LabCreating and Applying a Rating Plan
      • Summary
    • 11. Troubleshooting Tools
      • Objectives
        • Where Are We?
      • Built-in Tools
      • Packet Capture and Trace Tools
        • TShark, Wireshark
        • SipTrace
        • Stress Testing Tools
          • Sipsak
          • SIPp
          • Installing SIPp
          • Stress TestThe SIP Signaling
          • Stress TestThe RTP Signaling
          • Testing MediaProxy
        • Monitoring Tools
      • Summary
    • 12. After Words
      • What's New in Version 1.2.3
        • Cancel Handling
        • Blacklist is Disabled by Default
        • Method Filtering
        • Alias_DB
        • Branch_route
      • Migration from 1.2.2 to 1.2.3 and 1.3.1
      • Migrating the Script from Chapter 10 to openser 1.3.1
      • RTPProxy
        • LabInstalling RTPProxy
      • Areas for Further Investigation
        • Carrier Route
        • Dialog
        • SIP Session Timers
      • SIP Peering
      • TLS Transport Layer Security
      • Development
        • PERL
        • WeSIP
      • Common Mistakes
        • Daemon Does Not Start
        • Client Unable to Register
        • Sending a Call to a Provider with Authentication
        • Typos in the Configuration File
        • The Last Tip
      • Forum and Training
      • Summary
    • Index
  • Title: Building Telephony Systems with OpenSER. A step-by-step guide to building a high performance Telephony System
  • Author: Flavio E. Goncalves, Bogdan Andrei Iancu (EUR), Flavio E Goncalves
  • Original title: Building Telephony Systems with OpenSER. A step-by-step guide to building a high performance Telephony System
  • ISBN: 9781847193742, 9781847193742
  • Date of issue: 2008-04-25
  • Format: Ebook
  • Item ID: e_3cnj
  • Publisher: Packt Publishing