Login | Register


About -> Available Versions -> Version 1.9.x -> Release 1.9.0

This page has been visited 12870 times.

1.  Migration from 1.8.x to 1.9.0

A manual for how to migrate/update from 1.8.x to 1.9.0 is now available on site.

2.  What is new in 1.9.0

2.1  CORE

  • Regular Expression Transformations : The ability to perform regular expression ops via the new re. class of transformations more ...
  • new $stat(name) variable to allow you to read via pseudo-variable the value of any statistic variables.
  • $var() script variables have now an explicit value of NULL, so values can be (a) integer, (b) string or (c) NULL. The NULL value can be tested in an "if" conditions
  • new tcp_listen_backlog parameter to be able to control the backlogging of the TCP listeners in OpenSIPS (default value is 10).
  • cache_fetch() can now retrieve the result in any writable pseudo-variable.
  • avp_print() function now prints the AVP name used in the script, rather than the internally used id.
  • Web Sockets support - support for VIA and URI header parsing for WS (Web Socket) and WSS (Web Socket Secure) protocols, allowing WebRTC clients to get registered and make calls using an intermediate proxy such as OverSIP. Using advanced OpenSIPs features like B2BUA and Topo-hiding etc., it may be possible to bridge WebRTC enabled and non-WebRTC enabled SIP endpoints to communicate with each other.
  • futex lock support added support for fast userspace locks (new USE_FUTEX option available via make menuconfig) which provides a faster implementation that will provide reasonable performance boosts in lock heavy environments
  • new MI command tcp_list_conns to list the ongoing TCP/TLS connections See description....
  • CacheDB Raw Queries - the ability to run raw queries on NoSQL type back-ends. The Raw query will be in a format specific for the back-end, thus taking full advantage of it's capabilities

2.2  SCRIPTING Enhancements

  • new script_trace() function used to debug script execution flow and values of pseudo-variables in certain areas of the OpenSIPS script Read more ....
  • $param() pseudo-variable can be used to retrieve parameters passed through the route() function more...
  • named flags in script - message, script and branch flags have now alphanumerical names, instead of numerical ID (as so far). Read more ....

2.3  TIMER Enhancements

  • when re-arming a handler function (for next triggering), do not include the time spent on running the handler (two triggering must be exactly at "interval" difference) -> better timer accuracy
  • auto-recalibration of timer processes to compensate the time drifting because of running the handlers (running the handlers takes time which usually accumulates and de-sync the timers)
  • report to logs callbacks the abuse (as time usage) the timer processes (if a handler uses more than on timer tick -> report it)


  • CouchBase Connector - New module implementing the CacheDB interface that allows communication with a CouchBase server/cluster Read More ...


  • MongoDB Connector - New module implementing the CacheDB interface that allows communication with a MongoDB server/replica set/cluster . The module also allows to run Raw queries on a MongoDB server Read More ...

2.6  NEW CACHEDB_SQL module

  • CACHEDB_SQL - New module implementing the CacheDB interface that allows communication with a regular SQL database. Can come in handy when you want to have dialog profiles sharing or ratelimiting over a regular SQL-based database.

2.7  NEW EVENT_ROUTE module

  • The event_route module can now be used to process events raised by the Event Interface directly from the configuration script. It provides a new type of route, event_route, that can be used to handle different types of events more ...

2.8  NEW PI_HTTP module

  • pi_http - Provides a simple web provisioning interface more ...

2.9  AAA_RADIUS module

  • syslog_name - new module parameter to control the logging of the client radius library to syslog (enable, disable, set ident name).

2.10  ACC module

  • Multi-leg BYE support - When using automatic CDR accounting, this feature provides the possibility to store per leg information when the call is ended (BYE message is received) more ...
  • A new accounting method has been introduced that can trigger events for each accounting message generated (both CDR and old-style accounting) more...

2.11  B2B_LOGIC module

  • b2b_init_request() takes new flags :
    • 't' - transparent TO hdr - instead of generating a new TO header, preserve the received one (TO hdr gets propagated through the B2B)
    • 'a' - transparent authentication - if authentication should be done locally (by B2B) or remote (passed back to caller)
  • new module parameter b2bl_th_init_timeout to make the call setup time configurable (via new module param and via runtime flags) for topo hiding scenarios, to avoid early timeouts (if setup takes too long)
  • b2b_bridge MI function enhanced to accept an optional third parameter that permits injecting provisional media in bridging scenario
  • full support for changes - changes done in script before triggering b2b are now propagated inside B2B, on the outbound side; also, the changes done in the b2b request / reply routes are also stored/used and propagated through the B2B.

