On 31 Oct 2012, at 21:59, Ryan Bullock wrote:

> These would make pinging a bit more complicated but may help avoid races:
> 
> 1.  Have the ping aware of when the last INVITE was seen in the dialog (sent 
> from anyone) and only issue its own re-INVITE if it has not seen an INVITE 
> for X seconds in the dialog. Perhaps X could be a lower value if the previous 
> re-INVITE had a negative reply (many clients locally end the call when they 
> receive a negative reply to an INVITE, but may not issue a BYE). Add a little 
> session timer awareness and you may be able to avoid most races.

This will not solve anything. Client behavior is unpredictable from the server 
point of view. You cannot estimate when the client will send the next re-INVITE 
in order to avoid the race.

> 
> 2. Combine 1 with OPTIONS between INVITES. For example, send an OPTION ping 
> every minute, but you also want to see a re-INVITE every 15 minutes. This 
> could allow quick detection for clients that support OPTION properly and the 
> re-INVITE would help detect dead calls when the client is a bit buggy.

It doesn't matter if you send in-dialog OPTIONs or INVITEs. Two in-dialog 
requests cannot overlap, no matter if it's an OPTION or an INVITE. The issue is 
the same regardless of the method you use.

--
Dan





_______________________________________________
Devel mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel

Reply via email to