About

About.Version-2-1-0 History

Hide minor edits - Show changes to markup

August 25, 2015, at 07:46 PM by etamme - clarifying docs regarding new transport modules
Changed line 15 from:

Allows new protocols to be added in a much easier way. OpenSIPS 2.1 now comes with two built-in transport modules, TCP and UDP, and three optional protocol-modules: WebSocket, TLS and SCTP. The binary no longer needs to be recompiled every time you choose to support a new protocol.\\

to:

Allows new protocols to be added in a much easier way. OpenSIPS 2.1 now comes with pluggable core transport modules, TCP and UDP, and three abstracted protocol-modules: WebSocket, TLS and SCTP. The binary no longer needs to be recompiled every time you choose to support a new protocol.\\

April 23, 2015, at 11:46 PM by wwidener -
Changed line 182 from:
  • A new E_PRESENCE_PUBLISH event has been added that is triggered every time OpenSIPS receives a PUBLISH message. Read mode here ...
to:
  • A new E_PRESENCE_PUBLISH event has been added that is triggered every time OpenSIPS receives a PUBLISH message. Read more here ...
March 18, 2015, at 09:32 PM by liviu -
Changed line 52 from:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (MySQL queries, exec scripts, HTTP requests). Halts current script execution and runs a resume route once the async operation is complete. More info in the OpenSIPS 2.1 async tutorial ...
to:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (MySQL queries, exec scripts, HTTP requests). Halts script execution and runs a resume route once the async operation is complete. More info in the OpenSIPS 2.1 async tutorial ...
March 18, 2015, at 09:32 PM by liviu -
Changed line 52 from:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (MySQL queries, exec scripts, HTTP requests). Halts current script execution and runs a resume route once the async operation is complete. More information in the OpenSIPS 2.1 async tutorial ..
to:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (MySQL queries, exec scripts, HTTP requests). Halts current script execution and runs a resume route once the async operation is complete. More info in the OpenSIPS 2.1 async tutorial ...
March 18, 2015, at 09:31 PM by liviu -
Changed line 52 from:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (e.g. MySQL queries, exec scripts, HTTP requests). Halts current script execution and runs a resume route once the async operation is complete. More information in the OpenSIPS 2.1 async tutorial ..
to:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (MySQL queries, exec scripts, HTTP requests). Halts current script execution and runs a resume route once the async operation is complete. More information in the OpenSIPS 2.1 async tutorial ..
March 18, 2015, at 09:31 PM by liviu -
Changed line 52 from:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (e.g. MySQL queries, exec scripts, HTTP requests). Halts current script execution and runs a resume route once the async operation is complete. More information in the OpenSIPS 2.1 async tutorial ...
to:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (e.g. MySQL queries, exec scripts, HTTP requests). Halts current script execution and runs a resume route once the async operation is complete. More information in the OpenSIPS 2.1 async tutorial ..
March 18, 2015, at 09:29 PM by liviu -
Changed line 52 from:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (e.g. MySQL queries, exec scripts, HTTP queries). Halts current script execution and runs a resume route once the async operation is complete. More information in the OpenSIPS 2.1 async tutorial ...
to:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (e.g. MySQL queries, exec scripts, HTTP requests). Halts current script execution and runs a resume route once the async operation is complete. More information in the OpenSIPS 2.1 async tutorial ...
March 18, 2015, at 06:34 PM by liviu -
Changed lines 20-22 from:

OpenSIPS 2.1 had the ability to perform, from script level, various operations in the asynchronous mode. Now you can run DB queries, REST queries or external scripts without the blocking penalty !

The OpenSIPS config file allows you to use certain functions in async way (via the dedicated "async" statement). The suspending and resuming is done at script level. A detailed description of how the async support works in 2.1 is available here: http://www.opensips.org/Documentation/Script-Async-2-1 .

to:

OpenSIPS 2.1 has the ability to perform, from script level, various operations in an asynchronous mode. Now you can run DB queries, REST queries or external scripts without the blocking penalty!

The OpenSIPS config file allows you to use certain functions in async way (via the dedicated "async" statement). Both suspending and resuming are done at script level. A detailed description of how the async support works in 2.1 is available here: http://www.opensips.org/Documentation/Script-Async-2-1 .

March 18, 2015, at 01:51 PM by razvancrainea -
Added line 182:
  • A new E_PRESENCE_PUBLISH event has been added that is triggered every time OpenSIPS receives a PUBLISH message. Read mode here ...
March 18, 2015, at 12:21 PM by 89.120.101.121 -
Deleted lines 102-104:
  • Call-ID topology hiding support was added within the dialog module - there are many cases where the callid contains IPs, thus revealing part of the network topology. More information here ...
  • Added the ability to propagate various Contact Header / URI parameters when doing topology hiding - helpful for preserving some end-to-end functionality relying on URI params. Read more here ...
Changed lines 175-176 from:
to:
  • Added support for limiting the number of SIP MESSAGES that will be dumped in one shot ( in order to not overload the client )
Changed lines 201-202 from:
  • Added per contact events - raised when a new contact is inserted / updated / deleted. Read more here ...
to:
  • Added per contact events - raised when a new contact is inserted / updated / deleted. Read more here ...
  • Added User-Agent filtering capabilities for lookup() - so you can now send calls just to particular UAs, if you need to
March 18, 2015, at 12:18 PM by 89.120.101.121 -
Changed lines 99-100 from:
  • (d84649e TODO)
to:

A new module that offers topology hiding capabilities. The module strips and restores the headers that contain topology information (Via, Record-Route, Route and Contact headers) , and optionally it can also change the Call-ID of the requests. The module can work on top of the dialog module, or in stand-alone mode, thus allowing to do topology hiding for all types of dialogs ( eg. Presence dialogs ) and also for standalone initial requests ( eg. SIP MESSAGE ).
See the usage tutorial and the module documentation for parameters and functions provided by this module.

  • Call-ID topology hiding support was added within the dialog module - there are many cases where the callid contains IPs, thus revealing part of the network topology. More information here ...
  • Added the ability to propagate various Contact Header / URI parameters when doing topology hiding - helpful for preserving some end-to-end functionality relying on URI params. Read more here ...
Changed lines 125-127 from:
  • Call-ID topology hiding support was added within the dialog module - there are many cases where the callid contains IPs, thus revealing part of the network topology. More information here ...
  • Added the ability to propagate various Contact Header / URI parameters when doing topology hiding - helpful for preserving some end-to-end functionality relying on URI params. Read more here ...
  • Added the E_DLG_STATE_CHANGED event.
to:
  • Added the E_DLG_STATE_CHANGED event, that will be triggered when the dialog state changes (eg. from early to established, from established to ended, etc ).
March 18, 2015, at 11:15 AM by razvancrainea -
Changed lines 64-65 from:
  • sync/async support for event_route (e3d37f4 TODO)
to:
  • sync/async support for event_route - Provides the possibility to run an event route asynchronously. More information here
Changed line 200 from:
  • Added per contact events - raised when a new contact is inserted / updated / deleted. Read more here ...
to:
  • Added per contact events - raised when a new contact is inserted / updated / deleted. Read more here ...
March 17, 2015, at 08:54 PM by razvancrainea -
Deleted lines 200-239:

Devel Plan 2.1 release (TODO list)

