[SR-Users] Anybody using 2 instances with topos communicating with each other?

Daniel Tryba d.tryba at pocos.nl
Fri Jun 1 15:55:17 CEST 2018


On Wed, May 23, 2018 at 10:58:16PM +0200, Daniel-Constantin Mierla wrote:
> From the excerpts you present, there is an unexpected Record-Route with
> the proxy address in the 200ok towards endpoint. Is it so or just a
> mistake in what you pasted here? Because there should be no record-route
> with proxy address if proxy does topos.

The Record-Route is no mistake. It is added on the proxy.

> > backend:5060 -> proxy:5060
> > SIP/2.0 200 OK
> > Via: SIP/2.0/UDP proxy;branch=...
> > Contact: <sip:atpsh-5af19bf0-9f94-7 at backend>
> >
> > proxy:5060 -> endpoint:5060
> > SIP/2.0 200 OK
> > Contact: <sip:atpsh-5af19bf0-9f94-7 at backend>
> > Via: SIP/2.0/UDP endpoint:5060;received=endpoint;rport=5060;branch=...
> > Record-Route: <sip:proxy;lr>

I have no idea where this is added since there are only 3 record_route()
calls in the config:

------------------------------------------------
# Main SIP request routing logic
# - processing of any incoming SIP request starts with this route
# - note: this is the same as route { ... }
request_route {
#       xlog("L_ALERT","REQUESTROUTE: $rm from $fu (IP:$si:$sp) to $ru via $du\n");

        if(t_precheck_trans())
        {
                t_check_trans();
                exit;
        }
        else
        {
                if(is_method("INVITE") && !has_totag())
                {
                        t_newtran();
                        t_reply("100","Trying");
                }
        }

        route(REQINIT);

        route(NATDETECT);
        route(WITHINDLG);

        if (is_method("INVITE|SUBSCRIBE"))
        {
                record_route();
        }


------------------------------------------------
route[REQINIT] {
....
//some custom mangling for OPTIONS from the backends
        if(is_method("OPTIONS") && $fU=="pinger" && is_in_subnet($si, "185.61.68.104/30")) {
                record_route();
                remove_hf("Route");

------------------------------------------------
# Handle requests within SIP dialogs
route[WITHINDLG] {
        if (!has_totag()) return;

        # sequential request withing a dialog should
        # take the path determined by record-routing
        if (loose_route()) {
                route(DLGURI);
                if ( is_method("ACK") ) {
                        # ACK is forwarded statelessy
                        route(NATMANAGE);
                }
                else if ( is_method("NOTIFY") ) {
                        # Add Record-Route for in-dialog NOTIFY as per RFC 6665.
                        record_route();
 



More information about the sr-users mailing list