Login | Register

About

About -> Available Versions -> 1.12.x Releases -> Release 1.12.0

This page has been visited 387 times.


1.  Migration from 1.11.x to 1.12.0

To be done on release date.


2.  What is new in 1.12.0

2.1  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.

2.2  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 ...

2.3  NEW RTPENGINE module

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

2.4  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.

2.5  DOMAIN module

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

2.6  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 ...

2.7  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 ...

2.8  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...

2.9  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...

2.10  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...

2.11  EVENT_ROUTE module

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

2.12  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 ...

2.13  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.

2.14  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 ...

2.15  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.

2.16  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 ).

2.17  USRLOC module

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

3.  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

Page last modified on September 04, 2014, at 07:25 PM