Main.Ver15x History

Hide minor edits - Show changes to output

April 25, 2013, at 05:14 PM by razvancrainea -
Added line 1:
(:redirect About.Version-1-5-x quiet=1:)
Deleted line 25:
October 25, 2012, at 12:21 PM by 109.99.235.212 -
Changed line 5 from:
''%red%OpenSIPS 1.5.x branch is outdated and not longer maintained, see current [[AvailableVersions|available releases]].%%'''
to:
'''%red%OpenSIPS 1.5.x branch is outdated and not longer maintained, see current [[AvailableVersions|available releases]].%%'''
October 25, 2012, at 12:21 PM by 109.99.235.212 -
Changed line 1 from:
!! Main -> [[Releases|Releases]] -> Version 1.5.x
to:
!! Main -> [[AvailableVersions|Available Versions]] -> Version 1.5.x
Changed lines 5-8 from:
'''OpenSIPS''' 1.5.3 is the latest release from 1.5.x branch
to:
''%red%OpenSIPS 1.5.x branch is outdated and not longer maintained, see current [[AvailableVersions|available releases]].%%'''
----

'''OpenSIPS''' 1.5.3 is the last release from 1.5.x branch
July 01, 2011, at 07:51 PM by bogdan -
Changed lines 5-8 from:
'''OpenSIPS'''/'''OpenSER''' 1.5.3 is the latest release from 1.5.x branch

!!! '''OpenSIPS/OpenSER 1.5.3'''
to:
'''OpenSIPS''' 1.5.3 is the latest release from 1.5.x branch

!!! '''OpenSIPS 1.5.3'''
Changed lines 11-12 from:
!!! '''OpenSIPS/OpenSER 1.5.2'''
to:
!!! '''OpenSIPS 1.5.2'''
Changed lines 15-16 from:
!!! '''OpenSIPS/OpenSER 1.5.1'''
to:
!!! '''OpenSIPS 1.5.1'''
Changed line 19 from:
!!! [[Main.Ver150|OpenSIPS/OpenSER 1.5.0]]
to:
!!! [[Main.Ver150|OpenSIPS 1.5.0]]
August 27, 2009, at 08:27 PM by bogdan -
Changed lines 5-9 from:
'''OpenSIPS'''/'''OpenSER''' 1.5.2 is the latest release from 1.5.x branch
to:
'''OpenSIPS'''/'''OpenSER''' 1.5.3 is the latest release from 1.5.x branch

!!! '''OpenSIPS/OpenSER 1.5.3'''

