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.




--
___________________________________________________
    __
   |-                      [EMAIL PROTECTED]
   |ederico Giannici      http://www.neomedia.it

       Presidente del CDA - Neomedia S.r.l.
___________________________________________________

_______________________________________________
Users mailing list
Users@openser.org
http://openser.org/cgi-bin/mailman/listinfo/users

Reply via email to