Documentation

Documentation.Migration-2-2-0-to-2-3-0 History

Hide minor edits - Show changes to output

June 10, 2019, at 10:53 AM by razvancrainea -
Added lines 38-41:

!!!! Core

* '''re.subst''' transformation requires a double-escaping characters for '''{''' and '''}''' matching
April 26, 2017, at 04:51 PM by rvlad_patrascu -
Changed lines 94-95 from:
* For all module parameters accepting a TLS domain ID in their value, the syntax was changed : "tls_dom:value" was replaced with "[tls_dom]value", to avoid any conflicts between the separator and the actual value. For examples, modparam("tls_mgm", "tls_method", "dom1:tlsv1") is replaced by modparam("tls_mgm", "tls_method", "[dom1]tlsv1")
to:
* For all module parameters accepting a TLS domain ID in their value, the syntax was changed : "tls_dom:value" was replaced with "[tls_dom]value", to avoid any conflicts between the separator and the actual value. For example, modparam("tls_mgm", "tls_method", "dom1:tlsv1") is replaced by modparam("tls_mgm", "tls_method", "[dom1]tlsv1").
* the syntax for '''client_domain''' parameter was changed when defining name based domains from ''dom_id=dom_name'' to ''dom_name''
Changed line 98 from:
** the old '''id''' DB column was renamed as '''domain''' (TLS domain)
to:
** the old '''id''' DB column was renamed as '''domain''' (TLS domain) and represents the domain name
Added lines 101-102:
** the NOT NULL restriction was removed on the '''address''' column
** an unique constraint was added for the (''domain'',''type'') pair of columns
March 16, 2017, at 07:43 PM by razvancrainea -
Changed line 20 from:
* opensips_2_2 is the existing DB name corresponding to version 2.3.x format
to:
* opensips_2_2 is the existing DB name corresponding to version 2.2.x format
March 16, 2017, at 07:41 PM by razvancrainea -
Changed line 1 from:
!!!!!Documentation -> [[Documentation.Migration|Migration]] -> Migration from 2.3.x to 2.3.0
to:
!!!!!Documentation -> [[Documentation.Migration|Migration]] -> Migration from 2.2.x to 2.3.0
Changed lines 6-7 from:
This section is meant to provide useful help in migrating your OpenSIPS installations from the '''2.3.0''' version to '''2.3.0'''.
to:
This section is meant to provide useful help in migrating your OpenSIPS installations from the '''2.2.0''' version to '''2.3.0'''.
Changed line 15 from:
You can migrate your 1.10.x MySQL DB to the 1.11.0 format by using the '''opensipsdbctl''' tool :
to:
You can migrate your 2.2.x MySQL DB to the 2.3.0 format by using the '''opensipsdbctl''' tool :
March 16, 2017, at 04:30 PM by 136.243.23.236 -
Added lines 95-100:
* As we migrated to full DB support (no files are used anymore for TLS provisioning), the following DB-related changes need to be performed:
** '''id_col''' module parameter was renamed as '''domain_col'''
** the old '''id''' DB column was renamed as '''domain''' (TLS domain)
** new '''id''' column added as auto increment primary key (integer)
** the columns '''certificate''', '''private_key''', '''ca_list''' and '''dh_params''', are now holding the actual data (as BLOB) instead of keeping the path to the files; you will need to perform an LOAD_FILE('/path/to/file') on this fields in order to populate them.
** NOTE: the DB migration does not copy any records for this table.
March 16, 2017, at 03:12 PM by rvlad_patrascu -
Added lines 48-67:

!!!! CLUSTERER
* '''server_id''' parameter renamed to '''current_id''' (same meaning)
* '''persistent_mode''' parameter removed; persistency is new required by the new topology discovery mechanism and the DB is periodically updated
* column name parameters removed:
** ''clusterer_id_col''
** ''machine_id_col''
** ''failed_attempts_col''
** ''last_attempt_col''
** ''duration_col''
** ''no_tries_col''
* column name parameters added:
** ''node_id_col''
** ''ls_seq_no_col''
** ''top_seq_no_col''
** ''no_ping_retries_col''
** ''priority_col''
** ''sip_addr_col''
** ''id_col''
* '''clusterer_set_status''' MI command has now only two parameters: ''cluster_id'' and ''status'' (0 - Disabled, 1 - Enabled)
March 16, 2017, at 12:09 PM by 136.243.23.236 -
Changed line 67 from:
** replace the removed '''add_body()''' function with the new [[http://www.opensips.org/html/docs/modules/2.3.x/sipmsgops.html#id294201 | add_body_part() ]] function. IMPORTANT: '''add_body()''' was removing the existing body before adding the new one; as working with body parts (and not with the body as a whole), '''add_body_part()''' adds a new body part without removing the existing parts. So, the replicate the old behavior, you should first use '''remove_body_part()''' to remove the existing part.
to:
* replace the removed '''add_body()''' function with the new [[http://www.opensips.org/html/docs/modules/2.3.x/sipmsgops.html#id294201 | add_body_part() ]] function. IMPORTANT: '''add_body()''' was removing the existing body before adding the new one; as working with body parts (and not with the body as a whole), '''add_body_part()''' adds a new body part without removing the existing parts. So, the replicate the old behavior, you should first use '''remove_body_part()''' to remove the existing part.
March 15, 2017, at 10:51 PM by 136.243.23.236 -
Added lines 72-75:

!!!! TLS_MGM
* For all module parameters accepting a TLS domain ID in their value, the syntax was changed : "tls_dom:value" was replaced with "[tls_dom]value", to avoid any conflicts between the separator and the actual value. For examples, modparam("tls_mgm", "tls_method", "dom1:tlsv1") is replaced by modparam("tls_mgm", "tls_method", "[dom1]tlsv1")
March 15, 2017, at 02:24 PM by 136.243.23.236 -
Added lines 62-67:


!!!! SIPMSGOPSS
* replaced the removed '''filter_body()''' and '''strip_body()''' functions with the new [[http://www.opensips.org/html/docs/modules/2.3.x/sipmsgops.html#id294132 | remove_body_part() ]] function
* replaced the outdated '''has_body()''' function (not yet removed) with the new [[http://www.opensips.org/html/docs/modules/2.3.x/sipmsgops.html#id294006 | has_body_part() ]] function
** replace the removed '''add_body()''' function with the new [[http://www.opensips.org/html/docs/modules/2.3.x/sipmsgops.html#id294201 | add_body_part() ]] function. IMPORTANT: '''add_body()''' was removing the existing body before adding the new one; as working with body parts (and not with the body as a whole), '''add_body_part()''' adds a new body part without removing the existing parts. So, the replicate the old behavior, you should first use '''remove_body_part()''' to remove the existing part.
March 15, 2017, at 12:44 PM by liviu -
Changed line 75 from:
* output of the '''address_dump''' and '''subnet_dump''' MI commands with the JSON backend has been changed to allow easier parsing (see commit [[ https://github.com/OpenSIPS/opensips/commit/5fcd7db02948f5e4 | 5fcd7db0 ]] for more details)
to:
* output of the '''address_dump''' and '''subnet_dump''' MI commands with the JSON backend has been changed to allow easier parsing (see commit [[ https://github.com/OpenSIPS/opensips/commit/5fcd7db02948f5e4 | 5fcd7db0 ]])
March 15, 2017, at 12:44 PM by liviu -
Changed line 75 from:
* '''address_dump''' and '''subnet_dump''' MI output with the JSON backend now allows quicker parsing (see commit [[ https://github.com/OpenSIPS/opensips/commit/5fcd7db02948f5e4 | 5fcd7db0 ]] for more details)
to:
* output of the '''address_dump''' and '''subnet_dump''' MI commands with the JSON backend has been changed to allow easier parsing (see commit [[ https://github.com/OpenSIPS/opensips/commit/5fcd7db02948f5e4 | 5fcd7db0 ]] for more details)
March 15, 2017, at 12:43 PM by liviu -
Changed lines 69-75 from:
* ''$bavp(name)'' (branch AVPs) could not be deleted until this version. Therefore, the line ''$bavp(name) = NULL'' was a NOP, resulting in an error. From this version, ''$bavp(name) = NULL'' deletes any value stored in the BAVP, similar to how AVPs work.
to:
* ''$bavp(name)'' (branch AVPs) could not be deleted until this version. Therefore, the line ''$bavp(name) = NULL'' was a NOP, resulting in an error. From this version, ''$bavp(name) = NULL'' deletes any value stored in the BAVP, similar to how AVPs work.

----
!!! External tool migration

!!!! PERMISSIONS
* '''address_dump''' and '''subnet_dump''' MI output with the JSON backend now allows quicker parsing (see commit [[ https://github.com/OpenSIPS/opensips/commit/5fcd7db02948f5e4 | 5fcd7db0 ]] for more details)
March 15, 2017, at 11:20 AM by liviu -
Changed lines 50-52 from:
* ''weight'' column type has changed from ''INTEGER'' to ''CHAR'', to accomodate dynamically calculated weights using a communication socket (covered by the ''opensipsdbctl'' table migration tool)

* ''cache_table_size'' parameter was removed; in current version multiple '''collections''' can be defined, each having it's own size using ''cache_collections'' module parameter; there is a ''default'' collection which is created every time, which has a hash size of 512; if size change needed ''default'' collection has to be redefined using ''cache_collections'';
to:
* ''weight'' column type has changed from ''INTEGER'' to ''CHAR'', to accomodate dynamically calculated weights using a communication socket (covered by the ''opensipsdbctl'' table migration)
March 15, 2017, at 11:19 AM by liviu -
Added lines 47-51:
* ''cache_table_size'' parameter was removed; in current version multiple '''collections''' can be defined, each having it's own size using ''cache_collections'' module parameter; there is a ''default'' collection which is created every time, which has a hash size of 512; if size change needed ''default'' collection has to be redefined using ''cache_collections''

!!!! DISPATCHER
* ''weight'' column type has changed from ''INTEGER'' to ''CHAR'', to accomodate dynamically calculated weights using a communication socket (covered by the ''opensipsdbctl'' table migration tool)
Changed line 63 from:
* ''return codes'' of ''rest_get()'' and ''rest_post()'' are now '''greater than zero''' when receiving a HTTP error response code. (CURLOPT_FAILONERROR is now set to 0)
to:
* ''return codes'' of ''rest_get()'' and ''rest_post()'' are now '''positive''' (instead of negative) when receiving a HTTP error response code. (CURLOPT_FAILONERROR is now set to 0)
March 15, 2017, at 10:30 AM by razvancrainea -
Added lines 59-62:

!!!! RTPPROXY

* The deprecated ''engage_rtp_proxy'', ''unforce_rtp_proxy'', ''start_recording'' functions have been completely removed. You have to replace them in your script with ''rtpproxy_engage'', ''rtpproxy_unforce'' and ''rtpproxy_start_recording''.
March 14, 2017, at 07:37 PM by razvancrainea -
Changed lines 58-62 from:
* ''return codes'' of ''rest_get()'' and ''rest_post()'' are now '''greater than zero''' when receiving a HTTP error response code. (CURLOPT_FAILONERROR is now set to 0)
to:
* ''return codes'' of ''rest_get()'' and ''rest_post()'' are now '''greater than zero''' when receiving a HTTP error response code. (CURLOPT_FAILONERROR is now set to 0)

!!!! TM

* ''$bavp(name)'' (branch AVPs) could not be deleted until this version. Therefore, the line ''$bavp(name) = NULL'' was a NOP, resulting in an error. From this version, ''$bavp(name) = NULL'' deletes any value stored in the BAVP, similar to how AVPs work.
March 14, 2017, at 12:51 PM by ionutionita92 -
Changed line 54 from:
* in order to trace the HEP messages in the old style( plain text ) [[ http://www.opensips.org/html/docs/modules/2.3.x/proto_hep#id249692 | homer5_on ]] module parameter must be set; now, by default, the payload of the message shall be sent in JSON format; there is also the posibility to specify the [[http://www.opensips.org/html/docs/modules/2.3.x/proto_hep#id293413 | delimiter ]] between multiple payload tokens
to:
* in order to trace the HEP messages in the old style( plain text ) [[ http://www.opensips.org/html/docs/modules/2.3.x/proto_hep#id249692 | homer5_on ]] module parameter must be set; now, by default, the payload of the message shall be sent in JSON format; there is also the posibility to specify the [[http://www.opensips.org/html/docs/modules/2.3.x/proto_hep#id293413 | delimiter ]] between multiple payload tokens;
March 14, 2017, at 12:51 PM by ionutionita92 -
Added lines 48-54:

!!!! SIPTRACE
* [[ http://www.opensips.org/html/docs/modules/2.3.x/siptrace#id293469 | sip_trace ]] function now has a new parameter in 3rd position which allows to specify the types of messages to be traced; trace attributes parameter now moved in 4th position;
* hep [[ http://www.opensips.org/html/docs/modules/2.3.x/siptrace#id248959 | trace_ids ]] must now be defined using [[ http://www.opensips.org/html/docs/modules/2.3.x/proto_hep#id248031 || hep_id ]] module parameter from [[ http://www.opensips.org/html/docs/modules/2.3.x/proto_hep | proto_hep ]] module and only the name of the id from hep module shall be used in siptrace;

!!!! PROTO_HEP
* in order to trace the HEP messages in the old style( plain text ) [[ http://www.opensips.org/html/docs/modules/2.3.x/proto_hep#id249692 | homer5_on ]] module parameter must be set; now, by default, the payload of the message shall be sent in JSON format; there is also the posibility to specify the [[http://www.opensips.org/html/docs/modules/2.3.x/proto_hep#id293413 | delimiter ]] between multiple payload tokens
March 07, 2017, at 03:04 PM by liviu -
Changed line 51 from:
* ''return codes'' of ''rest_get()'' and ''rest_post()'' are now '''greater than zero''' when receiving a HTTP error response code. (CURLOPT_FAILONERROR set to 0)
to:
* ''return codes'' of ''rest_get()'' and ''rest_post()'' are now '''greater than zero''' when receiving a HTTP error response code. (CURLOPT_FAILONERROR is now set to 0)
March 07, 2017, at 03:04 PM by liviu -
Changed line 51 from:
* ''return codes'' of ''rest_get()'' and ''rest_post()'' are now '''true''' when receiving a HTTP error response code. (CURLOPT_FAILONERROR set to 0)
to:
* ''return codes'' of ''rest_get()'' and ''rest_post()'' are now '''greater than zero''' when receiving a HTTP error response code. (CURLOPT_FAILONERROR set to 0)
March 07, 2017, at 03:03 PM by liviu -
Added lines 48-51:

!!!! REST_CLIENT

* ''return codes'' of ''rest_get()'' and ''rest_post()'' are now '''true''' when receiving a HTTP error response code. (CURLOPT_FAILONERROR set to 0)
January 11, 2017, at 01:04 PM by ionutionita92 -
Changed line 47 from:
* ''cache_table_size'' parameter was removed; in current version multiple '''collections''' can be defined, each having it's own size using ''cache_collections'' module parameter; there is a ''default'' collection which is created every time, which has a hash size of 512; if size change needed ''default'' collection has to be redefined using ''cache_coolections'';
to:
* ''cache_table_size'' parameter was removed; in current version multiple '''collections''' can be defined, each having it's own size using ''cache_collections'' module parameter; there is a ''default'' collection which is created every time, which has a hash size of 512; if size change needed ''default'' collection has to be redefined using ''cache_collections'';
January 11, 2017, at 01:02 PM by ionutionita92 -
Changed lines 43-47 from:
* diameter support was removed from the module;
to:
* diameter support was removed from the module;

!!!! CACHEDB_LOCAL

* ''cache_table_size'' parameter was removed; in current version multiple '''collections''' can be defined, each having it's own size using ''cache_collections'' module parameter; there is a ''default'' collection which is created every time, which has a hash size of 512; if size change needed ''default'' collection has to be redefined using ''cache_coolections'';
July 26, 2016, at 07:06 PM by ionutionita92 -
July 26, 2016, at 07:06 PM by ionutionita92 -
Changed lines 42-43 from:
* leg parameter changed format; the modparam '''leg_fields''' definition is the same as for '''extra_fields'''. Using '''$acc_leg(tag)''' in the script will reference the last leg(the current one). A new leg can be created using '''acc_new_leg()'''. The value of the current leg can be used in the script using '''acc_current_leg''' pseudo-variable. The '''acc_leg''' script variable can be indexed both with positive values(0 is the first leg created) and negative values(-1 will get the value for the latest created leg);
to:
* leg parameter changed format; the modparam '''leg_fields''' definition is the same as for '''extra_fields'''. Using '''$acc_leg(tag)''' in the script will reference the last leg(the current one). A new leg can be created using '''acc_new_leg()'''. The value of the current leg can be used in the script using '''acc_current_leg''' pseudo-variable. The '''acc_leg''' script variable can be indexed both with positive values(0 is the first leg created) and negative values(-1 will get the value for the latest created leg);
* diameter support was removed from the module;
July 26, 2016, at 07:06 PM by ionutionita92 -
Changed lines 41-42 from:
* extra parameter changed format; '''*_extra''' paremeter(log_extra, db_extra etc.) changed to '''extra_values'''; before the definition was in the format of '''log_name=variable''' where the '''log_name''' is backend specific(AVPs for AAA, column names for databases etc). Now the definition for '''extra_values''' parameter includes the backend, the log_name and a tag in the following format '''backend: tag[->log_name][;tag->log_name]'''. The backend can be one of the following: log, db, aaa, evi. The tag will be used in the script to set extra values using '''acc_extra''' variable(e.g. '''$acc_extra(tag)=<value>'''). If the log_name is missing, it's name shall be considered to be the same as the tag. All '''*_extra_bye''' variable were removed, since now the extra variable is visible during the whole accounting process( if cdr accounting is used, the variable will be visible the whole dialog);
to:
* extra parameter changed format; '''*_extra''' paremeter(log_extra, db_extra etc.) changed to '''extra_fields'''; before the definition was in the format of '''log_name=variable''' where the '''log_name''' is backend specific(AVPs for AAA, column names for databases etc). Now the definition for '''extra_values''' parameter includes the backend, the log_name and a tag in the following format '''backend: tag[->log_name][;tag->log_name]'''. The backend can be one of the following: log, db, aaa, evi. The tag will be used in the script to set extra values using '''acc_extra''' variable(e.g. '''$acc_extra(tag)=<value>'''). If the log_name is missing, it's name shall be considered to be the same as the tag. All '''*_extra_bye''' variable were removed, since now the extra variable is visible during the whole accounting process( if cdr accounting is used, the variable will be visible the whole dialog);
* leg parameter changed format; the modparam '''leg_fields''' definition is the same as for '''extra_fields'''. Using '''$acc_leg(tag)''' in the script will reference the last leg(the current one). A new leg can be created using '''acc_new_leg()'''. The value of the current leg can be used in the script using '''acc_current_leg''' pseudo-variable. The '''acc_leg''' script variable can be indexed both with positive values(0 is the first leg created) and negative values(-1 will get the value for the latest created leg);
July 26, 2016, at 07:01 PM by ionutionita92 -
Changed lines 41-43 from:
* extra parameter changed format; '''*_extra''' paremeter(log_extra, db_extra etc.) changed to '''extra_values'''; before the definition was in the format of '''log_name=variable''' where the '''log_name''' is backend specific(AVPs for AAA, column names for databases etc). Now the definition for '''extra_values''' parameter includes the backend, the log_name and a tag in the following format '''backend: tag[->log_name][;tag->log_name]'''. The backend can be one of the
following: log, db, aaa, evi. The tag will be used in the script to set extra values using '''acc_extra''' variable(e.g. '''$acc_extra(tag)=<value>'''). If the log_name is missing, it's name shall be considered to be the same as the tag. All '''*_extra_bye''' variable were removed, since now the extra variable is visible
during the whole accounting process( if cdr accounting is used, the variable will be visible the whole dialog).
to:
* extra parameter changed format; '''*_extra''' paremeter(log_extra, db_extra etc.) changed to '''extra_values'''; before the definition was in the format of '''log_name=variable''' where the '''log_name''' is backend specific(AVPs for AAA, column names for databases etc). Now the definition for '''extra_values''' parameter includes the backend, the log_name and a tag in the following format '''backend: tag[->log_name][;tag->log_name]'''. The backend can be one of the following: log, db, aaa, evi. The tag will be used in the script to set extra values using '''acc_extra''' variable(e.g. '''$acc_extra(tag)=<value>'''). If the log_name is missing, it's name shall be considered to be the same as the tag. All '''*_extra_bye''' variable were removed, since now the extra variable is visible during the whole accounting process( if cdr accounting is used, the variable will be visible the whole dialog);
July 26, 2016, at 07:00 PM by ionutionita92 -
Added lines 40-43:

* extra parameter changed format; '''*_extra''' paremeter(log_extra, db_extra etc.) changed to '''extra_values'''; before the definition was in the format of '''log_name=variable''' where the '''log_name''' is backend specific(AVPs for AAA, column names for databases etc). Now the definition for '''extra_values''' parameter includes the backend, the log_name and a tag in the following format '''backend: tag[->log_name][;tag->log_name]'''. The backend can be one of the
following: log, db, aaa, evi. The tag will be used in the script to set extra values using '''acc_extra''' variable(e.g. '''$acc_extra(tag)=<value>'''). If the log_name is missing, it's name shall be considered to be the same as the tag. All '''*_extra_bye''' variable were removed, since now the extra variable is visible
during the whole accounting process( if cdr accounting is used, the variable will be visible the whole dialog).
July 26, 2016, at 03:33 PM by ionutionita92 -
July 26, 2016, at 01:42 PM by ionutionita92 -
Changed lines 35-39 from:
----
to:
----
!!! Script migration
The following is the full list of backwards-incompatible syntax or functional changes in the OpenSIPS configuration script (some of them are fixes):

!!!! ACC module
July 26, 2016, at 01:40 PM by ionutionita92 -
Added lines 1-35:
!!!!!Documentation -> [[Documentation.Migration|Migration]] -> Migration from 2.3.x to 2.3.0
This page has been visited {$PageCount} times.
(:toc-float Table of Content:)
----

This section is meant to provide useful help in migrating your OpenSIPS installations from the '''2.3.0''' version to '''2.3.0'''.

You can find the all the new additions in the '''2.3.0''' release compiled [[ About.Version-2-3-0| under this page]]. The ChangeLog may help your understanding of the migration / update process.

%red% Make sure you don't have any '''Makefile.conf''' files in your sources' root before starting the migration. The configuration file generated by '''menuconfig'' is not compatible with the one in older version! %%

----
!!! DB migration

You can migrate your 1.10.x MySQL DB to the 1.11.0 format by using the '''opensipsdbctl''' tool :
[@
# opensipsdbctl migrate opensips_2_2 opensips_2_3
@]
where :
* opensips_2_2 is the existing DB name corresponding to version 2.3.x format
* opensips_2_3 is the DB name to be created for 2.3 format


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


%red% NOTE that the migration tool is available only for MYSQL databases! %%

%red% NOTE that the default MySQL DB engine is now InnoDB! %%

(:toc-back Back to Table of Contents:)

----

Page last modified on June 10, 2019, at 10:53 AM