Minor release (see [[http://opensips.org/pub/opensips/1.5.3/src/ChangeLog |Changelog from 1.5.2]])
July 15, 2009, at 11:40 PM by bogdan -
Changed lines 5-9 from:
'''OpenSIPS'''/'''OpenSER''' 1.5.1 is the latest release from 1.5.x branch
to:
'''OpenSIPS'''/'''OpenSER''' 1.5.2 is the latest release from 1.5.x branch

!!! '''OpenSIPS/OpenSER 1.5.2'''

Minor release (see [[http://opensips.org/pub/opensips/1.5.2/src/ChangeLog |Changelog from 1.5.1]])
April 13, 2009, at 05:11 PM by bogdan -
Changed line 9 from:
Minor release (see [[http://opensips.org/pub/opensips/1.5.1/src/ChangeLog |Changelog from 1.5.0]].
to:
Minor release (see [[http://opensips.org/pub/opensips/1.5.1/src/ChangeLog |Changelog from 1.5.0]])
April 13, 2009, at 05:11 PM by bogdan -
Changed line 7 from:
!!! OpenSIPS/OpenSER 1.5.1
to:
!!! '''OpenSIPS/OpenSER 1.5.1'''
April 13, 2009, at 05:11 PM by bogdan -
Changed line 7 from:
!!! [[OpenSIPS/OpenSER 1.5.1]]
to:
!!! OpenSIPS/OpenSER 1.5.1
April 13, 2009, at 05:10 PM by bogdan -
Changed line 7 from:
!!! [[Main.Ver150|OpenSIPS/OpenSER 1.5.1]]
to:
!!! [[OpenSIPS/OpenSER 1.5.1]]
April 13, 2009, at 05:10 PM by bogdan -
Changed lines 5-6 from:
'''OpenSIPS'''/'''OpenSER''' 1.5.0 is the latest release from 1.5.x branch
to:
'''OpenSIPS'''/'''OpenSER''' 1.5.1 is the latest release from 1.5.x branch

!!! [[Main.Ver150|OpenSIPS/OpenSER 1.5.1]]

Minor release (see [[http://opensips.org/pub/opensips/1.5.1/src/ChangeLog |Changelog from 1.5.0]].
Deleted lines 13-14:

March 23, 2009, at 08:56 PM by bogdan -
Changed line 7 from:
!!! [[Releases.Ver150|OpenSIPS/OpenSER 1.5.0]]
to:
!!! [[Main.Ver150|OpenSIPS/OpenSER 1.5.0]]
March 23, 2009, at 08:52 PM by bogdan -
Changed lines 5-392 from:
'''OpenSIPS'''/'''OpenSER''' 1.5.0 is the current development version.

----
!!! What is new in 1.5.0


----
!!!! Core
* Add support for parsing the bandwidth attribute inside SDP: b=<bwtype>:<bandwidth>
* Added support in the parser to identify the content-subtype "media_control+xml" [RFC5168]
* Allow negative debug level (starting from L_ERR, the debug vals are negative)
* Removed old "reply_to_via" core paramter as it is violating the RFC 3261.
* Fix bug in preserving URI scheme - all functions that are performing partial change of the RURI (like rewritehostport, rewriteuser, strip, prefix, striptail, setport, sethost) were overwriting the URI scheme to SIP
* Fixed bug in creating the pid file : if opensips is changing user, it needs also to change the owner of the pid file, so that it will be able to deleted at the end. (Affected scenario : (1) opensips is launched by root but configured to run as opensips user; (2) pid file is created as user root -> pid file is owned by root; (3) opensips deamonizes and runs as opensips ; (4) opensips shutdown and, as user opensips is not able to remove pid file which is owned by root
* Added support in the MI internal API for doing flush (partial write of the MI reply tree). This will allow functions that output large amount of date to return the data in multiple sequences -> function will be able to retune any amount of data without any memory issues.
* New API to allow registrations of new functions for "myself" test (to see if a domain is local or alias).
* internal rework of the functions for setting the RURI
* internal new functions for searching the headers (rev 4833)
* internal optimization & cleanup of script functions operating with strings : STRING params replaced with STR to avoid len calculation

----
!!!! Stateless processing
If no stateless forwarding function is detected (in config script), the core will automatically trigger the dumping of received stateless replies.\\
Read more: http://lists.opensips.org/pipermail/users/2009-February/002951.html


----
!!!! Memory cache support

!!!!! Memory Cache API
A new API was added in core to allow development of different modules that implements memory functionalities like memory_store and memory_fetch. See the [[ Resources.DocsTutMemcache|MemCache Tutorial]]

!!!!! Local memory store
New module that implements local memory storage support by storing Attribute-Value pairs in shared memory

!!!!! MemCache implementation
Future new implementation of the memory cache via memcache system (for external interaction) - not necessary planned for 1.5

!!!!! SystemV sharing
Future new implementation of the memory cache via System V shared mem (for external interaction) - not necessary planned for 1.5


----
!!!! Load-balancing module (NEW)
The "load-balancing" module comes to provide traffic routing based on load. Shortly, when '''OpenSIPS''' routes calls to a set of destinations, it is able to keep the load status (as number of ongoing calls) of each destination and to choose to route to the less loaded destination (at that moment).
'''OpenSIPS''' is aware of the capacity of each destination - it is preconfigured with the maximum load accepted by the destinations. To be more precise, when routing, '''OpenSIPS''' will consider the less loaded destination not the destination with the smallest number of ongoing calls, but the destination with the largest available slot.

Read: http://www.opensips.org/index.php?n=Resources.DocsTutLoadbalancing


----
!!!! DB enhancement

!!!!! Prepared statements

The support in DB API provides support for '''prepared statements'''. Modules using DB API may or may not request the usage of prepared statements instead of normal queries.

Right now, only the mysql driver (db_mysql) implements the prepared statements support.

There are several modules already using the prepared statements support:
* acc
* auth_db
* alias_db
* dialog
* domain
* group
* presence_*
* siptrace
* speeddial
* uri_db
* usrloc


!!!!! Memory fragmentation

The entire way of managing the DB result structure was reworked in order to avoid memory fragmentation:
* the idea was to eliminate the usage of small chucks of memory (4-10 bytes);
* instead of keep allocating/freeing for each DB result a number of chunks ( function of no of columns and no of rows), right now '''only 3 mem chuncks are used for a response'''.

Reducing the memory fragmentation is a key factor in producing a '''robust and endurable application'''.

----
!!!! Data flush in MI commands
This new addition is to fix the limitation related to commands not able to return large volume of data in replies (like listing all the registered users, all the ongoing dialogs, etc):
* MI API was changed to allow such flush commands ;
* mi_XXXX module implement the new flush functionality ;
* usrloc uses mi_flush for dumping the location list


----
!!!! OpenSIPS Console - NEW
This is a new provisioning tool for OpenSIPS - the OpenSIPS console (osipsconsole). It intends to be a generic tool for OpenSIPS provisioning and to include all the functionalities which are now provided by several scripts - it will replace the opensipsctl & opensipsdbctl scripts.

Osipsconsole is not one command script, but a console - you start the application, you get a prompt, you can run the available commands, you have embedded help, command history (in the current session and from previous session).

Read: http://lists.opensips.org/pipermail/users/2008-October/000795.html


----
!!!!OpenSIPS Control Panel - NEW
OpenSIPS Control Panel (OpenSIPS-CP) is a web interface (PHP based) for provisioning your OpenSIPS system. OpenSIPS-CP is not designed for provisioning users, but for provisioning the operational side of OpenSIPS (like DB, MI operations).

OpenSIPS-CP is a collection of tools - different functionalities are implemented in separated tools.

Read: http://lists.opensips.org/pipermail/users/2008-October/000844.html\\
Web Site: http://opensips-cp.sourceforge.net/


----
!!!! DynamicRouting module - NEW
Dynamic Routing is a module for selecting (based on multiple criteria) the the best gateway/destination to be used for delivering a certain call. Least Cost Routing (LCR) is a special case of dynamic routing - when the rules are ordered based on costs.

See detailed documentation: http://www.opensips.org/html/docs/modules/devel/drouting.html


----
!!!! MaxMind GeoIP module - NEW
The module provides runtime geo-location information to the OpenSIPS scripting environment. Various geographic data available include country code, region, city, postal code, time zone and more, all described in the module documentation.

Read: http://lists.opensips.org/pipermail/users/2008-November/001244.html\\
Documentation: http://www.opensips.org/html/docs/modules/devel/mmgeoip.html


---
!!!! QOS module - NEW
The qos module uses the dialog module to be notified of any new or updated dialogs. It will then look for and extract the SDP session (if present) from SIP requests and replies and keep track of it for the entire life of a dialog.

Read: http://lists.opensips.org/pipermail/users/2008-December/002163.html \\
Documentation: http://www.opensips.org/html/docs/modules/devel/qos.html


----
!!!! Call Control - NEW
This module allows one to limit the duration of calls and automatically end them when they exceed the imposed limit. Its main use case is to implement a prepaid system, but it can also be used to impose a global limit on all calls processed by the proxy

Read: http://lists.opensips.org/pipermail/users/2008-December/002062.html \\
Documentation: http://www.opensips.org/html/docs/modules/devel/call_control.html


----
!!!! Signalling module -NEW
The SIGNALING module comes as a wrapper over tm and sl modules and offers one function to be called from script or by the modules that want to send a reply. The reply (depending of the current state - if transaction exists or not) will be automatically sent in the best manner (stateless or stateful).

Read: http://lists.opensips.org/pipermail/users/2008-November/001543.html \\
Documentation: http://www.opensips.org/html/docs/modules/devel/signaling.html


----
!!!! PUA_DIALOGINFO &amp; PRESENCE_DIALOGINFO - NEW
The modules enable the handling of "Event: dialog" (as defined in RFC 4235) inside of the presence module. This can be used distribute the dialog-info status to the subscribed watchers.

Documentation: http://www.opensips.org/html/docs/modules/devel/pua_dialoginfo.html \\
Documentation: http://www.opensips.org/html/docs/modules/devel/presence_dialoginfo.html


----
!!!! SIP identity module - NEW
This is an implementation of SIP identity as per RFC 4474. The module implements both identification and verification of the SIP messages.

Documentation: http://www.opensips.org/html/docs/modules/devel/identity.html


----
!!!! Dialog Module
* improved dialog state machine to be more flexible
* better dialog matching (more efficient)
* Automatic call termination on dialog timeout (by sending BYE in both directions). Read http://lists.opensips.org/pipermail/users/2008-October/001116.html
* '''dialog persistent flags''' added. These flags will be visible for all the requests that belong to the same dialog. Available functions:
** set_dlg_flag("n");
** reset_dlg_flag("n");
** is_dlg_flag_set("n");
Available PVs:
**$DLG_flags (can be used directly from script via bitwise ops)
* '''dialog persistent attributes''' - These attribute are visible for all the requests that belong to the same dialog; they can be manipulated (added,fetched) during the dialog lifetime. Available functions:
** store_dlg_value("attr_name","attr_val"); // attr_val may contain PVs
** fetch_dlg_value("attr_name","pv"); // pv is $var or $avp
Available PVs:
** $dlg_val("attr_name"); // set and get available
READ: http://lists.opensips.org/pipermail/users/2009-January/002446.html
* added new function create_dialog() to explicitly create the dialog from the script (instead of waiting for the t_relay()) - this function is also available via the module API


----
!!!! ACC module
* extra accounting from replies - an extra accounting value may come from request context, but also from reply context. This new functionality provides easy and automatic access to all information from the reply. Read http://lists.opensips.org/pipermail/users/2008-November/001584.html
* early_media module parameter triggers reply accounting for all provisional replies with body (not only 183).


----
!!!! AVPOPS module
* added '''support for multiple DB connection''' (different DBs, different DB types, different DB hosts). Module parameter "db_url" allows multiple definitions. All AVPOPS DB ops may indicate the usage of a specific/different db_url. Read: http://lists.opensips.org/pipermail/users/2008-December/002209.html
* fixed bogus handling of table name in avpops_db_xxxx functions


----
!!!! TEXTOPS module
* added two new functions to be used from the script:
** strip_body() : deletes the message body
** add_body(new_body, content_type): adds a body to the message, replacing the initial one if it exists

----
!!!! TM module
* '''minor branch for parallel forking''' - minor branch is a branch not taken into account during branch selection when closing a transaction). Read http://lists.opensips.org/pipermail/users/2008-October/000748.html
* as TM is doing '''automatic release of the transactions''' at the end of script, the t_release() function is not longer available in script. This a low level function in transaction processing and all related processing is automatically done, so the user must not be aware or take care of it -> easier scripting now.
* '''new functions''' added:
**t_cancel_branch()
**t_cancel_call()
Read: http://lists.opensips.org/pipermail/users/2009-January/002364.html
* new PV $T_ruri - the RURI of the current branch; this information is taken from the transaction structure, so you can access this information for any sip message (request/reply) that has a transaction.
* in failure route, use the msg RURI as first branch (as for request route), instead of using only the append branches. This is part of a bigger plan to align the scripting in failure route and request route. There will be no need to call append_branch() in failure route, just be make use of the RURI for relay
* fixed e2eACK matching for local replied transaction - extended also for 3261 matching.
* fixed race in concurrent callback execution -> random crash


----
!!!! PRESENCE module
* new event "dialog;sla"
* introduce MI command to trigger database cleanup
* improved Subscribe receive sockinfo storing and processing:
- keep a pointer to the sockinfo structure in memory
- when updating in database - store the corresponding string
- when fetching dialog info from database parse the string and search for the sockinfo structure
* fixed BLA when call in put on hold
* add "transport=proto" parameter to the contact if other proto than UDP is used.


----
!!!! Pua module
* xcap-diff event support


----
!!!! RLS module
* use rls-services document to take the list instead of resource-list document
* send 200 OK faster so that retransmissions don't occur because of time consuming processing
* added presence_server exported parameter to have the possibility to set the address of the presence server and avoid Subscribe messages being sent by the RLS bouncing on and off the main proxy
* added special return code for rls_handle_notify function to show wheter the Notify request was processed or not by RLS (suggested by Adrian Georgescu
* added a INFO level message for Subscribe messages processed by RLS with the format : Subscription from [watcher] for resource list uri [list_uri] expanded to [no_of_contacts] contacts (suggested by Adrian Georgescu)
* updated the use of sockinfo field from subst_t structure to the definition commited in rev 4856
* fixed a bug in timer_notify_update function related to the relevance of expires value(relative instead of absolute)
* added deleting record from rls_presentity table when a Notify with subscription-state=terminate is received instead of being deleted on timer


----
!!!! REGISTRAR module
* registered(), save() and lookup() functions may take an optional second param with a custome AOR. Mainly to tests more than only the RURI as AOR: registered("location","$fu");
* "aor_avp" module parameter is dropped and useless
* registered() function can be used from onreply route, branch route and local route. NOTE: if used from onreply route it is mandatory to pass as parameter an AOR (as replies do not have RURI).


----
!!!! Domains module
* use the new core API for exporting a function to check if domain is local or not - this is used by the RR module for detecting the preloaded RR when domain is used instead of IPs. Read http://lists.opensips.org/pipermail/users/2009-February/002869.html


!!!! SIPTRACE module
* dialog support in tracing message - with a single script function you can trace the entire dialog. READ: http://lists.opensips.org/pipermail/users/2009-January/002768.html



----
!!!! NATHELPER module
* the list of RTPproxy sockets can be provisioned via DB now (versus the previous hardcoding in script).This allows provisioning at runtime (adding or removing rtpproxies) without restarting OpenSIPS.\\
Read: http://lists.opensips.org/pipermail/users/2009-February/003174.html
* improved logic for extracting the body from the SIP message
* New rtpproxy_offer() and rtpproxy_answers() functions whose purpose is similar to force_rtp_proxy's 'S' flag (to allow SDP-less INVITEs), but providing cleaner API.
* New family of functions rtpproxy_stream2uac(), rtpproxy_stream2uas(), rtpproxy_stop_stream2uac() and rtpproxy_stop_stream2uas() allowing to play pre-recorded announcement/MOH to one or both parties in response to various events. This feature requires latest 1.2 version snapshot of RTPproxy available at http://www.rtpproxy.org
* Inclease list of recognizable and proxable streams with rtp/avpf, rtp/savp and udp/bfcp.


----
!!!! RR module
* added new PV - $rr_params to export the entire Route param string


----
!!!! PERMISSION module
* allow_trusted(), allow_address() are allowed to be used in reply route.


----
!!!! EXEC module
* New extension in exec module (based on exec_avp code) that enables to read an environment variable and put its value inside an avp. For example, exec_getenv("HOSTNAME",$avp(s:hostname));


----
!!!! AUTH module
* added module parameter 'disable_nonce_check' that allows disabling the nonce re-usability checking
* Use the STALE_NONCE error code for the nonce reused case as well


----
!!!! DISPATCHER module
* the reply codes of the probing requests can be configured via module parameter - a list of reply codes to be considered successful when probing. \\
Read: http://www.opensips.org/html/docs/modules/devel/dispatcher.html#id271069
* more efficient way of generating the probing requests
* aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()


----
!!!! auth_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)

----
!!!! avp_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)

----
!!!! group_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)

----
!!!! uri_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)


---
!!!! SST module
* fixed improper setting of the dialog timeout value (from sst to dialog)
* fixed sending of malformed replies
* set the default value of MINSE to 60 if the header exists

----
!!!! gflags module
* fixed is_gflag MI function - function returns true if all bits (from bitmask) are set


----
!!!! URI_DB module
* use DB API function for proper check on the table version
* new statistic variables


----
!!!! SL module
* new internal function to fetch the generated to_tag


----
!!!! CARRIERROUATE module
* fetch support


----
!!!! GROUP module
* Acceptance of a pseudovariable as second argument (group to check) of is_user_in function().


----
!!!! CFGUTILS module
* Acceptance of a pseudovariable argument in sleep and usleep functions


----
!!!! LCR module
* aligned lcr module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()


----
!!!! UAC REDIRECT module
* aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()


----
!!!! UAC module
* uac_replace_from() allowed per branch


----
!!!! CPL-c module
* aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()


----
!!!! Generic Fixes
* OS portability (mainly Solaris fixes)
* fixed memory leaks (modules and core)
* reduced memory fragmentation
* replaced strncmp by strncasecmp in comparing SIP/SDP headers


----
!!!! Tools fixing
* auto detection for libraries location
* compile options
* solaris packaging
* opensipsctl - dialplan support
* opensipcctl - changed behaviour in restart. If opensips is already stopped, does not exit, but it tries to start it.
to:
'''OpenSIPS'''/'''OpenSER''' 1.5.0 is the latest release from 1.5.x branch

!!! [[Releases.Ver150|OpenSIPS/OpenSER 1.5.0]]

Major release
March 10, 2009, at 12:35 PM by bogdan -
Changed lines 50-51 from:
'''OpenSIPS''' is aware of the capacity of each destination - it is preconfigured with the maximum load accepted by the destinations. To be more precise, when routing, '''OpenSIPS''' will consider the less loaded destination not the destination with the smallest number of ongoing calls, but the destination with the largest available slot.\
READ: http://www.opensips.org/index.php?n=Resources.DocsTutLoadbalancing
to:
'''OpenSIPS''' is aware of the capacity of each destination - it is preconfigured with the maximum load accepted by the destinations. To be more precise, when routing, '''OpenSIPS''' will consider the less loaded destination not the destination with the smallest number of ongoing calls, but the destination with the largest available slot.

Read: http://www.opensips.org/index.php?n=Resources.DocsTutLoadbalancing
March 10, 2009, at 12:35 PM by bogdan -
Added lines 48-54:
!!!! Load-balancing module (NEW)
The "load-balancing" module comes to provide traffic routing based on load. Shortly, when '''OpenSIPS''' routes calls to a set of destinations, it is able to keep the load status (as number of ongoing calls) of each destination and to choose to route to the less loaded destination (at that moment).
'''OpenSIPS''' is aware of the capacity of each destination - it is preconfigured with the maximum load accepted by the destinations. To be more precise, when routing, '''OpenSIPS''' will consider the less loaded destination not the destination with the smallest number of ongoing calls, but the destination with the largest available slot.\
READ: http://www.opensips.org/index.php?n=Resources.DocsTutLoadbalancing


----
Deleted lines 393-418:


----
!!! What is still under development



!!!! Load-balancing module
New load-balancing module - module to do traffic routing based on real load-balancing (by counting the load -as ongoing calls- of each peer).\
Status: under development





!!!! Various small (but important) module enhancements:

!!!!! dialog module
* Ability to check if the Route info from a sequential request do matches the route info stored in the dialog - this will allow to
check the validity of sequential requests and to detect malicious BYE (for example)

!!!!! TM module
* t_relay - automate creation of transaction -> more simple to use the function

!!!!! Nathelper
* simplify the usage of sets of rtpproxys - no need for additional functions as we can pass now more than 2 params to module functions.
February 17, 2009, at 04:43 PM by 201.34.140.71 -
Added lines 361-365:
!!!! UAC module
* uac_replace_from() allowed per branch


----
Changed lines 410-413 from:

!!!!! UAC module
* uac_replace_from() allowed per branch - this is a bit complicated as requires changes in TM
to:
February 17, 2009, at 04:41 PM by 201.34.140.71 -
Added line 104:
Added lines 259-260:
* the list of RTPproxy sockets can be provisioned via DB now (versus the previous hardcoding in script).This allows provisioning at runtime (adding or removing rtpproxies) without restarting OpenSIPS.\\
Read: http://lists.opensips.org/pipermail/users/2009-February/003174.html
Added lines 290-291:
* the reply codes of the probing requests can be configured via module parameter - a list of reply codes to be considered successful when probing. \\
Read: http://www.opensips.org/html/docs/modules/devel/dispatcher.html#id271069
February 10, 2009, at 09:14 PM by 81.180.102.217 -
Added lines 152-158:
!!!! SIP identity module - NEW
This is an implementation of SIP identity as per RFC 4474. The module implements both identification and verification of the SIP messages.

Documentation: http://www.opensips.org/html/docs/modules/devel/identity.html


----
Changed lines 389-397 from:
!!!! SIP identity module

An old submission for OpenSER 1.2, the identity module was refurbished and updated for OpenSIPS/OpenSER 1.5.0\
Status:
* testing
* fixing some design limitation


to:


February 09, 2009, at 09:10 PM by 92.81.68.225 -
Deleted line 24:
Added lines 26-31:
!!!! Stateless processing
If no stateless forwarding function is detected (in config script), the core will automatically trigger the dumping of received stateless replies.\\
Read more: http://lists.opensips.org/pipermail/users/2009-February/002951.html


----
Deleted line 77:
Added lines 79-86:
!!!! Data flush in MI commands
This new addition is to fix the limitation related to commands not able to return large volume of data in replies (like listing all the registered users, all the ongoing dialogs, etc):
* MI API was changed to allow such flush commands ;
* mi_XXXX module implement the new flush functionality ;
* usrloc uses mi_flush for dumping the location list


----
Deleted lines 376-383:
!!!! Data flush in MI commands
This new addition is to fix the limitation related to commands not able to return large volume of data in replies (like listing all the registered users, all the ongoing dialogs, etc).\
Status:
* MI API was already changed to allow such flush commands ; Status: on SVN
* mi_fifo module implements the new flush functionality ; Status: under testing, not commited yet
* implement flush for mi_datagram and mi_xmlrpc ; Status: under devel

February 03, 2009, at 02:04 PM by 81.180.102.217 -
Added line 185:
* new PV $T_ruri - the RURI of the current branch; this information is taken from the transaction structure, so you can access this information for any sip message (request/reply) that has a transaction.
February 03, 2009, at 01:27 PM by 81.180.102.217 -
Added line 122:
Added line 130:
Added line 138:
Changed lines 223-224 from:

to:
* registered() function can be used from onreply route, branch route and local route. NOTE: if used from onreply route it is mandatory to pass as parameter an AOR (as replies do not have RURI).

February 02, 2009, at 09:38 PM by 81.180.102.217 -
Changed line 89 from:
Read: http://lists.opensips.org/pipermail/users/2008-October/000844.html\
to:
Read: http://lists.opensips.org/pipermail/users/2008-October/000844.html\\
Changed line 103 from:
Read: http://lists.opensips.org/pipermail/users/2008-November/001244.html\
to:
Read: http://lists.opensips.org/pipermail/users/2008-November/001244.html\\
Changed line 111 from:
Read: http://lists.opensips.org/pipermail/users/2008-December/002163.html \
to:
Read: http://lists.opensips.org/pipermail/users/2008-December/002163.html \\
Changed line 119 from:
Read: http://lists.opensips.org/pipermail/users/2008-December/002062.html \
to:
Read: http://lists.opensips.org/pipermail/users/2008-December/002062.html \\
Changed line 126 from:
Read: http://lists.opensips.org/pipermail/users/2008-November/001543.html \
to:
Read: http://lists.opensips.org/pipermail/users/2008-November/001543.html \\
Changed line 133 from:
Documentation: http://www.opensips.org/html/docs/modules/devel/pua_dialoginfo.html \
to:
Documentation: http://www.opensips.org/html/docs/modules/devel/pua_dialoginfo.html \\
February 02, 2009, at 09:37 PM by 81.180.102.217 -
Changed line 89 from:
Read: http://lists.opensips.org/pipermail/users/2008-October/000844.html \
to:
Read: http://lists.opensips.org/pipermail/users/2008-October/000844.html\
Changed line 103 from:
Read: http://lists.opensips.org/pipermail/users/2008-November/001244.html \
to:
Read: http://lists.opensips.org/pipermail/users/2008-November/001244.html\
February 02, 2009, at 09:36 PM by 81.180.102.217 -
Changed line 89 from:
Read: http://lists.opensips.org/pipermail/users/2008-October/000844.html
to:
Read: http://lists.opensips.org/pipermail/users/2008-October/000844.html \
Changed line 103 from:
Read: http://lists.opensips.org/pipermail/users/2008-November/001244.html
to:
Read: http://lists.opensips.org/pipermail/users/2008-November/001244.html \
Changed line 111 from:
Read: http://lists.opensips.org/pipermail/users/2008-December/002163.html
to:
Read: http://lists.opensips.org/pipermail/users/2008-December/002163.html \
Changed line 119 from:
Read: http://lists.opensips.org/pipermail/users/2008-December/002062.html
to:
Read: http://lists.opensips.org/pipermail/users/2008-December/002062.html \
Changed line 126 from:
Read: http://lists.opensips.org/pipermail/users/2008-November/001543.html
to:
Read: http://lists.opensips.org/pipermail/users/2008-November/001543.html \
Changed lines 132-133 from:
Documentation: http://www.opensips.org/html/docs/modules/devel/pua_dialoginfo.html
to:

Documentation: http://www.opensips.org/html/docs/modules/devel/pua_dialoginfo.html \
February 02, 2009, at 09:35 PM by 81.180.102.217 -
Changed lines 75-80 from:
!!!! DynamicRouting module - NEW
Dynamic Routing is a module for selecting (based on multiple criteria) the the best gateway/destination to be used for delivering a certain call. Least Cost Routing (LCR) is a special case of dynamic routing - when the rules are ordered based on costs.

See detailed documentation: http://www.opensips.org/html/docs/modules/devel/drouting.html

to:
!!!! OpenSIPS Console - NEW
This is a new provisioning tool for OpenSIPS - the OpenSIPS console (osipsconsole). It intends to be a generic tool for OpenSIPS provisioning and to include all the functionalities which are now provided by several scripts - it will replace the opensipsctl & opensipsdbctl scripts.

Osipsconsole is not one command script, but a console - you start the application, you get a prompt, you can run the available commands, you have embedded help, command history (in the current session and from previous session).

Read: http://lists.opensips.org/pipermail/users/2008-October/000795.html

Added lines 84-99:
!!!!OpenSIPS Control Panel - NEW
OpenSIPS Control Panel (OpenSIPS-CP) is a web interface (PHP based) for provisioning your OpenSIPS system. OpenSIPS-CP is not designed for provisioning users, but for provisioning the operational side of OpenSIPS (like DB, MI operations).

OpenSIPS-CP is a collection of tools - different functionalities are implemented in separated tools.

Read: http://lists.opensips.org/pipermail/users/2008-October/000844.html
Web Site: http://opensips-cp.sourceforge.net/

----
!!!! DynamicRouting module - NEW
Dynamic Routing is a module for selecting (based on multiple criteria) the the best gateway/destination to be used for delivering a certain call. Least Cost Routing (LCR) is a special case of dynamic routing - when the rules are ordered based on costs.

See detailed documentation: http://www.opensips.org/html/docs/modules/devel/drouting.html


----
February 02, 2009, at 09:28 PM by 81.180.102.217 -
Added lines 98-104:
!!!! Call Control - NEW
This module allows one to limit the duration of calls and automatically end them when they exceed the imposed limit. Its main use case is to implement a prepaid system, but it can also be used to impose a global limit on all calls processed by the proxy

Read: http://lists.opensips.org/pipermail/users/2008-December/002062.html
Documentation: http://www.opensips.org/html/docs/modules/devel/call_control.html

----
Added lines 112-117:
!!!! PUA_DIALOGINFO &amp; PRESENCE_DIALOGINFO - NEW
The modules enable the handling of "Event: dialog" (as defined in RFC 4235) inside of the presence module. This can be used distribute the dialog-info status to the subscribed watchers.
Documentation: http://www.opensips.org/html/docs/modules/devel/pua_dialoginfo.html
Documentation: http://www.opensips.org/html/docs/modules/devel/presence_dialoginfo.html

----
February 02, 2009, at 09:18 PM by 81.180.102.217 -
Deleted line 73:
Changed lines 75-93 from:
!!!! Dialog Module
* improved dialog state machine to be more flexible
* better dialog matching (more efficient)
* Automatic call termination on dialog timeout (by sending BYE in both directions). Read http://lists.opensips.org/pipermail/users/2008-October/001116.html
* '''dialog persistent flags''' added. These flags will be visible for all the requests that belong to the same dialog. Available functions:
** set_dlg_flag("n");
** reset_dlg_flag("n");
** is_dlg_flag_set("n");
Available PVs:
**$DLG_flags (can be used directly from script via bitwise ops)
* '''dialog persistent attributes''' - These attribute are visible for all the requests that belong to the same dialog; they can be manipulated (added,fetched) during the dialog lifetime. Available functions:
** store_dlg_value("attr_name","attr_val"); // attr_val may contain PVs
** fetch_dlg_value("attr_name","pv"); // pv is $var or $avp
Available PVs:
** $dlg_val("attr_name"); // set and get available
READ: http://lists.opensips.org/pipermail/users/2009-January/002446.html
* added new function create_dialog() to explicitly create the dialog from the script (instead of waiting for the t_relay()) - this function is also available via the module API

to:
!!!! DynamicRouting module - NEW
Dynamic Routing is a module for selecting (based on multiple criteria) the the best gateway/destination to be used for delivering a certain call. Least Cost Routing (LCR) is a special case of dynamic routing - when the rules are ordered based on costs.

See detailed documentation: http://www.opensips.org/html/docs/modules/devel/drouting.html

Changed lines 82-86 from:
!!!! ACC module
* extra accounting from replies - an extra accounting value may come from request context, but also from reply context. This new functionality provides easy and automatic access to all information from the reply. Read http://lists.opensips.org/pipermail/users/2008-November/001584.html
* early_media module parameter triggers reply accounting for all provisional replies with body (not only 183).

to:
!!!! MaxMind GeoIP module - NEW
The module provides runtime geo-location information to the OpenSIPS scripting environment. Various geographic data available include country code, region, city, postal code, time zone and more, all described in the module documentation.

Read: http://lists.opensips.org/pipermail/users/2008-November/001244.html
Documentation: http://www.opensips.org/html/docs/modules/devel/mmgeoip.html


---
!!!! QOS module - NEW
The qos module uses the dialog module to be notified of any new or updated dialogs. It will then look for and extract the SDP session (if present) from SIP requests and replies and keep track of it for the entire life of a dialog.

Read: http://lists.opensips.org/pipermail/users/2008-December/002163.html
Documentation: http://www.opensips.org/html/docs/modules/devel/qos.html

Changed lines 98-102 from:
!!!! AVPOPS module
* added '''support for multiple DB connection''' (different DBs, different DB types, different DB hosts). Module parameter "db_url" allows multiple definitions. All AVPOPS DB ops may indicate the usage of a specific/different db_url. Read: http://lists.opensips.org/pipermail/users/2008-December/002209.html
* fixed bogus handling of table name in avpops_db_xxxx functions

to:
!!!! Signalling module -NEW
The SIGNALING module comes as a wrapper over tm and sl modules and offers one function to be called from script or by the modules that want to send a reply. The reply (depending of the current state - if transaction exists or not) will be automatically sent in the best manner (stateless or stateful).

Read: http://lists.opensips.org/pipermail/users/2008-November/001543.html
Documentation: http://www.opensips.org/html/docs/modules/devel/signaling.html
Changed lines 105-109 from:
!!!! TEXTOPS module
* added two new functions to be used from the script:
** strip_body() : deletes the message body
** add_body(new_body, content_type): adds a body to the message, replacing the initial one if it exists
to:
!!!! Dialog Module
* improved dialog state machine to be more flexible
* better dialog matching (more efficient)
* Automatic call termination on dialog timeout (by sending BYE in both directions). Read http://lists.opensips.org/pipermail/users/2008-October/001116.html
* '''dialog persistent flags''' added. These flags will be visible for all the requests that belong to the same dialog. Available functions:
** set_dlg_flag("n");
** reset_dlg_flag("n");
** is_dlg_flag_set("n");
Available PVs:
**$DLG_flags (can be used directly from script via bitwise ops)
* '''dialog persistent attributes''' - These attribute are visible for all the requests that belong to the same dialog; they can be manipulated (added,fetched) during the dialog lifetime. Available functions:
** store_dlg_value("attr_name","attr_val"); // attr_val may contain PVs
** fetch_dlg_value("attr_name","pv"); // pv is $var or $avp
Available PVs:
** $dlg_val("attr_name"); // set and get available
READ: http://lists.opensips.org/pipermail/users/2009-January/002446.html
* added new function create_dialog() to explicitly create the dialog from the script (instead of waiting for the t_relay()) - this function is also available via the module API

Changed lines 125-136 from:
!!!! TM module
* '''minor branch for parallel forking''' - minor branch is a branch not taken into account during branch selection when closing a transaction). Read http://lists.opensips.org/pipermail/users/2008-October/000748.html
* as TM is doing '''automatic release of the transactions''' at the end of script, the t_release() function is not longer available in script. This a low level function in transaction processing and all related processing is automatically done, so the user must not be aware or take care of it -> easier scripting now.
* '''new functions''' added:
**t_cancel_branch()
**t_cancel_call()
Read: http://lists.opensips.org/pipermail/users/2009-January/002364.html
* in failure route, use the msg RURI as first branch (as for request route), instead of using only the append branches. This is part of a bigger plan to align the scripting in failure route and request route. There will be no need to call append_branch() in failure route, just be make use of the RURI for relay
* fixed e2eACK matching for local replied transaction - extended also for 3261 matching.
* fixed race in concurrent callback execution -> random crash

to:
!!!! ACC module
* extra accounting from replies - an extra accounting value may come from request context, but also from reply context. This new functionality provides easy and automatic access to all information from the reply. Read http://lists.opensips.org/pipermail/users/2008-November/001584.html
* early_media module parameter triggers reply accounting for all provisional replies with body (not only 183).

Changed lines 131-141 from:
!!!! PRESENCE module
* new event "dialog;sla"
* introduce MI command to trigger database cleanup
* improved Subscribe receive sockinfo storing and processing:
- keep a pointer to the sockinfo structure in memory
- when updating in database - store the corresponding string
- when fetching dialog info from database parse the string and search for the sockinfo structure
* fixed BLA when call in put on hold
* add "transport=proto" parameter to the contact if other proto than UDP is used.

to:
!!!! AVPOPS module
* added '''support for multiple DB connection''' (different DBs, different DB types, different DB hosts). Module parameter "db_url" allows multiple definitions. All AVPOPS DB ops may indicate the usage of a specific/different db_url. Read: http://lists.opensips.org/pipermail/users/2008-December/002209.html
* fixed bogus handling of table name in avpops_db_xxxx functions

Changed lines 137-140 from:
!!!! Pua module
* xcap-diff event support

to:
!!!! TEXTOPS module
* added two new functions to be used from the script:
** strip_body() : deletes the message body
** add_body(new_body, content_type): adds a body to the message, replacing the initial one if it exists
Changed lines 143-153 from:
!!!! RLS module
* use rls-services document to take the list instead of resource-list document
* send 200 OK faster so that retransmissions don't occur because of time consuming processing
* added presence_server exported parameter to have the possibility to set the address of the presence server and avoid Subscribe messages being sent by the RLS bouncing on and off the main proxy
* added special return code for rls_handle_notify function to show wheter the Notify request was processed or not by RLS (suggested by Adrian Georgescu
* added a INFO level message for Subscribe messages processed by RLS with the format : Subscription from [watcher] for resource list uri [list_uri] expanded to [no_of_contacts] contacts (suggested by Adrian Georgescu)
* updated the use of sockinfo field from subst_t structure to the definition commited in rev 4856
* fixed a bug in timer_notify_update function related to the relevance of expires value(relative instead of absolute)
* added deleting record from rls_presentity table when a Notify with subscription-state=terminate is received instead of being deleted on timer

to:
!!!! TM module
* '''minor branch for parallel forking''' - minor branch is a branch not taken into account during branch selection when closing a transaction). Read http://lists.opensips.org/pipermail/users/2008-October/000748.html
* as TM is doing '''automatic release of the transactions''' at the end of script, the t_release() function is not longer available in script. This a low level function in transaction processing and all related processing is automatically done, so the user must not be aware or take care of it -> easier scripting now.
* '''new functions''' added:
**t_cancel_branch()
**t_cancel_call()
Read: http://lists.opensips.org/pipermail/users/2009-January/002364.html
* in failure route, use the msg RURI as first branch (as for request route), instead of using only the append branches. This is part of a bigger plan to align the scripting in failure route and request route. There will be no need to call append_branch() in failure route, just be make use of the RURI for relay
* fixed e2eACK matching for local replied transaction - extended also for 3261 matching.
* fixed race in concurrent callback execution -> random crash

Changed lines 156-160 from:
!!!! REGISTRAR module
* registered(), save() and lookup() functions may take an optional second param with a custome AOR. Mainly to tests more than only the RURI as AOR: registered("location","$fu");
* "aor_avp" module parameter is dropped and useless

to:
!!!! PRESENCE module
* new event "dialog;sla"
* introduce MI command to trigger database cleanup
* improved Subscribe receive sockinfo storing and processing:
- keep a pointer to the sockinfo structure in memory
- when updating in database - store the corresponding string
- when fetching dialog info from database parse the string and search for the sockinfo structure
* fixed BLA when call in put on hold
* add "transport=proto" parameter to the contact if other proto than UDP is used.

Changed lines 168-176 from:
!!!! Domains module
* use the new core API for exporting a function to check if domain is local or not - this is used by the RR module for detecting the preloaded RR when domain is used instead of IPs. Read http://lists.opensips.org/pipermail/users/2009-February/002869.html


!!!! SIPTRACE module
* dialog support in tracing message - with a single script function you can trace the entire dialog. READ: http://lists.opensips.org/pipermail/users/2009-January/002768.html


to:
!!!! Pua module
* xcap-diff event support

Changed lines 173-179 from:
!!!! NATHELPER module
* improved logic for extracting the body from the SIP message
* New rtpproxy_offer() and rtpproxy_answers() functions whose purpose is similar to force_rtp_proxy's 'S' flag (to allow SDP-less INVITEs), but providing cleaner API.
* New family of functions rtpproxy_stream2uac(), rtpproxy_stream2uas(), rtpproxy_stop_stream2uac() and rtpproxy_stop_stream2uas() allowing to play pre-recorded announcement/MOH to one or both parties in response to various events. This feature requires latest 1.2 version snapshot of RTPproxy available at http://www.rtpproxy.org
* Inclease list of recognizable and proxable streams with rtp/avpf, rtp/savp and udp/bfcp.

to:
!!!! RLS module
* use rls-services document to take the list instead of resource-list document
* send 200 OK faster so that retransmissions don't occur because of time consuming processing
* added presence_server exported parameter to have the possibility to set the address of the presence server and avoid Subscribe messages being sent by the RLS bouncing on and off the main proxy
* added special return code for rls_handle_notify function to show wheter the Notify request was processed or not by RLS (suggested by Adrian Georgescu
* added a INFO level message for Subscribe messages processed by RLS with the format : Subscription from [watcher] for resource list uri [list_uri] expanded to [no_of_contacts] contacts (suggested by Adrian Georgescu)
* updated the use of sockinfo field from subst_t structure to the definition commited in rev 4856
* fixed a bug in timer_notify_update function related to the relevance of expires value(relative instead of absolute)
* added deleting record from rls_presentity table when a Notify with subscription-state=terminate is received instead of being deleted on timer

Changed lines 185-188 from:
!!!! RR module
* added new PV - $rr_params to export the entire Route param string

to:
!!!! REGISTRAR module
* registered(), save() and lookup() functions may take an optional second param with a custome AOR. Mainly to tests more than only the RURI as AOR: registered("location","$fu");
* "aor_avp" module parameter is dropped and useless

Changed lines 191-194 from:
!!!! PERMISSION module
* allow_trusted(), allow_address() are allowed to be used in reply route.

to:
!!!! Domains module
* use the new core API for exporting a function to check if domain is local or not - this is used by the RR module for detecting the preloaded RR when domain is used instead of IPs. Read http://lists.opensips.org/pipermail/users/2009-February/002869.html


!!!! SIPTRACE module
* dialog support in tracing message - with a single script function you can trace the entire dialog. READ: http://lists.opensips.org/pipermail/users/2009-January/002768.html


Changed lines 201-204 from:
!!!! EXEC module
* New extension in exec module (based on exec_avp code) that enables to read an environment variable and put its value inside an avp. For example, exec_getenv("HOSTNAME",$avp(s:hostname));

to:
!!!! NATHELPER module
* improved logic for extracting the body from the SIP message
* New rtpproxy_offer() and rtpproxy_answers() functions whose purpose is similar to force_rtp_proxy's 'S' flag (to allow SDP-less INVITEs), but providing cleaner API.
* New family of functions rtpproxy_stream2uac(), rtpproxy_stream2uas(), rtpproxy_stop_stream2uac() and rtpproxy_stop_stream2uas() allowing to play pre-recorded announcement/MOH to one or both parties in response to various events. This feature requires latest 1.2 version snapshot of RTPproxy available at http://www.rtpproxy.org
* Inclease list of recognizable and proxable streams with rtp/avpf, rtp/savp and udp/bfcp.

Changed lines 209-213 from:
!!!! AUTH module
* added module parameter 'disable_nonce_check' that allows disabling the nonce re-usability checking
* Use the STALE_NONCE error code for the nonce reused case as well

to:
!!!! RR module
* added new PV - $rr_params to export the entire Route param string

Changed lines 214-218 from:
!!!! DISPATCHER module
* more efficient way of generating the probing requests
* aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()

to:
!!!! PERMISSION module
* allow_trusted(), allow_address() are allowed to be used in reply route.

Changed lines 219-221 from:
!!!! auth_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)
to:
!!!! EXEC module
* New extension in exec module (based on exec_avp code) that enables to read an environment variable and put its value inside an avp. For example, exec_getenv("HOSTNAME",$avp(s:hostname));

Changed lines 224-226 from:
!!!! avp_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)
to:
!!!! AUTH module
* added module parameter 'disable_nonce_check' that allows disabling the nonce re-usability checking
* Use the STALE_NONCE error code for the nonce reused case as well

Changed lines 230-236 from:
!!!! group_radius module
to:
!!!! DISPATCHER module
* more efficient way of generating the probing requests
* aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()


----
!!!! auth_radius module
Changed line 240 from:
!!!! uri_radius module
to:
!!!! avp_radius module
Deleted lines 242-248:

---
!!!! SST module
* fixed improper setting of the dialog timeout value (from sst to dialog)
* fixed sending of malformed replies
* set the default value of MINSE to 60 if the header exists
Changed lines 244-247 from:
!!!! gflags module
* fixed is_gflag MI function - function returns true if all bits (from bitmask) are set

to:
!!!! group_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)
Changed lines 248-252 from:
!!!! URI_DB module
* use DB API function for proper check on the table version
* new statistic variables

to:
!!!! uri_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)


---
!!!! SST module
* fixed improper setting of the dialog timeout value (from sst to dialog)
* fixed sending of malformed replies
* set the default value of MINSE to 60 if the header exists
Changed lines 259-262 from:
!!!! SL module
* new internal function to fetch the generated to_tag

to:
!!!! gflags module
* fixed is_gflag MI function - function returns true if all bits (from bitmask) are set

Changed lines 264-267 from:
!!!! CARRIERROUATE module
* fetch support

to:
!!!! URI_DB module
* use DB API function for proper check on the table version
* new statistic variables

Changed lines 270-273 from:
!!!! GROUP module
* Acceptance of a pseudovariable as second argument (group to check) of is_user_in function().

to:
!!!! SL module
* new internal function to fetch the generated to_tag

Changed lines 275-278 from:
!!!! CFGUTILS module
* Acceptance of a pseudovariable argument in sleep and usleep functions

to:
!!!! CARRIERROUATE module
* fetch support

Changed lines 280-283 from:
!!!! LCR module
* aligned lcr module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()

to:
!!!! GROUP module
* Acceptance of a pseudovariable as second argument (group to check) of is_user_in function().

Changed lines 285-288 from:
!!!! UAC REDIRECT module
* aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()

to:
!!!! CFGUTILS module
* Acceptance of a pseudovariable argument in sleep and usleep functions

Changed lines 290-295 from:
!!!! CPL-c module
to:
!!!! LCR module
* aligned lcr module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()


----
!!!! UAC REDIRECT module
Added lines 300-304:
!!!! CPL-c module
* aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()


----
February 02, 2009, at 09:05 PM by 81.180.102.217 -
Added lines 15-20:
* Allow negative debug level (starting from L_ERR, the debug vals are negative)
* Removed old "reply_to_via" core paramter as it is violating the RFC 3261.
* Fix bug in preserving URI scheme - all functions that are performing partial change of the RURI (like rewritehostport, rewriteuser, strip, prefix, striptail, setport, sethost) were overwriting the URI scheme to SIP
* Fixed bug in creating the pid file : if opensips is changing user, it needs also to change the owner of the pid file, so that it will be able to deleted at the end. (Affected scenario : (1) opensips is launched by root but configured to run as opensips user; (2) pid file is created as user root -> pid file is owned by root; (3) opensips deamonizes and runs as opensips ; (4) opensips shutdown and, as user opensips is not able to remove pid file which is owned by root
* Added support in the MI internal API for doing flush (partial write of the MI reply tree). This will allow functions that output large amount of date to return the data in multiple sequences -> function will be able to retune any amount of data without any memory issues.
* New API to allow registrations of new functions for "myself" test (to see if a domain is local or alias).
Changed lines 22-30 from:
* internal L new functions for searching the headers (rev 4833)
* internal optimization & cleanup of script functions operating with strings : STRING params replaced with STR to avoid len calculation
* allow negative debug level (starting from L_ERR, the debug vals are negative)
* removed old "reply_to_via" core paramter as it is violating the RFC 3261.
* fix bug in preserving URI scheme - all functions that are performing partial change of the RURI (like rewritehostport, rewriteuser, strip, prefix, striptail, setport, sethost) were overwriting the URI scheme to SIP
* fixed bug in creating the pid file : if opensips is changing user, it needs also to change the owner of the pid file, so that it will be able to deleted at the end. (Affected scenario : (1) opensips is launched by root but configured to run as opensips user; (2) pid file is created as user root -> pid file is owned by root; (3) opensips deamonizes and runs as opensips ; (4) opensips shutdown and, as user opensips is not able to remove pid file which is owned by root
* added support in the MI internal API for doing flush (partial write of the MI reply tree). This will allow functions that output large amount of date to return the data in multiple sequences -> function will be able to retune any amount of data without any memory issues.

to:
* internal new functions for searching the headers (rev 4833)
* internal optimization & cleanup of script functions operating with strings : STRING params replaced with STR to avoid len calculation

Added line 57:
* group
Changed line 85 from:
***$DLG_flags (can be used directly from script via bitwise ops)
to:
**$DLG_flags (can be used directly from script via bitwise ops)
Added line 91:
READ: http://lists.opensips.org/pipermail/users/2009-January/002446.html
Changed lines 103-104 from:
* added '''support for multiple DB connection''' (different DBs, different DB types, different DB hosts). Module parameter "db_url" allows multiple definitions. All AVPOPS DB ops may indicate the usage of a specific/different db_url.
fixes:
to:
* added '''support for multiple DB connection''' (different DBs, different DB types, different DB hosts). Module parameter "db_url" allows multiple definitions. All AVPOPS DB ops may indicate the usage of a specific/different db_url. Read: http://lists.opensips.org/pipermail/users/2008-December/002209.html
Changed lines 118-119 from:
t_cancel_branch()
t_cancel_call()
to:
**t_cancel_branch()
**t_cancel_call()
Read: http://lists.opensips.org/pipermail/users/2009-January/002364.html
Added lines 162-171:
!!!! Domains module
* use the new core API for exporting a function to check if domain is local or not - this is used by the RR module for detecting the preloaded RR when domain is used instead of IPs. Read http://lists.opensips.org/pipermail/users/2009-February/002869.html


!!!! SIPTRACE module
* dialog support in tracing message - with a single script function you can trace the entire dialog. READ: http://lists.opensips.org/pipermail/users/2009-January/002768.html



----
Deleted lines 311-317:
!!!! SIPtrace module
Enhancements:
* dialog support
* stateless ACK tracing to be fixed
* fixed Cancel tracing

Changed lines 320-327 from:
!!!! Domains module

Export the domain to core in order to be used as aliases (fixes the preloaded RR when domain is used instead of IPs):
* new core API to allow alias registrations
* upgrade domains module to register the loaded modules via core API

Status: under devel
to:
February 02, 2009, at 08:45 PM by 81.180.102.217 -
Added lines 141-158:
!!!! RLS module
* use rls-services document to take the list instead of resource-list document
* send 200 OK faster so that retransmissions don't occur because of time consuming processing
* added presence_server exported parameter to have the possibility to set the address of the presence server and avoid Subscribe messages being sent by the RLS bouncing on and off the main proxy
* added special return code for rls_handle_notify function to show wheter the Notify request was processed or not by RLS (suggested by Adrian Georgescu
* added a INFO level message for Subscribe messages processed by RLS with the format : Subscription from [watcher] for resource list uri [list_uri] expanded to [no_of_contacts] contacts (suggested by Adrian Georgescu)
* updated the use of sockinfo field from subst_t structure to the definition commited in rev 4856
* fixed a bug in timer_notify_update function related to the relevance of expires value(relative instead of absolute)
* added deleting record from rls_presentity table when a Notify with subscription-state=terminate is received instead of being deleted on timer


----
!!!! REGISTRAR module
* registered(), save() and lookup() functions may take an optional second param with a custome AOR. Mainly to tests more than only the RURI as AOR: registered("location","$fu");
* "aor_avp" module parameter is dropped and useless


----
Added lines 172-176:
!!!! PERMISSION module
* allow_trusted(), allow_address() are allowed to be used in reply route.


----
Changed lines 182-184 from:
!!!! auth_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)
to:
!!!! AUTH module
* added module parameter 'disable_nonce_check' that allows disabling the nonce re-usability checking
* Use the STALE_NONCE error code for the nonce reused case as well

Changed lines 188-194 from:
!!!! avp_radius module
to:
!!!! DISPATCHER module
* more efficient way of generating the probing requests
* aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()


----
!!!! auth_radius module
Changed line 198 from:
!!!! group_radius module
to:
!!!! avp_radius module
Changed line 202 from:
!!!! uri_radius module
to:
!!!! group_radius module
Changed lines 205-209 from:
to:
----
!!!! uri_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)

Added line 221:
----
Changed line 223 from:
* use DB API function for proper check on the table verions
to:
* use DB API function for proper check on the table version
Changed lines 226-236 from:
!!!! RLS module
* use rls-services document to take the list instead of resource-list document
* send 200 OK faster so that retransmissions don't occur because of time consuming processing
* added presence_server exported parameter to have the possibility to set the address of the presence server and avoid Subscribe messages being sent by the RLS bouncing on and off the main proxy
* added special return code for rls_handle_notify function to show wheter the Notify request was processed or not by RLS (suggested by Adrian Georgescu
* added a INFO level message for Subscribe messages processed by RLS with the format : Subscription from [watcher] for resource list uri [list_uri] expanded to [no_of_contacts] contacts (suggested by Adrian Georgescu)
* updated the use of sockinfo field from subst_t structure to the definition commited in rev 4856
* fixed a bug in timer_notify_update function related to the relevance of expires value(relative instead of absolute)
* added deleting record from rls_presentity table when a Notify with subscription-state=terminate is received instead of being deleted on timer

to:

----
Added line 232:
----
Deleted line 233:
new:
Changed lines 237-250 from:
!!!! AUTH module
new:
* added module parameter 'disable_nonce_check' that allows disabling the nonce reusability checking
* Use the STALE_NONCE error code for the nonce reused case as well


!!!! DISPATCHER module
new:
* more efficient way of generating the probing requests
* aligned lcr module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()

to:
----
Deleted line 238:
new:
Added line 242:
----
Deleted line 243:
new:
Added lines 246-247:

----
Changed lines 249-252 from:
-aligned lcr module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()
to:
* aligned lcr module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()


----
Changed lines 254-257 from:
-aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()
to:
* aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()


----
Changed lines 259-273 from:
-aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()

!!!! PERMISSION module
new:
allow_trusted(), allow_address() are allowed to be used in reply route.


!!!! registrar module
new:
* registered(), save() and lookup() functions may take an optional second param with a custome AOR. Mainly to tests more than only the RURI as AOR: registered("location","$fu");
* "aor_avp" module parameter is dropped and useless

to:
* aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route): (1) first branch goes to RURI; (2) following branches are added with append_branch()

Added line 269:
Deleted line 280:
TO BE completed.
February 02, 2009, at 08:39 PM by 81.180.102.217 -
Changed line 94 from:
* adding message context for the accounted values - an extra accounting value may come from request context, but also from reply context. This new functionality provides easy and automatic access to all information from the reply. Read
to:
* extra accounting from replies - an extra accounting value may come from request context, but also from reply context. This new functionality provides easy and automatic access to all information from the reply. Read http://lists.opensips.org/pipermail/users/2008-November/001584.html
Deleted line 97:
Added line 134:
Added line 139:
Changed lines 141-143 from:
!!!! auth_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)
to:
!!!! NATHELPER module
* improved logic for extracting the body from the SIP message
* New rtpproxy_offer() and rtpproxy_answers() functions whose purpose is similar to force_rtp_proxy's 'S' flag (to allow SDP-less INVITEs), but providing cleaner API.
* New family of functions rtpproxy_stream2uac(), rtpproxy_stream2uas(), rtpproxy_stop_stream2uac() and rtpproxy_stop_stream2uas() allowing to play pre-recorded announcement/MOH to one or both parties in response to various events. This feature requires latest 1.2 version snapshot of RTPproxy available at http://www.rtpproxy.org
* Inclease list of recognizable and proxable streams with rtp/avpf, rtp/savp and udp/bfcp.

Changed lines 149-151 from:
!!!! avp_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)
to:
!!!! RR module
* added new PV - $rr_params to export the entire Route param string

Changed lines 154-159 from:
!!!! group_radius module
to:
!!!! EXEC module
* New extension in exec module (based on exec_avp code) that enables to read an environment variable and put its value inside an avp. For example, exec_getenv("HOSTNAME",$avp(s:hostname));


----
!!!! auth_radius module
Changed line 163 from:
!!!! uri_radius module
to:
!!!! avp_radius module
Deleted lines 165-171:

---
!!!! SST module
* fixed improper setting of the dialog timeout value (from sst to dialog)
* fixed sending of malformed replies
* set the default value of MINSE to 60 if the header exists
Changed lines 167-170 from:
!!!! gflags module
* fixed is_gflag MI function - function returns true if all bits (from bitmask) are set

to:
!!!! group_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)
Changed lines 171-177 from:
!!!! NATHELPER module
* improved logic for extracting the body from the SIP message
* New rtpproxy_offer() and rtpproxy_answers() functions whose purpose is similar to force_rtp_proxy's 'S' flag (to allow SDP-less INVITEs), but providing cleaner API.
* New family of functions rtpproxy_stream2uac(), rtpproxy_stream2uas(), rtpproxy_stop_stream2uac() and rtpproxy_stop_stream2uas() allowing to play pre-recorded announcement/MOH to one or both parties in response to various events. This feature requires latest 1.2 version snapshot of RTPproxy available at http://www.rtpproxy.org
* Inclease list of recognizable and proxable streams with rtp/avpf, rtp/savp and udp/bfcp.

to:
!!!! uri_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)


---
!!!! SST module
* fixed improper setting of the dialog timeout value (from sst to dialog)
* fixed sending of malformed replies
* set the default value of MINSE to 60 if the header exists

----
!!!! gflags module
* fixed is_gflag MI function - function returns true if all bits (from bitmask) are set

Changed lines 187-190 from:
new:
* use DB API function for proper check on the table verions (4843)
* new statistic variables ??
to:
* use DB API function for proper check on the table verions
* new statistic variables
Added lines 191-205:
* use rls-services document to take the list instead of resource-list document
* send 200 OK faster so that retransmissions don't occur because of time consuming processing
* added presence_server exported parameter to have the possibility to set the address of the presence server and avoid Subscribe messages being sent by the RLS bouncing on and off the main proxy
* added special return code for rls_handle_notify function to show wheter the Notify request was processed or not by RLS (suggested by Adrian Georgescu
* added a INFO level message for Subscribe messages processed by RLS with the format : Subscription from [watcher] for resource list uri [list_uri] expanded to [no_of_contacts] contacts (suggested by Adrian Georgescu)
* updated the use of sockinfo field from subst_t structure to the definition commited in rev 4856
* fixed a bug in timer_notify_update function related to the relevance of expires value(relative instead of absolute)
* added deleting record from rls_presentity table when a Notify with subscription-state=terminate is received instead of being deleted on timer


!!!! SL module
* new internal function to fetch the generated to_tag


!!!! CARRIERROUATE module
Changed lines 207-222 from:
* ANCA (4854) - - fixed bugs in RLS discovered at SIPIT
- use rls-services document to take the list instead of resource-list document
- send 200 OK faster so that retransmissions don't occur because of time consumming processing
- added presence_server exported parameter to have the possibility to set the address of the presence server and avoid Subscribe messages beeing sent by the RLS bouncing on and off the main proxy
- fixed wrong double quotes in Content-Type (thanks also to Yoo Chan Jeon <yoojeon@gmail.com> for noticing this)
- fixed a memory leack for subscribing passing through rls but were for presence server
- check first the condition of containing header "Supported: eventlist" so as to avoid additional processing for messages that are not for RLS
* ANCA (4871) - - added special return code for rls_handle_notify function to show wheter the Notify request was processed or not by RLS (suggested by Adrian Georgescu<ag@ag-projects.com>
- added a INFO level message for Subscribe messages processed by RLS with the format
Subscription from [watcher] for resource list uri [list_uri] expanded to [no_of_contacts] contacts (suggested by Adrian Georgescu<ag@ag-projects.com>)
- updated the use of sockinfo field from subst_t structure to the definition commited in rev 4856
- fixed a bug in timer_notify_update function related to the relevance of expires value(relative instead of absolute)
- added deleting record from rls_presentity table when a Notify with subscription-state=terminate is received instead of beeing deleted on timer


!!!! SL module
to:
* fetch support


!!!! AUTH module
Changed lines 212-214 from:
* new internal function to fetch the generated to_tag

!!!! RR module
to:
* added module parameter 'disable_nonce_check' that allows disabling the nonce reusability checking
* Use the STALE_NONCE error code for the nonce reused case as well


!!!! DISPATCHER module
Changed lines 218-225 from:
* added new PV - $rr_params to export the entire Route param string


!!!! EXEC module
* New extension in exec module (based on exec_avp code) that enables to read an environment variable and put its value inside an avp. For example, exec_getenv("HOSTNAME",$avp(s:hostname));


!!!! CARRIERROUATE module
to:
* more efficient way of generating the probing requests
* aligned lcr module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()


!!!! GROUP module
Changed lines 226-229 from:
* fetch support


!!!! AUTH module
to:
* Acceptance of a pseudovariable as second argument (group to check) of is_user_in function().


!!!! CFGUTILS module
Changed lines 231-238 from:
* added module parameter 'disable_nonce_check' that allows disabling the nonce reusability checking
* Use the STALE_NONCE error code for the nonce reused case as well


!!!! DISPATCHER module
new:
* more efficient way of generating the probing requests
* aligned lcr module to new way of filling in branches in Failure Route (which is the same as for Request Route):
to:
* Acceptance of a pseudovariable argument in sleep and usleep functions

!!!! LCR module
-aligned lcr module to new way of filling in branches in Failure Route (which is the same as for Request Route):
Changed lines 238-239 from:

!!!! GROUP module
to:
!!!! UAC REDIRECT module
-aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()

!!!! CPL-c module
-aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()

!!!! PERMISSION module
Changed lines 250-253 from:
* Acceptance of a pseudovariable as second argument (group to check) of is_user_in function().


!!!! CFGUTILS module
to:
allow_trusted(), allow_address() are allowed to be used in reply route.


!!!! registrar module
Deleted lines 254-277:
* Acceptance of a pseudovariable argument in sleep and usleep functions

!!!! LCR module
-aligned lcr module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()

!!!! UAC REDIRECT module
-aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()

!!!! CPL-c module
-aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()

!!!! PERMISSION module
new:
allow_trusted(), allow_address() are allowed to be used in reply route.


!!!! registrar module
new:
February 02, 2009, at 08:32 PM by 81.180.102.217 -
Changed line 77 from:
* at timeout, the dialog module automatically sends BYE in both directions.
to:
* Automatic call termination on dialog timeout (by sending BYE in both directions). Read http://lists.opensips.org/pipermail/users/2008-October/001116.html
Changed lines 92-95 from:
!!!! Pua module
* xcap-diff event support

to:
----
!!!! ACC module
* adding message context for the accounted values - an extra accounting value may come from request context, but also from reply context. This new functionality provides easy and automatic access to all information from the reply. Read
* early_media module parameter triggers reply accounting for all provisional replies with body (not only 183).



----
Changed lines 101-102 from:
new:
* added support for multiple DB connection (different DBs, different DB types, different DB hosts). Module parameter "db_url" allows multiple definitions. All AVPOPS DB ops may indicate the usage of a specific/different db_url.
to:
* added '''support for multiple DB connection''' (different DBs, different DB types, different DB hosts). Module parameter "db_url" allows multiple definitions. All AVPOPS DB ops may indicate the usage of a specific/different db_url.
Added lines 106-124:
----
!!!! TEXTOPS module
* added two new functions to be used from the script:
** strip_body() : deletes the message body
** add_body(new_body, content_type): adds a body to the message, replacing the initial one if it exists

----
!!!! TM module
* '''minor branch for parallel forking''' - minor branch is a branch not taken into account during branch selection when closing a transaction). Read http://lists.opensips.org/pipermail/users/2008-October/000748.html
* as TM is doing '''automatic release of the transactions''' at the end of script, the t_release() function is not longer available in script. This a low level function in transaction processing and all related processing is automatically done, so the user must not be aware or take care of it -> easier scripting now.
* '''new functions''' added:
t_cancel_branch()
t_cancel_call()
* in failure route, use the msg RURI as first branch (as for request route), instead of using only the append branches. This is part of a bigger plan to align the scripting in failure route and request route. There will be no need to call append_branch() in failure route, just be make use of the RURI for relay
* fixed e2eACK matching for local replied transaction - extended also for 3261 matching.
* fixed race in concurrent callback execution -> random crash


----
Deleted line 125:
new:
Deleted line 131:
fixes:
Changed lines 133-134 from:
* add "transport=proto" paramter to the contact if other proto than UDP is used.
to:
* add "transport=proto" parameter to the contact if other proto than UDP is used.

----
!!!! Pua module
* xcap-diff event support

----
Deleted line 140:
new:
Changed line 143 from:
to:
----
Changed lines 147-148 from:

to:
----
Added line 151:
----
Changed line 156 from:
to:
---
Changed line 162 from:
to:
----
Changed lines 167-178 from:
!!!! TM module
* minor branch for parallel forking (minor branch is a branch not taken into account during branch selection when closing a transaction)
* Added infrastructure for tm callback parameter cleanup.(internal)
* as TM is doing automatic release of the transactions at the end of script, the t_release() function is not longer available in script. This a low level function in transaction processing and all releated processing is automatically done, so the user must not be aware or take care of it.
* new functions added:
t_cancel_branch()
t_cancel_call()
* in failure route, use the msg RURI as first branch (as for request route), instead of using only the appened branches. This is part of a bigger plan to align the scripting in failure route and request route. There will be no need to call append_branch() in failure route, just be make use of the RURI for relay
fixes:
* fixed e2eACK mathing for local replied transaction - extended also for 3261 matching.
* fixed race in concurent callback execution -> random crash
to:
----
Changed lines 170-190 from:
* Merge in several recent RTPproxy related features from the iptel's SER.
o New rtpproxy_offer() and rtpproxy_answers() functions whose purpose is
similar to force_rtp_proxy's 'S' flag (to allow SDP-less INVITEs), but
providing cleaner API.
o New family of functions rtpproxy_stream2uac(), rtpproxy_stream2uas(),
rtpproxy_stop_stream2uac() and rtpproxy_stop_stream2uas() allowing to
play pre-recorded announcement/MOH to one or both parties in response
to various events. This feature requires latest 1.2 version snapshor
of RTPproxy available at http://www.rtpproxy.org
o Inclease list of recognizable and proxable streams with rtp/avpf,
rtp/savp and udp/bfcp.
(rev 4935)

o Move some of the functions out of the overly long nathelper.c.

!!!! TEXTOPS module
* added two new functions to be used from the script:
- strip_body() : deletes the message body
- add_body(new_body, content_type): adds a body to the message, replacing the initial one if it exi

!!!! ACC module
to:
* New rtpproxy_offer() and rtpproxy_answers() functions whose purpose is similar to force_rtp_proxy's 'S' flag (to allow SDP-less INVITEs), but providing cleaner API.
* New family of functions rtpproxy_stream2uac(), rtpproxy_stream2uas(), rtpproxy_stop_stream2uac() and rtpproxy_stop_stream2uas() allowing to play pre-recorded announcement/MOH to one or both parties in response to various events. This feature requires latest 1.2 version snapshot of RTPproxy available at http://www.rtpproxy.org
* Inclease list of recognizable and proxable streams with rtp/avpf, rtp/savp and udp/bfcp.


!!!! URI_DB module
Deleted lines 176-181:
* early_media module parameter triggers reply accouting for all provisional replies with body (not only 183).
* adding message context for the accouted values - an extra accouting value may come from request context, but also from reply context. This new functionality provides easy and automatic access to all information from the reply.


!!!! URI_DB module
new:
February 02, 2009, at 08:18 PM by 81.180.102.217 -
Changed lines 10-23 from:
!!!! Generic Fixes
* OS portability (mainly Solaris fixes)
* fixed memory leaks (modules and core)
* reduced memory fragmentation
* replaced strncmp by strncasecmp in comparing SIP/SDP headers

!!!! Tools fixing
* auto detection for libraries location
* compile options
* solaris packaging
* opensipsctl - dialplan support
* opensipcctl - changed behaviour in restart. If opensips is already stopped, does not exit, but it tries to start it.

to:

----
Added lines 24-25:

----
Changed line 41 from:
to:
----
Changed lines 46-47 from:
The support in DB API provides support for prepared statements. Modules using DB API may or may not request the usage of prepared statements instead of normal queries.
to:
The support in DB API provides support for '''prepared statements'''. Modules using DB API may or may not request the usage of prepared statements instead of normal queries.
Changed lines 67-71 from:
* instead of keep allocating/freeing for each DB result a number of chunks ( function of no of columns and no of rows), right now only 3 mem chuncks are used for a response

Reducing the memory fragmentation is a key factor in producing a robust and endurable application.

to:
* instead of keep allocating/freeing for each DB result a number of chunks ( function of no of columns and no of rows), right now '''only 3 mem chuncks are used for a response'''.

Reducing the memory fragmentation is a key factor in producing a '''robust and endurable application'''.



----
Deleted lines 271-272:

TO BE completed.
Added lines 273-291:
!!!! Generic Fixes
* OS portability (mainly Solaris fixes)
* fixed memory leaks (modules and core)
* reduced memory fragmentation
* replaced strncmp by strncasecmp in comparing SIP/SDP headers

----
!!!! Tools fixing
* auto detection for libraries location
* compile options
* solaris packaging
* opensipsctl - dialplan support
* opensipcctl - changed behaviour in restart. If opensips is already stopped, does not exit, but it tries to start it.




TO BE completed.
----
February 02, 2009, at 08:15 PM by 81.180.102.217 -
Changed lines 34-36 from:
* added support in the MI internal API for doing flush (partial write of the MI reply tree). This will allow functions that output large amount of date to return the data in multiple sequences. -> function will be able to retune any amount of data without any memory issues.

to:
* added support in the MI internal API for doing flush (partial write of the MI reply tree). This will allow functions that output large amount of date to return the data in multiple sequences -> function will be able to retune any amount of data without any memory issues.

!!!! Memory cache support

!!!!! Memory Cache API
A new API was added in core to allow development of different modules that implements memory functionalities like memory_store and memory_fetch. See the [[ Resources.DocsTutMemcache|MemCache Tutorial]]

!!!!! Local memory store
New module that implements local memory storage support by storing Attribute-Value pairs in shared memory

!!!!! MemCache implementation
Future new implementation of the memory cache via memcache system (for external interaction) - not necessary planned for 1.5

!!!!! SystemV sharing
Future new implementation of the memory cache via System V shared mem (for external interaction) - not necessary planned for 1.5



!!!! DB enhancement

!!!!! Prepared statements

The support in DB API provides support for prepared statements. Modules using DB API may or may not request the usage of prepared statements instead of normal queries.

Right now, only the mysql driver (db_mysql) implements the prepared statements support.

There are several modules already using the prepared statements support:
* acc
* auth_db
* alias_db
* dialog
* domain
* presence_*
* siptrace
* speeddial
* uri_db
* usrloc


!!!!! Memory fragmentation

The entire way of managing the DB result structure was reworked in order to avoid memory fragmentation:
* the idea was to eliminate the usage of small chucks of memory (4-10 bytes);
* instead of keep allocating/freeing for each DB result a number of chunks ( function of no of columns and no of rows), right now only 3 mem chuncks are used for a response

Reducing the memory fragmentation is a key factor in producing a robust and endurable application.

Deleted line 82:
new:
Changed lines 86-90 from:
* 1) dialog persistent falgs added. These flags will be visible for all the requests that belong to the same dialog.
Available functions:
- set_dlg_flag("n");
- reset_dlg_flag("n");
- is_dlg_flag_set("n");
to:
* '''dialog persistent flags''' added. These flags will be visible for all the requests that belong to the same dialog. Available functions:
** set_dlg_flag("n");
** reset_dlg_flag("n");
** is_dlg_flag_set("n");
Changed lines 91-95 from:
- $DLG_flags (can be used directly from script via bitwise ops)
2) dialog persistent attributes. These attribute are visible for all the requests that belong to the sae dialog; they can be manipulated (added,fetched) during the dialog lifetime.
Available functions:
- store_dlg_value("attr_name","attr_val"); // attr_val may contain PVs
- fetch_dlg_value("attr_name","pv"); // pv is $var or $avp
to:
***$DLG_flags (can be used directly from script via bitwise ops)
* '''dialog persistent attributes''' - These attribute are visible for all the requests that belong to the same dialog; they can be manipulated (added,fetched) during the dialog lifetime. Available functions:
** store_dlg_value("attr_name","attr_val"); // attr_val may contain PVs
** fetch_dlg_value("attr_name","pv"); // pv is $var or $avp
Changed lines 96-99 from:
- $dlg_val("attr_name"); // set and get available
3) added new function create_dialog() to explicitly create the dialog from the script (instead of waiting for the t_relay()) - this function is also available via the module API

to:
** $dlg_val("attr_name"); // set and get available
* added new function create_dialog() to explicitly create the dialog from the script (instead of waiting for the t_relay()) - this function is also available via the module API


!!!! Pua module
* xcap-diff event support


!!!! AVPOPS module
new:
* added support for multiple DB connection (different DBs, different DB types, different DB hosts). Module parameter "db_url" allows multiple definitions. All AVPOPS DB ops may indicate the usage of a specific/different db_url.
Deleted lines 107-120:
* fixed tight dialog matching for pre 200 OK messages
* fixed race condition for matching post 200 OK messages
* prevent initial requests with preloaded route to be processed as sequential requests
* fixed dialog searching (value based) through the profiles - a dialog may be inserted in the same profile multiple times, but with different values, so iterate thorugh all of them.
* several fixes on DB_MODE_SHUTDOWN mode

!!!! Pua module
* xcap-diff event support


!!!! AVPOPS module
new:
* added support for multiple DB connection (different DBs, different DB types, different DB hosts). Module parameter "db_url" allows multiple definitions. All AVPOPS DB ops may indicate the usage of a specific/different db_url.
fixes:
Changed lines 285-321 from:
!!!! DB area

!!!!! Prepared statements

The support in DB API was already commited.\
There is a first module already using prepared statements
support for queries - auth_db.\
Left to do:
* upload on SVN the prepared statement implementation for mysql driver; it is under testing right now
* modify other modules (like usrloc, presence, etc) to use prepared statements (when available)


!!!!! Memory fragmentation

Rework the DB result structure in order to avoid memory
fragmentation:
* the idea is eliminate the usage of small chucks of memory (4-10 bytes);
* preliminary work shows that it is possible to reduce with almost 60% the numbers of mem chunks


!!!! Memory cache support

!!!!! Memory Cache API
A new API in core to allow development of different modules that implements memory functionalities like memory_store and memory_fetch\
Status: API is already ready, under final tests -> to be uploaded

!!!!! Local memory store
New module that implements local memory storage support by storing Attribute-Value pairs in shared memory\
Status: ready, under final tunings and testing

!!!!! MemCache implementation
Future new implementation of the memory cache via memcache system (for external interaction) - not necessary planned for 1.5

!!!!! SystemV sharing
Future new implementation of the memory cache via System V shared mem (for external interaction) - not necessary planned for 1.5

to:

February 02, 2009, at 08:00 PM by 81.180.102.217 -
Changed line 12 from:
* fixed memory leaks
to:
* fixed memory leaks (modules and core)
Changed lines 33-41 from:
* (5085) fixed bug in creating the pid file : if opensips is changing user, it needs also to change the owner of the pid file, so that it will be able to deleted at the end.
Affected scenario :
1) opensips is launched by root but configured to run as opensips user
2) pid file is created as user root -> pid file is owned by root
3) opensips deamonizes and runs as opensips
4) opensips shutdown and, as user opensips is not able to remove pid file which is owned by root
* added support in the MI internal API for doing flush (partial write of the MI reply tree). This will allow functions that output large amount of date to return the data in multiple sequances. -> function will be able to retune any amount of data without any memeory issues.

