{"id":479,"date":"2011-11-03T10:03:44","date_gmt":"2011-11-03T09:03:44","guid":{"rendered":""},"modified":"2018-11-01T00:59:30","modified_gmt":"2018-10-31T23:59:30","slug":"upgrade-kamailio-312-32-debian-lenny","status":"publish","type":"post","link":"https:\/\/nil.uniza.sk\/en\/upgrade-kamailio-312-32-debian-lenny\/","title":{"rendered":"Upgrade Kamailio 3.1.2 to 3.2 &#8211; debian lenny"},"content":{"rendered":"<p>Migration from 3.1.2 to Kamailio 3.2 requires upgrade of installed packages, database structures and configuration file.<\/p>\n<h1>Upgrade of Packages<\/h1>\n<p>First, we have to add correct debian repository of kamailio version 3.2. So open your source list file<\/p>\n<pre>\r\nvim \/etc\/apt\/source.list\r\n<\/pre>\n<p>and add:<\/p>\n<p>for &#8220;Debian Lenny&#8220;<\/p>\n<pre>\r\ndeb http:\/\/deb.kamailio.org\/kamailio32 lenny main\r\ndeb-src http:\/\/deb.kamailio.org\/kamailio32 lenny main<\/pre>\n<p>for &#8220;Debian Squeeze&#8220;.<\/p>\n<pre>\r\ndeb http:\/\/deb.kamailio.org\/kamailio32 squeeze main\r\ndeb-src http:\/\/deb.kamailio.org\/kamailio32 squeeze main<\/pre>\n<p>Then, if we did not do before, add GPG key<\/p>\n<pre class=\"code\">\r\nwget http:\/\/deb.kamailio.org\/kamailiodebkey.gpg\r\napt-key add kamailiodebkey.gpg<\/pre>\n<p>and we may debian update packages list<\/p>\n<pre>\r\napt-get update\r\n<\/pre>\n<p>After update we can start main upgrade<\/p>\n<pre>\r\npstest:\/home\/palo# <span style=\"background-color: rgb(255, 255, 153);\"><strong>apt-get upgrade kamailio<\/strong><\/span>\r\nReading package lists... Done\r\nBuilding dependency tree\r\nReading state information... Done\r\nThe following packages have been kept back:\r\n  bind9-host dnsutils kamailio kamailio-cpl-modules kamailio-mysql-modules\r\n  kamailio-presence-modules kamailio-tls-modules libbind9-50 libdns55\r\n  libisccc50 libisccfg50 liblwres50\r\nThe following packages will be upgraded:\r\n  apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2.2-common\r\n  aptitude base-files curl dhcp3-client dhcp3-common dpkg exim4 exim4-base\r\n  exim4-config exim4-daemon-light git-core klibc-utils libapache2-mod-php5\r\n  libapr1 libc6 libc6-dev libc6-i386 libcurl3 libcurl3-gnutls libfreetype6\r\n  libklibc libkrb53 libldap-2.4-2 libmysqlclient15off libperl5.10 libpng12-0\r\n  libpq5 libssl0.9.8 libxml2 libxml2-dev linux-image-2.6.26-2-amd64\r\n  linux-libc-dev locales man-db mysql-client mysql-client-5.0 mysql-common\r\n  mysql-server mysql-server-5.0 openssl perl perl-base perl-modules php5\r\n  php5-common php5-gd php5-mcrypt php5-mysql phpmyadmin tzdata\r\n55 upgraded, 0 newly installed, 0 to remove and 12 not upgraded.\r\nNeed to get 113MB of archives.\r\nAfter this operation, 3592kB disk space will be freed.\r\nDo you want to continue [Y\/n]? y\r\n\r\n<\/pre>\n<p>&nbsp;During upgrade we are asked for keeping config files:<\/p>\n<pre>\r\n Configuration file `\/etc\/kamailio\/kamailio.cfg'\r\n ==&gt; Modified (by you or by a script) since installation.\r\n ==&gt; Package distributor has shipped an updated version.\r\n   What would you like to do about it ?  Your options are:\r\n    Y or I  : install the package maintainer's version\r\n    N or O  : keep your currently-installed version\r\n      D     : show the differences between the versions\r\n      Z     : background this process to examine the situation\r\n The default action is to keep your current version.\r\n*** kamailio.cfg (Y\/I\/N\/O\/D\/Z) [default=N] ? N\r\n\r\nConfiguration file `\/etc\/kamailio\/kamctlrc'\r\n ==&gt; Modified (by you or by a script) since installation.\r\n ==&gt; Package distributor has shipped an updated version.\r\n   What would you like to do about it ?  Your options are:\r\n    Y or I  : install the package maintainer's version\r\n    N or O  : keep your currently-installed version\r\n      D     : show the differences between the versions\r\n      Z     : background this process to examine the situation\r\n The default action is to keep your current version.\r\n*** kamctlrc (Y\/I\/N\/O\/D\/Z) [default=N] ?\r\n\r\nConfiguration file `\/etc\/default\/kamailio'\r\n ==&gt; Modified (by you or by a script) since installation.\r\n ==&gt; Package distributor has shipped an updated version.\r\n   What would you like to do about it ?  Your options are:\r\n    Y or I  : install the package maintainer's version\r\n    N or O  : keep your currently-installed version\r\n      D     : show the differences between the versions\r\n      Z     : background this process to examine the situation\r\n The default action is to keep your current version.\r\n*** kamailio (Y\/I\/N\/O\/D\/Z) [default=N] ?\r\nInstalling new version of config file \/etc\/init.d\/kamailio ...\r\nNot starting Kamailio: invalid configuration file!\r\n\r\n<\/pre>\n<p>At the last line of the output we may see that the Kamailio server is not starting automatically due to errors inside of the Kamailio config file. This is the result of modification between 3.1 and 3.2 release, where rtp proxy configuration and mysql tables are affected. And in my case, as I&#8217;m using rtpproxy I have to correct it.<\/p>\n<pre>\r\n0(27417) ERROR: &lt;core&gt; [cfg.y:3365]: cfg. parser: failed to find command force_rtp_proxy\r\n 0(27417) : &lt;core&gt; [cfg.y:3504]: parse error in config file \/etc\/kamailio\/kamailio.cfg, line 795, column 19: unknown command, missing loadmodule?\r\n\r\n 0(27417) ERROR: &lt;core&gt; [cfg.y:3365]: cfg. parser: failed to find command force_rtp_proxy\r\n 0(27417) : &lt;core&gt; [cfg.y:3504]: parse error in config file \/etc\/kamailio\/kamailio.cfg, line 873, column 19: unknown command, missing loadmodule?\r\n\r\nERROR: bad config file (2 errors)\r\n\r\ninvoke-rc.d: initscript kamailio, action &quot;start&quot; failed.\r\ndpkg: error processing kamailio (--configure):\r\n&nbsp;subprocess post-installation script returned error exit status 1\r\ndpkg: dependency problems prevent configuration of kamailio-mysql-modules:\r\n&nbsp;kamailio-mysql-modules depends on kamailio (= 3.2.0+lenny1); however:\r\n&nbsp; Package kamailio is not configured yet.\r\ndpkg: error processing kamailio-mysql-modules (--configure):\r\n&nbsp;dependency problems - leaving unconfigured\r\ndpkg: dependency problems prevent configuration of kamailio-tls-modules:\r\n&nbsp;kamailio-tls-modules depends on kamailio (= 3.2.0+lenny1); however:\r\n&nbsp; Package kamailio is not configured yet.\r\ndpkg: error processing kamailio-tls-modules (--configure):\r\n&nbsp;dependency problems - leaving unconfigured\r\ndpkg: dependency problems prevent configuration of kamailio-presence-modules:\r\n&nbsp;kamailio-presence-modules depends on kamailio (= 3.2.0+lenny1); however:\r\n&nbsp; Package kamailio is not configured yet.\r\ndpkg: error processing kamailio-presence-modules (--configure):\r\n&nbsp;dependency problems - leaving unconfigured\r\ndpkg: dependency problems prevent configuration of kamailio-cpl-modules:\r\n&nbsp;kamailio-cpl-modules depends on kamailio (= 3.2.0+lenny1); however:\r\n&nbsp; Package kamailio is not configured yet.\r\ndpkg: error processing kamailio-cpl-modules (--configure):\r\n&nbsp;dependency problems - leaving unconfigured\r\nErrors were encountered while processing:\r\n&nbsp;kamailio\r\n&nbsp;kamailio-mysql-modules\r\n&nbsp;kamailio-tls-modules\r\n&nbsp;kamailio-presence-modules\r\n&nbsp;kamailio-cpl-modules\r\nE: Sub-process \/usr\/bin\/dpkg returned an error code (1)\r\n<\/pre>\n<h1>Upgrade Mysql tables<\/h1>\n<p>Kamailio in version 3.2 change database structures, therefore we have to upgrade DB tables of Kamailio 3.1.2 to a new one. Therefore connect to your mysql database which is utilizied by our Kamamilio server:<\/p>\n<pre>\r\npstest:\/home\/palo# mysql -u root -p\r\nEnter password:\r\nWelcome to the MySQL monitor.  Commands end with ; or \\g.\r\nYour MySQL connection id is 144\r\nServer version: 5.0.51a-24+lenny5 (Debian)\r\n\r\nmysql&gt; connect kamailio\r\nReading table information for completion of table and column names\r\nYou can turn off this feature to get a quicker startup with -A\r\n\r\nConnection id:    145\r\nCurrent database: kamailio\r\n<\/pre>\n<p>and paste script with SQL commands (<a href=\"http:\/\/www.kamailio.org\/wiki\/install\/upgrade\/3.1.x-to-3.2.0\">made for MySQL<\/a>) to update the structure of existing tables in v3.<span class=\"search_hit\">1<\/span>.<span class=\"search_hit\">x<\/span> for v3.2.0:<\/p>\n<pre class=\"code sql\"><span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> acc <span class=\"kw1\">MODIFY<\/span> callid VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">255<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">DEFAULT<\/span> <span class=\"st0\">''<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> missed_calls <span class=\"kw1\">MODIFY<\/span> callid VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">255<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">DEFAULT<\/span> <span class=\"st0\">''<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n&nbsp;\r\n<span class=\"kw1\">INSERT<\/span> <span class=\"kw1\">INTO<\/span> version <span class=\"br0\">(<\/span>table_name<span class=\"sy0\">,<\/span> table_version<span class=\"br0\">)<\/span> <span class=\"kw1\">VALUES<\/span> <span class=\"br0\">(<\/span><span class=\"st0\">'dialog_vars'<\/span><span class=\"sy0\">,<\/span><span class=\"st0\">'<span class=\"search_hit\">1<\/span>'<\/span><span class=\"br0\">)<\/span>;\r\n<span class=\"kw1\">CREATE<\/span> <span class=\"kw1\">TABLE<\/span> dialog_vars <span class=\"br0\">(<\/span>\r\n    id INT<span class=\"br0\">(<\/span><span class=\"nu0\">10<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">UNSIGNED<\/span> <span class=\"kw1\">AUTO_INCREMENT<\/span> <span class=\"kw1\">PRIMARY<\/span> <span class=\"kw1\">KEY<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span><span class=\"sy0\">,<\/span>\r\n    hash_entry INT<span class=\"br0\">(<\/span><span class=\"nu0\">10<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">UNSIGNED<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span><span class=\"sy0\">,<\/span>\r\n    hash_id INT<span class=\"br0\">(<\/span><span class=\"nu0\">10<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">UNSIGNED<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span><span class=\"sy0\">,<\/span>\r\n    dialog_key VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">128<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span><span class=\"sy0\">,<\/span>\r\n    dialog_value VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">512<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>\r\n<span class=\"br0\">)<\/span> ENGINE<span class=\"sy0\">=<\/span>MyISAM;\r\n<span class=\"kw1\">CREATE<\/span> <span class=\"kw1\">INDEX<\/span> hash_idx <span class=\"kw1\">ON<\/span> dialog_vars <span class=\"br0\">(<\/span>hash_entry<span class=\"sy0\">,<\/span> hash_id<span class=\"br0\">)<\/span>;\r\n&nbsp;\r\n<span class=\"kw1\">UPDATE<\/span> version <span class=\"kw1\">SET<\/span> table_version<span class=\"sy0\">=<\/span><span class=\"nu0\">2<\/span> <span class=\"kw1\">WHERE<\/span> table_name<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;htable&quot;<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> htable <span class=\"kw1\">MODIFY<\/span> key_value VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">128<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">DEFAULT<\/span> <span class=\"st0\">''<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> htable <span class=\"kw1\">ADD<\/span> <span class=\"kw1\">COLUMN<\/span> expires INT <span class=\"kw1\">DEFAULT<\/span> <span class=\"nu0\">0<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n&nbsp;\r\n<span class=\"kw1\">UPDATE<\/span> version <span class=\"kw1\">SET<\/span> table_version<span class=\"sy0\">=<\/span><span class=\"nu0\">2<\/span> <span class=\"kw1\">WHERE<\/span> table_name<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;lcr_gw&quot;<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> lcr_gw <span class=\"kw1\">DROP<\/span> <span class=\"kw1\">INDEX<\/span> lcr_id_ip_addr_port_hostname_idx;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> lcr_gw <span class=\"kw1\">ADD<\/span> prefix VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">16<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">DEFAULT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> lcr_gw <span class=\"kw1\">MODIFY<\/span> tag VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">64<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">DEFAULT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n<span class=\"kw1\">CREATE<\/span> <span class=\"kw1\">INDEX<\/span> lcr_id_idx <span class=\"kw1\">ON<\/span> lcr_gw <span class=\"br0\">(<\/span>lcr_id<span class=\"br0\">)<\/span>;\r\n&nbsp;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> active_watchers <span class=\"kw1\">MODIFY<\/span> callid VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">255<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span><span class=\"sy0\">,<\/span>\r\n&nbsp;\r\n<span class=\"kw1\">UPDATE<\/span> version <span class=\"kw1\">SET<\/span> table_version<span class=\"sy0\">=<\/span><span class=\"nu0\">7<\/span> <span class=\"kw1\">WHERE<\/span> table_name<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;pua&quot;<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> pua <span class=\"kw1\">MODIFY<\/span> pres_id VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">255<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> pua <span class=\"kw1\">MODIFY<\/span> call_id VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">255<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n&nbsp;\r\n<span class=\"kw1\">UPDATE<\/span> version <span class=\"kw1\">SET<\/span> table_version<span class=\"sy0\">=<\/span><span class=\"nu0\"><span class=\"search_hit\">1<\/span><\/span> <span class=\"kw1\">WHERE<\/span> table_name<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;rls_presentity&quot;<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> rls_presentity <span class=\"kw1\">MODIFY<\/span> content_type VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">255<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> rls_presentity <span class=\"kw1\">MODIFY<\/span> callid VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">255<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> rls_presentity <span class=\"kw1\">MODIFY<\/span> contact VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">128<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n&nbsp;\r\n<span class=\"kw1\">UPDATE<\/span> version <span class=\"kw1\">SET<\/span> table_version<span class=\"sy0\">=<\/span><span class=\"nu0\"><span class=\"search_hit\">3<\/span><\/span> <span class=\"kw1\">WHERE<\/span> table_name<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;sip_trace&quot;<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> sip_trace <span class=\"kw1\">ADD<\/span> <span class=\"kw1\">COLUMN<\/span> time_us INT <span class=\"kw1\">UNSIGNED<\/span> <span class=\"kw1\">DEFAULT<\/span> <span class=\"nu0\">0<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> sip_trace <span class=\"kw1\">MODIFY<\/span> msg MEDIUMTEXT <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n&nbsp;\r\n<span class=\"kw1\">UPDATE<\/span> version <span class=\"kw1\">SET<\/span> table_version<span class=\"sy0\">=<\/span><span class=\"nu0\">4<\/span> <span class=\"kw1\">WHERE<\/span> table_name<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;xcap&quot;<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> xcap <span class=\"kw1\">MODIFY<\/span> doc MEDIUMBLOB <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>;\r\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> xcap <span class=\"kw1\">MODIFY<\/span> doc_uri VARCHAR<span class=\"br0\">(<\/span><span class=\"nu0\">255<\/span><span class=\"br0\">)<\/span> <span class=\"kw1\">NOT<\/span> <span class=\"kw1\">NULL<\/span>;<\/pre>\n<p>&nbsp;the output should look like:<\/p>\n<pre>\r\nmysql&gt; ALTER TABLE acc MODIFY callid VARCHAR(255) DEFAULT '' NOT NULL;\r\nALTER TABLE pua MODIFY pres_id VARCHAR(255) NOT NULL;\r\nALTER TABLE pua MODIFY call_id VARCHAR(255) NOT NULL;\r\n\r\nUPDATE version SET table_version=1 WHERE table_name=&quot;rls_presentity&quot;;\r\nALTER TABLE rls_presentity MODIFY content_type VARCHAR(255) NOT NULL;\r\nALTER TABLE rls_presentity MODIFY callid VARCHAR(255) NOT NULL;\r\nALTER TABLE rls_presentity MODIFY contact VARCHAR(128) NOT NULL;\r\n\r\nUPDATE version SET table_version=3 WHERE table_name=&quot;sip_trace&quot;;\r\nALTER TABLE sip_trace ADD COLUMN time_us INT UNSIGNED DEFAULT 0 NOT NULL;\r\nALTER TABLE sip_trace MODIFY msg MEDIUMTEXT NOT NULL;\r\n\r\nUPDATE version SET table_version=4 WHERE table_name=&quot;xcap&quot;;\r\nALTER TABLE xcap MODIFY doc MEDIUMBLOB NOT NULL;\r\nALTER TABLE xcap MODIFY doc_uri VARCHAR(255) NOT NULL;Query OK, 0 rows affected (0.04 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt; ALTER TABLE missed_calls MODIFY callid VARCHAR(255) DEFAULT '' NOT NULL;\r\nQuery OK, 0 rows affected (0.01 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt;\r\nmysql&gt; INSERT INTO version (table_name, table_version) VALUES ('dialog_vars','1');\r\nQuery OK, 1 row affected (0.03 sec)\r\n\r\nmysql&gt; CREATE TABLE dialog_vars (\r\n&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp; id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,\r\n&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp; hash_entry INT(10) UNSIGNED NOT NULL,\r\n&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp; hash_id INT(10) UNSIGNED NOT NULL,\r\n&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp; dialog_key VARCHAR(128) NOT NULL,\r\n&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp; dialog_value VARCHAR(512) NOT NULL\r\n&nbsp;&nbsp;&nbsp; -&gt; ) ENGINE=MyISAM;\r\nQuery OK, 0 rows affected (0.01 sec)\r\n\r\nmysql&gt; CREATE INDEX hash_idx ON dialog_vars (hash_entry, hash_id);\r\nQuery OK, 0 rows affected (0.00 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt;\r\nmysql&gt; UPDATE version SET table_version=2 WHERE table_name=&quot;htable&quot;;\r\nQuery OK, 1 row affected (0.00 sec)\r\nRows matched: 1&nbsp; Changed: 1&nbsp; Warnings: 0\r\n\r\nmysql&gt; ALTER TABLE htable MODIFY key_value VARCHAR(128) DEFAULT '' NOT NULL;\r\nQuery OK, 0 rows affected (0.01 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt; ALTER TABLE htable ADD COLUMN expires INT DEFAULT 0 NOT NULL;\r\nQuery OK, 0 rows affected (0.01 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt;\r\nmysql&gt; UPDATE version SET table_version=2 WHERE table_name=&quot;lcr_gw&quot;;\r\nQuery OK, 1 row affected (0.00 sec)\r\nRows matched: 1&nbsp; Changed: 1&nbsp; Warnings: 0\r\n\r\nmysql&gt; ALTER TABLE lcr_gw DROP INDEX lcr_id_ip_addr_port_hostname_idx;\r\nQuery OK, 0 rows affected (0.00 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt; ALTER TABLE lcr_gw ADD prefix VARCHAR(16) DEFAULT NULL;\r\nQuery OK, 0 rows affected (0.01 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt; ALTER TABLE lcr_gw MODIFY tag VARCHAR(64) DEFAULT NULL;\r\nQuery OK, 0 rows affected (0.01 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt; CREATE INDEX lcr_id_idx ON lcr_gw (lcr_id);\r\nQuery OK, 0 rows affected (0.00 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt;\r\nmysql&gt; ALTER TABLE active_watchers MODIFY callid VARCHAR(255) NOT NULL,\r\n&nbsp;&nbsp;&nbsp; -&gt;\r\n&nbsp;&nbsp;&nbsp; -&gt; UPDATE version SET table_version=7 WHERE table_name=&quot;pua&quot;;\r\nERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE version SET table_version=7 WHERE table_name=&quot;pua&quot;' at line 3\r\nmysql&gt; ALTER TABLE pua MODIFY pres_id VARCHAR(255) NOT NULL;\r\nQuery OK, 0 rows affected (0.01 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt; ALTER TABLE pua MODIFY call_id VARCHAR(255) NOT NULL;\r\nQuery OK, 0 rows affected (0.00 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt;\r\nmysql&gt; UPDATE version SET table_version=1 WHERE table_name=&quot;rls_presentity&quot;;\r\nQuery OK, 1 row affected (0.01 sec)\r\nRows matched: 1&nbsp; Changed: 1&nbsp; Warnings: 0\r\n\r\nmysql&gt; ALTER TABLE rls_presentity MODIFY content_type VARCHAR(255) NOT NULL;\r\nQuery OK, 0 rows affected (0.01 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt; ALTER TABLE rls_presentity MODIFY callid VARCHAR(255) NOT NULL;\r\nERROR 1054 (42S22): Unknown column 'callid' in 'rls_presentity'\r\nmysql&gt; ALTER TABLE rls_presentity MODIFY contact VARCHAR(128) NOT NULL;\r\nERROR 1054 (42S22): Unknown column 'contact' in 'rls_presentity'\r\nmysql&gt;\r\nmysql&gt; UPDATE version SET table_version=3 WHERE table_name=&quot;sip_trace&quot;;\r\nQuery OK, 1 row affected (0.00 sec)\r\nRows matched: 1&nbsp; Changed: 1&nbsp; Warnings: 0\r\n\r\nmysql&gt; ALTER TABLE sip_trace ADD COLUMN time_us INT UNSIGNED DEFAULT 0 NOT NULL;\r\nQuery OK, 0 rows affected (0.00 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt; ALTER TABLE sip_trace MODIFY msg MEDIUMTEXT NOT NULL;\r\nQuery OK, 0 rows affected (0.00 sec)\r\nRecords: 0&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt;\r\nmysql&gt; UPDATE version SET table_version=4 WHERE table_name=&quot;xcap&quot;;\r\nQuery OK, 1 row affected (0.00 sec)\r\nRows matched: 1&nbsp; Changed: 1&nbsp; Warnings: 0\r\n\r\nmysql&gt; ALTER TABLE xcap MODIFY doc MEDIUMBLOB NOT NULL;\r\nQuery OK, 9 rows affected (0.04 sec)\r\nRecords: 9&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt; ALTER TABLE xcap MODIFY doc_uri VARCHAR(255) NOT NULL;\r\nQuery OK, 9 rows affected (0.00 sec)\r\nRecords: 9&nbsp; Duplicates: 0&nbsp; Warnings: 0\r\n\r\nmysql&gt;\r\n<\/pre>\n<h1>Modification of kamailio configuration file<\/h1>\n<p>Finally we have to modify the Kamailio configuration file, because when we try to run kamailio following messages are printed.<\/p>\n<pre>\r\npstest:\/home\/palo# \/etc\/init.d\/kamailio start\r\nNot starting Kamailio: invalid configuration file!\r\n\r\n 0(27459) ERROR: &lt;core&gt; [cfg.y:3365]: cfg. parser: failed to find command force_rtp_proxy\r\n 0(27459) : &lt;core&gt; [cfg.y:3504]: parse error in config file \/etc\/kamailio\/kamailio.cfg, line 795, column 19: unknown command, missing loadmodule?\r\n\r\n 0(27459) ERROR: &lt;core&gt; [cfg.y:3365]: cfg. parser: failed to find command force_rtp_proxy\r\n 0(27459) : &lt;core&gt; [cfg.y:3504]: parse error in config file \/etc\/kamailio\/kamailio.cfg, line 873, column 19: unknown command, missing loadmodule?\r\n\r\nERROR: bad config file (2 errors)\r\n\r\n<\/pre>\n<p>They inform us about using non existing functions used for NAT&nbsp;travesal with RTPproxy. The <a href=\"http:\/\/www.kamailio.org\/wiki\/install\/upgrade\/3.1.x-to-3.2.0\">official migration guide<\/a> notes:<\/p>\n<p><a name=\"modulesrtpproxy\" id=\"modulesrtpproxy\"><\/a><cite><a name=\"modulesrtpproxy\" id=\"modulesrtpproxy\">modules\/rtpproxy<\/a><\/cite><\/p>\n<div class=\"level3\">\n<ul>\n<li class=\"level1\">\n<p><cite> force_rtp_proxy() removed<\/cite><\/p>\n<ul>\n<li class=\"level2\">\n<p><cite> use rtpproxy_offer() when it is SDP  offer (mainly on INVITE request) and rtpproxy_answer() when it is SDP  answer (mainly on INVITE replies)<\/cite><\/p>\n<\/li>\n<li class=\"level2\">\n<p><cite> new alternative is to use rtpproxy_manage() which does the detection of SDP offer\/answer internally<\/cite><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p>We need to open kamailio.cfg<\/p>\n<pre>\r\nvim \/etc\/kamailio\/kamailio.cfg\r\n<\/pre>\n<p>and change appropriate lines. In default kamailio.cfg there are for SIP&nbsp;methods (INVITE) inside of RTPPROXY router logic:<\/p>\n<pre>\r\n# RTPProxy control\r\nroute[RTPPROXY] {\r\n#!ifdef WITH_NAT\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (is_method(&quot;BYE&quot;)) {\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unforce_rtp_proxy();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (is_method(&quot;INVITE&quot;)){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"background-color: rgb(255, 255, 153);\">rtpproxy_offer();<\/span>\r\n#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<del> force_rtp_proxy();<\/del>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!has_totag()) add_rr_param(&quot;;nat=yes&quot;);\r\n#!endif\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;\r\n}\r\n<\/pre>\n<p>&nbsp;and for replies on onrely_route logic<\/p>\n<pre>\r\n# Sample onreply route\r\nonreply_route[REPLY_ONE] {\r\n        xdbg(&quot;incoming reply\\n&quot;);\r\n#!ifdef WITH_NAT\r\n        if ((isflagset(FLT_NATS) || isbflagset(FLB_NATB))\r\n                        &amp;&amp; status=~&quot;(183)|(2[0-9][0-9])&quot;) {\r\n#             <del>  force_rtp_proxy();<\/del>\r\n              <span style=\"background-color: rgb(255, 255, 153);\">  rtpproxy_answer();<\/span>\r\n        }\r\n        if (isbflagset(&quot;6&quot;)) {\r\n                fix_nated_contact();\r\n        }\r\n#!endif\r\n}\r\n\r\n<\/pre>\n<p>Now we should start and run kamailio service:<\/p>\n<pre>\r\npstest:\/home\/palo# \/etc\/init.d\/kamailio start\r\nStarting Kamailio:\r\nloading modules under \/usr\/lib\/kamailio\/modules_k\/:\/usr\/lib\/kamailio\/modules\/\r\nListening on\r\n             udp: 158.193.139.51:5060\r\n             udp: 2001:4118:300:122:58EC:FCFF:FE3A:17F4:5060\r\n             tcp: 158.193.139.51:5060\r\n             tcp: 2001:4118:300:122:58EC:FCFF:FE3A:17F4:5060\r\nAliases:\r\n             tcp: pstest:5060\r\n             tcp: pstest.ps.sip.uniza.sk:5060\r\n             udp: pstest:5060\r\n             udp: pstest.ps.sip.uniza.sk:5060\r\n             *: ps.sip.uniza.sk:*\r\n\r\nkamailio started.\r\n\r\n<\/pre>\n<h1>&nbsp;Note<\/h1>\n<p>If you are using LCR modules, check how to migrate your installation at <a href=\"http:\/\/www.kamailio.org\/wiki\/install\/upgrade\/3.1.x-to-3.2.0\">official migration guide<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Migration from 3.1.2 to Kamailio 3.2 requires upgrade of installed packages, database structures and configuration file.<\/p>\n<h1>Upgrade of Packages<\/h1>\n<p>First, we have to add correct debian repository of kamailio version 3.2. So open your source list file<\/p>\n<pre>\r\nvim \/etc\/apt\/source.list\r\n<\/pre>\n<p>and add:<\/p>\n<p>for &#8220;Debian Lenny&#8220;<\/p>\n<pre>\r\ndeb http:\/\/deb.kamailio.org\/kamailio32 lenny main\r\ndeb-src http:\/\/deb.kamailio.org\/kamailio32 lenny main<\/pre>\n<p>for &#8220;Debian Squeeze&#8220;.<\/p>","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"categories":[781],"tags":[],"class_list":["post-479","post","type-post","status-publish","format-standard","hentry","category-kamailio-en"],"taxonomy_info":{"category":[{"value":781,"label":"Kamailio"}]},"featured_image_src_large":false,"author_info":{"display_name":"admin","author_link":"https:\/\/nil.uniza.sk\/en\/author\/admin\/"},"comment_info":2,"category_info":[{"term_id":781,"name":"Kamailio","slug":"kamailio-en","term_group":0,"term_taxonomy_id":779,"taxonomy":"category","description":"","parent":771,"count":29,"filter":"raw","cat_ID":781,"category_count":29,"category_description":"","cat_name":"Kamailio","category_nicename":"kamailio-en","category_parent":771}],"tag_info":false,"_links":{"self":[{"href":"https:\/\/nil.uniza.sk\/en\/wp-json\/wp\/v2\/posts\/479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nil.uniza.sk\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nil.uniza.sk\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nil.uniza.sk\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/nil.uniza.sk\/en\/wp-json\/wp\/v2\/comments?post=479"}],"version-history":[{"count":0,"href":"https:\/\/nil.uniza.sk\/en\/wp-json\/wp\/v2\/posts\/479\/revisions"}],"wp:attachment":[{"href":"https:\/\/nil.uniza.sk\/en\/wp-json\/wp\/v2\/media?parent=479"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nil.uniza.sk\/en\/wp-json\/wp\/v2\/categories?post=479"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nil.uniza.sk\/en\/wp-json\/wp\/v2\/tags?post=479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}