Documentation -> Migration -> Migration from 3.1.x to 3.2.0
This page has been visited 4474 times.
This section is meant to provide useful help in migrating your OpenSIPS installations from the 3.1.0 version to 3.2.0.
You can find the all the new additions in the 3.2.0 release compiled under this page. The ChangeLog may help your understanding of the migration / update process.
Make sure you don't carry a left-over Makefile.conf file in your OpenSIPS source tree if migrating to a new branch! This configuration file, generated by make menuconfig, is usually not compatible with the one of a previous major release!
1. DB migration
You can migrate your 3.1.x MySQL DB to the 3.2.x format using the opensips-cli tool :
# opensips-cli -x database migrate 3.1_to_3.2 opensips_3_1 opensips_3_2
where :
- opensips_3_1 is the existing DB name corresponding to version 3.1.x format
- opensips_3_2 is the DB name to be created for 3.2.x format
See the opensips-cli documentation for more details.
NOTE:
- the old database will not be deleted, altered or changed - it will not be touched at all
- new database will be created and data from old DB will be imported into it
Back to Table of Contents
2. Script migration
The following is the full list of backwards-incompatible syntax or functional changes in the OpenSIPS configuration script:
2.1 Global Parameters
2.2 Core Variables
- (only for 3.2.4 or earlier) the $rT pseudo-variable (topmost route type) has been replaced by $route (route call stack). The equivalent syntax is $(route[-1]{s.select,0,[}). The $rT variable has been re-introduced starting with 3.2.5, for backwards-compatibility reasons.
2.3 Core keywords
2.4 Core functions
2.5 Core MI commands
2.6 Statistics migration
3. Module migration
3.1 ACC module
- The acc_created_avp_name parameter has been completely dropped, as it was no longer being used.
3.2 PROTO_TLS module
3.3 PROTO_WSS module
3.4 TLS_MGM module
- if the tls_mgm module is only used for the management of TLS certificates and parameters by modules like db_mysql, rabbitmq etc. (and not for TLS operations by transport modules like proto_tls etc.) then the new tls_library module parameter must be set to none. Otherwise, tls_mgm will not start unless you also load tls_openssl or tls_wolfssl, even though they are not actually used in this case.
3.5 B2B_LOGIC module
- the B2B scenario logic is now implemented via OpenSIPS scripting instead of XML files. Check this tutorial for more details and examples of XML scenarios and their equivalent OpenSIPS script implementation.
- In order to simplify the migration effort, you have the option to use a legacy b2b_logic_xml module, that will be obsoleted with the next OpenSIPS 3.3 release. Use this only as a temporary solution until you properly migrate to the new variant of the b2b_logic_module.
3.6 CFGUTILS module
- the time_string parameter of check_time_rec() has been extended with a leading timezone field. Although we made strings such as "20200101T...|..." backwards-compatible with the current implementation, strings such as "|20200101T..." will now break your logic unless you prepend your input with the "timezone |" string. To use the system timezone, just prepend an empty-string timezone followed by the delimiter, i.e. "|".
- time recurrences: the byyearday, bymonth and byweekno integers are now 1-indexed instead of 0-indexed (per RFC 5545)! Make sure to convert any such data accordingly, otherwise your time recurrence strings will no longer match as expected following an upgrade to 3.2
3.7 DIALPLAN module
- the timerec column syntax has been normalized. Firstly, the "dtend" field has been added, so the final column value has been made compatible with the input of check_time_rec(). Secondly, the leading "timezone" field has been added, so it must be prepended accordingly -- in order to keep using the system timezone, just prepend a "|" string.
- time recurrences: the byyearday, bymonth and byweekno integers are now 1-indexed instead of 0-indexed (per RFC 5545)! Make sure to convert any such data accordingly, otherwise your time recurrence strings will no longer match as expected following an upgrade to 3.2
3.8 Dialog module
- the E_DLG_STATE_CHANGED parameters have changed. The hash_id and hash_entry parameters were replaced by id and db_id, to be more consistent with the output of dlg_list and what OpenSIPS advertises in the Record-Route header. If you are listening for this event in your external application, or directly in OpenSIPS script using the EVI interface, make sure you adapt the $param names to the new format.
3.9 DROUTING module
- the timerec column syntax has been normalized. Firstly, the "dtend" field has been added, so the final column value has been made compatible with the input of check_time_rec(). Secondly, the leading "timezone" field has been added, so it must be prepended accordingly -- in order to keep using the system timezone, just prepend a "|" string.
- time recurrences: the byyearday, bymonth and byweekno integers are now 1-indexed instead of 0-indexed (i.e. week 0 becomes week 1, per RFC 5545)! Make sure to convert any such data accordingly, otherwise your time recurrence strings will no longer match as expected following an upgrade to 3.2