[OpenSER-Users] No answers whatssoever??
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Wed Feb 27 20:03:48 CET 2008
Hi Taisto,
oh...no worry, no offence...only that sometime time is not enough in
order to sustain a realtime (as closed as possible) conversation :D
Well, it seams you gathered and posted a lot of arguments - to go
through all this new info, I will need a bit of time (right now I'm a
bit stressed with fixing some bugs for the 1.3.1 release ;) ), so do
scare if it will pass some time before getting a reply to this email
Thanks and regards,
Bogdan
Taisto Qvist (WM) wrote:
> Hi Bogdan, and thanks a millon for your reply :-)
> (I was beginning to think I had offended people in some way)
>
>
>> And OpenSER is doing this - 200OK ACK is not part of the INVITE
>> transaction.
>>
> But you read my references right? I hadnt seen the reference you
> mentioned, but even with it, it indicates that the INVITE txn is
> not the SAME txn, as the ACK.
>
> Then this is what makes me think it is wrong that the "t_check_trans"
> function matches an ACK(2xx, not 3++) to the INVITE, if they truly
> are different transactions.(as implied by yours and my references).
> I'll start with the rfc-references, then add more comments on your text.
>
>
>> Now, about destroying the INVITE transaction after 200OK, I not sure if
>> the RFC really states this. The RFC says the transaction is completed
>> with the 200 OK, but not destroyed - this is more or less an
>>
>
> Well, here are my references that I think clearly says that the transaction
> should be destroyed.
>
> 1)
> 17.1.1.2 (client invite txn)
> ...
> The client transaction MUST be destroyed the instant it enters the
> "Terminated" state. This is actually necessary to guarantee correct
> operation.
>
> 2)
> 17.2.1. (server invite txn)
> The purpose of the "Confirmed" state is to absorb any additional ACK
> messages that arrive, triggered from retransmissions of the final
> response.
> ..snip...
> Once the transaction is in the "Terminated" state, it MUST be
> destroyed immediately.
>
> Both of these say, MUST, and "destroyed immediatedly", but there is
> even another, even more clear description in the transport chapter:
>
> In 18.2.1 the text explicitly says:
> .. Note that when a UAS core sends a 2xx response to INVITE,
> the server transaction is destroyed. This means that when the ACK
> arrives, there will be no matching server transaction, and based on
> this rule, the ACK is passed to the UAS core, where it is processed.
>
>
>> About the 200OK ACK "matching" to the INVITE transaction - let's not
>> make the confusion on how we understand the "match" word. It is not a
>> "transaction-wise" matching (since it's about 2 different
>> transactions), but about "dialog-wise" matching. The 200OK ACK matches
>> (as dialog, using the dialog related fields) the INVITE...
>>
>
> I suppose this is we're we "clash", in the most friendly way possible :-)
> The TM module is(?or isn't it?) a transaction layer, and I thought it
> weird that a function effektively called "check/match transaction",
> will actually make a dialog-matching-result, returning true for ACK to 2xx.
>
> Or am I simply interpreting the TM module wrong?
>
> Is it more thought of as *generic* statehandling module? Since there is
> a separate dialog-module, I've simply assumed TM was a txn-module.
>
> Maybe because I teach a lot about SIP, I find this very confusing since
> I make a clear distinction between txns and dialogs, and my suggestion
> was(since maybe this is used by a lot of people) to at least make
> the dialog-matching capabilites *configurable*.
>
> Something along the lines of:
>
> modparam("tm","ack_2xx_matching", 1);
>
> Would that be a complicated addition? It would be a simple ;branch=
> match but I saw in the code you dont seem to be doing this...?
>
> Anyway, thanks for your reply!
>
> Kind Regards
> Taisto
>
>
> Bogdan-Andrei Iancu wrote:
>
>> Hi Taisto,
>>
>>
>> As mentioned in a previous email, the RFC3261 says that the 200OK ACK
>> forms a separate transaction:
>>
>> 17 Transactions (page 122)
>> ....
>>
>>
>> The reason for this separation is rooted in the importance of
>> delivering all 200 (OK) responses to an INVITE to the UAC. To deliver
>> them all to the UAC, the UAS alone takes responsibility for
>> retransmitting them (see Section 13.3.1.4), and the UAC alone takes
>> responsibility for acknowledging them with ACK (see Section 13.2.2.4).
>> Since this ACK is retransmitted only by the UAC, it is
>> effectively considered its own transaction. .....
>>
>>
>> And OpenSER is doing this - 200OK ACK is not part of the INVITE
>> transaction.
>>
>> Now, about destroying the INVITE transaction after 200OK, I not sure if
>> the RFC really states this. The RFC says the transaction is completed
>> with the 200 OK, but not destroyed - this is more or less an
>> implementation option, in my opinion.
>>
>> About the 200OK ACK "matching" to the INVITE transaction - let's not
>> make the confusion on how we understand the "match" word. It is not a
>> "transaction-wise" matching (since it's about 2 different
>> transactions), but about "dialog-wise" matching. The 200OK ACK matches
>> (as dialog, using the dialog related fields) the INVITE...
>>
>> Please let me know if things are still not clear.
>>
>>
>> Regards,
>> Bogdan
>>
>>
>> Taisto Qvist (WM) wrote:
>>
>>
>>> Hi, and sorry if I am getting repetitious but since I am not getting
>>> any replies on what I thought was an important
>>> question(rfc-complicance) I need to ask the question again...(at least
>>> indicate why you disagree with me?)
>>>
>>> I was hoping someone could comment on what I thought was some fairly
>>> clear rfc-references, that indicate that an ACK for 2xx should NOT
>>> match the INVITE transaction, since it should be terminated at
>>> reception/sending of 2xx.
>>>
>>> I hope I dont offend in any way, I would just like to get some
>>> clarification on this.
>>>
>>> I hope you can clarify your standpoint, especially if you disagree
>>> with me, which I get the feeling you do.
>>>
>>> Kind Regards
>>> Taisto Qvist
>>>
>>>
>>>
>>>
>
>
>
>
More information about the Users
mailing list