ImportanceModuleDescription
xxxxTMeven if decide to "go stateful" very early in your script (via t_newtran), all changes you do later over the request (in request route, branch route, failure route) must be updated/pushed into transaction and remembered at later processing
xxxxDIALOGre-INVITE based in-dialog pinging (with proper SDP handling)
xxxREGISTRARlookup() should have a flag to force lookup on all branches (and not only on RURI)
xxxDIALOGNew events for dialog matched, terminated, etc
xxxDIALOGcontrol profiles/variables DB storage - specify whether we want to ever dump the profies/variables in the DB or only on shutdown. Rethink the current design to see if is the best.
xxxUSRLOCdistributed storage via a NoSQL DB
xxxDIALOGdistributed storage via a NoSQL DB
xxxDIALOGbe able to end all dialogs belonging to a certain profile (MI only)
xxxUSRLOCwhen db is updated based on timer, combine multiple deletes in a single query
xxxSIPCAPTURETCP support
xxxRTPProxyadd ICE support for rtpproxy
xxxEvent Interfaceadd ZeroMQ support for Event Interface
xxxcoresend function (including from TM) should return a dedicated ret code to indicate network errors (failure in sending)
xxxcorefix insert_new_lump()/append_new_lump() logic throughout lumps_len()
xxxcoreonce fixed, replace all single anchor_lump()+insert_new_lump_{before,after}() calls with the simpler insert_new_lump() call
xxxnewIntegrate OpenSIPS with libpurple library for IM and Presence
xxTLS coreadd an internal API for TLS management to allow registration of certificates ; a new module to allow TLS certificates provisioning via DB (per domain, per IP, etc)
xxDROUTINGAllow the option to call do_routing with a particular number, but to propagate downstream a different number ( useful for number portability scenarios )
xxUSRLOCuse a single Primary Key (non SIP related) for DB ops
xxTMallow dynamic number of branches per transaction (on demand)
xxStatistics Interfacereplace the BIG LOCK (if other arch than i386) with multiple shared locks (to protect the values)
xxnewnew cachedb_virtual modules, similar to db_virtual, but for NoSQL databases
xxdb_virtualOpensips should be able to start even if db_virtual was not able to connect to all databases. So long as it can connect to at least 1 it should still work
xxB2BSupport for attended transfers on B2BUA
xxevent_datagramInstead of pushing events in text/plan format, to have also the options to pack the event in a json format -> easier to parse by the receiver
xxnewsupport for RFC5626 - Managing Client-Initiated Connections in SIP
xnewnew module mi_stream to provide MI interaction via connection oriented links (TCP or fifo)
xnewRFC6140 Registration for Multiple Phone Numbers
xAVPOPSRegexp based filter for avp_db_load - what AVPs to be loaded
xcoreBe able to specify multiple keys with the "cache_fetch" MI command
xcoreHandle OpenSIPS variable expansion within the format string of assert()
xscriptConsider implementing the "continue" and "break" keywords inside while and for-each
xcachedb coreAllow results to be written in any PV (not just $avp)
xscriptInteger operators: make "+=" and "-=" work!
March 17, 2015, at 07:20 PM by 89.120.101.121 -
Changed lines 171-172 from:
  • Full rework (459dffb)
to:
  • Rework of how the Json string is build in order to properly accommodate arrays - in many MI answers, OpenSIPS returns arrays - and these arrays need to be properly translated from internal MI structure to the json format.
Changed lines 174-175 from:
  • Added support for external body (2e4b2d5)
to:
  • Added support for external body - the MESSAGE has no actual body, but the Content-Type hdr refers to an external body by an HTTP link.
Changed line 180 from:
  • New end_sub_on_timeout modparam (7aa96b2)
to:
  • New end_sub_on_timeout module parameter - If a presence subscription should be automatically terminated (destroyed) when receiving a SIP timeout (408) for a sent NOTIFY requests.
March 17, 2015, at 07:08 PM by 89.120.101.121 -
Changed lines 102-103 from:
  • avp_db_query() may now be used asynchronously. A usage example can be found in the module documentation.
to:
  • avp_db_query() may now be used asynchronously (with MySQL backend). A usage example can be found in the module documentation.
Changed lines 114-115 from:
  • The db_mysql module is now capable of doing asynchronous raw queries.
to:
  • The db_mysql module is now capable of doing asynchronous raw queries. It implements its own pool of connections (per process), so multiple queries can be done in parallel from the same process.
Changed lines 158-163 from:
  • rework of how the LB session is controlled (start, resume, stop) from script
  • new lb_reset() function (301e6d3)
  • load_balance() function enhancements (a7549e0)
  • load_balance() - two new algorithms (5986074)
  • lb_count_call() - new parameter to revert a previous lb_count_call() action (cd0ac14)
  • LOTS of changes -> TODO (f43a405)
to:
  • Rework of how the LB session is controlled (start, resume, stop) from script:
    • new lb_start(), strictly used to start LB session. if sessions already started, old session will be lost and re-started again.
    • new lb_next(), continues an existing LB session (working as load_balance() from failure route - to do failover)
    • lb_start_and_next() - is simply a shorthand for 'lb_is_started()?lb_next():lb_start()' to simplify scripting. This function logically almost the same as old load_balance() function.
    • new lb_reset() to stop a current LB session
    • new lb_is_started() to check if there is any ongoing LB session
  • the LB process (when started) takes one more flag to enable usage of destination with negative availability (exceeded capacity); do not ignore resources with negative availability, and thus able to select for load balancing destinations with exceeded capacity. This might be needed in scenarios where we want to limit generic calls volume and always pass important/high-priority calls.
  • lb_count_call() - can take negative values, to revert a previous lb_count_call() action
March 17, 2015, at 06:50 PM by 89.120.101.121 -
Changed lines 81-82 from:

A new module which performs both SIP message compression and SIP header compaction. Read more here ...

to:

A new module which performs both SIP message compression and SIP header compaction. The compression module gives you the means to reduce the size of the message, by using the following features:

  • message body and the header compression
  • unnecessary headers removal
  • header name reduction to RFC compact form (such as 'v' for 'Via'); we support a limited set of compact headers from RFC 3261 and RFC 4028 (complete list at [2])
  • unnecessary attribute lines removal from the sdp body which represent default values

A comprehensive tutorial is available beside the module documentation.

Changed lines 149-152 from:

EXEC module (TODO)

  • Asynchronous exec() - the exec() call may now also be used asynchronously, in an async() block (e7a090f)
  • New generic exec() function - More information here ...
to:

EXEC module

  • Asynchronous exec() - the exec() function may now also be used in the asynchronous mode, via the async() statement.
  • New generic exec() function - All "exec"-like functions merged into a single generic function - more information here
Changed line 156 from:

LOAD_BALANCER module (TODO)

to:

LOAD_BALANCER module

Added line 158:
  • rework of how the LB session is controlled (start, resume, stop) from script
March 17, 2015, at 06:27 PM by 89.120.101.121 -
Changed lines 81-82 from:
  • A new module which performs both SIP message compression and SIP header compaction. Read more here ...
to:

A new module which performs both SIP message compression and SIP header compaction. Read more here ...

Changed lines 84-85 from:
  • The emergency module provides emergency call treatment, following the IETF specs (RFC 6881, RFC6442) and the i2 specification of the American entity NENA(National Emergency Number Association). Module documentation is available here. Also, a comprehensive tutorial is available for describing the usage cases and how to use this module.
to:

The emergency module provides emergency call treatment, following the IETF specs (RFC 6881, RFC6442) and the i2 specification of the American entity NENA(National Emergency Number Association). Module documentation is available here. Also, a comprehensive tutorial is available for describing the usage cases and how to use this module.

Changed line 87 from:
  • A new module that helps you prevent fraud by detecting (in a per user fashion) fraudulent calls based on dialing patterns (using patterns on total number of calls, on average duration, number of parallel calls, maximum cps value and more).\\
to:

A new module that helps you prevent fraud by detecting (in a per user fashion) fraudulent calls based on dialing patterns (using patterns on total number of calls, on average duration, number of parallel calls, maximum cps value and more).\\

Changed line 91 from:
  • A new module that enables media streams to be proxied via RTPENGINE
to:

A new module that enables media streams to be proxied via RTPENGINE

March 17, 2015, at 06:25 PM by 89.120.101.121 -
Changed lines 78-82 from:

