Migrating OpenSIPS location table to Kamailio format: Difference between revisions

From Integrics Wiki
Jump to navigation Jump to search
Content deleted Content added
Danthony (talk | contribs)
No edit summary
Danthony (talk | contribs)
No edit summary
Line 6: Line 6:
Integrics does the following on sip0 and sip1:
Integrics does the following on sip0 and sip1:


cpan Math::BigInt::FastCalc
cpan Math::BigInt::FastCalc


enswitch install kamailio-ha
enswitch install kamailio-ha


vi /etc/kamailio/kamailio.cfg # and set the database URL
vi /etc/kamailio/kamailio.cfg # and set the database URL


'''Update haresources on sip0 and sip1:'''
'''Update haresources on sip0 and sip1:'''
Line 32: Line 32:




RENAME TABLE location TO location_old_opensips;
RENAME TABLE location TO location_old_opensips;


CREATE TABLE `location` (
CREATE TABLE `location` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`ruid` varchar(64) NOT NULL DEFAULT '',
`ruid` varchar(64) NOT NULL DEFAULT '',
Line 58: Line 58:
PRIMARY KEY (`id`),
PRIMARY KEY (`id`),
KEY `account_contact_idx` (`username`,`domain`,`contact`)
KEY `account_contact_idx` (`username`,`domain`,`contact`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SELECT * FROM location_old;
SELECT * FROM location_old;




'''Add link for Kamailio init script on sip0 and sip1:'''
'''Add link for Kamailio init script on sip0 and sip1:'''


sudo ln -sf /opt/enswitch/current/etc/init.d/debian/kamailio /etc/ha.d/resource.d/kamailio
sudo ln -sf /opt/enswitch/current/etc/init.d/debian/kamailio /etc/ha.d/resource.d/kamailio


'''Start Kamailio on sip0:'''
'''Start Kamailio on sip0:'''


sudo /etc/ha.d/resource.d/kamailio start
sudo /etc/ha.d/resource.d/kamailio start


'''Test calls on sip0:'''
'''Test calls on sip0:'''
Line 74: Line 74:
'''Run hb_takeover on sip1 and test:'''
'''Run hb_takeover on sip1 and test:'''


/usr/share/heartbeat/hb_takeover
/usr/share/heartbeat/hb_takeover


'''Run hb_takeover on sip0 and test again:'''
'''Run hb_takeover on sip0 and test again:'''


/usr/share/heartbeat/hb_takeover
/usr/share/heartbeat/hb_takeover




Line 85: Line 85:
'''Update haresources'''
'''Update haresources'''


change "kamailio" to “opensips” in /etc/ha.d/haresources
change "kamailio" to “opensips” in /etc/ha.d/haresources


'''Stop Kamailio:'''
'''Stop Kamailio:'''


sudo /etc/ha.d/resource.d/kamailio stop
sudo /etc/ha.d/resource.d/kamailio stop




'''Remove Kamailio init script:'''
'''Remove Kamailio init script:'''


sudo rm /etc/ha.d/resource.d/kamailio
sudo rm /etc/ha.d/resource.d/kamailio


'''Update version for location table'''
'''Update version for location table'''


update version set table_version='1004' where table_name='location';
update version set table_version='1004' where table_name='location';




'''Convert Kamailio version of location table to work with OpenSIPS:'''
'''Convert Kamailio version of location table to work with OpenSIPS:'''



(
RENAME TABLE location TO location_old_kamailio;
RENAME TABLE location TO location_old_kamailio;
)



CREATE TABLE `location` (
CREATE TABLE `location` (
`username` varchar(64) NOT NULL DEFAULT '',
`username` varchar(64) NOT NULL DEFAULT '',
`domain` varchar(128) NOT NULL DEFAULT '',
`domain` varchar(128) NOT NULL DEFAULT '',
Line 130: Line 130:
`instance` varchar(255) DEFAULT NULL,
`instance` varchar(255) DEFAULT NULL,
KEY `username` (`username`,`domain`,`contact`)
KEY `username` (`username`,`domain`,`contact`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SELECT * FROM location_old_kamailio;
SELECT * FROM location_old_kamailio;


'''Add link for OpenSIPS init script:'''
'''Add link for OpenSIPS init script:'''


sudo ln -sf /opt/enswitch/current/etc/init.d/debian/opensips /etc/ha.d/resource.d/opensips
sudo ln -sf /opt/enswitch/current/etc/init.d/debian/opensips /etc/ha.d/resource.d/opensips




'''Start OpenSIPS:'''
'''Start OpenSIPS:'''


sudo /etc/ha.d/resource.d/opensips start
sudo /etc/ha.d/resource.d/opensips start

Revision as of 20:27, 20 February 2015

This applies to OpenSIPS 1.4.4 and Kamailio 3.3.2, although it may work with other versions as well.


OpenSIPS->Kamailio:

Integrics does the following on sip0 and sip1:

cpan Math::BigInt::FastCalc 
enswitch install kamailio-ha 
vi /etc/kamailio/kamailio.cfg # and set the database URL 

Update haresources on sip0 and sip1:

change "opensips" to "kamailio" in /etc/ha.d/haresources

Stop OpenSIPS on sip0:

sudo /etc/ha.d/resource.d/opensips stop

Remove OpenSIPS init script on sip0 and sip1:

sudo rm /etc/ha.d/resource.d/opensips

Update version for location table on enswitchbd0:

update version set table_version='5' where table_name='location';


Convert OpenSIPS version of location table to work with Kamailio on enswitchdb0:


RENAME TABLE location TO location_old_opensips;
CREATE TABLE `location` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `ruid` varchar(64) NOT NULL DEFAULT ,
 `username` varchar(64) NOT NULL DEFAULT ,
 `domain` varchar(64) DEFAULT NULL,
 `contact` varchar(255) NOT NULL DEFAULT ,
 `received` varchar(128) DEFAULT NULL,
 `path` varchar(128) DEFAULT NULL,
 `expires` datetime NOT NULL DEFAULT '2020-05-28 21:32:15',
 `q` float(10,2) NOT NULL DEFAULT '1.00',
 `callid` varchar(255) NOT NULL DEFAULT 'Default-Call-ID',
 `cseq` int(11) NOT NULL DEFAULT '1',
 `last_modified` datetime NOT NULL DEFAULT '1900-01-01 00:00:01',
 `flags` int(11) NOT NULL DEFAULT '0',
 `cflags` int(11) NOT NULL DEFAULT '0',
 `user_agent` varchar(255) NOT NULL DEFAULT ,
 `socket` varchar(64) DEFAULT NULL,
 `methods` int(11) DEFAULT NULL,
 `instance` varchar(255) DEFAULT NULL,
 `reg_id` int(11) NOT NULL DEFAULT '0',
 `replicate` int(10) unsigned NOT NULL DEFAULT '0',
 `state` tinyint(1) unsigned NOT NULL DEFAULT '0',
 PRIMARY KEY (`id`),
 KEY `account_contact_idx` (`username`,`domain`,`contact`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SELECT * FROM location_old; 


Add link for Kamailio init script on sip0 and sip1:

sudo ln -sf /opt/enswitch/current/etc/init.d/debian/kamailio /etc/ha.d/resource.d/kamailio

Start Kamailio on sip0:

sudo /etc/ha.d/resource.d/kamailio start

Test calls on sip0:

Run hb_takeover on sip1 and test:

/usr/share/heartbeat/hb_takeover

Run hb_takeover on sip0 and test again:

/usr/share/heartbeat/hb_takeover


Kamailio->OpenSIPS:

Update haresources

change "kamailio" to “opensips” in /etc/ha.d/haresources 

Stop Kamailio:

sudo /etc/ha.d/resource.d/kamailio stop


Remove Kamailio init script:

sudo rm /etc/ha.d/resource.d/kamailio

Update version for location table

update version set table_version='1004' where table_name='location';


Convert Kamailio version of location table to work with OpenSIPS:


RENAME TABLE location TO location_old_kamailio;


CREATE TABLE `location` (
 `username` varchar(64) NOT NULL DEFAULT ,
 `domain` varchar(128) NOT NULL DEFAULT ,
 `contact` varchar(255) NOT NULL DEFAULT ,
 `received` varchar(255) DEFAULT NULL,
 `path` varchar(255) DEFAULT NULL,
 `expires` datetime NOT NULL DEFAULT '2020-01-01 00:00:00',
 `q` float(10,2) NOT NULL DEFAULT '1.00',
 `callid` varchar(255) NOT NULL DEFAULT 'Default-Call-ID',
 `cseq` int(11) NOT NULL DEFAULT '42',
 `last_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 `replicate` int(10) unsigned NOT NULL DEFAULT '0',
 `state` tinyint(1) unsigned NOT NULL DEFAULT '0',
 `flags` int(11) NOT NULL DEFAULT '0',
 `cflags` int(11) NOT NULL DEFAULT '0',
 `user_agent` varchar(100) NOT NULL DEFAULT ,
 `socket` varchar(128) DEFAULT NULL,
 `methods` int(11) DEFAULT NULL,
 `id` int(10) NOT NULL DEFAULT '0',
 `ruid` varchar(64) NOT NULL DEFAULT ,
 `reg_id` int(11) NOT NULL DEFAULT '0',
 `instance` varchar(255) DEFAULT NULL,
 KEY `username` (`username`,`domain`,`contact`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SELECT * FROM location_old_kamailio;

Add link for OpenSIPS init script:

sudo ln -sf /opt/enswitch/current/etc/init.d/debian/opensips /etc/ha.d/resource.d/opensips


Start OpenSIPS:

sudo /etc/ha.d/resource.d/opensips start