[OpenSIPS-Devel] [presence] 'expires_offset' also for NOTIFY ('notify_expires_offset')

Iñaki Baz Castillo ibc at aliax.net
Tue May 26 11:55:57 CEST 2009


Hi, I've detected an issue related to NOTIFY "expires" value when
there are retransmissions for the NOTIFY sent by OpenSIPS:

Imagine that a OpenSIPS sends a NOTIFY "expires=30" to a client at 12:00:00.
Due to some reasons, the client doesn't reply to it (or perhaps there
are network errors) so the NOTIFY is retransmitted by OpenSIPS.
Finally the NOTIFY arrives to the client at 12:00:01.

If the client is too strict, it will send a refresh SUBSCRIBE at
12:00:31, so the subscription has expired in the server one second
ago.
This will cause a "481".

Unfortunatelly some clients (as Qutecom) work in this way, and the
worst: they don't react well when receiving a 481.

So I suggest a new option "notify_expires_offset":

  modparam("presence", "notify_expires_offset", 5)

In the above case (with retransmissions) it means that the client
would receive a NOTIFY with "expires=25" at 12:00:01, and the client
will send the refresh SUSBCRIBE at 12:00:26 (before 12:00:30, the time
in which the subscription would expire in the server), so it would
mitigate the 481 issue.

Is it feasible to add this option? opinions?

Thanks a lot.

-- 
Iñaki Baz Castillo
<ibc at aliax.net>



More information about the Devel mailing list