[Users] Bug in branch handling?
Federico Giannici
giannici at neomedia.it
Thu Jun 8 16:07:35 CEST 2006
If I remember correctly, the RFC says that:
1) The 2xx ACKs are a new transaction.
2) Each new transaction must have a different branch in the Via header.
So, for the transitive property...
Bye.
Bogdan-Andrei Iancu wrote:
> Hi Federico,
>
> I tried to go through the RFC to find something backing up their
> statement. But lucky for us, I didn't find.
> Here is the part describing how a 2xx ACK must be build:
>
> 13.2.2.4 2xx Responses
>
> The UAC core MUST generate an ACK request for each 2xx received from
> the transaction layer. The header fields of the ACK are constructed
> in the same way as for any request sent within a dialog (see Section
> 12) with the exception of the CSeq and the header fields related to
> authentication. The sequence number of the CSeq header field MUST be
> the same as the INVITE being acknowledged, but the CSeq method MUST
> be ACK. The ACK MUST contain the same credentials as the INVITE. If
> the 2xx contains an offer (based on the rules above), the ACK MUST
> carry an answer in its body. If the offer in the 2xx response is not
> acceptable, the UAC core MUST generate a valid answer in the ACK and
> then send a BYE immediately.
>
>
> looking to:
>
> 12.2 Requests within a Dialog
>
> 12.2.1 UAC Behavior
>
> 12.2.1.1 Generating the Request
>
>
> there are no special requirements for VIA branch.
> Also in
>
> 8.1.1.7 Via
>
> The branch parameter value MUST be unique across space and time for
> all requests sent by the UA. The exceptions to this rule are CANCEL
> and ACK for non-2xx responses. As discussed below, a CANCEL request
> will have the same value of the branch parameter as the request it
> cancels. As discussed in Section 17.1.1.3, an ACK for a non-2xx
> response will also have the same branch ID as the INVITE whose
> response it acknowledges.
>
> there is no limitation about the 2xx ACK branch - it says that it must
> be the same for non-2xx ACK and CANCEL but this does not imply that for
> 2xx ACK it *must* be different.
>
> Maybe they can point out more precisely the RFC section that supports
> their statement.
>
> regards,
> bogdan
>
>
> Federico Giannici wrote:
>
>> I'm using OpenSER 1.0.0 under OpenBSD 3.9-stable amd64.
>>
>> An user of our SIP server have a VoIP PBX called "voispeed".
>>
>> Their calls always hung up after 20 seconds because they say that our
>> SIP server doesn't correctly handle the branch parameter.
>>
>> They say that RFC3261 specifies that ACK messages for a 2xx reply MUST
>> use a different "branch" parameter (contrary to ACK messages to non
>> 2xx replies). But it seems that OpenSER doesn't recognize these ACKs
>> with different branch parameter and keeps sending the 200 reply.
>>
>> Can somebody confirm this bug in OpenSER?
>> Ant solution?
>>
>>
>> Thanks.
>>
>
--
___________________________________________________
__
|- giannici at neomedia.it
|ederico Giannici http://www.neomedia.it
Presidente del CDA - Neomedia S.r.l.
___________________________________________________
More information about the Users
mailing list