Module to provide the SCTP transport protocol for SIP. You need to load this module if you want to define SIP listeners over SCTP. See the module documentation for parameters.

NEW CALL_EMERGENCY module (TODO)

  • (d8cfac6)
to:

Module to provide the SCTP transport protocol for SIP. You need to load this module if you want to define SIP listeners over SCTP. See the module documentation for parameters.

Changed lines 84-85 from:
  • The emergency module provides emergency call treatment, following the architecture i2 specification of the american entity NENA(National Emergency Number Association). Read more here.
to:
  • The emergency module provides emergency call treatment, following the IETF specs (RFC 6881, RFC6442) and the i2 specification of the American entity NENA(National Emergency Number Association). Module documentation is available here. Also, a comprehensive tutorial is available for describing the usage cases and how to use this module.
Changed lines 87-88 from:
  • A new module that helps you prevent fraud by detecting fraudulent calls based on dialing patterns. Read more here.
to:
  • A new module that helps you prevent fraud by detecting (in a per user fashion) fraudulent calls based on dialing patterns (using patterns on total number of calls, on average duration, number of parallel calls, maximum cps value and more).
    See the complete usage tutorial and the module documentation for parameters and functions provided by this module.
March 17, 2015, at 06:19 PM by 89.120.101.121 -
Changed lines 74-77 from:

Module to provide the TLS transport protocol for SIP (server side). You need to load this module if you want to define SIP listeners over WS transport.

NEW PROTO_SCTP module (TODO)

to:

Module to provide the TLS transport protocol for SIP. You need to load this module if you want to define SIP listeners over TLS. See the TLS usage tutorial and the module documentation for parameters.

NEW PROTO_SCTP module

Module to provide the SCTP transport protocol for SIP. You need to load this module if you want to define SIP listeners over SCTP. See the module documentation for parameters.

March 17, 2015, at 06:17 PM by 89.120.101.121 -
Changed lines 70-72 from:

NEW PROTO_TLS module (TODO)

to:

Module to provide the websocket transport protocol for SIP (server side). You need to load this module if you want to define SIP listeners over WS transport. See the websocket usage tutorial and the module documentation for parameters.

NEW PROTO_TLS module

Module to provide the TLS transport protocol for SIP (server side). You need to load this module if you want to define SIP listeners over WS transport.

March 17, 2015, at 06:08 PM by 89.120.101.121 -
Changed lines 15-16 from:

Allows new protocols to be added in a much easier way. OpenSIPS now comes with two built-in transport modules, TCP and UDP, and three optional modules: WebSocket, TLS and SCTP. The binary no longer needs to be recompiled every time you choose to support a new protocol.

to:

Allows new protocols to be added in a much easier way. OpenSIPS 2.1 now comes with two built-in transport modules, TCP and UDP, and three optional protocol-modules: WebSocket, TLS and SCTP. The binary no longer needs to be recompiled every time you choose to support a new protocol.
In order to use one of those protocols (in a SIP listener), you need to load the corresponding module (as any other OpenSIPS module).

Changed lines 20-22 from:

DB core and API (for module developers)''': Primitives for managing asynchronous DB connection pools. To be used by SQL drivers when implementing the async DB API.

to:

OpenSIPS 2.1 had the ability to perform, from script level, various operations in the asynchronous mode. Now you can run DB queries, REST queries or external scripts without the blocking penalty !

The OpenSIPS config file allows you to use certain functions in async way (via the dedicated "async" statement). The suspending and resuming is done at script level. A detailed description of how the async support works in 2.1 is available here: http://www.opensips.org/Documentation/Script-Async-2-1 .

The async scripting support is just the tip of the iceberg (when comes to the work which has been done). To make this possible, radical changes were implemented in OpenSIPS 2.1 (most of them imported from OpenSIPS experimental branch):

  • per-process I/O reactors
  • timer jobs dispatched across all SIP workers (versus dedicated timer procs)
  • updatable transactions in TM (to be able to use the transactions as contexts for the async jump)
  • transaction based async support in TM module
  • processing context (to make it easier to suspend and resume the script execution)

The first modules providing async functions are:

  • avpops for DB mysql queries
  • exec for script execution
  • rest_client for remote REST queries
Changed lines 68-70 from:

NEW PROTO_WS module (TODO)

to:

NEW PROTO_WS module

March 17, 2015, at 05:30 PM by 89.120.101.121 -
Added lines 14-21:

SIP transport protocols rework

Allows new protocols to be added in a much easier way. OpenSIPS now comes with two built-in transport modules, TCP and UDP, and three optional modules: WebSocket, TLS and SCTP. The binary no longer needs to be recompiled every time you choose to support a new protocol.

Asynchronous I/O operations

DB core and API (for module developers)''': Primitives for managing asynchronous DB connection pools. To be used by SQL drivers when implementing the async DB API.

Deleted lines 22-26:
  • Internal networking layer rework - allows new protocols to be added in a much easier way. OpenSIPS now comes with two built-in transport modules, TCP and UDP, and three optional modules: WebSocket, TLS and SCTP. The binary no longer needs to be recompiled every time you choose to support a new protocol.
  • Asynchronous DB core and API (for module developers): Primitives for managing asynchronous DB connection pools. To be used by SQL drivers when implementing the async DB API.
March 17, 2015, at 02:32 PM by liviu -
Changed lines 109-110 from:
to:
  • New modparam: persistent_state - prevent OpenSIPS from making any runtime UPDATE queries on the dispatcher table
Added line 116:
  • New modparam: persistent_state - prevent OpenSIPS from making any runtime UPDATE queries on the dr_gateways and dr_carriers tables
March 16, 2015, at 12:29 PM by liviu -
Changed line 14 from:

OpenSIPS Core

to:

Core

March 16, 2015, at 12:28 PM by liviu -
Changed lines 14-15 from:

Core

to:

OpenSIPS Core

Changed line 34 from:

Script

to:

Config Script

March 16, 2015, at 12:27 PM by liviu -
Changed line 16 from:
  • Internal networking layer rework - allows new protocols to be added in a much easier way. OpenSIPS now comes with two built-in transport modules, TCP and UDP, and three optional shared libraries: WebSocket, TLS and SCTP. The binary no longer needs to be recompiled every time you choose to support a new protocol.
to:
  • Internal networking layer rework - allows new protocols to be added in a much easier way. OpenSIPS now comes with two built-in transport modules, TCP and UDP, and three optional modules: WebSocket, TLS and SCTP. The binary no longer needs to be recompiled every time you choose to support a new protocol.
March 16, 2015, at 12:24 PM by liviu -
Changed line 40 from:
  • New assert(statement, message) function - If statement does not hold, OpenSIPS can just print the message or even abort (if abort_on_assert is enabled).
to:
  • New assert(statement, message) function - If statement does not hold, OpenSIPS can just print the message or even abort (if abort_on_assert is enabled). More information here ...
March 16, 2015, at 12:23 PM by liviu -
Changed line 36 from:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (e.g. MySQL queries, exec scripts, HTTP queries). Halts current script execution and runs a resume route once the async operation is complete. ore information here ...
to:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (e.g. MySQL queries, exec scripts, HTTP queries). Halts current script execution and runs a resume route once the async operation is complete. More information in the OpenSIPS 2.1 async tutorial ...
March 16, 2015, at 12:22 PM by liviu -
Changed line 36 from:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (e.g. MySQL queries, exec scripts, HTTP queries). Halts current script execution and runs a resume route once the async operation is complete. ore information here ...
to:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (e.g. MySQL queries, exec scripts, HTTP queries). Halts current script execution and runs a resume route once the async operation is complete. ore information here ...
March 16, 2015, at 12:22 PM by liviu -
Added lines 35-36:
  • New async() script statement: Dramatically improves the scalability of OpenSIPS config scripts which must perform blocking I/O (e.g. MySQL queries, exec scripts, HTTP queries). Halts current script execution and runs a resume route once the async operation is complete. ore information here ...