to:
* fixed bug in creating the pid file : if opensips is changing user, it needs also to change the owner of the pid file, so that it will be able to deleted at the end. (Affected scenario : (1) opensips is launched by root but configured to run as opensips user; (2) pid file is created as user root -> pid file is owned by root; (3) opensips deamonizes and runs as opensips ; (4) opensips shutdown and, as user opensips is not able to remove pid file which is owned by root
* added support in the MI internal API for doing flush (partial write of the MI reply tree). This will allow functions that output large amount of date to return the data in multiple sequences. -> function will be able to retune any amount of data without any memory issues.

January 26, 2009, at 02:21 PM by 81.180.102.217 -
Changed line 166 from:
!!! RLS module
to:
!!!! RLS module
January 26, 2009, at 02:20 PM by 81.180.102.217 -
Added lines 10-250:
!!!! Generic Fixes
* OS portability (mainly Solaris fixes)
* fixed memory leaks
* reduced memory fragmentation
* replaced strncmp by strncasecmp in comparing SIP/SDP headers

!!!! Tools fixing
* auto detection for libraries location
* compile options
* solaris packaging
* opensipsctl - dialplan support
* opensipcctl - changed behaviour in restart. If opensips is already stopped, does not exit, but it tries to start it.


!!!! Core
* Add support for parsing the bandwidth attribute inside SDP: b=<bwtype>:<bandwidth>
* Added support in the parser to identify the content-subtype "media_control+xml" [RFC5168]
* internal rework of the functions for setting the RURI
* internal L new functions for searching the headers (rev 4833)
* internal optimization & cleanup of script functions operating with strings : STRING params replaced with STR to avoid len calculation
* allow negative debug level (starting from L_ERR, the debug vals are negative)
* removed old "reply_to_via" core paramter as it is violating the RFC 3261.
* fix bug in preserving URI scheme - all functions that are performing partial change of the RURI (like rewritehostport, rewriteuser, strip, prefix, striptail, setport, sethost) were overwriting the URI scheme to SIP
* (5085) fixed bug in creating the pid file : if opensips is changing user, it needs also to change the owner of the pid file, so that it will be able to deleted at the end.
Affected scenario :
1) opensips is launched by root but configured to run as opensips user
2) pid file is created as user root -> pid file is owned by root
3) opensips deamonizes and runs as opensips
4) opensips shutdown and, as user opensips is not able to remove pid file which is owned by root
* added support in the MI internal API for doing flush (partial write of the MI reply tree). This will allow functions that output large amount of date to return the data in multiple sequances. -> function will be able to retune any amount of data without any memeory issues.


