I ran into exactly the same problem in
December. There are several reasons why SER may not realize the ACK
belongs to the transaction. Look carefully at the via: and from: headers
in the INVITE and the ACK. The via: should have a branch parameter, and
it should be the same in both. Some UAs do not put in the branch
parameter. In this case SER should (according to RFC3261) be looking at
the combination of the Request URI, To tag, From tag, Call-ID, Cseq, and top
via header. In my case the problem was that SER compares the From field
rather than the From tag, and it does so incorrectly. I raised this issue
both here and in the serdev list, (you can find the thread in the December
archives), but the developers said they would not fix this because it is in
support of an obsolete spec (RFC 2543).
I recommend you check those headers to see
if your situation actually matches what I ran into, and if so, raise the issue
to the serdev list. If enough people complain, they might decide to
provide better support of RFC3261, section 17.2.3 (Matching Requests to Server
Transactions).
Dave
From:
serusers-bounces@iptel.org [mailto:serusers-bounces@lists.iptel.org] On Behalf Of PHAN, Quang-Minh (Docteur
Ordinateur)
Sent: Thursday, January 06, 2005
12:10 PM
To: serusers@lists.iptel.org
Subject: [Serusers] Problem with
ACK on Negative Reply
Hi all,
When I use SER in transaction stateful mode, I have the following problem:
When A sends an "INVITE B" to SER, SER forwards the INVITE to B
statefully. If B reply with "200 OK", everything goes fine as SER
will delete the transaction from memory when it sees the 200 OK. However, if B
send an "BUSY HERE" back to SER, SER will send an ACK to B right away
and then forwards the "BUSY HERE" to A. A will then send an ACK to
SER but SER won't realize that the ACK belong to the transaction and forward it
to B. SER will then keep sending "BUSY HERE" to A until the
transaction is timed out.
I wonder if there is something to add in the configuration file to make SER
understand that the ACK send from A should terminate the transaction.
Any help
will be highly appreciated!
Minh