Date: Tue, 15 Jun 2010 16:57:37 -0400 From: Alex Balashov abalashov@evaristesys.com Subject: Re: [SR-Users] sipp to kamailio doesn't match ACK To: sr-users@lists.sip-router.org Message-ID: 4C17E941.4020506@evaristesys.com Content-Type: text/plain; charset=UTF-8; format=flowed
- 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.)
- 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?
- 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
Thanks for the feedback Alex.
JR