March 16, 2015, at 12:11 PM by liviu -
Changed line 60 from:
  • New OpenSIPS module which performs both SIP message compression and SIP header compaction. Read more here ...
to:
  • A new module which performs both SIP message compression and SIP header compaction. Read more here ...
March 16, 2015, at 12:08 PM by liviu -
Changed line 60 from:
  • Added a new compression module which performs both message compression and compaction. Read more here ...
to:
  • New OpenSIPS module which performs both SIP message compression and SIP header compaction. Read more here ...
March 16, 2015, at 12:07 PM by liviu -
Changed line 60 from:
  • Added a new compression module which does message compression and compaction. Read more here.
to:
  • Added a new compression module which performs both message compression and compaction. Read more here ...
March 16, 2015, at 12:01 PM by liviu -
Changed line 40 from:
  • New $rT pseudo variable - Holds the current route type as a string. Useful for determining the original route type when inside another route in script - Allows for more generic and reusable routes. More information here ...
to:
  • New $rT pseudo variable - Holds the current route type as a string. Useful for determining the original route type when inside another route in script - Allows for more generic and reusable routes. More information here ...
March 16, 2015, at 12:00 PM by liviu -
Changed line 40 from:
  • New $rT pseudo variable - Holds the current route type as a string. Useful for determining the original route type when inside another route in script - Allows for more generic and reusable routes. More information here ...
to:
  • New $rT pseudo variable - Holds the current route type as a string. Useful for determining the original route type when inside another route in script - Allows for more generic and reusable routes. More information here ...
March 13, 2015, at 09:11 PM by liviu -
Changed line 26 from:
  • New TCP parameter: tcp_crlf_drop - set to 1 in order to close TCP connections in case of "\r\n" pinging messages
to:
  • New TCP parameter: tcp_crlf_drop - set to 1 in order to drop "\r\n" pinging messages
March 13, 2015, at 09:10 PM by liviu -
Changed line 26 from:
  • New core parameter: tcp_crlf_drop - set to 1 in order to close TCP connections in case of "\r\n" pinging messages (487e7b5)
to:
  • New TCP parameter: tcp_crlf_drop - set to 1 in order to close TCP connections in case of "\r\n" pinging messages
March 13, 2015, at 09:06 PM by liviu -
Changed line 8 from:

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

to:

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

March 13, 2015, at 09:06 PM by liviu -
Changed line 8 from:

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

to:

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

March 13, 2015, at 09:05 PM by liviu -
Changed line 8 from:

To be done on release date.

to:

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

March 13, 2015, at 08:56 PM by liviu -
Changed line 32 from:
  • New output when dumping the free memory hash table with HP_MALLOC
to:
  • Memory profiling with HP_MALLOC - send SIGUSR1 to OpenSIPS processes in order to print a detailed status of optimized shared memory buckets and fragment distribution
March 13, 2015, at 08:50 PM by liviu -
Changed lines 28-30 from:
  • New core parameter: db_max_async_connections - maximum number of connections to a single DB backend from a single worker (3eacd98)
  • New MI command: list_statistics - prints a list of all available statistics in the current configuration of OpenSIPS (dd03176)
to:
  • New core parameter: db_max_async_connections - maximum number of connections to a single DB backend from a single worker
  • New MI command: list_statistics - prints a list of all available statistics in the current configuration of OpenSIPS
March 13, 2015, at 08:07 PM by liviu -
Deleted lines 81-84:

CALL_CENTER module

  • cc_calls table added (2f6eb09 TODO)
  • last_call_end column (4b366c5 TODO)
March 13, 2015, at 08:03 PM by liviu -
Changed lines 128-129 from:

LDAP module (TODO)

  • StartTLS support introduced (0b61cba)
to:

LDAP module

  • StartTLS support introduced. For example configurations, please refer to the new parameter documentation
March 13, 2015, at 07:34 PM by liviu -
Changed lines 46-47 from:
  • sync/async support for event_route (e3d37f4)
to:
  • sync/async support for event_route (e3d37f4 TODO)
Changed lines 72-73 from:
  • (d84649e)
to:
  • (d84649e TODO)
Changed lines 78-79 from:
  • Added support for DATE fields when doing raw queries. Date fields are returned as UNIX timestamps (4782d0a)
to:
  • Added support for DATE fields when doing raw queries. Date fields are returned as UNIX timestamps at script level.
Changed lines 84-86 from:
  • cc_calls table added (2f6eb09)
  • last_call_end column (4b366c5)
to:
  • cc_calls table added (2f6eb09 TODO)
  • last_call_end column (4b366c5 TODO)
Changed lines 94-95 from:
  • Slight performance improvement for all SELECT queries. (683dfaa)
to:
  • Slight performance improvement for all SELECT queries
Changed lines 99-100 from:
  • Added the E_DLG_STATE_CHANGED event (10083ed)
to:
  • Added the E_DLG_STATE_CHANGED event.
Changed lines 104-105 from:
  • dp_translate(): the "id" parameter may now also be given as a plain int (2923d41)
to:
  • dp_translate(): the "id" parameter may now also be given as a plain int
Changed lines 108-110 from:
  • ds_reload MI command updated to support partition-only reloading (7a58426)
  • ds_is_in_list(): ip and port must no longer be strictly given as pvars (e7bccda)
  • Added priority column (6dc7261)
to:
  • ds_reload MI command updated to support partition-only reloading
  • ds_is_in_list(): ip and port must no longer be strictly given as pvars
  • Added the destination priority column
March 13, 2015, at 07:13 PM by liviu -
Changed lines 44-45 from:
  • New uri transformation: uri.schema - Extract the given URI's schema. More information here ...
to:
  • New uri transformation: uri.schema - Extract the given URI's schema. More information here
Changed line 48 from:
  • Support for multi-part body - $cT (Content-Type) and $rb (Request Body) are now indexed - e.g. $(rb[1]) (1986385)
to:
  • Support for multi-part bodies - $cT (Content-Type) and $rb (Request Body) are now indexed - e.g. $(rb[1])
March 13, 2015, at 07:10 PM by liviu -
Changed line 44 from:
  • New uri transformation: uri.schema - Extract the given URI's schema (TODO) transformations manual for usage examples
to:
  • New uri transformation: uri.schema - Extract the given URI's schema. More information here ...
March 13, 2015, at 07:04 PM by liviu -
Changed line 38 from:
  • New assert(statement, message) function - If statement does not hold, OpenSIPS can just print the message or even abort (if abort_on_assert is set to true).
to:
  • New assert(statement, message) function - If statement does not hold, OpenSIPS can just print the message or even abort (if abort_on_assert is enabled).
March 13, 2015, at 07:03 PM by liviu -
Changed line 38 from:
  • New assert(statement, message) function - If statement does not hold, OpenSIPS can just print the message or even abort (if abort_on_assert is set to true).
to:
  • New assert(statement, message) function - If statement does not hold, OpenSIPS can just print the message or even abort (if abort_on_assert is set to true).
March 13, 2015, at 12:29 PM by liviu -
Changed line 36 from:
  • loadmodule statement ordering: eliminated! Modules can now be loaded in any order within the config script. Also added an easy-to-use module dependency specification logic for module developers! More information here ...
to:
  • loadmodule statement ordering: eliminated! Modules can now be loaded in any order within the config script. Also added an easy-to-use module dependency specification logic for module developers! More information here ...
March 13, 2015, at 12:29 PM by liviu -
Changed line 36 from:
  • loadmodule statement ordering: eliminated! Modules can now be loaded in any order within the config script. Also added an easy-to-use module dependency specification logic for module developers! More information here ...
to:
  • loadmodule statement ordering: eliminated! Modules can now be loaded in any order within the config script. Also added an easy-to-use module dependency specification logic for module developers! More information here ...
