Okay, I found the code that is causing sofia-sip to use the default Expires
value instead of the value specified by the server.  It is in the
nua_register_client_response() function in the
libsofia-sip-ua/nua/nua_register.c file.

It appears a for-loop check in this function is comparing the sent Contact
URL to the received Contact URL which is always different (because the sent
URL is the phone's URL and the received URL is the server's URL), thus the
code that sets the refresh time to the received Expires value is never
getting invoked.


-----Original Message-----
From: Jerry Richards [mailto:jer...@tonecommander.com] 
Sent: Monday, July 27, 2009 11:04 AM
To: 'sofia-sip-devel@lists.sourceforge.net'
Subject: REGISTER Refreshing Error?


I am using version 1.12.9 and noticed the sofia-sip stack setting the
register refresh timer to the wrong value.  That is, the 200 OK includes
"Expires: 60", but sofia-sip logs this:

"nua(): refresh register after 1905 seconds (in [900..2700])".

Here is the 200 OK content:

Status-Line: SIP/2.0 200 OK
Message Header:
   To: ...
   From: ...
   Call-ID: ...
   Via: ...
   User-Agent: ...
   Max-Forwards: ...
   Contact: sip:6...@
   Cseq: 118227582 REGISTER
   Expires: 60
   Content-Length: 0

Do you know why the timer could be wrong?  It looks like it's getting set to
the default 3600 seconds.

Best Regards,

Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
Sofia-sip-devel mailing list

Reply via email to