Date: Tue, 15 Jun 2010 16:57:37 -0400
From: Alex Balashov <abalashov(a)evaristesys.com>
Subject: Re: [SR-Users] sipp to kamailio doesn't match ACK
To: sr-users(a)lists.sip-router.org
Message-ID: <4C17E941.4020506(a)evaristesys.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
1) AFAIK, the Record-Route/Route headers are used by TM for maintaining
transaction state, unless you are relying on the 'dialog' module's
"fast
matching" cookies, which are identifiers that get placed as a URI
parameter into the Record-Route header so that it is not necessary to
match the message by more conventional means (Via/branch, Call-ID, tags,
etc.)
2) ACK is a separate transaction; every request and reply sequence is a
transaction. So, if you're trying to match it to an existing INVITE
transaction, for instance, that won't happen.
t_check_trans() has special behaviour for ACKs, depending on whether
they're end-to-end ACKs or ACKs for negative replies to existing
transactions:
http://www.kamailio.org/docs/modules/3.0.x/modules/tm.html#t_check_trans
Are you sure that you're using it, or its newer variant,
t_lookup_request(), correctly?
3) You are, nevertheless, correct that the ACK should contain the RR
header:
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.
-- Alex