Skip to content

Migration from 1.4.x to 1.5.x

This section is to provide useful help in migrating your OpenSIPS installations from any release from 1.4 branch to any release from 1.5 branch.

You can find the all the new additions in 1.5.x release compiled under this page. Overviewing it, may help you understanding the migration / update process.


The database structure was not affected by major changes (like changing the format existing tables). But new tables were added (corresponding to the newly added modules).

The biggest change concerning the DB structure was reworking some datatypes for MYSQL - replacing varchar with char in order to speed up the DB access.

You can migrate your 1.4.x DB to the 1.5.x format by using the opensipdbctl(deprecated) or osipsconsole tools:

Terminal window
$ opensipsdbctl migrate opensips_1_4 opensips_1_5
# or
$ osipsconsole
> migrate opensips_1_4 opensips_1_5
> quit
$

where :

  • opensips_1_4 is the existing DB name corresponding to version 1.4.x format
  • opensips_1_5 is the DB name to be created for 1.5.x format

Take care and edit (if necessary) the opensipsctlrc / osipsconsolerc files if you want to customize the DB users used for accessing the new DB.



There is no need to call “append_branch()” function in failure_route in order to use the RURI - you still need to use it only if you want to do parallel forking.

# in 1.4.x
failure_route[2]
if (t_check_status("408")) {
# set new RURI
rewritehostport("my_voicemail.com:5060");
append_branch();
t_relay();
}
}
->
# in 1.5.x
failure_route[2]
if (t_check_status("408")) {
# set new RURI
rewritehostport("my_voicemail.com:5060");
t_relay();
}
}

Affected modules (from scripting perspective) are:

  • uac_redirect, get_redirects() function
  • lcr, next_gw() function
  • dispatcher, ds_next_xxxx() functions

After the listed functions, there is no need to call ‘append_branch()’ any more.


A set of existing module do requires (as module dependency) a newly added module called “signaling”.

In other words, if you use one of the following module, you will need to load also the “signaling” module:

  • auth
  • auth_db
  • auth_diameter
  • cpl-c
  • options
  • perl
  • presence
  • presence_xml
  • ratelimit
  • registrar
  • rls
  • sst

  • auto_reconnect module option was dropped (auto-reconnect is by default due prepared statements).
  • before using the profile functions, it is mandatory to call “create_dialog” function to create the dialog.
  • t_release” function is obsoleted - there is no need to use it as the TM will automatically release any pending transactions.
  • aor_avp” module paramter is obsoleted - the lookup() / save() / registered() functions takes as third optional parameter a pseudo-variable containing a custom AOR value.
  • the return code “STALE_NONCE” will be also reported if nonce reusage case is detected by “www/proxy_authorize()” functions

All the RADIUS module do require a new RADIUS AVP to be available in the RADIUS dictionary : Acct-Session-Id

This AVP should be provided by the radius client lib you are using as it is a standard SIP RADIUS AVP. IF not, add to your dictionary AVP:

ATTRIBUTE Acct-Session-Id 44 string # RFC2865, acc

osipsconsole, an interactive console like application will replace opensipsctl and opensipsdbctl - the console offers the save functions as the scripts it replace.

It is indicated to start migrating to osipsconsole asap.