Hi All,

I am testing parallel forking so I can setup ring groups, but it seem
I cannot get OpenSER 1.3 to parallel fork contacts of the same
q-value. It always seem to use the first record found in MySQL, and
ignores all others. I have tried adding append_branch after
lookup("location") , but that did not seem to help. I've also done
ethereal captures and confirmed that it is only sending an INVITE to
the first contact in MySQL (I've tried db_mode 3 and 1). I'm know I'm
missing something, but not sure what.

I've included relevant portions of my test config below. Any help
would be greatly appreciated.

Regards,
Daryl




route {

# -----------------------------------------------------------------
# Sanity Check, NAT Check & General Routing
# -----------------------------------------------------------------

        if (!mf_process_maxfwd_header("10")) {
                sl_send_reply("483", "Too Many Hops");
                exit;
        }

        if (msg:len > max_len) {
                sl_send_reply("513", "Message Overflow");
                exit;
        }

        if (nat_uac_test("19")) {
                setbflag(6);
                xlog("L_INFO", "NAT CLIENT - M=$rm RURI=$ru F=$fu T=$tu 
IP=$si\n");
        }

        if (method=="INVITE" || method=="ACK" || method=="BYE") {
                setflag(1);
        }

        if (method!="REGISTER") {
                record_route();
        }

        if (loose_route()) {
            xlog("L_INFO", "LOOSE ROUTING - M=$rm RURI=$ru F=$fu T=$tu
IP=$si ID=$ci\n");
            if (!t_relay()) {
                    sl_reply_error();
            }
            exit;
        }

        if (method=="REGISTER") {
                route(2);
                exit;
        } else if (method=="INVITE") {
                route(3);
                exit;
        }

        route(1);
        exit;
}


route[1] {

# -----------------------------------------------------------------
# Default Message Handler
# -----------------------------------------------------------------

        if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" &&
!search("^Route:")){
                sl_send_reply("479", "We don't forward to private IP 
addresses");
                exit;
        }

        t_on_reply("1");
        t_on_failure("1");

        if (!t_relay()) {
                sl_reply_error();
        }
        exit;
}


route[2] {

# -----------------------------------------------------------------
# REGISTER Message Handler
# -----------------------------------------------------------------

        sl_send_reply("100", "Trying");

        if (!www_authorize("","subscriber")) {
                www_challenge("","0");
                exit;
        }
        consume_credentials();

        if (!save("location")) {
                sl_reply_error();
        }

        xlog("L_INFO", "REGISTER - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
}


route[3] {

# -----------------------------------------------------------------
# INVITE Message Handler
# -----------------------------------------------------------------

        xlog("L_INFO", "INVITE - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");

        # Trusted IP
        if (src_ip==xxx.xxx.xxx.xxx) {
                strip(2);
                xlog("L_INFO", "FROM PSTN - M=$rm RURI=$ru F=$fu T=$tu 
IP=$si\n");
        } else {
                if (!proxy_authorize("","subscriber")) {
                        proxy_challenge("","0");
                        exit;
                }
                consume_credentials();
        }


        if (lookup("location")) {
                xlog( "L_NOTICE", "USER FOUND - M=$rm RURI=$ru F=$fu T=$tu 
IP=$si\n");
        } else {
                xlog( "L_NOTICE", "USER NOT FOUND! - M=$rm RURI=$ru F=$fu T=$tu 
IP=$si\n");
        }


        if (isbflagset(6) || !lookup("location")) {
                xlog( "L_NOTICE", "RELAYING MEDIA - M=$rm RURI=$ru F=$fu T=$tu 
IP=$si\n");
                route(4);
                exit;
        }

        route(1);
        exit;
}


route[4] {

# -----------------------------------------------------------------
# PSTN Handler
# -----------------------------------------------------------------

        force_send_socket(xxx.xxx.xxx.xxx:5060);
        xlog("L_NOTICE", "FORWARDING TO PSTN\n" );

        ds_select_domain("1","0");
        route(1);
        exit;
}

_______________________________________________
Users mailing list
[email protected]
http://lists.openser.org/cgi-bin/mailman/listinfo/users

Reply via email to