!!!! Dialog Module
new:
* improved dialog state machine to be more flexible
* better dialog matching (more efficient)
* at timeout, the dialog module automatically sends BYE in both directions.
* 1) dialog persistent falgs added. These flags will be visible for all the requests that belong to the same dialog.
Available functions:
- set_dlg_flag("n");
- reset_dlg_flag("n");
- is_dlg_flag_set("n");
Available PVs:
- $DLG_flags (can be used directly from script via bitwise ops)
2) dialog persistent attributes. These attribute are visible for all the requests that belong to the sae dialog; they can be manipulated (added,fetched) during the dialog lifetime.
Available functions:
- store_dlg_value("attr_name","attr_val"); // attr_val may contain PVs
- fetch_dlg_value("attr_name","pv"); // pv is $var or $avp
Available PVs:
- $dlg_val("attr_name"); // set and get available
3) added new function create_dialog() to explicitly create the dialog from the script (instead of waiting for the t_relay()) - this function is also available via the module API


fixes:
* fixed tight dialog matching for pre 200 OK messages
* fixed race condition for matching post 200 OK messages
* prevent initial requests with preloaded route to be processed as sequential requests
* fixed dialog searching (value based) through the profiles - a dialog may be inserted in the same profile multiple times, but with different values, so iterate thorugh all of them.
* several fixes on DB_MODE_SHUTDOWN mode

