Hi Daniel, thank you for looking into this. I understand what you are saying and what is happening is very similar. The linksys is set to 10 secs, so around 8 secs it sends a new registration. Kamailio replies with 30 but the linksys ignores it and keeps sending the registration every 8 secs. But the fact is that the AOR is being updated every 8 seconds, as you can see below [at the bottom of the email], which can be a problem with a lot of customers and registration interval of 2-3 secs.
mysql> select username,contact,received,expires,cseq,last_modified,user_agent from location where username = '300'; +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ | username | contact | received | expires | cseq | last_modified | user_agent | +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ | 300 | sip:300@192.168.1.6:41264 | NULL | 2011-08-19 07:47:54 | 21584 | 2011-08-19 07:47:24 | Linksys/PAP2T-5.1.6(LS) | +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ 1 row in set (0.00 sec)
mysql> select username,contact,received,expires,cseq,last_modified,user_agent from location where username = '300'; +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ | username | contact | received | expires | cseq | last_modified | user_agent | +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ | 300 | sip:300@192.168.1.6:41264 | NULL | 2011-08-19 07:48:02 | 21585 | 2011-08-19 07:47:32 | Linksys/PAP2T-5.1.6(LS) | +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ 1 row in set (0.00 sec)
mysql> select username,contact,received,expires,cseq,last_modified,user_agent from location where username = '300'; +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ | username | contact | received | expires | cseq | last_modified | user_agent | +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ | 300 | sip:300@192.168.1.6:41264 | NULL | 2011-08-19 07:48:10 | 21586 | 2011-08-19 07:47:40 | Linksys/PAP2T-5.1.6(LS) | +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ 1 row in set (0.00 sec)
mysql> select username,contact,received,expires,cseq,last_modified,user_agent from location where username = '300'; +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ | username | contact | received | expires | cseq | last_modified | user_agent | +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ | 300 | sip:300@192.168.1.6:41264 | NULL | 2011-08-19 07:48:18 | 21587 | 2011-08-19 07:47:48 | Linksys/PAP2T-5.1.6(LS) | +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ 1 row in set (0.00 sec)
mysql> select username,contact,received,expires,cseq,last_modified,user_agent from location where username = '300'; +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ | username | contact | received | expires | cseq | last_modified | user_agent | +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ | 300 | sip:300@192.168.1.6:41264 | NULL | 2011-08-19 07:48:26 | 21588 | 2011-08-19 07:47:56 | Linksys/PAP2T-5.1.6(LS) | +----------+---------------------------+----------+---------------------+-------+---------------------+-------------------------+ 1 row in set (0.00 sec)
REGISTER sip:192.168.1.194 SIP/2.0 Via: SIP/2.0/UDP 192.168.1.6:41264;branch=z9hG4bK-9b668c64 From: 300 sip:300@192.168.1.194;tag=b5ca67bbbdf6bco0 To: 300 sip:300@192.168.1.194 Call-ID: f9529c78-63628117@172.31.196.45 CSeq: 21584 REGISTER Max-Forwards: 70 Authorization: Digest username="300",realm="192.168.1.194",nonce="Tk5OZ05OTTsZu75W6fbHxQjiBwnTxMwHdJ7+cYA=",uri="sip:192.168.1.194",algorithm=MD5,response="14e9fb5fe39d959ad92fc08f0aed1539" Contact: 300 sip:300@192.168.1.6:41264;expires=10 User-Agent: Linksys/PAP2T-5.1.6(LS) Content-Length: 0 Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER Supported: x-sipura, replaces
SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.1.6:41264;branch=z9hG4bK-9b668c64 From: 300 sip:300@192.168.1.194;tag=b5ca67bbbdf6bco0 To: 300 sip:300@192.168.1.194;tag=b27e1a1d33761e85846fc98f5f3a7e58.c5d8 Call-ID: f9529c78-63628117@172.31.196.45 CSeq: 21584 REGISTER Contact: sip:300@192.168.1.6:41264;expires=30 Server: kamailio (3.1.4 (x86_64/linux)) Content-Length: 0
REGISTER sip:192.168.1.194 SIP/2.0 Via: SIP/2.0/UDP 192.168.1.6:41264;branch=z9hG4bK-5777b8c From: 300 sip:300@192.168.1.194;tag=b5ca67bbbdf6bco0 To: 300 sip:300@192.168.1.194 Call-ID: f9529c78-63628117@172.31.196.45 CSeq: 21585 REGISTER Max-Forwards: 70 Authorization: Digest username="300",realm="192.168.1.194",nonce="Tk5OZ05OTTsZu75W6fbHxQjiBwnTxMwHdJ7+cYA=",uri="sip:192.168.1.194",algorithm=MD5,response="14e9fb5fe39d959ad92fc08f0aed1539" Contact: 300 sip:300@192.168.1.6:41264;expires=10 User-Agent: Linksys/PAP2T-5.1.6(LS) Content-Length: 0 Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER Supported: x-sipura, replaces
SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.1.6:41264;branch=z9hG4bK-5777b8c From: 300 sip:300@192.168.1.194;tag=b5ca67bbbdf6bco0 To: 300 sip:300@192.168.1.194;tag=b27e1a1d33761e85846fc98f5f3a7e58.7c3e Call-ID: f9529c78-63628117@172.31.196.45 CSeq: 21585 REGISTER Contact: sip:300@192.168.1.6:41264;expires=30 Server: kamailio (3.1.4 (x86_64/linux)) Content-Length: 0
REGISTER sip:192.168.1.194 SIP/2.0 Via: SIP/2.0/UDP 192.168.1.6:41264;branch=z9hG4bK-e85319a5 From: 300 sip:300@192.168.1.194;tag=b5ca67bbbdf6bco0 To: 300 sip:300@192.168.1.194 Call-ID: f9529c78-63628117@172.31.196.45 CSeq: 21586 REGISTER Max-Forwards: 70 Authorization: Digest username="300",realm="192.168.1.194",nonce="Tk5OZ05OTTsZu75W6fbHxQjiBwnTxMwHdJ7+cYA=",uri="sip:192.168.1.194",algorithm=MD5,response="14e9fb5fe39d959ad92fc08f0aed1539" Contact: 300 sip:300@192.168.1.6:41264;expires=10 User-Agent: Linksys/PAP2T-5.1.6(LS) Content-Length: 0 Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER Supported: x-sipura, replaces
SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.1.6:41264;branch=z9hG4bK-e85319a5 From: 300 sip:300@192.168.1.194;tag=b5ca67bbbdf6bco0 To: 300 sip:300@192.168.1.194;tag=b27e1a1d33761e85846fc98f5f3a7e58.a8fb Call-ID: f9529c78-63628117@172.31.196.45 CSeq: 21586 REGISTER Contact: sip:300@192.168.1.6:41264;expires=30 Server: kamailio (3.1.4 (x86_64/linux)) Content-Length: 0
this is how the AOR in memory looks like if the linksys is set to 3 secs, it sends it roughly every 1 sec
[root@mia-sbc-registrar1 sbin]# ./kamctl ul show Domain:: location table=512 records=1 max_slot=1 AOR:: 300 Contact:: sip:300@192.168.1.6:41264 Q= Expires:: 29 Callid:: f9529c78-63628117@172.31.196.45 Cseq:: 21798 User-agent:: Linksys/PAP2T-5.1.6(LS) State:: CS_DIRTY Flags:: 0 Cflag:: 0 Socket:: udp:192.168.1.194:5060 Methods:: 4767 [root@mia-sbc-registrar1 sbin]# ./kamctl ul show Domain:: location table=512 records=1 max_slot=1 AOR:: 300 Contact:: sip:300@192.168.1.6:41264 Q= Expires:: 29 Callid:: f9529c78-63628117@172.31.196.45 Cseq:: 21799 User-agent:: Linksys/PAP2T-5.1.6(LS) State:: CS_DIRTY Flags:: 0 Cflag:: 0 Socket:: udp:192.168.1.194:5060 Methods:: 4767 [root@mia-sbc-registrar1 sbin]# ./kamctl ul show Domain:: location table=512 records=1 max_slot=1 AOR:: 300 Contact:: sip:300@192.168.1.6:41264 Q= Expires:: 29 Callid:: f9529c78-63628117@172.31.196.45 Cseq:: 21800 User-agent:: Linksys/PAP2T-5.1.6(LS) State:: CS_DIRTY Flags:: 0 Cflag:: 0 Socket:: udp:192.168.1.194:5060 Methods:: 4767 [root@mia-sbc-registrar1 sbin]# ./kamctl ul show Domain:: location table=512 records=1 max_slot=1 AOR:: 300 Contact:: sip:300@192.168.1.6:41264 Q= Expires:: 30 Callid:: f9529c78-63628117@172.31.196.45 Cseq:: 21801 User-agent:: Linksys/PAP2T-5.1.6(LS) State:: CS_DIRTY Flags:: 0 Cflag:: 0 Socket:: udp:192.168.1.194:5060 Methods:: 4767 [root@mia-sbc-registrar1 sbin]# ./kamctl ul show
Date: Fri, 19 Aug 2011 13:04:29 +0200 From: miconda@gmail.com To: sr-users@lists.sip-router.org CC: fborot@hotmail.com Subject: Re: [SR-Users] min expires question
Hello,
On 8/18/11 6:20 PM, Fabian Borot wrote:
Hello
This is how my registrar module is configured, hoping that min-expires set to 30 wont allow registration attempts more often than 30 seconds, but if I configure a UAC to register every 15 seconds I see that kamailio allows it. Shouldn't it reply with "422 Session Interval Too Small" or "423 Interval Too Brief"?
it will not allow a REGISTER with Expires value less than 30sec. But even the phone sends a REGISTER with Expires 3600 (for example), it can send again in 10 sec another REGISTER with Expires 3600. In order to see if there is something incorrect, send us full REGISTER requests and the replies.
Cheers,
Daniel
# ----- registrar params -----
modparam("registrar", "default_expires", 120)
modparam("registrar", "min_expires", 30)
modparam("registrar", "method_filtering", 1)
/* uncomment the next line to disable parallel forking via location */
# modparam("registrar", "append_branches", 0)
/* uncomment the next line not to allow more than 10 contacts per AOR */
#modparam("registrar", "max_contacts", 10)
131.380336 192.168.1.6 -> 192.168.1.194 SIP Request: REGISTER sip:192.168.1.194
131.381174 192.168.1.194 -> 192.168.1.6 SIP Status: 200 OK (1 bindings)
144.386014 192.168.1.6 -> 192.168.1.194 SIP Request: REGISTER sip:192.168.1.194
144.387110 192.168.1.194 -> 192.168.1.6 SIP Status: 200 OK (1 bindings)
157.395358 192.168.1.6 -> 192.168.1.194 SIP Request: REGISTER sip:192.168.1.194
157.396340 192.168.1.194 -> 192.168.1.6 SIP Status: 200 OK (1 bindings)
170.404905 192.168.1.6 -> 192.168.1.194 SIP Request: REGISTER sip:192.168.1.194
170.405771 192.168.1.194 -> 192.168.1.6 SIP Status: 200 OK (1 bindings)
183.414375 192.168.1.6 -> 192.168.1.194 SIP Request: REGISTER sip:192.168.1.194
183.415217 192.168.1.194 -> 192.168.1.6 SIP Status: 200 OK (1 bindings)
txs fborot
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla -- http://www.asipto.com Kamailio Advanced Training, Oct 10-13, Berlin: http://asipto.com/u/kat http://linkedin.com/in/miconda -- http://twitter.com/miconda