Hi Jiri, David,
Thank you very much
for your timely replies. I will check if the ACK hits t_relay or not in my
configuration. I have skimmed through the transaction matching code in SER but
I don't remember if it checks the FROM field or the FROM tag. I'll
verify this when I can.
Minh
De : Wearne, David W.
[mailto:DWWearne@west.com]
Envoyé : jeudi 6 janvier 2005
20:56
À : PHAN, Quang-Minh (Docteur
Ordinateur); serusers@lists.iptel.org
Objet : RE: [Serusers]
Problem with ACK on Negative Reply
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