Table of Contents

Migrating Kamailio v1.4.x to Kamailio v1.5.0

Please also take a look at this page for a overview of the changes in this release.

Changes in server core

* IMPORTANT: Pseudo-variables and Transformations are now exported by the pv module. If you use pseudo-variables and transformations in your config file, you have to load pv module:

loadmodule "pv.so"

* the meaning of the server binary parameter “-D” was changed, the old behaviour can be now achived with the new parameter “-F”.

* the size of the private memory pool was increases, it uses now 4 MB per process instead of 1 MB

* IMPORTANT: Several modules were merged - you have to remove the loading of old-name module, load the new-name module and update setting of the parameters, for example: uri in siputils complete list in next section

Changes in modules

* the functionality of the gflags module was integrated into cfgutils internal functionality, function names and MI commands are the same the parameter “initial” was renamed to “initial_gflags”

* database related parameters for the carrierroute modules were unified all column parameter have not the suffix '_col' the db_table parameter was changed to carrierroute_table

* database related parameters for the userblacklist module were unified the db_table parameter was changed to userblacklist_table * the db_mysql module evaluates the mysql DB_DECIMAL and DB_NEW_DECIMAL type now as DB_STRING, and not as DB_INT * the db_mysql module evaluates avp_db_query return values of “0” as <null>. * the db_mysql and db_unixodbc modules now copy string they received from a query, this means that memory requirements could increased * the carrierroute and userblacklist module stop now the prefix matching on a non-numerical character in the URI, in older versions its skipped them * the functionality of the options module was integrated into siputils function name was not changed, all parameters were prefixed with “options_” internal functionality is the same, only some refactoring have been done * the functionality of the uri module was integrated into siputils function names were not changed, internal functionality is the same

* the encoding and decoding functionality of the mangler module was integrated into siputils ** functions names and parameter not changed, the SDP related functions were removed

* the avp_url parameter of the avpops module was removed, just use the db_url parameter instead

* the destavp parameter in several carrierroute functions was removed, this can be achieved with the standard pseudo-variable “$rd”

Changes in database schemes

The following SQL statements (for MySQL) can be used to convert a 1.4.x database to the new scheme. Please note that this is work in progress.

UPDATE version SET table_version=3 WHERE table_name='carrierroute';
UPDATE version SET table_version=2 WHERE table_name='carrierfailureroute';
INSERT INTO version (table_name, table_version) values ('carrier_name','1');
INSERT INTO version (table_name, table_version) values ('domain_name','1');
DELETE FROM version WHERE table_name='route_tree';

CREATE TABLE domain_name (
    id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
    domain VARCHAR(64) DEFAULT NULL
);

ALTER TABLE carrierroute CHANGE domain domain INT(10) UNSIGNED DEFAULT 0 NOT NULL;
ALTER TABLE carrierfailureroute CHANGE domain domain INT(10) UNSIGNED DEFAULT 0 NOT NULL;
ALTER TABLE carrierfailureroute CHANGE next_domain next_domain INT(10) UNSIGNED DEFAULT 0 NOT NULL;
ALTER TABLE route_tree RENAME TO carrier_name;

ALTER TABLE dispatcher ADD COLUMN priority INT DEFAULT 0 NOT NULL;
UPDATE version SET table_version=3 WHERE table_name='dispatcher';

ALTER TABLE dialog ADD COLUMN sflags INT DEFAULT 0 NOT NULL;
ALTER TABLE dialog ADD COLUMN toroute INT DEFAULT 0 NOT NULL;
UPDATE version SET table_version=3 WHERE table_name='dialog';

# LCR updates are missing here

resume writing