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

Klaus Darilion klaus.mailinglists at pernau.at
Wed Mar 12 13:58:23 CET 2008



Dan Pascu schrieb:
> What it is not clear to me in this case, is what does the proxy do if 
> there is no 1xx reply but the 200 OK comes in directly (after the CANCEL 
> was received and the INVITE continued to be retransmitted). In this case 
> it cannot send a CANCEL, or can it? Can a CANCEL be sent after a 200 OK 

No. If i got it right, if the proxy receives a CANCEL, but does not have 
got a response from the UAS, it still must retransmit the and it must 
not send 487 back to the client. The proxy has to:
- if UAS does not responses at all -> after timer B it will send 487 (or 
408?)to the UAC
- if the UAS sends a provisional response -> send CANCEL to UAS and 
forward 487 to UAC
- if the UAS sends 200 OK --> forward 200 ok to UAC

regards
klaus

> but before confirming it with the ACK, or after a 200 OK it must send an 
> ACK followed by a BYE? What about accounting in the later case, because 
> the call will appear as one that was successfully setup and with 0 second 
> duration while in reality it was canceled. The later case also implies 
> that the proxy is no longer a proxy but a b2bua since it initiates 
> dialogs on its own, dialogs that differ from what the call originator has 
> sent to the proxy.
> 
> On Monday 10 March 2008, Klaus Darilion wrote:
>>  From the "sip-implementors" list - looks like Maxim is right.
>>
>> regards
>> klaus
>>
>> Robert Sparks schrieb:
>>> Part of why it does this is to deal with the case that the first
>>> INVITE the proxy sent actually got somewhere, but its response was
>>> lost. The retransmission will stimulate a retransmission of the
>>> response, letting you move forward to sending the CANCEL from the
>>> proxy.
>>>
>>> RjS
>>>
>>> On Mar 7, 2008, at 7:06 AM, Bob Penfield wrote:
>>>> The INVITE transaction must still complete independent of the
>>>> CANCEL. So the proxy would continue to re-transmit the INVITE. If
>>>> the proxy does receive a provisional response, it would then stop
>>>> retransmissions and send the CANCEL down stream. If timer B fired,
>>>> it would send a 408 response to the INVITE.
>>>>
>>>> Note that the proxy should respond to the CANCEL with 200 OK when
>>>> it receives it since the INVITE transaction is in progress.
>>>>
>>>> cheers, (-:bob
>>>>
>>>> -----Original Message----- From:
>>>> sip-implementors-bounces at lists.cs.columbia.edu
>>>> [mailto:sip-implementors-bounces at lists.cs.columbia.edu] On Behalf
>>>> Of Klaus Darilion Sent: Friday, March 07, 2008 4:11 AM To:
>>>> Sip-implementors at lists.cs.columbia.edu Subject: [Sip-implementors]
>>>> CANCEL retransmisson question of no provisional response!
>>>>
>>>> Hi!
>>>>
>>>> Could someone help me please with this question.
>>>>
>>>> Scenario: A transaction-stateful proxy forwards the INVITE request.
>>>> The proxy does not receive a provisional response, thus starts
>>>> retransmissions. Now, the caller CANCELs the call. How is the proxy
>>>>  supposed to handle this? Does the proxy still have to retransmit
>>>> the INVITE or can it stop retransmitting the INVITE?
>>>>
>>>> From logical point of view I would think that the proxy should stop
>>>> the retransmissions, but from Figure 5 in RFC 3261 it looks like
>>>> the only way to come from "Calling" state to "Terminated" state is
>>>> waiting for Timer B fires (as there is no provisional response
>>>> yet).
>>>>
>>>> thanks klaus
>> _______________________________________________
>> Devel mailing list
>> Devel at lists.openser.org
>> http://lists.openser.org/cgi-bin/mailman/listinfo/devel
> 
> 
> 



More information about the Devel mailing list