In kamailio-basic.cfg route[LOCATION] we have the following:
--snip--
$var(rc) = $rc;
t_newtran();
switch ($var(rc)) {
case -1:
case -3:
--snip--
What is the purpose of t_newtran() here? Since we have not hit
t_relay() yet (and
don't have a transaction) is this to ensure the caller sees/acks the 404/405?
Earlier in the mailing list
https://lists.kamailio.org/pipermail/sr-users/2015-April/088062.html
I read, although this is in reply to a different situation:
"Why do you need to create new transactions yourself with t_newtran()?
Nonexotic applications of Kamailio usually don't require this. ..."
# User location service
route[LOCATION] {
if (!lookup("location")) {
$var(rc) = $rc;
t_newtran();
switch ($var(rc)) {
case -1:
case -3:
send_reply("404", "Not Found");
exit;
case -2:
send_reply("405", "Method Not Allowed");
exit;
}
}
# when routing via usrloc, log the missed calls also
if (is_method("INVITE")) {
setflag(FLT_ACCMISSED);
}
route(RELAY);
exit;
}
Thanks
AAlba