March 13, 2015, at 12:29 PM by liviu -
Changed line 30 from:
  • New MI command: list_statistics - (dd03176)
to:
  • New MI command: list_statistics - prints a list of all available statistics in the current configuration of OpenSIPS (dd03176)
March 13, 2015, at 12:26 PM by liviu -
Changed line 22 from:
  • New shm_check MI function - To be used when running with memory debugging ( DBG_QM_MALLOC memory allocator ). Does a complete scan of the shared memory pool and aborts OpenSIPS on any encountered sign of memory corruption.
to:
  • New shm_check MI function - To be used when running with memory debugging (DBG_QM_MALLOC memory allocator). Does a complete scan of the shared memory pool and aborts OpenSIPS on any encountered sign of memory corruption.
March 13, 2015, at 12:20 PM by liviu -
Deleted lines 19-20:
  • loadmodule statement ordering: eliminated! Modules can now be loaded in any order within the config script. Also added an easy-to-use module dependency specification logic for module developers! More information here ...
Added lines 35-36:
  • loadmodule statement ordering: eliminated! Modules can now be loaded in any order within the config script. Also added an easy-to-use module dependency specification logic for module developers! More information here ...
March 13, 2015, at 12:18 PM by liviu -
Changed line 18 from:
  • Asynchronous DB core and API: Primitives for managing async DB connection pools. To be used by SQL drivers when implementing the async DB API.
to:
  • Asynchronous DB core and API (for module developers): Primitives for managing asynchronous DB connection pools. To be used by SQL drivers when implementing the async DB API.
March 13, 2015, at 12:17 PM by liviu -
Changed line 16 from:
  • New static TCP & UDP modules (TODO)
to:
  • Internal networking layer rework - allows new protocols to be added in a much easier way. OpenSIPS now comes with two built-in transport modules, TCP and UDP, and three optional shared libraries: WebSocket, TLS and SCTP. The binary no longer needs to be recompiled every time you choose to support a new protocol.
March 11, 2015, at 07:03 PM by liviu -
Added lines 50-51:

NEW PROTO_WS module (TODO)

Deleted lines 54-55:

NEW PROTO_WS module (TODO)

March 11, 2015, at 07:03 PM by liviu -
Changed lines 16-17 from:
  • WebSocket support (TODO)
to:
  • New static TCP & UDP modules (TODO)
Added lines 49-54:

NEW PROTO_TLS module (TODO)

NEW PROTO_SCTP module (TODO)

NEW PROTO_WS module (TODO)

March 11, 2015, at 07:01 PM by liviu -
March 11, 2015, at 07:00 PM by liviu -
Added lines 15-16:
  • WebSocket support (TODO)
March 11, 2015, at 06:59 PM by liviu -
Added lines 31-32:
  • New output when dumping the free memory hash table with HP_MALLOC
March 11, 2015, at 06:56 PM by liviu -
Added line 153:
  • when using rest_post(), you may omit the "send_content_type" parameter. It will default to "application/x-www-form-urlencoded"
March 11, 2015, at 06:52 PM by liviu -
Added line 35:
Added line 37:
Added lines 39-41:
  • New uri transformation: uri.schema - Extract the given URI's schema (TODO) transformations manual for usage examples
Added line 43:
March 11, 2015, at 06:35 PM by liviu -
Added lines 54-56:

NEW TOPOLOGY_HIDING module

  • (d84649e)
March 11, 2015, at 06:33 PM by liviu -
Added lines 39-41:

NEW CALL_EMERGENCY module (TODO)

  • (d8cfac6)
March 11, 2015, at 06:31 PM by liviu -
Added lines 54-56:

CACHEDB_MONGODB module

  • Added support for DATE fields when doing raw queries. Date fields are returned as UNIX timestamps (4782d0a)
March 11, 2015, at 06:21 PM by liviu -
Added lines 27-28:
  • New core parameter: db_max_async_connections - maximum number of connections to a single DB backend from a single worker (3eacd98)
March 11, 2015, at 06:10 PM by liviu -
Added line 98:
  • Asynchronous exec() - the exec() call may now also be used asynchronously, in an async() block (e7a090f)
March 11, 2015, at 06:08 PM by liviu -
Added lines 25-26:
  • New core parameter: tcp_crlf_drop - set to 1 in order to close TCP connections in case of "\r\n" pinging messages (487e7b5)
March 11, 2015, at 05:56 PM by liviu -
Added line 34:
  • Support for multi-part body - $cT (Content-Type) and $rb (Request Body) are now indexed - e.g. $(rb[1]) (1986385)
March 11, 2015, at 05:52 PM by liviu -
Changed line 100 from:

LOAD_BALANCER module

to:

LOAD_BALANCER module (TODO)

March 11, 2015, at 05:52 PM by liviu -
Added line 106:
  • LOTS of changes -> TODO (f43a405)
March 11, 2015, at 05:44 PM by liviu -
Added lines 115-117:

NATHELPER module

  • Ambiguous "oldmediaip" SDP attributes replaced with "oldcip" and "oldoip" (a5900b5)
March 11, 2015, at 05:41 PM by liviu -
Added lines 115-117:

PRESENCE module

  • New end_sub_on_timeout modparam (7aa96b2)
March 11, 2015, at 05:29 PM by liviu -
Changed line 94 from:

EXEC module (todo)

to:

EXEC module (TODO)

Added lines 96-98:

LDAP module (TODO)

  • StartTLS support introduced (0b61cba)
March 11, 2015, at 05:26 PM by liviu -
Added lines 93-95:

EXEC module (todo)

  • New generic exec() function - More information here ...
March 11, 2015, at 05:06 PM by liviu -
Added lines 62-64:

DB_UNIXODBC module

  • Slight performance improvement for all SELECT queries. (683dfaa)
March 11, 2015, at 04:45 PM by liviu -
Added line 95:
  • load_balance() - two new algorithms (5986074)
March 11, 2015, at 04:43 PM by liviu -
Changed line 95 from:
  • lb_count_call() - new parameter to revert the previous action (cd0ac14)
to:
  • lb_count_call() - new parameter to revert a previous lb_count_call() action (cd0ac14)
March 11, 2015, at 04:43 PM by liviu -
Added line 95:
  • lb_count_call() - new parameter to revert the previous action (cd0ac14)
March 11, 2015, at 04:41 PM by liviu -
Added line 93:
  • new lb_reset() function (301e6d3)
March 11, 2015, at 04:40 PM by liviu -
Added line 93:
  • load_balance() function enhancements (a7549e0)
March 11, 2015, at 04:40 PM by liviu -
Changed lines 83-84 from:
  • Added a new event to be triggered when the state of a gateway is changed ( either from MI or via probing triggered from script ). More information here...
to:
  • Added a new event to be triggered when the state of a gateway is changed (either from MI or via probing triggered from script). More information here...
Changed lines 89-90 from:
  • Added async event handling - Allows for running the events in an asynchronous mode ( in a dedicated process ). More information here ...
to:
  • Added async event handling - Allows for running the events in an asynchronous mode (in a dedicated process). More information here ...
Changed lines 92-93 from:
  • Added a new event to be triggered when the state of a gateway is changed ( either from MI or via probing triggered from script ). More information here ...
to:
  • Added a new event to be triggered when the state of a gateway is changed (either from MI or via probing triggered from script). More information here ...
Changed line 95 from:
  • Reworked the FIFO handling - added support for detecting if the FIFO file gets deleted ( for re-creating it ), and also added SIGHUP signal handling for re-creating and re-opening of the FIFO file.
to:
  • Reworked the FIFO handling - added support for detecting if the FIFO file gets deleted (for re-creating it), and also added SIGHUP signal handling for re-creating and re-opening of the FIFO file.
March 11, 2015, at 04:39 PM by liviu -
Added line 33:
  • sync/async support for event_route (e3d37f4)