2.12  CFGUTILS module

  • New! Script Locks - Set of functions which provide critical regions for the script. A critical region is used when a non-atomic sequence of operations (i.e. read + write) is to be performed concurrently by many processes on the same piece of data. more ...
  • Time recurrence function - Matches a given time recurrence string against the current date and returns either true or false. more ...

2.13  DIALOG module

  • Improved DB interaction : Dialog DB structure and usage was reworked, in order to only query by the primary key for all select/delete/update ops
  • Improved DELAYED DB Mode : for the DLG_DELAYED db mode, the dialog deletion is done in the timer process ( old way was deleting on the spot, wherever that was, eg. SIP worker, MI process, etc )
  • Own Timer Process : The dialog module can be configured to have it's own timer process more ...
  • Bulk DB Deletes : Added the option to do bulk dialog deletions in the dialog timer process, in order to reduce the number of DB queries more ...
  • New MI command: list_all_profiles - Displays all existing profiles more ...

2.14  DIALPLAN module

  • Multiple table support - The dialplan rules can now be organized in multiple tables, providing higher flexibility of rules management more ...
  • Removed match_len column / Added match_flags column - The match_flags integer is a bitmask which currently supports enabling caseless comparison on both strings and regex. Set it to 1 to enable such a behaviour. more ...

2.15  DISPATCHER module

  • New dispatching algorithm - The new algorithm allows you to specify the load of each destination using pseudovariables. The destinations will be tried in the ascending order of the loads. more ...
  • IP Blacklisting - Dispatching sets of IPs can now be blacklisted more ...
  • Count active destinations - Counts the number of destinations in a given set that share the same properties (are all active / inactive / probing, or combinations of these states) more ...

2.16  DROUTING module

  • new function dr_is_gw( uri, [type, [flag]]) to test if a generic SIP URI points to a gateway defined in DR module.
  • new flag "C" do_routing() - DR will only check the prefix without doing any routing.
  • added gw_priprefix_avp parameter, for pushing the selected destination's pri prefix to script

2.17  LOAD_BALANCER module

  • IP Blacklisting - Load balancing groups of IPs can now be blacklisted more ...
  • lb_is_destination() - check if an IP + PORT is a LB destination. See function docs...
  • lb_count_call() - a function to count the current call as load (in LB) for a given destination (with some given resources).See function docs...

2.18  MI XMLRPC module

  • Prevent the XMLRPC server from returning non-XML characters in the response.

2.19  NATHELPER module

  • natping_tcp flag - Enables SIP OPTIONS pinging on TCP/TLS connections more ...

2.20  DB_MYSQL module

  • The db_mysql module can now now trigger the E_MYSQL_CONNECTION when a MySQL connection looses connectivity more ...

2.21  PERLVDB module renamed

  • renamed as db_perlvdb to respect the naming convention for DB modules.

2.22  RTPPROXY module

  • rtpproxy_offer() / rtpproxy_answer() accepts variables in both parameters (IP and FLAGS).

2.23  SIPMSGOPS module

  • remove_hf(pattern, flags) - extended to remove from a message all headers with name matching the pattern wildcard based (which is a shell wildcard pattern) or a pattern regexp based.
  • sipmsg_validate() function takes two more flags: m to bypass the Max-Forward validation and r to also validate the Request URI of the message.
  • stream_exists(media) and stream_delete(media) function added to search / delete entire streams from the SDP. They are really helpful when dealing with FAX or video networks.

2.24  PRESENCE and XCAP modules

  • new module: XCAP - it contains common functionality for XCAP related tasks. It also contains the following XCAP related settings: db_url, xcap_table and integrated_server. Check the docs
  • enhancements to RLS module - Removed configuration parameters which are now in the XCAP module. Added ability to follow external references. Added MI command to update subscriptions when the document has changed.
  • enhancements to PRESENCE_XML module - Added OMA pres-rules support. OMA mode follows the pres-rules specification by the Open Mobile Alliance and can be selected with the pres_rules_auid setting.

Page last modified on March 06, 2015, at 02:10 PM