售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
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 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 RADIUS Client (radiusclient-ng)
Configure OpenSER
Test the Configuration after Making a Call
Using CDRTool for Rating
LAB—CDRTool Installation
LAB—Using CDRTool
CDRTool Architecture
How CDRTool Rates a Call
Lab—Creating 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 Test—The SIP Signaling
Stress Test—The 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
Lab—Installing 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
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