Upgrade Kamailio from v5.4.x to v5.5.0 (devel)

The page contains the details about the changes that were made to old components during the development of v5.5.0 compared with what existed in v5.4.x. It does not include the brand new modules, focusing on how to upgrade database and configuration file from v5.4.x to run with Kamailio 5.5.0.

Previous Stable Release

If you look for the guidelines to upgrade to previous stable release, see:

Remarks

Following tokens are used to mark the changes:

  • INF - the change doesn't really have any direct impact - no action required in old config
  • CPM - the change was used with the new value via explicit parameter in default config file from old releases
  • RCM - the change is recommended to be done if you had an explicit different or lower value for this parameter in old config
  • UPG - the change has to be done, older config does not work any longer

Modules

Upgraded Modules

  • none

Removed Modules

  • none

Renamed Modules

userblacklist to userblocklist

Impacted resources:

  • version table, userblacklist and globalblacklist entries renamed to userblocklist and globalblocklist
  • database table globalblacklist renamed to globalblocklist - its definition is now:
CREATE TABLE globalblocklist (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  prefix varchar(64) NOT NULL DEFAULT '',
  allowlist tinyint(1) NOT NULL DEFAULT 0,
  description varchar(255) DEFAULT NULL,
  PRIMARY KEY (id),
  KEY globalblocklist_idx (prefix)
);

Note also the changes in the column names and indexes.

  • database table userblacklist renamed to userblocklist - its definition is now:
CREATE TABLE userblocklist (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  username varchar(64) NOT NULL DEFAULT '',
  domain varchar(64) NOT NULL DEFAULT '',
  prefix varchar(64) NOT NULL DEFAULT '',
  allowlist tinyint(1) NOT NULL DEFAULT 0,
  PRIMARY KEY (id),
  KEY userblocklist_idx (username,domain,prefix)
);

Note also the changes in the column names and indexes.

Internal Libraries

Core

Parameters

Dst Blocklist Parameters

All global parameters related to dst blocking are now using blocklist instead of blacklist in the name, see:

For example, use_dst_blacklist used in older versions has to be replaced by use_dst_blocklist.

Misc

  • #!substdef "/match/replacement/flags" evaluates the replacement for variables to be coherent with #!subst, if there are variables that should not be evaluated during pre-processing phase, use $$ at the beginning of variable (e.g., $$var(x)*

Database

MySQL Database Structure

Run following SQL statements in MySQL client to upgrade database structure from v5.4 to v5.5:

-- topos_d table
ALTER TABLE topos_d ADD COLUMN x_context varchar(64) NOT NULL DEFAULT '';
UPDATE version SET table_version=2 WHERE TABLE_NAME='topos_d';

-- topos_t table
ALTER TABLE topos_t ADD COLUMN x_context varchar(64) NOT NULL DEFAULT '';
UPDATE version SET table_version=2 WHERE TABLE_NAME='topos_t';

-- uacreg table
ALTER TABLE uacreg ADD COLUMN contact_addr varchar(255) NOT NULL DEFAULT '';
UPDATE version SET table_version=5 WHERE TABLE_NAME='uacreg';

-- IMPORTANT: see also the notes about the userblocklist module