March 11, 2015, at 04:32 PM by liviu -
Added line 65:
  • Added the E_DLG_STATE_CHANGED event (10083ed)
March 11, 2015, at 04:31 PM by liviu -
Changed line 32 from:
  • New string transformations: (s.fill.left / s.fill.right) - Fill a string with a char/string until a given final length is reached. Refer to the transformations manual for usage examples
to:
  • New string transformations: s.fill.left, s.fill.right - Fill a string with a char/string until a given final length is reached. Refer to the transformations manual for usage examples
March 11, 2015, at 04:31 PM by liviu -
Changed line 32 from:
  • New string transformation (s.fill) - Fills a string with a char/string until a given final length is reached. Refer to the transformations manual for usage examples
to:
  • New string transformations: (s.fill.left / s.fill.right) - Fill a string with a char/string until a given final length is reached. Refer to the transformations manual for usage examples
March 11, 2015, at 04:28 PM by liviu -
Added line 74:
  • ds_is_in_list(): ip and port must no longer be strictly given as pvars (e7bccda)
March 11, 2015, at 04:23 PM by liviu -
Changed line 64 from:
  • Added the ability to propagate various Contact URI parameters when doing topology hiding - helpful for preserving some end-to-end functionality relying on URI params. Read more here ...
to:
  • Added the ability to propagate various Contact Header / URI parameters when doing topology hiding - helpful for preserving some end-to-end functionality relying on URI params. Read more here ...
March 11, 2015, at 04:07 PM by liviu -
Changed line 114 from:
  • When using the uac_auth() for having OpenSIPS do SIP authentication, the CSEQ number will be increased for subsequent authentication requests - thus fixing various downstream issues ( eg. Asterisk treating the AUTH request as a retransmission due to the same CSEQ number ).
to:
  • When using the uac_auth() for having OpenSIPS do SIP authentication, the CSEQ number will be increased for subsequent authentication requests - thus fixing various downstream issues (e.g. Asterisk treating the AUTH request as a retransmission due to the same CSEQ number).
March 11, 2015, at 02:21 PM by liviu -
Added lines 25-26:
  • New MI command: list_statistics - (dd03176)
March 11, 2015, at 01:10 PM by liviu -
Added line 71:
  • ds_reload MI command updated to support partition-only reloading (7a58426)
March 11, 2015, at 12:54 PM by liviu -
Added line 52:
  • last_call_end column (4b366c5)
March 11, 2015, at 12:53 PM by liviu -
Added lines 50-52:

CALL_CENTER module

  • cc_calls table added (2f6eb09)
Deleted lines 55-57:

EVENT_RABBITMQ module

  • The rabbitmq module can now send messages to different exchanges . You can simply specify the exchange you want to use in the socket url. More information here ...
Added lines 77-79:

EVENT_RABBITMQ module

  • The rabbitmq module can now send messages to different exchanges . You can simply specify the exchange you want to use in the socket url. More information here ...
March 11, 2015, at 12:51 PM by liviu -
Added lines 86-88:

MI_JSON module

  • Full rework (459dffb)
March 11, 2015, at 12:50 PM by liviu -
Added line 70:
  • Added priority column (6dc7261)
March 11, 2015, at 12:49 PM by liviu -
Added line 66:
  • dp_translate(): the "id" parameter may now also be given as a plain int (2923d41)
March 11, 2015, at 12:47 PM by liviu -
Changed lines 83-86 from:
  • Reworked the FIFO handling - added support for detecting if the FIFO file gets deleted ( for re-creating it ), and also added SIGHUP signal handling for re-creating and re-opening of the FIFO file.
to:
  • Reworked the FIFO handling - added support for detecting if the FIFO file gets deleted ( for re-creating it ), and also added SIGHUP signal handling for re-creating and re-opening of the FIFO file.

MSILO module

  • Added support for external body (2e4b2d5)
March 11, 2015, at 12:44 PM by liviu -
Added lines 94-96:

RTPPROXY module

  • rtpproxy_enable MI command : optional set_id param added (28a974b)
March 10, 2015, at 01:53 PM by liviu -
Changed line 22 from:
  • New shm_check MI function - To be used when running with memory debugging ( DBG_QM_MALLOC memory allocator ). Does a complete scan of the shared memory pool and aborts OpenSIPS on any encountered memory error.
to:
  • New shm_check MI function - To be used when running with memory debugging ( DBG_QM_MALLOC memory allocator ). Does a complete scan of the shared memory pool and aborts OpenSIPS on any encountered sign of memory corruption.
March 10, 2015, at 01:52 PM by liviu -
Changed line 24 from:
  • Support for RFC 5031 urn:service URIs -
to:
  • Support for RFC 5031 urn:service URIs
March 10, 2015, at 01:52 PM by liviu -
Added lines 23-24:
  • Support for RFC 5031 urn:service URIs -
March 06, 2015, at 02:10 PM by liviu -
Changed line 18 from:
  • loadmodule statement ordering: eliminated! Modules can now be loaded in any order within the config script. Also added an easy module dependency specification logic for module developers! More information here ...
to:
  • loadmodule statement ordering: eliminated! Modules can now be loaded in any order within the config script. Also added an easy-to-use module dependency specification logic for module developers! More information here ...
March 06, 2015, at 01:33 PM by liviu -
Changed line 91 from:
  • rest_get() may now be used asynchronously. A usage example can be found in the module documentation.
to:
  • rest_get() and rest_post() may now be used asynchronously. A usage example can be found in the module documentation.
February 26, 2015, at 11:05 AM by razvancrainea -
Changed line 34 from:
  • The emergency module provides emergency call treatment, following the architecture i2 specification of the american entity NENA. (National Emergency Number Association). Read more here.
to:
  • The emergency module provides emergency call treatment, following the architecture i2 specification of the american entity NENA(National Emergency Number Association). Read more here.
February 26, 2015, at 11:05 AM by razvancrainea -
Added lines 32-37:

NEW EMERGENCY module

  • The emergency module provides emergency call treatment, following the architecture i2 specification of the american entity NENA. (National Emergency Number Association). Read more here.

NEW FRAUD_DETECTION module

  • A new module that helps you prevent fraud by detecting fraudulent calls based on dialing patterns. Read more here.
February 25, 2015, at 01:44 PM by razvancrainea -
Added lines 30-32:

NEW COMPRESSION module

  • Added a new compression module which does message compression and compaction. Read more here.
Deleted lines 40-42:

NEW COMPRESSION module

  • Added a new compression module which does message compression and compaction. Read more here.
February 24, 2015, at 06:46 PM by razvancrainea -
Added lines 39-41:

NEW COMPRESSION module

  • Added a new compression module which does message compression and compaction. Read more here.
Deleted lines 91-94:

COMPRESSION module

  • Succesfully added compression module which does message compression and compaction. Read more

http://lists.opensips.org/pipermail/devel/2015-February/016340.html

February 19, 2015, at 05:24 PM by ionutionita92 -
Changed line 90 from:

USRLOC module

to:

COMPRESSION module

February 19, 2015, at 05:24 PM by ionutionita92 -
Added lines 89-93:

USRLOC module

  • Succesfully added compression module which does message compression and compaction. Read more

http://lists.opensips.org/pipermail/devel/2015-February/016340.html

February 02, 2015, at 01:32 PM by liviu -
Changed line 18 from:
  • Loadmodule statement ordering: eliminated! Modules can now be loaded in any order within the config script. Also added an easy module dependency specification logic for module developers! More information here ...
to:
  • loadmodule statement ordering: eliminated! Modules can now be loaded in any order within the config script. Also added an easy module dependency specification logic for module developers! More information here ...
January 23, 2015, at 06:34 PM by liviu -
Added lines 80-82:

REST_CLIENT module

  • rest_get() may now be used asynchronously. A usage example can be found in the module documentation.
January 23, 2015, at 06:32 PM by liviu -
Changed line 16 from:
  • Async DB core and API: Primitives for managing async DB connection pools. To be used by SQL drivers when implementing the async DB API.
to:
  • Asynchronous DB core and API: Primitives for managing async DB connection pools. To be used by SQL drivers when implementing the async DB API.
January 23, 2015, at 06:30 PM by liviu -
Changed line 34 from:
  • avp_db_query() may now be used asynchronously. For usage examples, please refer to the module documentation.
to:
  • avp_db_query() may now be used asynchronously. A usage example can be found in the module documentation.
January 23, 2015, at 06:29 PM by liviu -
Added lines 18-19:
  • Loadmodule statement ordering: eliminated! Modules can now be loaded in any order within the config script. Also added an easy module dependency specification logic for module developers! More information here ...
Deleted lines 21-22:
  • Loadmodule statement ordering: eliminated! Modules can now be loaded in any order within the config script. Also added an easy module dependency specification logic for module developers! More information here ...
Changed lines 34-35 from:
  • avp_db_query() may now be used asynchronously. For usage examples, please refer to the module documentation.
to:
  • avp_db_query() may now be used asynchronously. For usage examples, please refer to the module documentation.
Changed line 46 from:
  • The db_mysql module is now capable of doing asynchronous raw queries.
to:
  • The db_mysql module is now capable of doing asynchronous raw queries.
January 23, 2015, at 06:28 PM by liviu -
Added lines 16-17:
  • Async DB core and API: Primitives for managing async DB connection pools. To be used by SQL drivers when implementing the async DB API.
Added lines 33-35:

AVPOPS module

  • avp_db_query() may now be used asynchronously. For usage examples, please refer to the module documentation.
Added lines 44-46:

DB_MYSQL module

  • The db_mysql module is now capable of doing asynchronous raw queries.
October 10, 2014, at 02:53 PM by liviu -
Changed lines 16-17 from:
  • Debugging levels: complete rework. They can now be set globally or individually (per process) using the debug MI command. More information here ...
to:
  • Debugging levels: complete rework. They can now be set globally or individually (per process) using the debug MI command. More information here ...
Changed lines 25-27 from:
  • New $rT pseudo variable - Holds the current route type as a string. Useful for determining the original route type when inside another route in script - Allows for more generic and reusable routes. More information here ...
  • New string transformation (s.fill) - Fills a string with a char/string until a given final length is reached. Refer to the transformations manual for usage examples
to:
  • New $rT pseudo variable - Holds the current route type as a string. Useful for determining the original route type when inside another route in script - Allows for more generic and reusable routes. More information here ...
  • New string transformation (s.fill) - Fills a string with a char/string until a given final length is reached. Refer to the transformations manual for usage examples
Changed lines 35-36 from:
  • You can now specify attributes from the domain names that can be used later on from the script. More information here ...
to:
  • You can now specify attributes from the domain names that can be used later on from the script. More information here ...
Changed lines 38-39 from:
  • The rabbitmq module can now send messages to different exchanges . You can simply specify the exchange you want to use in the socket url. More information here ...
to:
  • The rabbitmq module can now send messages to different exchanges . You can simply specify the exchange you want to use in the socket url. More information here ...
Changed lines 41-43 from:
  • Call-ID topology hiding support was added within the dialog module - there are many cases where the callid contains IPs, thus revealing part of the network topology. More information here ...
  • Added the ability to propagate various Contact URI parameters when doing topology hiding - helpful for preserving some end-to-end functionality relying on URI params. Read more here ...
to:
  • Call-ID topology hiding support was added within the dialog module - there are many cases where the callid contains IPs, thus revealing part of the network topology. More information here ...
  • Added the ability to propagate various Contact URI parameters when doing topology hiding - helpful for preserving some end-to-end functionality relying on URI params. Read more here ...
Changed lines 45-47 from:
  • Routing is now partition based: you may specify which string translation rules want to use to route certain messages. Thus you can re-use the routing rules for various purposes, while keeping the provisioning and reloading part fully separate. More information here...
  • New column: timerec. Allows time recurrence based enabling of dialplan rules (accepted strings are RFC 2445 compatible). Backwards-compatible with the previous DB schema. More information here...
to:
  • Routing is now partition based: you may specify which string translation rules want to use to route certain messages. Thus you can re-use the routing rules for various purposes, while keeping the provisioning and reloading part fully separate. More information here...
  • New column: timerec. Allows time recurrence based enabling of dialplan rules (accepted strings are RFC 2445 compatible). Backwards-compatible with the previous DB schema. More information here...
Changed lines 49-50 from:
  • Routing is now partition based: you may specify by which partition's rules you want to route certain messages. Thus you can re-use the routing rules for various purposes, while keeping the provisioning and reloading part fully separate. More information here...
to:
  • Routing is now partition based: you may specify by which partition's rules you want to route certain messages. Thus you can re-use the routing rules for various purposes, while keeping the provisioning and reloading part fully separate. More information here...
Changed lines 52-56 from:
  • Routing is now partition based: you may specify by which partition's rules you want to route certain messages. Thus you can re-use the routing rules for various purposes ( eg: separate routing, prefix matching, etc ), while keeping the provisioning and reloading part fully separate. More information here...
  • Using the new MI function dr_reload_status you can get the time of the last "dr_reload" (update) for any partition. The feature is available even if you don't use partitions. More information here...
  • A new MI function dr_number_routing was added which allows to simulate a do_routing() call, by fetching the list of the gateways / carriers to which a number would be routed. More information here...
  • Added a new event to be triggered when the state of a gateway is changed ( either from MI or via probing triggered from script ). More information here...
to:
  • Routing is now partition based: you may specify by which partition's rules you want to route certain messages. Thus you can re-use the routing rules for various purposes ( eg: separate routing, prefix matching, etc ), while keeping the provisioning and reloading part fully separate. More information here...
  • Using the new MI function dr_reload_status you can get the time of the last "dr_reload" (update) for any partition. The feature is available even if you don't use partitions. More information here...
  • A new MI function dr_number_routing was added which allows to simulate a do_routing() call, by fetching the list of the gateways / carriers to which a number would be routed. More information here...
  • Added a new event to be triggered when the state of a gateway is changed ( either from MI or via probing triggered from script ). More information here...
Changed lines 58-59 from:
  • Added async event handling - Allows for running the events in an asynchronous mode ( in a dedicated process ). More information here ...
to:
  • Added async event handling - Allows for running the events in an asynchronous mode ( in a dedicated process ). More information here ...
Changed lines 61-62 from:
  • Added a new event to be triggered when the state of a gateway is changed ( either from MI or via probing triggered from script ). More information here ...
to:
  • Added a new event to be triggered when the state of a gateway is changed ( either from MI or via probing triggered from script ). More information here ...
Changed lines 67-69 from:
  • The sipmsg_validate function can now be used to check the From, To and Contact headers. More information here...
  • All the Codec related functions accepting regexps can now also accept pseudovariables containing the regex - allowing for fetching the REGEXPs from various sources ( eg. Database ). Read more here ...
to:
  • The sipmsg_validate function can now be used to check the From, To and Contact headers. More information here...
  • All the Codec related functions accepting regexps can now also accept pseudovariables containing the regex - allowing for fetching the REGEXPs from various sources ( eg. Database ). Read more here ...
Changed line 77 from:
  • Added per contact events - raised when a new contact is inserted / updated / deleted. Read more here ...
to:
  • Added per contact events - raised when a new contact is inserted / updated / deleted. Read more here ...
Changed line 79 from:

Devel Plan 1.12 release (TODO list)

to:

Devel Plan 2.1 release (TODO list)