!!!! Pua module
* xcap-diff event support


!!!! AVPOPS module
new:
* added support for multiple DB connection (different DBs, different DB types, different DB hosts). Module parameter "db_url" allows multiple definitions. All AVPOPS DB ops may indicate the usage of a specific/different db_url.
fixes:
* fixed bogus handling of table name in avpops_db_xxxx functions


!!!! PRESENCE module
new:
* new event "dialog;sla"
* introduce MI command to trigger database cleanup
* improved Subscribe receive sockinfo storing and processing:
- keep a pointer to the sockinfo structure in memory
- when updating in database - store the corresponding string
- when fetching dialog info from database parse the string and search for the sockinfo structure
fixes:
* fixed BLA when call in put on hold
* add "transport=proto" paramter to the contact if other proto than UDP is used.

!!!! auth_radius module
new:
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)


!!!! avp_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)



!!!! group_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)

!!!! uri_radius module
* use SIP callid as Acct-Session-Id in orde to create a relationship between an auth and acc request (RFC2866, xection 5.5)



!!!! SST module
* fixed improper setting of the dialog timeout value (from sst to dialog)
* fixed sending of malformed replies
* set the default value of MINSE to 60 if the header exists


!!!! gflags module
* fixed is_gflag MI function - function returns true if all bits (from bitmask) are set


