[asterisk-dev] [Code Review] 2475: Fix SIP Notify / BLF Stop Working, after packet loss and 10 retries

Walter Doekes walter+asterisk-dev at osso.nl
Thu Apr 25 05:38:22 CDT 2013


>>         RFC 6665 is very clear that if we fail (after a couple of retries) then the subscription should be removed. The client should resubscribe. SIP has retransmissions to handle packet loss and retries.

> I should have read the RFC first, it's a SHOULD though, not a MUST.
>
> RFC6665 4.2.2.  Sending State Information to Subscribers
> "If the NOTIFY request fails due to expiration of SIP Timer F (transaction timeout), the notifier SHOULD remove the subscription."
>
> "     Upon client restart or reestablishment of a network connection, it is
>        expected that clients will send SUBSCRIBE requests to refresh
>        potentially stale state information; such requests will reinstall
>        subscriptions in all relevant nodes."
>
> The above seems flawed, how will a client know the network in the middle was down, that they missed any requests, and thus need to SUBSCRIBE again?
> If the subscription expires time is short enough, 5 minutes, then OK the BLF may be incorrect for upto 5 minutes.

I recently patched one of my (opensips) presence servers to *not* expire 
the subscription after a few unanswered notify's.

Temporary network issues (probably unpunctured NAT) made subsequent 
NOTIFYs not go out because the presence server had dropped the 
subscription. And then the subscribers were (rightly) wondering why they 
were not getting new notifies while nearby devices were getting theirs.

Walter



More information about the asterisk-dev mailing list