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

_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to