[Kamailio-Devel] How does Kamailio match an ACK for a stateless [3456]XX replied by Kamailio itself?

Iñaki Baz Castillo ibc at aliax.net
Mon Dec 15 11:19:05 CET 2008

Hi, in case a UAS/proxy creates an INVITE server transaction and replies a 
negative reply by itself (without routing the request)  then the server 
transaction must remain alive until an ACK arrives (the ACK is part of the 
same transaction, same "branch").

But in Kamailio we can reject an incoming INVITE stateless by replying a 
[3456]XX response without creating a server transaction. For example:

  if ($rU == "1234") {
    sl_send_reply("403", "Destination not allowed");

In the case above, Kamailio *doesn't* create a server transaction and replies 
403 stateless, but when the ACK arrives, it is "absorved" internally by 
Kamailio, this is: the ACK doesn't appear in the script logic, it seems it is 
automatically consumed by the transport layer (since there is no transaction 

I just would like to know how Kamailio handles it, just curiosity. Of course, 
the current behaviour seems efficient (Kamailio doesn't need to generate a 
server transaction but at the same time it can absorb the ACK).

Thanks for any explanation.

Iñaki Baz Castillo

More information about the Devel mailing list