!!!! TM module
* minor branch for parallel forking (minor branch is a branch not taken into account during branch selection when closing a transaction)
* Added infrastructure for tm callback parameter cleanup.(internal)
* as TM is doing automatic release of the transactions at the end of script, the t_release() function is not longer available in script. This a low level function in transaction processing and all releated processing is automatically done, so the user must not be aware or take care of it.
* new functions added:
t_cancel_branch()
t_cancel_call()
* in failure route, use the msg RURI as first branch (as for request route), instead of using only the appened branches. This is part of a bigger plan to align the scripting in failure route and request route. There will be no need to call append_branch() in failure route, just be make use of the RURI for relay
fixes:
* fixed e2eACK mathing for local replied transaction - extended also for 3261 matching.
* fixed race in concurent callback execution -> random crash

!!!! NATHELPER module
* improved logic for extracting the body from the SIP message
* Merge in several recent RTPproxy related features from the iptel's SER.
o New rtpproxy_offer() and rtpproxy_answers() functions whose purpose is
similar to force_rtp_proxy's 'S' flag (to allow SDP-less INVITEs), but
providing cleaner API.
o New family of functions rtpproxy_stream2uac(), rtpproxy_stream2uas(),
rtpproxy_stop_stream2uac() and rtpproxy_stop_stream2uas() allowing to
play pre-recorded announcement/MOH to one or both parties in response
to various events. This feature requires latest 1.2 version snapshor
of RTPproxy available at http://www.rtpproxy.org
o Inclease list of recognizable and proxable streams with rtp/avpf,
rtp/savp and udp/bfcp.
(rev 4935)

