About
|
This page has been visited 11485 times.
1. Migration from 1.7.0 to 1.8.0
A manual for how to migrate/update from 1.7.x to 1.8.0 is now available on site.
2. What is new in 1.8.0
2.1 Core
- KeyValue Interface - Add a new interface to allow support for Key-Value ( NoSQL ) type databases more ...
- Enhanced listen functionality - Listen definition may accept several optional parameters, allowing to configure an advertise IP and port only for a specific interface and to set a different number of children per interface (for UDP and SCTP interfaces only) see ...
- Enhanced reporting for SIP msg processing - When the SIP message threshold is exceeded, the most time consuming function calls from the script will also be printed to the logging facility see ...
- Support for includes in the configuration file - Makes working with large configs much easier. It also hopes to achieve some modularity when working with large projects/installations by abstracting parts of the logic into individual files. see ...
- AVP Optimization - Optimized the AVP name search at runtime, moved the AVP aliases in a tree map
- Extended send function - Core function "send" can receive an extra parameter with headers that will be added to the sent message see ...
- New subscribe_event function - Added the 'subscribe_event' function to the Event Interface. This function offers the possibility to subscribe an external application from the script see ...
- TCP Keepalive Support - TCP keepalive support to OpenSIPS. If a TCP connection is kept idle on one direction for a long time some routers would half close it, so even if all clients usually send TCP keepalives it's also good to do it from the server side.see ...
2.2 OpenSIPS configuration
- Easier Configuration - A new tool with a graphical user interface has been added to make it easier to configure OpenSIPS compile related options, to install OpenSIPS, and to generate configuration files based on user preferences. more ...
2.3 New CACHEDB_CASSANDRA module
- Cassandra Module - Uses the Key-Value interface in the core to allow script & modules to connect and do various Key-Value operations on a Cassandra DB. more ...
2.4 New CACHEDB_REDIS module
- Redis Module - Uses the Key-Value interface in the core to allow the script & modules to connect and do various Key-Value operations on a Redis DB. more ...
2.5 New DNS_CACHE module
- DNS_CACHE Module - Uses the Key-Value interface in the core to cache all types of DNS records in a cache_db type back-end ( localcache, memcached, redis, cassandra ). more ...
2.6 New EVENT_RABBITMQ module
- RabbitMQ client - Will allow OpenSIPS to push tasks into a RabbitMQ server, where they will be later processed by other entities. more ...
2.7 New HTTPD module
- Httpd module - Embedded web server based on microlibhttpd. more ...
2.8 New LUA module
- Lua module - Access to Lua functions in the opensips.cfg more ...
2.9 New MI_HTTP module
- mi_http Module - Allows server management through a web interface (using the existing MI commands). more ...
2.10 New SIPCAPTURE module
- sipcapture module - allows OpenSIPS to operate as a robust and scalable SIP sampling/capture server
with native support for HEPv1/v2, IPIP Encapsulation protocols and switch mirroring/monitoring port
traffic. more ...
2.11 New SIPMSGOPS module
- sipmsgops module - In a large restructuring, all the SIP related functions were moved from the textops
module to the sipmsgops module. more ...
- support for standard payloads - the codec related functions can recognize now the standard payloads (codecs) as defined by IANA, when they are not defined in the actual SDP (as rtpmap).
- SIP Validation - A new function, sipmsg_validate() has been added . that verifies if the received SIP request or reply is compliant with the RFC3261. The new function can be used to prevent malformed SIP messages from propagating through your network, and also avoid expensive processing them from the start. more ...
- Change Reply Status - change_reply_status() function added, useful in various scenarios when you need to convert a specific reply from one to another without completely discarding the reply. see ...
2.12 AAA_RADIUS module
- Extract AVP from reject answers - module allows you now to retrieve RADIUS AVPs (back into script) even from the RADIUS reject answers (and not only from the accept answers). Such AVPs may give additional information on the reject reason/cause.
2.13 ACC module
- Enhanced CDR functionality - Added three new params in acc module: db_extra_bye, aaa_extra_bye, log_extra_bye. When using CDR auto generation, these parameters will allow you to add some extra accouting information taken from the BYE message. see ...
- variable support in acc_xxx_request() - the acc_*_request() methods accept variables in the "comment" field (Ex: acc_db_request("$T_reply_code $(<reply>rr)"); ) . It also supplies a default reason if just a sip code is accounted.
2.14 AUTH module
- Improved stale nonce handling - Check for stale nonce in pre_auth, before actual auth request. It decreases dramatically the number of requests to the actual auth backend thus improving performance
2.15 B2BUA modules
- changing interface is now possible by using the "force_send_socket()" before creating a new b2bua instance
- interface aliasing supported for identifying the local contacts - this makes possible the usage of B2BUA behind a NATs (nated opensips instances) with external IP advertising.
2.16 DB_POSTGRES module
- DB reconnection - Attempt to reconnect to the DB on the fly, instead of missing the current query.
- Long query detection - Similar to the db_mysql module, the db_postgres module now exports a new parameter, exec_query_threshold. If queries take longer than 'exec_query_threshold' microseconds, warning messages will be written to logging facility. see ...
2.17 DB_FLATSTORE module
- Custom delimiter - The delimiter character used to separate the fields can now be custom. This spares you of explicit escaping the separator character ('|') when you can use a different character instead. see ...
- Single file per table - This enhancement allows the module to efficiently dump all the data into a single file by each process, instead of separate files. This offers better management of the generated files for each table. see ...
- Customized logging files - The two new parameters were added, "suffix" and "preffix" allow you to customize the file names where the db_flatstore dumps data. You can now add a timestamp or a version number for each file this module generates. see ...
2.18 DIALOG module
- Distributed Dialog profiles - Take advantage of the new Key-Value interface to store Dialog profiles into a distributed Key-Value database. Multiple OpenSIPS instances will be able to share Dialog profiles information, allowing you to create complex scenarios like distributed load balancing more ...
- Early Dialog Termination - A djalog can be ended from the middle by OpenSIPS, even if in unconfirmed or early state see ...
- Extended Dialog API - Allow other modules to specify certain behavior, like in-dialog pinging or BYE on timeout.
- New parameter - Added a new parameter 'db_flush_vals_profiles' that tells OpenSIPS to dump dialog vals, profiles and user flags into db when using db_mode 1 and 2 see ...
- New Dialog PVAR - Added new $DLG_did pseudo variable that returns the dialog DID see ...
- dlg_db_sync MI command - Added a new MI command, dlg_db_sync, that will synchronize the information about the dialogs from the database with the OpenSIPS internal memory. To be used mainly for transfering OpenSIPS dialog information from one server to another. see ...
2.19 DISPATCHER module
- Socket per destination - New "socket" field in the definition of a destination - optional local socket to be used for sending requests (traffic and probing) to that destination
- ds_is_in_list Enhancement - ds_is_in_list() will populate the attributes AVP for the matched dispatcher entry
- list_file - the file based provisioning support removed.
- failover related AVPs do have now default values, so there is no need to explicitly define them into script (only if you want to change them)
2.20 DROUTING module
- Carrier concept - Introduced the Carrier concept. A carrier is a set of gateways, where the set provides different properties like order of usage, enabling/disabling, weights, etc; The carrier concept extends the concept of list of GWs, to allow the implementation for more advanced scenarios.
- Explicit weights - when listing gateways of carriers in the definition of rules or carriers, each entry may have a weight (for load-balancing purposes)
- Rule fallback - If all gateways under the current rule fail, OpenSIPS will be able to fallback to other rules with less priority or shorter prefix.
- Matched prefix - In case of a prefix match, that specific prefix will be return in an AVP and accessible from script.
- GW whitelist - when doing routing, you can specify a white list of GWs - an extra param can be pushed to do_routing() in order to force routing over a given list of carriers or gateways (a subset of what found in the prefix rules)
- route_to_gw(), route_to_carrier() - new script functions to force routing to a specific gateway or carrier (routing rules will not be used in this case)
- dr_gw_status / dr_carrier_status - new MI function to see and set the status of a gateway / carrier (enabled / disabled)
2.21 RATELIMIT module
- Major Rework - Added a new, more flexible implementation of the ratelimit module. This module now allows you to create pipes dinamically at runtime more ...
- Distributed Limiting - Take advantage of the new Key-Value interface to store limiting info into a distributed Key-Value database. Multiple OpenSIPS instances will be able to share information about the same Ratelimit pipe. see ...
2.22 REGISTRAR and USRLOC module
- GRUU - Implement the GRUU SIP extension. more ...
- ul_sync fifo command - synchronizes contacts from memory with the database see ...
2.23 TM module
- Modify message in local_route - Various parts of the SIP message can now be modified in local_route, such as Destination-URI, Request-URI, headers, etc.
- Dos Protection - 401 and 407 replies (local or proxied) are not retransmitted any more (as per RFC3261 , 26.3.2.4 DoS Protection)
2.24 UAC / UAC_AUTH modules
- the password for doing UAC authentication can be provided now as HA1 hexa string (and not only plain-text password as before). The UAC_AUTH module will automatically detect if the password string is plain-text or HA1 format. This change affects the "credential" module parameter from UAC_AUTH module (as content only - see docs) and the "auth_password_avp"(also as content only - see docs)
2.25 UAC_REGISTRANT
- database support - registrants are loaded from database instead of being configured in the config file (via parameters). see ...
|