Hi Adrien,
On 07/06/2010 10:39 AM, inge wrote:
Firstly, I was thinking to make a difference using the CSeq field, but it seems that the CSeq on ACK contains the ACK himself. Probably because ACK is a request and not a response.
You are correct; ACK is a wholly different request and a separate transaction from the exchange it is meant to acknowledge.
It is possible to differentiate end-to-end vs. hop-by-hop ACKs using t_check_trans():
http://www.kamailio.org/docs/modules/3.0.x/modules/tm.html#t_check_trans
See its usage in the stock kamailio.cfg.
Note that 200 response to CANCEL does not generate an ACK, but a 487 response does, so your question is rather academic.