October 09, 2014, at 07:30 PM by 89.120.101.121 -
Changed line 1 from:
About -> Available Versions -> 1.12.x Releases -> Release 2.1.0
to:
About -> Available Versions -> 2.1.x Releases -> Release 2.1.0
October 09, 2014, at 07:29 PM by 89.120.101.121 -
Added lines 1-116:
About -> Available Versions -> 1.12.x Releases -> Release 2.1.0

This page has been visited 9687 times. (:toc-float Table of Content:)


Migration from 1.11.x to 2.1.0

To be done on release date.


What is new in 2.1.0

Core

  • Debugging levels: complete rework. They can now be set globally or individually (per process) using the debug MI command. More information here ...
  • Loadmodule statement ordering: eliminated! Modules can now be loaded in any order within the config script. Also added an easy module dependency specification logic for module developers! More information here ...
  • New shm_check MI function - To be used when running with memory debugging ( DBG_QM_MALLOC memory allocator ). Does a complete scan of the shared memory pool and aborts OpenSIPS on any encountered memory error.

Script

  • New assert(statement, message) function - If statement does not hold, OpenSIPS can just print the message or even abort (if abort_on_assert is set to true).
  • New $rT pseudo variable - Holds the current route type as a string. Useful for determining the original route type when inside another route in script - Allows for more generic and reusable routes. More information here ...
  • New string transformation (s.fill) - Fills a string with a char/string until a given final length is reached. Refer to the transformations manual for usage examples

NEW RTPENGINE module

  • A new module that enables media streams to be proxied via RTPENGINE

CACHEDB_SQL module

  • Full rework of the module, including a better usage of the CACHEDB interface, and also allowing for multiple DB connections to be used from script.

DOMAIN module

  • You can now specify attributes from the domain names that can be used later on from the script. More information here ...

EVENT_RABBITMQ module

  • The rabbitmq module can now send messages to different exchanges . You can simply specify the exchange you want to use in the socket url. More information here ...

DIALOG module

  • Call-ID topology hiding support was added within the dialog module - there are many cases where the callid contains IPs, thus revealing part of the network topology. More information here ...
  • Added the ability to propagate various Contact URI parameters when doing topology hiding - helpful for preserving some end-to-end functionality relying on URI params. Read more here ...

DIALPLAN module

  • Routing is now partition based: you may specify which string translation rules want to use to route certain messages. Thus you can re-use the routing rules for various purposes, while keeping the provisioning and reloading part fully separate. More information here...
  • New column: timerec. Allows time recurrence based enabling of dialplan rules (accepted strings are RFC 2445 compatible). Backwards-compatible with the previous DB schema. More information here...

DISPATCHER module

  • Routing is now partition based: you may specify by which partition's rules you want to route certain messages. Thus you can re-use the routing rules for various purposes, while keeping the provisioning and reloading part fully separate. More information here...

DROUTING module

  • Routing is now partition based: you may specify by which partition's rules you want to route certain messages. Thus you can re-use the routing rules for various purposes ( eg: separate routing, prefix matching, etc ), while keeping the provisioning and reloading part fully separate. More information here...
  • Using the new MI function dr_reload_status you can get the time of the last "dr_reload" (update) for any partition. The feature is available even if you don't use partitions. More information here...
  • A new MI function dr_number_routing was added which allows to simulate a do_routing() call, by fetching the list of the gateways / carriers to which a number would be routed. More information here...
  • Added a new event to be triggered when the state of a gateway is changed ( either from MI or via probing triggered from script ). More information here...

EVENT_ROUTE module

  • Added async event handling - Allows for running the events in an asynchronous mode ( in a dedicated process ). More information here ...

LOAD_BALANCER module

  • Added a new event to be triggered when the state of a gateway is changed ( either from MI or via probing triggered from script ). More information here ...

MI_FIFO module

  • Reworked the FIFO handling - added support for detecting if the FIFO file gets deleted ( for re-creating it ), and also added SIGHUP signal handling for re-creating and re-opening of the FIFO file.

SIPMSGOPS module

  • The sipmsg_validate function can now be used to check the From, To and Contact headers. More information here...
  • All the Codec related functions accepting regexps can now also accept pseudovariables containing the regex - allowing for fetching the REGEXPs from various sources ( eg. Database ). Read more here ...

SIPTRACE module

  • Split the fromip and toip DB columns ( which previously contained IP & port ) into two separate columns containing IP and port - thus allowing for faster database searches based on IPs.

UAC module

  • When using the uac_auth() for having OpenSIPS do SIP authentication, the CSEQ number will be increased for subsequent authentication requests - thus fixing various downstream issues ( eg. Asterisk treating the AUTH request as a retransmission due to the same CSEQ number ).

USRLOC module

  • Added per contact events - raised when a new contact is inserted / updated / deleted. Read more here ...

Devel Plan 1.12 release (TODO list)

ImportanceModuleDescription
xxxxTMeven if decide to "go stateful" very early in your script (via t_newtran), all changes you do later over the request (in request route, branch route, failure route) must be updated/pushed into transaction and remembered at later processing
xxxxDIALOGre-INVITE based in-dialog pinging (with proper SDP handling)
xxxREGISTRARlookup() should have a flag to force lookup on all branches (and not only on RURI)
xxxDIALOGNew events for dialog matched, terminated, etc
xxxDIALOGcontrol profiles/variables DB storage - specify whether we want to ever dump the profies/variables in the DB or only on shutdown. Rethink the current design to see if is the best.
xxxUSRLOCdistributed storage via a NoSQL DB
xxxDIALOGdistributed storage via a NoSQL DB
xxxDIALOGbe able to end all dialogs belonging to a certain profile (MI only)
xxxUSRLOCwhen db is updated based on timer, combine multiple deletes in a single query
xxxSIPCAPTURETCP support
xxxRTPProxyadd ICE support for rtpproxy
xxxEvent Interfaceadd ZeroMQ support for Event Interface
xxxcoresend function (including from TM) should return a dedicated ret code to indicate network errors (failure in sending)
xxxcorefix insert_new_lump()/append_new_lump() logic throughout lumps_len()
xxxcoreonce fixed, replace all single anchor_lump()+insert_new_lump_{before,after}() calls with the simpler insert_new_lump() call
xxxnewIntegrate OpenSIPS with libpurple library for IM and Presence
xxTLS coreadd an internal API for TLS management to allow registration of certificates ; a new module to allow TLS certificates provisioning via DB (per domain, per IP, etc)
xxDROUTINGAllow the option to call do_routing with a particular number, but to propagate downstream a different number ( useful for number portability scenarios )
xxUSRLOCuse a single Primary Key (non SIP related) for DB ops
xxTMallow dynamic number of branches per transaction (on demand)
xxStatistics Interfacereplace the BIG LOCK (if other arch than i386) with multiple shared locks (to protect the values)
xxnewnew cachedb_virtual modules, similar to db_virtual, but for NoSQL databases
xxdb_virtualOpensips should be able to start even if db_virtual was not able to connect to all databases. So long as it can connect to at least 1 it should still work
xxB2BSupport for attended transfers on B2BUA
xxevent_datagramInstead of pushing events in text/plan format, to have also the options to pack the event in a json format -> easier to parse by the receiver
xxnewsupport for RFC5626 - Managing Client-Initiated Connections in SIP
xnewnew module mi_stream to provide MI interaction via connection oriented links (TCP or fifo)
xnewRFC6140 Registration for Multiple Phone Numbers
xAVPOPSRegexp based filter for avp_db_load - what AVPs to be loaded
xcoreBe able to specify multiple keys with the "cache_fetch" MI command
xcoreHandle OpenSIPS variable expansion within the format string of assert()
xscriptConsider implementing the "continue" and "break" keywords inside while and for-each
xcachedb coreAllow results to be written in any PV (not just $avp)
xscriptInteger operators: make "+=" and "-=" work!

Page last modified on August 25, 2015, at 07:46 PM