The page contains the details about the changes that were made to old components during the development of v5.0.0 compared with what existed in v4.4.x. It does not include the brand new modules, focusing on how to upgrade database and configuration file from v4.4.x to run with Kamailio devel.
If you look for the guidelines to upgrade to previous stable release, see:
Following tokens are used to mark the changes:
The jsonrpcs module can be used instead to execute RPC commands over datagram sockets (unix socket file, IPv4 or IPv6).
The jsonrpcs module can be used instead to execute RPC commands over a FIFO file.
The xmlrpc module can be used instead to execute RPC commands over HTTP/S XMLRPC.
The pua_rpc module can be used instead to trigger presence PUBLISH or SUBSCRIBE requests via RPC commands.
It is no longer working, not being updated to use latest libs for a very long time
It is no longer working, not being updated to use latest libs for a very long time
The module that had a '-' (dash/minus) in the name were renamed to remove it, respectively:
The library has been removed.
Parts of its code have been removed or merged into other components.
The library has been removed.
The entire Management Interface (MI) code was removed. Instead of MI commands use RPC commands. The tool kamctl is using now RPC commands via jsonrpcs module.
Run following SQL statements in MySQL client to upgrade database structure from v4.4 to v5.0:
--table: dialplan ALTER TABLE dialplan CHANGE COLUMN repl_exp repl_exp VARCHAR(256) NOT NULL; -- was varchar(64) NOT NULL --table: sca_subscriptions ALTER TABLE sca_subscriptions ADD COLUMN server_id INT(11) NOT NULL DEFAULT '0'; ALTER TABLE sca_subscriptions DROP INDEX sca_expires_idx; # was INDEX (expires) ALTER TABLE sca_subscriptions ADD INDEX sca_expires_idx (server_id,expires); UPDATE version SET table_version=2 WHERE TABLE_NAME="sca_subscriptions"; --table: subscriber ALTER TABLE subscriber CHANGE COLUMN rpid rpid VARCHAR(128) DEFAULT NULL; -- was varchar(64) DEFAULT NULL ALTER TABLE subscriber CHANGE COLUMN email_address email_address VARCHAR(128) DEFAULT NULL; -- was varchar(64) NOT NULL DEFAULT '' ALTER TABLE subscriber CHANGE COLUMN password password VARCHAR(64) NOT NULL DEFAULT ''; -- was varchar(25) NOT NULL DEFAULT '' ALTER TABLE subscriber CHANGE COLUMN ha1 ha1 VARCHAR(128) NOT NULL DEFAULT ''; -- was varchar(64) NOT NULL DEFAULT '' ALTER TABLE subscriber CHANGE COLUMN ha1b ha1b VARCHAR(128) NOT NULL DEFAULT ''; -- was varchar(64) NOT NULL DEFAULT '' UPDATE version SET table_version=7 WHERE TABLE_NAME="subscriber"; --table: uacreg ALTER TABLE uacreg CHANGE COLUMN auth_proxy auth_proxy VARCHAR(128) NOT NULL DEFAULT ''; -- was varchar(64) NOT NULL DEFAULT '' ALTER TABLE uacreg CHANGE COLUMN l_domain l_domain VARCHAR(64) NOT NULL DEFAULT ''; -- was varchar(128) NOT NULL DEFAULT '' ALTER TABLE uacreg CHANGE COLUMN r_domain r_domain VARCHAR(64) NOT NULL DEFAULT ''; -- was varchar(128) NOT NULL DEFAULT '' ALTER TABLE uacreg ADD COLUMN auth_ha1 VARCHAR(128) NOT NULL DEFAULT ''; UPDATE version SET table_version=3 WHERE TABLE_NAME="uacreg";
By default, kamctl uses now JSONRPC protocol over FIFO file, instead of the old MI protocol. The commands are more or less the same, but the output is now in JSON format, incompatible with the old output.
This section collects configuration file snippets that can help migrating to v5.0.
The default configuration file for v4.4 has following snippets using MI components:
... loadmodule "mi_fifo.so" ... loadmodule "mi_rpc.so" ... # ----- mi_fifo params ----- #modparam("mi_fifo", "fifo_name", "/var/run/kamailio/kamailio_fifo") ...
Replace them with next snippets to upgrade to v5.0:
... loadmodule "jsonrpcs.so" ... # ----- jsonrpcs params ----- modparam("jsonrpcs", "pretty_format", 1) /* set the path to RPC fifo control file */ # modparam("jsonrpcs", "fifo_name", "/var/run/kamailio/kamailio_rpc.fifo") /* set the path to RPC unix socket control file */ # modparam("jsonrpcs", "dgram_socket", "/var/run/kamailio/kamailio_rpc.sock") ...