o Move some of the functions out of the overly long nathelper.c.

!!!! TEXTOPS module
* added two new functions to be used from the script:
- strip_body() : deletes the message body
- add_body(new_body, content_type): adds a body to the message, replacing the initial one if it exi

!!!! ACC module
new:
* early_media module parameter triggers reply accouting for all provisional replies with body (not only 183).
* adding message context for the accouted values - an extra accouting value may come from request context, but also from reply context. This new functionality provides easy and automatic access to all information from the reply.


!!!! URI_DB module
new:
* use DB API function for proper check on the table verions (4843)
* new statistic variables ??

!!! RLS module
new:
* ANCA (4854) - - fixed bugs in RLS discovered at SIPIT
- use rls-services document to take the list instead of resource-list document
- send 200 OK faster so that retransmissions don't occur because of time consumming processing
- added presence_server exported parameter to have the possibility to set the address of the presence server and avoid Subscribe messages beeing sent by the RLS bouncing on and off the main proxy
- fixed wrong double quotes in Content-Type (thanks also to Yoo Chan Jeon <yoojeon@gmail.com> for noticing this)
- fixed a memory leack for subscribing passing through rls but were for presence server
- check first the condition of containing header "Supported: eventlist" so as to avoid additional processing for messages that are not for RLS
* ANCA (4871) - - added special return code for rls_handle_notify function to show wheter the Notify request was processed or not by RLS (suggested by Adrian Georgescu<ag@ag-projects.com>
- added a INFO level message for Subscribe messages processed by RLS with the format
Subscription from [watcher] for resource list uri [list_uri] expanded to [no_of_contacts] contacts (suggested by Adrian Georgescu<ag@ag-projects.com>)
- updated the use of sockinfo field from subst_t structure to the definition commited in rev 4856
- fixed a bug in timer_notify_update function related to the relevance of expires value(relative instead of absolute)
- added deleting record from rls_presentity table when a Notify with subscription-state=terminate is received instead of beeing deleted on timer


!!!! SL module
new:
* new internal function to fetch the generated to_tag

!!!! RR module
new:
* added new PV - $rr_params to export the entire Route param string


!!!! EXEC module
* New extension in exec module (based on exec_avp code) that enables to read an environment variable and put its value inside an avp. For example, exec_getenv("HOSTNAME",$avp(s:hostname));


!!!! CARRIERROUATE module
new:
* fetch support


!!!! AUTH module
new:
* added module parameter 'disable_nonce_check' that allows disabling the nonce reusability checking
* Use the STALE_NONCE error code for the nonce reused case as well


!!!! DISPATCHER module
new:
* more efficient way of generating the probing requests
* aligned lcr module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()


!!!! GROUP module
new:
* Acceptance of a pseudovariable as second argument (group to check) of is_user_in function().


!!!! CFGUTILS module
new:
* Acceptance of a pseudovariable argument in sleep and usleep functions

!!!! LCR module
-aligned lcr module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()

!!!! UAC REDIRECT module
-aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()

!!!! CPL-c module
-aligned module to new way of filling in branches in Failure Route (which is the same as for Request Route):
first branch goes to RURI
following branches are added with append_branch()

!!!! PERMISSION module
new:
allow_trusted(), allow_address() are allowed to be used in reply route.


!!!! registrar module
new:
* registered(), save() and lookup() functions may take an optional second param with a custome AOR. Mainly to tests more than only the RURI as AOR: registered("location","$fu");
* "aor_avp" module parameter is dropped and useless


January 26, 2009, at 01:40 PM by 81.180.102.217 -
Changed lines 51-91 from:
C) Data flush in MI commands - this new addition is to fix the
limitation related to commands not able to return large volume of data
in replies (like listing all the registered users, all the ongoing
dialogs, etc)
- MI API was already changed to allow such flush commands
- mi_fifo module implements the new flush functionality
Status: under testing, not commited yet
- implement flush for mi_datagram and mi_xmlrpc
Status: under devel


