Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
features:new-in-devel [2012/01/11 04:57] 109.230.216.225 old revision restored |
features:new-in-devel [2012/05/30 02:04] (current) manwe old revision restored |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | Yo, that' | + | ====== SIP Router - New features in development version ====== |
+ | |||
+ | The page collects the summary (draft notes) of the new features in SIP Express Router (SER) and Kamailio (OpenSER) development version. | ||
+ | |||
+ | **This source tree branch will result in release 3.2.0 - release date proposal: Mid Autumn 2011**. | ||
+ | |||
+ | Current stable branch is: **3.1** | ||
+ | |||
+ | * last major release: **3.1.0 - was released on Oct 06, 2010** (note that minor releases as version 3.1.x may be out already) | ||
+ | |||
+ | ===== New SIP Router modules ===== | ||
+ | |||
+ | ==== async ==== | ||
+ | |||
+ | * collector for asynchronous config functions | ||
+ | * async_route(...) - execute a route block asynchronously after an interval of time | ||
+ | * async_sleep(...) - asynchronous sleep for usage when processing SIP requests | ||
+ | |||
+ | ==== db_sqlite ==== | ||
+ | |||
+ | * database connector for SQLite | ||
+ | |||
+ | ==== dmq ==== | ||
+ | |||
+ | * distributed message queue using SIP to communicate between peers (SIP server instances) | ||
+ | |||
+ | ==== ipops ==== | ||
+ | |||
+ | * IPv4 and IPv6 related functions for config file | ||
+ | |||
+ | ==== json ==== | ||
+ | |||
+ | * json parser for configuration file | ||
+ | |||
+ | ==== jsonrpc-c ==== | ||
+ | |||
+ | * JSON-RPC client over netstrings | ||
+ | ==== ndb_redis ==== | ||
+ | |||
+ | * connector to Redis no-SQL database engine | ||
+ | |||
+ | ==== presence_reginfo ==== | ||
+ | |||
+ | * Support for RFC 3680 in the presence architecture of Kamailio | ||
+ | |||
+ | ==== pua_reginfo ==== | ||
+ | |||
+ | * Publish Registration info according to RFC 3680 (" | ||
+ | * Subscribe to remote registration info | ||
+ | * Process published registration info (NOTIFY requests) and store it to usrloc | ||
+ | * (currently still in the carstenbock/ | ||
+ | |||
+ | ==== p_usrloc ==== | ||
+ | |||
+ | * partitioned user location service | ||
+ | |||
+ | ==== sdpops ==== | ||
+ | |||
+ | * module to control the content of the SDP payload from configuration file | ||
+ | * e.g.,: remove codecs | ||
+ | |||
+ | ==== sipcapture ==== | ||
+ | |||
+ | * SIP traffic capturing server extension for Homer project | ||
+ | ==== IMS Extensions ==== | ||
+ | |||
+ | * the IMS related modules resides in **carstenbock/ | ||
+ | |||
+ | ==== IMS: CDP / CDP-AVP ==== | ||
+ | |||
+ | * The CDP (C-Diameter-Peer) modules provide an Diameter-interface, | ||
+ | |||
+ | ==== IMS: P-CSCF ==== | ||
+ | |||
+ | * The Proxy-CSCF in the IMS Architecture acts as an entry point to the network. The pcscf module of the original OpenIMS-core aggregates many functions required at this component: Header manipulation/ | ||
+ | |||
+ | ==== IMS: I-CSCF ==== | ||
+ | |||
+ | * The Interrogating-CSCF is a kind of “Loadbalancer” or a entry Proxy for the “home-network” of an IMS setup. The I-CSCF will retrieve the location for a user from the HSS, it will check, where a user is registered or where it should register (based on user-settings, | ||
+ | |||
+ | ==== IMS: S-CSCF ==== | ||
+ | |||
+ | * The Serving-CSCF is acting as a registrar and as decision engine regarding the routing of the Request. It retrieves the user-data and routing rules from the HSS and applies them to the processed requests. The scscf-module implements the according interfaces towards the HSS (Cx), the interfaces towards application-servers (Isc) and according header manipulation/ | ||
+ | |||
+ | ==== IMS: MGCF ==== | ||
+ | |||
+ | * The MGCF-Module of the OpenIMS core implements header and content manipulation for interconnections towards Class 4 networks. | ||
+ | |||
+ | ==== IMS: E-CSCF & LRF ==== | ||
+ | |||
+ | * The Emergency-CSCF and the Location Ressource Function (LRF) implements IMS compliant emergency call routing. The modules provide required content aggregation methods. | ||
+ | |||
+ | |||
+ | |||
+ | ===== New in Old SIP Router modules ===== | ||
+ | |||
+ | ==== acc ==== | ||
+ | |||
+ | * name of acc and missed calls database tables can contain variables which are evaluated at runtime | ||
+ | * generate user-customizable CDR logs | ||
+ | * added ' | ||
+ | |||
+ | ==== app_lua ==== | ||
+ | |||
+ | * more modules available in Lua | ||
+ | * auth | ||
+ | * auth_db | ||
+ | * dispatcher | ||
+ | * maxfwd | ||
+ | * presence | ||
+ | * presence_xml | ||
+ | * registrar | ||
+ | * rr | ||
+ | * sdpops | ||
+ | * sqlops | ||
+ | * tm | ||
+ | * xhttp | ||
+ | |||
+ | ==== auth ==== | ||
+ | |||
+ | * New flag 16 to add stale=true to challenge response. | ||
+ | |||
+ | ==== auth_db ==== | ||
+ | |||
+ | * export of inter-module API (available through Lua) | ||
+ | |||
+ | ==== auth_radius ==== | ||
+ | |||
+ | * Added optional uri_user param to radius_www_authorize(). | ||
+ | |||
+ | ==== db_postgres ==== | ||
+ | |||
+ | * reconnect in case of broken connection | ||
+ | |||
+ | ==== dialog ==== | ||
+ | |||
+ | * read and set per-dialog variables from script | ||
+ | * provide callbacks to fire on OK and ACK messages following INVITE, respectively | ||
+ | * enable to terminate call programmatically | ||
+ | |||
+ | ==== lcr ==== | ||
+ | |||
+ | * Added optional tag_avp module parameter and made lcr_flags module parameter optional. | ||
+ | * Renamed dont_strip_or_tag_flag module parameter to dont_strip_or_prefix_flag. | ||
+ | * load_gws() can take uri_user param, value of which is used instead of Request URI user part by load_gws() function. | ||
+ | * [from|to][any]_gw functions now check also transport protocol. | ||
+ | * Renamed lcr_gw table' | ||
+ | * Parameters of load_gw() function must be given without quotes. | ||
+ | * Added tag field to lcr_gw table whose value is assigned to possible tag_avp by next_gw() and from_gw() functions. | ||
+ | * Increased lcr_gw tables version number to 2. | ||
+ | * Script that upgrades lcr_gw table from version 3.1 is available as http:// | ||
+ | |||
+ | ==== dialplan ==== | ||
+ | |||
+ | * dp_translate() returns -2 (instead of -1) if dp with given id does not exist. | ||
+ | |||
+ | ==== dispatcher ==== | ||
+ | |||
+ | * export of inter-module API (available through Lua) | ||
+ | * new event routes that are called when destinations go on/ | ||
+ | |||
+ | ==== mtree ==== | ||
+ | |||
+ | * Added new mode 2 to mt_match() that instead of setting value of longest matching prefix to a pv, sets values of all matching prefixes to an avp so that value of longest matching prefix is in avp index 0. | ||
+ | |||
+ | ==== nathelper ==== | ||
+ | * new function: is_rfc1918(ip_addr). Checks if the address < | ||
+ | |||
+ | |||
+ | ==== maxfwd ==== | ||
+ | |||
+ | * export of inter-module API (available through Lua) | ||
+ | |||
+ | ==== presence ==== | ||
+ | |||
+ | * the module can work in three modes | ||
+ | * caching | ||
+ | * caching with fallback to database | ||
+ | * database only | ||
+ | |||
+ | ==== presence_xml ==== | ||
+ | * new exported functions to enable the online/ | ||
+ | |||
+ | ==== pv ==== | ||
+ | |||
+ | * new pseudovariables: | ||
+ | * $timef(format) - string representation of time formatted according to format | ||
+ | * $Tb - epoch of the startup (boottime) of the current process | ||
+ | * new transformations: | ||
+ | * {s.ftime,< | ||
+ | * {s.sql} - output the pvar as valid SQL value. < | ||
+ | * {s.replace,< | ||
+ | * {s.prefixes[,< | ||
+ | * new functions: | ||
+ | * is_int() checks if pvar argument contains integer value. | ||
+ | |||
+ | ==== registrar ==== | ||
+ | |||
+ | * export of inter-module API (available through Lua) | ||
+ | |||
+ | ==== rls ==== | ||
+ | |||
+ | * new parameters to control local contact and outbound proxy addresses | ||
+ | * support for resource-list indices that reference other resource-list XML documents (including XPath within documents) | ||
+ | * new exported function to allow re-subscription to a list to be initiated from the configuration file | ||
+ | * module parameter added to allow the size of NOTIFYs to be limited, so that they aren't too big for other network entities | ||
+ | |||
+ | ==== rr ==== | ||
+ | |||
+ | * export of inter-module API (available through Lua) | ||
+ | |||
+ | ==== rtpproxy ==== | ||
+ | |||
+ | * force_rtp_proxy function was removed | ||
+ | |||
+ | ==== siputils ==== | ||
+ | |||
+ | * Added set_uri_user(uri, | ||
+ | * Function tel2sip() replaced by tel2sip(uri, | ||
+ | ==== sqlops ==== | ||
+ | * xavp support. New function sql_xquery() stores the query result in an xavp. | ||
+ | * BIGINT support. Native support when sql_xquery is used, transformed to string for sql_query(). | ||
+ | |||
+ | ==== textops ==== | ||
+ | * new exported function to add " | ||
+ | |||
+ | ==== tmx ==== | ||
+ | |||
+ | * asynchronous SIP request processing functions for configuration file | ||
+ | * t_suspend() - suspend the processing of SIP request transaction | ||
+ | * t_continue() - resume the processing of SIP request transaction | ||
+ | * $T(name) - new class of pseudo-variables for accessing transaction attributes: | ||
+ | * internal index, label, the branch index, reply code | ||
+ | |||
+ | ==== uac ==== | ||
+ | * new function: uac_reg_request_to. Lookup a local user from the registration table and prepares message variables so the request can be sent to the remote user, using the same credentials as with which the registration has been done. | ||
+ | |||
+ | |||
+ | ==== usrloc ==== | ||
+ | |||
+ | * store extra attributes per location records | ||
+ | ==== xavp ==== | ||
+ | * [[devel: | ||
+ | |||
+ | ==== xcap_server ==== | ||
+ | * Support for extra auids: | ||
+ | * org.openmobilealliance.user-profile | ||
+ | * org.openmobilealliance.pres-content | ||
+ | * org.openmobilealliance.search | ||
+ | * Support for HTTP 1.1 pre-conditions to enable clients to avoid having to re-download unchanged documents and to check whether documents have changed or not on upload | ||
+ | |||
+ | ==== xhttp ==== | ||
+ | |||
+ | * export of inter-module API (available through Lua) | ||
+ | |||
+ | |||
+ | ===== New in Core ===== | ||
+ | |||
+ | ==== Preprocessor directives ==== | ||
+ | |||
+ | * #!substdef - add a substitution rule and a define at the same time | ||
+ | * #!substdefs - add a substitution rule and a define with string value at the same time | ||
+ | * #!trydef - add a define if not defined already | ||
+ | * #!redefine - force redefinition even if defined already | ||
+ | |||
+ | **#!** and **!!** can be used as start of preprocessor directives | ||
+ | |||
+ | ==== import_file ==== | ||
+ | |||
+ | Attempt to include a file, but if it is not found, do not throw error like **include_file**. | ||
+ | |||
+ | ==== Parameters ==== | ||
+ | |||
+ | * sql_buffer_size - Allows the size of the SQL buffer to be altered from the default of 65535 bytes. This allows objects larger than 64K to be stored in databases. | ||
+ | |||
+ | ===== New in Documentation ===== | ||
+ | |||
+ | ==== Developer visible changes ==== | ||
+ | |||
+ | * Many bugfixes to existing doxygen code documentation in modules and core | ||
+ | * Several extensions to doxygen documentation in modules and core |