Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Submitted By: Thomas Gelf (thomas_gelf)
Assigned to: Bogdan-Andrei Iancu (bogdan_iancu)
Summary: Other branches should not be CANCELed on "nonfinal" failures
Assume two branches, one of them making use of uac_auth(). As soon as 407 for that branch arrives, the other branch is CANCELed immediately by OpenSIPS. This is IMO not correct, and also RFC3261 states that "requests that are reattempted (see 22.214.171.124 -> 401, 407 etc) should not be considered failures".
NB: Yeah, I know this is a tricky one. However, could not resist posting it - as doing so I'm sure it doesn't get lost ;-)
Comment By: Thomas Gelf (thomas_gelf)
Date: 2009-07-21 13:05
If it does so, everything is fine. This has been some time ago, so I don't
remember all the details. AFAIR I did the following:
- if a user being low on credit issued a call to PSTN, a parallel branch
was forked to an announcement server, saying "Hey, you should..."
- PSTN call was uac_authenticated, 183 replies where thought to be
"converted" to 180 (perl module)
- the problem was: as soon as the 407 arrived, the second branch got
canceled - and that's why I opened this ticket
If this is not how OpenSIPS should behave I could try to recreate the
Trying to follow up this report - if you have 2 ongoing branches (on
ringing state, let's assume), when receiving 407 on one of the branches
will not trigger a cancelling of the second pending branch - the current
implementation for parallel forking cancels pending branches only when a
2xx reply was received or for 6xx replies...otherwise, it will wait to get
a final reply from all pending branches...