====== Reference Manual ====== ==== About This Guide ==== This guide is work in progress. The guide was originally conceived as the reference manual for SER 2.0 and it is currently being transformed into the reference manual for the SIP Router. SIP Express Router is a free, extensible, powerful, heavy-duty SIP server. SER gets typically deployed at large-scale and complex SIP server setups where other solutions fail. The server features efficient, elegant, and small core, powerful and flexible configuration language capable of doing things to SIP messages beyond imagination. Vast collection of extension modules provides additional features that can be loaded only when needed, helping to maintain the server neat, clean, and sane. SER's elegant design together with an efficient, extensible, and easy to integrate data model make it an ideal sofware for large or complicated SIP setups on most platforms. This reference manual attempts to describe all subsystems, parts, extension modules, functions, parameters, and features of SER and its configuration language. It is terse but the reference manual attempts to be complete. For a shorter and easier to read introduction to SER 2.0 read the [[admin_guide|Administrator's Guide]]. ==== Table of Contents ==== - **[[.ref_manual:blacklists|Destination Blacklists]]** - **[[.ref_manual:cfg|Configuration File]]** - [[.ref_manual:cfg#lexical_scope|Lexical Scope]] - [[.ref_manual:cfg#global_configuration|Global Configuration]] - [[.ref_manual:cfg#routing_sections|Routing Sections]] - **[[.ref_manual:data_model|Data Model]]** - [[.ref_manual:data_model#general_concepts|General Concepts]] - [[.ref_manual:data_model#users|Users]] - [[.ref_manual:data_model#virtual_domains|Virtual Domains]] - [[.ref_manual:data_model#uris|URIs]] - [[.ref_manual:data_model#attributes|Attributes]] - [[.ref_manual:data_model#accounting|Accounting]] - **[[.ref_manual:db_layer|Database Abstraction Layer]]** - **[[.ref_manual:dns|DNS Subsystem]]** - **[[.ref_manual:ipv6|IPv6 Support]]** - **[[.ref_manual:libs|Shared Libraries]]** - **[[.ref_manual:logging|Logging Subsystem]]** - **[[.ref_manual:mcast|Multicast Support]]** - **[[.ref_manual:memory|Memory Management]]** - **[[.ref_manual:mgmt|Management Interface]]** - **[[.ref_manual:modules|Modules]]** - [[.ref_manual:modules#loading_modules]] - [[.ref_manual:modules#modules_parameters|Module Parameters]] - **[[.ref_manual:nat|NAT Traversal]]** - **[[.ref_manual:selects|The Select Framework]]** - [[.ref_manual:selects#overview_of_operation|Overview of Operation]] - [[.ref_manual:selects#select_identifiers|Select Identifiers]] - [[.ref_manual:selects#nested_selects|Nested Selects]] - [[.ref_manual:selects#selects_in_expressions|Selects in Expressions]] - [[.ref_manual:selects#selects_in_parameters|Selects in Parameters]] - [[.ref_manual:selects#system_selects|System Selects]] - [[.ref_manual:selects#selects_in_modules|Selects in Modules]] - **[[.ref_manual:state|Transactions, Dialogs, Sessions]]** - **[[.ref_manual:stun|STUN Support]]** - **[[.ref_manual:transport|Transport Protocols]]** - [[.ref_manual:transport:tcp|TCP/IP]] - [[.ref_manual:transport:tls|TLS/SSL]] - [[.ref_manual:transport:sctp|SCTP]] - **[[.ref_manual:timers|SIP Transaction Timers]]** - [[.ref_manual:timers#fr_timer|fr_timer]] - [[.ref_manual:timers#fr_inv_timer|fr_inv_timer]] - [[.ref_manual:timers#wt_timer|wt_timer]] - [[.ref_manual:timers#retr_timer1|retr_timer1]] - [[.ref_manual:timers#retr_timer2|retr_timer2]] - [[.ref_manual:timers#delete_timer|delete_timer]] /* Reference manual structure proposed by Greger, to be incorporated into the docs here. Table of contents 1. Introduction to this reference manual who? 2. How SER and ser.cfg works (from SER Getting Started) Greger 1. SER Architecture and ser.cfg 1. Core and Modules 2. ser.cfgs Seven Sections 3. Transactions, Dialogs, and Sessions 4. Understanding Message Processing in ser.cfg 2. Stateful vs. stateless 3. Understanding SIP and RTP 4. Back-end applications and B2BUA 5. NAT, STUN, and RTP proxy 1. Registration behind NAT 2. INVITEs behind NAT 3. STUN 4. Other non-ser NAT traversal techniques 6. URI, R-URI, and Branches 3. Programming in SER 1. Overview of ser.cfg language Martin? 2. Basic language who? 1. Seven sections of ser.cfg (from SER - Getting Started) 2. if - testing 3. routes - execution flow 3. Accessing information in SIP messages using selects Martin 4. Storing information in variables (aka attribute/value pairs) Martin 1. Scope of variables (per transactions) Martin 2. Retrieving configuration information from a database Martin 4. SER's Management interface who? 1. About the command interface 2. Various methods for accessing the command interface 1. Unix socket 2. TCP/IP 3. XML-RPC 5. The UAC (client) function of the management interface who? 1. What is the UAC function? 2. Using the UAC function from an external application 3. How SEMS uses the UAC function 6. Reference (mainly a consolidation job) Greger 1. How documentation is built up (parameters, functions, selects, and management commands under each mod\ ule + ref. to online search tool) 2. Core functions (NOTE!! use old admin guide and create like a module doc) HELP DEARLY NEEDED 3. Modules (NOTE!! Consolidate current module documentation) */