[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