====== Migrating OpenSER v1.3.x to Kamailio v1.4.0 ======
Due to trademark issues, on July 28, 2008, [[http://www.kamailio.org/|OPENSER was renamed to KAMAILIO]].
At the end of the document is the part presenting new things in v1.4.0.
===== Renaming Matrix =====
The relation between old and new names of the files provided by KAMAILIO (OPENSER).
^ Old Name ^ New Name ^ Description ^
| openser | kamailio | Binary of the SIP routing application |
| openser.cfg | kamailio.cfg | Configuration file |
| openserctl | kamctl | Command line tool for management |
| openserdbctl | kamdbctl | Command line tool to create and manage database |
| openserctlrc | kamctlrc | Configuration file for command line tools |
| openser.8 | kamailio.8 | Man page |
| openser.cfg.5 | kamailio.cfg.5 | Man page for configuration file |
||||
===== Changes in the configuration file =====
==== Preserve configuration files ====
After installation of Kamailio (OPENSER) 1.4.0 from packages
* move /etc/openser/openser.cfg to /etc/kamailio/kamailio.cfg
* move /etc/openser/openserctlrc to /etc/kamailio/kamctlrc
If installed from sources:
* move /usr/local/etc/openser/openser.cfg to /usr/local/etc/kamailio/kamailio.cfg
* move /usr/local/etc/openser/openserctlrc to /usr/local/etc/kamailio/kamctlrc
==== Updates in configuration file ====
* change path to modules
# when installed from packages
old value: mpath="/usr/lib/openser/modules"
new value: mpath="/usr/lib/kamailio/modules"
# when installed from sources
old value: mpath="/usr/local/lib/openser/modules"
new value: mpath="/usr/local/lib/kamailio/modules"
Note: if you use a 64bit architecture, replace 'lib' with 'lib64' in above paths.
* update the name of database modules. These module have now the format: [b]db_name[/b] - where name is the database driver name, e.g., mysql, postgres, unixodbc, berkeley, etc.
# for mysql
old value: loadmodule "mysql.so"
new value: loadmodule "db_mysql.so"
# for postgres
old value: loadmodule "postgres.so"
new value: loadmodule "db_postgres.so"
Module parameters for database URL have still the format "driver://username:password@host/database"
old value: modparam("auth_db", "db_url", "mysql://openser:openserrw@localhost/openser"
new value (the same): modparam("auth_db", "db_url", "mysql://openser:openserrw@localhost/openser"
==== Updates in database scheme ====
The following SQL statements (for MySQL) can be used to convert a 1.3.x database to the new scheme. Please not that new tables (e.g. for carrierroute, diaplan or others are ommited at the moment.)
UPDATE version SET table_version=2 WHERE table_name='carrierroute';
UPDATE version SET table_version=2 WHERE table_name='dispatcher';
UPDATE version SET table_version=7 WHERE table_name='gw';
UPDATE version SET table_version=3 WHERE table_name='presentity';
UPDATE version SET table_version=6 WHERE table_name='pua';
UPDATE version SET table_version=2 WHERE table_name='siptrace';
ALTER TABLE carrierroute ADD flags INT(11) UNSIGNED DEFAULT 0 NOT NULL AFTER scan_prefix;
ALTER TABLE carrierroute ADD mask INT(11) UNSIGNED DEFAULT 0 NOT NULL AFTER flags;
ALTER TABLE carrierroute CHANGE comment description VARCHAR(255) DEFAULT NULL;
ALTER TABLE route_tree DROP PRIMARY KEY;
ALTER TABLE route_tree CHANGE id id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL;
ALTER TABLE dispatcher ADD flags INT DEFAULT 0 NOT NULL AFTER destination;
ALTER TABLE domainpolicy CHANGE comment description VARCHAR(255) NOT NULL;
ALTER TABLE gw CHANGE prefix tag VARCHAR(16) DEFAULT NULL;
ALTER TABLE gw CHANGE dm flags INT UNSIGNED DEFAULT 0 NOT NULL;
ALTER TABLE presentity ADD sender VARCHAR(128) NOT NULL;
ALTER TABLE pua ADD remote_contact VARCHAR(128) NOT NULL AFTER contact;
ALTER TABLE re_grp CHANGE group_id group_id INT(11) DEFAULT 0 NOT NULL;
ALTER TABLE sip_trace CHANGE date time_stamp DATETIME DEFAULT '1900-01-01 00:00:01' NOT NULL;
===== New in v1.4.0 =====
==== New in Kamailio(OpenSER) modules ====
* [b]acc module[/b]
** extension: it is possible to log accounting related output to a different log facility
* [b]cfgutils module[/b]
** new FIFO functions get_config_hash and check_config_hash for config file checks
** shared PV exported to configuration script
**debugging helpers usable from config script for abort, shm_status and pkg_status
* [b]mysql module[/b]
** extension: enable timeouts on connect, read and write to prevent blocking on errors
* [b]database modules[/b]
** renaming of all database modules, addition of the prefix 'db_', e.g. mysql is now db_mysql
* [b]ratelimit module[/b] (new module ported from ser with openims enhancements)
** suitable for traffic shaping control and server load control
*[b]carrierroute module[/b]
** extension: much more flexibility in routing and database supported failure routing, improved internal structure
*[b]dialog module[/b]
** internal API reworked for better flexibility
** direction of the message provided via the internal API
** new dialog callback types:
*** DLGCB_LOADED
*** DLGCB_DESTROY
*** DLGCB_RESPONSE_WITHIN
*** DLGCB_MI_CONTEXT
** new mi command: dlg_list_ctx
*[b]enum module[/b]
** enum_fquery([...]) replaced by enum_pv_query("$fU"[,...])
*[b]db_oracle module[/b]
** new database module for native access of oracle databases
*[b]userblacklist module[/b]
** new module for user specific and global URI blacklists
* [b]msilo module[/b]
** notification system refurbished - message body, content-type, from address and contact header can be dynamically specified with pseudo-variables
* [b]pdt module[/b]
** accepts now same destination domain bound to different prefixes
** internal structures and logic optimized for memory and performance
* [b]lcr module[/b]
** refactor module functions
** add pseudo-variable support
** remove gw_grp table
* [b]peering module[/b]
** new module for radius setups
** allowing SIP providers to verify via a broker if source or destination request is from a trusted peer
* [b] new mediaproxy module[/b]
** update to version 2.0
** better performance and scalability as packets are forward in kernel space
==== New in Kamailio(OpenSER) core ====
* [b]Overhauled DB API[/b] -- uses now the 'str' datatype for more performance and safety, more common functionality integrated in the core
* [b]Extensive cleanups in database drivers[/b] -- integrate common functionality into the core for more stability and maintainability
* [b]SDP parser[/b] -- provides an internal API for parsing SDP
* [b]fixup functions[/b] -- provides an internal API for fixing module parameters
* [b]extended module interface[/b] -- its now possible to use up to 6 parameters in module functions
==== New in Kamailio(OpenSER) utilities ====
* [b]Removal of SERWEB[/b] -- the SERWEB specific parts were removed from the openserdbctl, openserctl and the database schemes
* [b]openserctl for dbtext[/b] -- add SQL support to dbtext using a python module and integrate it into openserctl to better support this database
==== New in Kamailio(OpenSER) documentation ====
* [b]Module documentation[/b] -- the module documentation was migrated to the docbook-xml infrastructure
* [b]Developer guide[/b] -- a developer guide has been added to repository
==== New in Kamailio(OpenSER) Testing Suite ====
* [b]Stability improvements[/b] -- better checks for available modules and necessary tools
* [b]Extensions[/b] -- test more modules, tests for other databases beside MySQL
[[http://editingwritingservices.org/|dissertation editing]]