Upgrade Kamailio from v4.3.x to v4.4.0
The page contains the details about the changes that were made to old components during the development of v4.4.0 compared with what existed in v4.3.x. It does not include the brand new modules, focusing on how to upgrade database and configuration file from v4.3.x to run with Kamailio devel.
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
Modules
ims_dialog
The dialog-ng module was renamed to ims_dialog.
The modparams statements in your configuration file must be updated to reflect the new name of the module.
The functions for routing blocks are the same, no changes are required there.
Core
Parameters
fork
(INF) This is just heads up notification that the fork parameter is planned to be refactored in the next version, because fork=no disables many features without explicit visibility (e.g., no tcp/tls, only listening on first network interface). The value fork=yes will preserve existing behaviour.
Database
There are quite minimal changes to the database structure, in short:
- presence active_watchers table has new columns
- permissions trusted table has new columns
- uac uacreg table has new columns
MySQL Database Structure
Run following SQL statements in MySQL client to upgrade database structure from v4.3 to v4.4:
-- table: active_watchers
ALTER TABLE active_watchers
ADD COLUMN flags int(11) NOT NULL DEFAULT '0',
ADD COLUMN user_agent varchar(255) DEFAULT '' NOT NULL;
DELETE FROM version WHERE TABLE_NAME='active_watchers';
INSERT INTO version (`table_name`, `table_version`) VALUES ('active_watchers','12');
-- table: trusted
ALTER TABLE `trusted`
ADD COLUMN priority int(11) NOT NULL DEFAULT '0',
ADD COLUMN ruri_pattern varchar(64) NULL,
CHANGE COLUMN tag tag varchar(64) NULL;
DELETE FROM version WHERE TABLE_NAME='trusted';
INSERT INTO version (`table_name`, `table_version`) VALUES ('trusted','6');
-- table: uacreg
ALTER TABLE uacreg
ADD COLUMN reg_delay int(11) NOT NULL DEFAULT '0',
ADD COLUMN flags int(11) NOT NULL DEFAULT '0';
DELETE FROM version WHERE TABLE_NAME='uacreg';
INSERT INTO version (`table_name`, `table_version`) VALUES ('uacreg','2');
Postgres Database Structure
Run following SQL statements in psql client to upgrade database structure from v4.3 to v4.4:
-- table: active_watchers
ALTER TABLE active_watchers ADD COLUMN flags INTEGER DEFAULT 0 NOT NULL;
ALTER TABLE active_watchers ADD COLUMN user_agent VARCHAR(255) DEFAULT '' NOT NULL;
DELETE FROM version WHERE TABLE_NAME='active_watchers';
INSERT INTO version (TABLE_NAME, table_version) VALUES ('active_watchers','12');
-- table: trusted
ALTER TABLE trusted ADD COLUMN priority INTEGER DEFAULT 0 NOT NULL;
ALTER TABLE trusted ADD COLUMN ruri_pattern VARCHAR(64) NULL;
ALTER TABLE trusted ALTER COLUMN tag TYPE VARCHAR(64);
DELETE FROM version WHERE TABLE_NAME='trusted';
INSERT INTO version (TABLE_NAME, table_version) VALUES ('trusted','6');
-- table: uacreg
ALTER TABLE uacreg ADD COLUMN reg_delay INTEGER DEFAULT 0 NOT NULL;
ALTER TABLE uacreg ADD COLUMN flags INTEGER DEFAULT 0 NOT NULL;
DELETE FROM version WHERE TABLE_NAME='uacreg';
INSERT INTO version (TABLE_NAME, table_version) VALUES ('uacreg','2');