D) new load-balancing module - module to do traffic routing based on
real load-balancing (by counting the load -as ongoing calls- of each peer).
Status: under development


E) SIPtrace enhancements:
- dialog support
- stateless ACK tracing to be fixed
- fixed Cancel tracing

F) new SIP identity module:
an old submission for OpenSER 1.2, the identity module was
refurbished and updated for OpenSIPS/OpenSER 1.5.0
Status: testing and fixing some design limitation


G) Domains module - export the domain to core in order to be used as
aliases (fixes the preloaded RR when domain is used instead of IPs)
- new core API to allow alias registrations
- upgrade domains module to register the loaded modules via core API

Status: under devel

H) Various small (but important) module enhancements:

1) dialog module
- ability to check if the Route info from a sequential request
do matches the route info stored in the dialog - this will allow to
check the validity of sequential requests and to detect malicious BYE
(for example)
to:
!!!! Data flush in MI commands
This new addition is to fix the limitation related to commands not able to return large volume of data in replies (like listing all the registered users, all the ongoing dialogs, etc).\
Status:
* MI API was already changed to allow such flush commands ; Status: on SVN
* mi_fifo module implements the new flush functionality ; Status: under testing, not commited yet
* implement flush for mi_datagram and mi_xmlrpc ; Status: under devel


!!!! Load-balancing module
New load-balancing module - module to do traffic routing based on real load-balancing (by counting the load -as ongoing calls- of each peer).\
Status: under development


!!!! SIPtrace module
Enhancements:
* dialog support
* stateless ACK tracing to be fixed
* fixed Cancel tracing


!!!! SIP identity module

An old submission for OpenSER 1.2, the identity module was refurbished and updated for OpenSIPS/OpenSER 1.5.0\
Status:
* testing
* fixing some design limitation


!!!! Domains module

Export the domain to core in order to be used as aliases (fixes the preloaded RR when domain is used instead of IPs):
* new core API to allow alias registrations
* upgrade domains module to register the loaded modules via core API

Status: under devel

!!!! Various small (but important) module enhancements:

!!!!! dialog module
* Ability to check if the Route info from a sequential request do matches the route info stored in the dialog - this will allow to
check the validity of sequential requests and to detect malicious BYE (for example)
Changed lines 93-95 from:
2) TM module
- t_relay - automate creation of transaction -> more simple to
use the function
to:
!!!!! TM module
* t_relay - automate creation of transaction -> more simple to use the function
Changed lines 96-104 from:
3) UAC module
- uac_replace_from() allowed per branch - this is a bit
complicated as requires changes in TM

4) Nathelper
- simplify the usage of sets of rtpproxys - no need for
additional functions as we can pass now more than 2 params to module
functions.
to:
!!!!! UAC module
* uac_replace_from() allowed per branch - this is a bit complicated as requires changes in TM

!!!!! Nathelper
* simplify the usage of sets of rtpproxys - no need for additional functions as we can pass now more than 2 params to module functions.
January 26, 2009, at 01:35 PM by 81.180.102.217 -
Changed lines 3-4 from:
to:
(:toc-float Table of Content:)
January 26, 2009, at 01:35 PM by 81.180.102.217 -
Changed line 6 from:
to:
----
Changed line 10 from:
to:
----
Changed lines 13-104 from:
TO BE completed.
to:
!!!! DB area

!!!!! Prepared statements

The support in DB API was already commited.\
There is a first module already using prepared statements
support for queries - auth_db.\
Left to do:
* upload on SVN the prepared statement implementation for mysql driver; it is under testing right now
* modify other modules (like usrloc, presence, etc) to use prepared statements (when available)


!!!!! Memory fragmentation

Rework the DB result structure in order to avoid memory
fragmentation:
* the idea is eliminate the usage of small chucks of memory (4-10 bytes);
* preliminary work shows that it is possible to reduce with almost 60% the numbers of mem chunks


!!!! Memory cache support

!!!!! Memory Cache API
A new API in core to allow development of different modules that implements memory functionalities like memory_store and memory_fetch\
Status: API is already ready, under final tests -> to be uploaded

!!!!! Local memory store
New module that implements local memory storage support by storing Attribute-Value pairs in shared memory\
Status: ready, under final tunings and testing

!!!!! MemCache implementation
Future new implementation of the memory cache via memcache system (for external interaction) - not necessary planned for 1.5

!!!!! SystemV sharing
Future new implementation of the memory cache via System V shared mem (for external interaction) - not necessary planned for 1.5


C) Data flush in MI commands - this new addition is to fix the
limitation related to commands not able to return large volume of data
in replies (like listing all the registered users, all the ongoing
dialogs, etc)
- MI API was already changed to allow such flush commands
- mi_fifo module implements the new flush functionality
Status: under testing, not commited yet
- implement flush for mi_datagram and mi_xmlrpc
Status: under devel


D) new load-balancing module - module to do traffic routing based on
real load-balancing (by counting the load -as ongoing calls- of each peer).
Status: under development


E) SIPtrace enhancements:
- dialog support
- stateless ACK tracing to be fixed
- fixed Cancel tracing

F) new SIP identity module:
an old submission for OpenSER 1.2, the identity module was
refurbished and updated for OpenSIPS/OpenSER 1.5.0
Status: testing and fixing some design limitation


G) Domains module - export the domain to core in order to be used as
aliases (fixes the preloaded RR when domain is used instead of IPs)
- new core API to allow alias registrations
- upgrade domains module to register the loaded modules via core API

Status: under devel

H) Various small (but important) module enhancements:

1) dialog module
- ability to check if the Route info from a sequential request
do matches the route info stored in the dialog - this will allow to
check the validity of sequential requests and to detect malicious BYE
(for example)

2) TM module
- t_relay - automate creation of transaction -> more simple to
use the function

3) UAC module
- uac_replace_from() allowed per branch - this is a bit
complicated as requires changes in TM

4) Nathelper
- simplify the usage of sets of rtpproxys - no need for
additional functions as we can pass now more than 2 params to module
functions.
January 26, 2009, at 12:19 PM by 81.180.102.217 -
Changed lines 4-13 from:
'''OpenSIPS''' is free software released under
to:
'''OpenSIPS'''/'''OpenSER''' 1.5.0 is the current development version.


!!! What is new in 1.5.0

TO BE completed.

!!! What is still under development

TO BE completed.
January 26, 2009, at 12:11 PM by 81.180.102.217 -
Added lines 1-4:
!! Main -> [[Releases|Releases]] -> Version 1.5.x
----

'''OpenSIPS''' is free software released under

Page last modified on April 25, 2013, at 05:14 PM