– Kamailio SIP Server –

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