Hi Daniel,
Nice tip!
I noticed the following:
The expires and last_modified columns are of DATETIME type, but the insert and update
statements pass a unix timestamp.
I can change the datatype to a varchar for the expires and last_modified columns, but I’m
not sure if I will break the usrloc module when preloading the rows.
kamailio -V
version: kamailio 4.4.3 (x86_64/linux) 5a2195
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE,
USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC,
DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER,
USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024,
BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 5a2195
compiled on 16:42:49 Sep 26 2016 with gcc 4.9.2
cat /usr/local/src/kamailio-4.4.3/utils/kamctl/mysql/usrloc-create.sql
CREATE TABLE `location` (
`id` INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
`ruid` VARCHAR(64) DEFAULT '' NOT NULL,
`username` VARCHAR(64) DEFAULT '' NOT NULL,
`domain` VARCHAR(64) DEFAULT NULL,
`contact` VARCHAR(255) DEFAULT '' NOT NULL,
`received` VARCHAR(128) DEFAULT NULL,
`path` VARCHAR(512) DEFAULT NULL,
`expires` DATETIME DEFAULT '2030-05-28 21:32:15' NOT NULL,
`q` FLOAT(10,2) DEFAULT 1.0 NOT NULL,
`callid` VARCHAR(255) DEFAULT 'Default-Call-ID' NOT NULL,
`cseq` INT(11) DEFAULT 1 NOT NULL,
`last_modified` DATETIME DEFAULT '1900-01-01 00:00:01' NOT NULL,
`flags` INT(11) DEFAULT 0 NOT NULL,
`cflags` INT(11) DEFAULT 0 NOT NULL,
`user_agent` VARCHAR(255) DEFAULT '' NOT NULL,
`socket` VARCHAR(64) DEFAULT NULL,
`methods` INT(11) DEFAULT NULL,
`instance` VARCHAR(255) DEFAULT NULL,
`reg_id` INT(11) DEFAULT 0 NOT NULL,
`server_id` INT(11) DEFAULT 0 NOT NULL,
`connection_id` INT(11) DEFAULT 0 NOT NULL,
`keepalive` INT(11) DEFAULT 0 NOT NULL,
`partition` INT(11) DEFAULT 0 NOT NULL,
CONSTRAINT ruid_idx UNIQUE (`ruid`)
);
insert into `location`
(`username`,`contact`,`expires`,`q`,`callid`,`cseq`,`flags`,`cflags`,`user_agent`,`received`,`path`,`socket`,`methods`,`last_modified`,`ruid`,`instance`,`reg_id`,`server_id`,`connection_id`,`keepalive`,`partition`,`domain`
)
values ('sip-server-ivr-01','sip:s@1.1.1.1:5060',1478611664,1.000000
,'56b9ca823f9a11d361e184cc5eed07fc(a)1.1.1.1',15819,0,0,'Asterisk PBX
13.9.1',NULL,NULL,'udp:10.14.34.211:5060',NULL,1478611563,'uloc-5821d267-22ed-1',NULL,0,0,-1,0,0,'sip-server-gw-01.test.voipdomain.local')
update `location` set `path`=NULL,`expires`=1478611744,`q`=1.000000
,`cseq`=15821,`flags`=0,`cflags`=0,`user_agent`='Asterisk PBX
13.9.1',`received`=NULL,`socket`='udp:10.14.34.211:5060',`methods`=NULL,`last_modified`=14786116
49,`ruid`='uloc-5821d267-22ed-1',`instance`=NULL,`reg_id`=0,`server_id`=0,`connection_id`=-1,`keepalive`=0,`contact`='sip:s@1.1.1.1:5060'
where `username`='sip-server-ivr-01' AND `contact`='sip:s@1.1.1.1:5060'
AND `call
id`='56b9ca823f9a11d361e184cc5eed07fc(a)1.1.1.1' AND
`domain`='sip-server-gw-01.test.voipdomain.local'
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com]
Sent: dinsdag 8 november 2016 12:38
To: Grant Bagdasarian <gb(a)cm.nl>nl>; Kamailio (SER) - Users Mailing List
<sr-users(a)lists.sip-router.org>
Subject: Re: [SR-Users] usrloc module expires column issues
Hello,
the version I noticed some changes in dealing with unsigned int values was 5.7 ...
Can you enable sql query logging and see what's the insert statement for location
table? Or, if the connection to the database server is over IP (and not tls), then you can
do ngrep on port 3306 (iirc by heart the default port for mysql) -- you should be able to
spot the text query along some binary headers.
It would be good to see if the sql is ok or broken, to know where to look further.
Cheers,
Daniel
On 08/11/16 11:36, Grant Bagdasarian wrote:
Hi Daniel,
My apologies, we’re not running MariaDB, but a regular instance of MySQL:
mysql -v
mysql Ver 14.14 Distrib 5.5.49, for debian-linux-gnu (x86_64) using readline 6.3
Regards,
Grant
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com]
Sent: dinsdag 8 november 2016 11:32
To: Grant Bagdasarian <gb@cm.nl><mailto:gb@cm.nl>; Kamailio (SER) - Users
Mailing List
<sr-users@lists.sip-router.org><mailto:sr-users@lists.sip-router.org>
Subject: Re: [SR-Users] usrloc module expires column issues
Hello,
I haven't encountered such problem so far and no similar report was done to kamailio
project recently. I noticed that newer versions of mysql (maybe mariadb as well) are
behaving differently than old ones -- what mariadb version do you run?
Cheers,
Daniel
On 08/11/16 10:42, Grant Bagdasarian wrote:
Hi Daniel,
Sorry for the late reply.
We’re using a Galera Cluster based on Maria DB.
Regards,
Grant Bagdasarian
From: sr-users [mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of
Daniel-Constantin Mierla
Sent: donderdag 6 oktober 2016 12:50
To: Kamailio (SER) - Users Mailing List
<sr-users@lists.sip-router.org><mailto:sr-users@lists.sip-router.org>
Subject: Re: [SR-Users] usrloc module expires column issues
Hello,
what database server are you using?
Cheers,
Daniel
On 26/09/16 16:50, Grant Bagdasarian wrote:
Hello,
When saving in the location table, the expires and last_modified columns contain the value
000-00-00 00:00:00 which causes issues when Kamailio is restarted and the preload modparam
is set to load the location table from db in memory at startup.
I’ve already upgraded Kamailio to 4.4.3, and used the dbtables script from version 4.4 to
recreate the location table, but without success.
Anyone else having this issue? Any resolution for it?
Regards,
Grant Bagdasarian
CM
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org<mailto:sr-users@lists.sip-router.org>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda<http://twitter.com/#%21/miconda> -
http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Berlin, Oct 24-26, 2016 -
http://www.asipto.com
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda<http://twitter.com/#%21/miconda> -
http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Berlin, Nov 28-30, 2016 -
http://www.asipto.com
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Berlin, Nov 28-30, 2016 -
http://www.asipto.com