(this is a draft of the table of content, the final version of the book might have slightly different structure)
SIP Routing with Kamailio
- Introduction
- Book Structure
- History of Kamailio SIP Server Project
- Kamailio vs. SER
- Application Type and Usage Target
- Kamailio Version Used in the Book
- Release Policy
- SIP Overview
- SIP Request
- SIP Response
- SIP Transaction
- SIP Dialog
- Record Routing
- Kamailio Architecture
- Kamailio Core
- SIP Parser
- Memory Manager
- Locking Manger
- Transport Layer
- Configuration File Interpreter
- Variables Framework
- DNS Resolver
- Control Interface
- Modules Interface
- Internal Libraries
- Modules
- Kamailio Core
- Kamailio Installation
- Prerequisites
- Installation from GIT
- Getting sources from GIT
- Tuning Makefiles
- Compile Kamailio
- Install Kamailio
- Installed Files
- Create MySQL database
- Updating configuration file
- Start and Stop Script
- Adding Users
- Maintenance
- Installation from Tarball
- Installation from Packages
- Notes about CentOS
- Command Line Parameters
- Kamailio Version
- Debug Level
- Debug Output
- Configuration File
- Hostname Aliases
- Defining Values
- Configuration File Check
- Shared Memory Size
- Private Memory Size
- Running Tips
- Running from Source Tree
- Running Multiple Instance on Same Host
- Kamailio Tools
- Kamctl
- Kamctlrc Parameters
- SIP Domain Parameter
- Database Access Parameters
- Control Engine Parameters
- Configuration Parameters in Command Line
- Kamctl Commands
- Subscriber Management
- Location Management
- Database Interaction
- Kamailio Control Commands
- Kamctlrc Parameters
- Kamdbctl
- Database Creation
- Database Removal
- Sercmd
- Sercmd vs Kamctl
- Sercmd Options
- Sercmd Commands
- Execute MI Commands
- Print Private Memory Statistics
- Setting Configuration File Variables
- Kamctl
- Siremis Web Management Interface
- Installation
- Requirements
- Download
- Local Configuration
- Database Configuration
- Web Server Configuration
- Installation Wizard
- First Page
- Step 1
- Step 2
- Step 3
- Step 4
- Post Installation Remarks
- Security Considerations
- Using Siremis
- Additional Components
- Accounting Services
- MI Commands Panel
- XMLRPC Commands Panel
- Charts Services
- Database Configuration
- Kamailio Configuration
- Siremis Configuration
- Charts Screenshots
- Adding New Views
- Prerequisites
- Generating New Table View
- Inserting the New View In Menu
- Removing The Tools
- More Documentation
- Public Registration
- Important Advice
- Installation
- Kamailio Configuration File Structure
- Overview Of Configuration File
- Special Components
- First Line
- Comments
- Preprocessor Directives
- Include File
- Define
- ID Replacement
- Preprocessing Conditional Blocks
- Subst
- Substdef
- Global Parameters
- Core Parameters
- Custom Parameters
- Modules Settings
- Loading Modules
- Module Parameters
- Routing Blocks
- request_route
- route[ID]
- branch_route[ID]
- failure_route[ID]
- onsend_route
- reply_route
- onreply_route[ID]
- event_route[ID]
- SIP Message Routing
- SIP Request Routing
- SIP Request Routing on Retransmission Timeout
- SIP Response Routing
- Configuration File Elements
- Action
- Values
- Integer Values
- String Values
- Special Tokens
- ID
- Networking Attributes
- Variable Keyword
- Value Keyword
- myself keyword
- Variables
- Pseudo-Variables
- Transformations
- Selects
- Pseudo-Variables
- Operators
- Assignment
- String Operators
- Arithmetic Operators
- Logical Operators
- Bitwise Operators
- Statements
- IF
- WHILE
- SWITCH
- Functions
- Core Functions
- Module Functions
- Default Configuration File
- Overview
- Listing
- Analysis
- Remarks
- Building Configuration Files
- The Simplest Configuration Files
- Stateless Forwarding
- Respond with 200 OK Always
- Respond Selectively Always
- SIP Redirect Server
- Simple Stateless Round-Robin Load Balancer
- Simple Stateful Round-Robin Load Balancer
- Stateful Load Balancer with Failure Routing
- Remarks
- Configuration Flags
- Concept
- Transaction Flags
- Branch Flags
- Script Flags
- Usage in Default Configuration File
- Execution Control Actions
- exit
- drop
- route
- return
- Return Code Evaluation
- break
- Special Configuration Variables
- Null
- AVP
- XAVP
- VAR
- SHV
- SHT
- HDR
- Return Code
- SIP Message Variables
- Request URI Management
- Prefixing or Suffixing R-URI Username
- Stripping R-URI Username
- Dialed Number Normalization
- R-URI Parameters
- Caller ID Management
- From Header Variables
- From Header Update and Automatic Restoring
- Anonymous Caller ID
- Caller ID Updates With Assignments
- User Authentication
- SIP Authentication Overview
- Authentication Modules
- Authentication Using a Database Backend
- Subscriber Table
- Adding Subscribers
- Loading Credentials
- Authentication Functions
- Authentication Using a Custom Backend
- Remarks
- Access Control Lists
- Group Membership
- Managing Group Memberships with Kamctl
- Managing Group Memberships with Siremis
- Group Module API
- Using Group Module in Configuration File
- Group Membership with Radius Server
- Subscriber Profile ACL
- Group Membership
- IP Based Access Rules
- Static Rules in Configuration File
- IPOPS Module Rules in Configuration File
- Permissions Module Rules in Configuration File
- Records Management
- Management with Kamctl
- Management with Siremis
- Usage in Default Configuration File
- Usage of Address Matching Rules
- Records Management
- IP Address Matching Rules via Other Modules
- Registrar and Location Services
- SIP Registration
- Registrar Module
- Limiting the Number of Contacts
- Registration Test
- Fetching Contacts in Configuration File Variables
- Usrloc Module
- Listing Location Records
- Using Kamctl
- Using Siremis
- Usage in Default Configuration File
- NAT Traversal
- NAT Overview
- Types of NAT
- SIP and NAT
- NAT Traversal Options
- Kamailio and NAT Traversal
- Nathelper Module
- Rtpproxy Module
- RTPProxy Application
- RTPProxy Installation
- Registration through NAT
- VoIP Calls through NAT
- NAT Traversal and Default Configuration File
- Optimizations
- Caller and Callee behind same NAT
- NAT Overview
- Accounting
- Overview
- Accounting Details
- Accounting Mechanisms
- Accounting and Default Configuration File
- Accounting using Siremis
- Troubleshooting SIP and Kamailio
- SIP Security
- References for Typical Use Cases
- Useful Resources