[OpenSER-Devel] [Serdev] Possible bug in the tm module in the presence of packet loss/branches

Maxim Sobolev sobomax at sippysoft.com
Wed Mar 12 23:29:29 CET 2008


Dan Pascu wrote:
> On Wednesday 12 March 2008, Maxim Sobolev wrote:
>> No, it's not. Any protocol involving communication delay would have
>> this problem. It's just the matter of how big the window of opportunity
>> actually is.
>>
>> And frankly I don't see how previous behavior is better in that
>> example. It still quite possible that the "other branch" mentioned
>> there would actually have received INVITE, sent provisional reply,
>> which simply got lost in transit, so that it happily answers the call
>> in 10 seconds afterwards. So that whatever legal "binding" could be
>> it's all here. In fact, the new behavior, which would continue INVITE
>> retransmits has a better chances to relay CANCEL to that branch in
>> time, due to the fact that it would stimulate retransmission of
>> provisional reply even after CANCEL has already been received.
> 
> With the current behavior, the caller never receives the 200 OK and 
> doesn't send an ACK to confirm it, so he can claim that he has not 
> accepted the call and his claim is sustained by the sip trace. and the 
> fact that the other side never receives a confirmation (ACK) for the 
> call.

You are contradicting yourself. In the previous message you have said 
that this doesn't matter as long as answering party has sent 200 OK. My 
point is that with the new behavior you will get better chances to not 
get into this issue at all in the first place, unless answering party is 
in fact hostile and deliberately not sending provisional replies. And 
the "hostile" issue has been addressed in another message of mine.

> With the new behavior, the user receives the 200 OK, it has to ACK it and 
> then close the call with a BYE, which by any measure means he accepted 
> the call, even though it was done by the device and the user may even be 
> unaware of what happened. Of course the device can chose to ignore the 
> 200 OK and not send an ACK, though I'm sure some purists will claim it is 
> not RFC conformant, but in the end we only move the behavior from the 
> proxy to the phone.

To continue your logic this should transfer responsibility
from user to his device so that the callee should sue the device 
instead. :)

On a serious note, though, I am not a lawyer myself, and as such I can't 
make any professional judgments, but in my purely common sense view 
should the issue arise the fact that the proxy has received CANCEL 
indicating that user has actually hanged up should be enough to resolve 
the case. You can bring technical expert who would testify in court that 
this sequence of SIP messages actually means that the call has not 
completed. Judges doesn't read RFCs and protocol logs and rely on 
independent expert opinion to decode and explain those things in plain 
words, so that I am pretty sure the whole "binding" point is moot as any 
technical expert who knows SIP will be able to decode this properly.

Regards,
-- 
Maksym Sobolyev
Sippy Software, Inc.
Internet Telephony (VoIP) Experts
T/F: +1-646-651-1110
Web: http://www.sippysoft.com



More information about the Devel mailing list