[Serusers] Routing loop

AJ Grinnell agrinnell at crt.net
Fri Jun 18 16:54:47 CEST 2004


Can someone please help before I lose my mind here. I have all calls
pointing to a cisco as5350. When the calls come in from the cisco, they are
routed through ser and back out the cisco, which in turn gets routed back to
the cisco by our PRI provider. This keeps going in a loop untill all
channels are busied out. I have tried every way I can think of to block
calls incoming from the IP of the cisco, but nothing works. What am I doing
wrong here?


 simple quick-start config script
#

# ----------- global configuration parameters ------------------------

debug=3         # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=yes        # (cmd line: -E)

listen=x
listen=127.0.0.1
alias=x
alias=x
alias=x

check_via=no   # (cmd. line: -v)
dns=no           # (cmd. line: -r)
rev_dns=no      # (cmd. line: -R)
port=5060
children=4
fifo="/tmp/ser_fifo"
sip_warning=yes
syn_branch=no
server_signature=yes
reply_to_via=no

# ------------------ module loading ----------------------------------

# Uncomment this if you want to use SQL database
loadmodule "/usr/lib/ser/modules/mysql.so"
loadmodule "/etc/lib/ser/modules/sl.so"
loadmodule "/etc/lib/ser/modules/tm.so"
loadmodule "/etc/lib/ser/modules/rr.so"
loadmodule "/etc/lib/ser/modules/maxfwd.so"
loadmodule "/etc/lib/ser/modules/usrloc.so"
loadmodule "/etc/lib/ser/modules/registrar.so"
loadmodule "/etc/lib/ser/modules/auth.so"
loadmodule "/etc/lib/ser/modules/auth_db.so"

# ----------------- setting module-specific parameters ---------------

# -- usrloc params --

#modparam("usrloc", "db_mode",   0)
modparam("usrloc", "db_mode", 2)
modparam("auth_db", "db_url", "sql://ser:heslo@localhost/ser")

# -- auth params --
modparam("auth_db", "db_url", "sql://ser:heslo@localhost/ser")
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")

# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)

# -------------------------  request routing logic -------------------

# main routing logic

route{

        # initial sanity checks -- messages with
        # max_forwards==0, or excessively long requests
        if (!mf_process_maxfwd_header("10")) {
                sl_send_reply("483","Too Many Hops");
                break;
        };
        if ( msg:len > max_len ) {
                sl_send_reply("513", "Message too big");
                break;
        };

        record_route();
        # loose-route processing
        if (loose_route()) {
                t_relay();
                break;
        };

        # if the request is for other domain use UsrLoc
        # (in case, it does not work, use the following command
        # with proper names and addresses in it)
        if (uri==myself) {

                if (method=="REGISTER") {

        # Uncomment this if you want to use digest authentication
                       if (!www_authorize("x.x.x.x", "subscriber")) {
                               www_challenge("x.x.x.x", "0");
                               break;
                       };

                        save("location");
                        break;
                };

                if (method=="INVITE") {
                   if (!(uri=="sip:.*@10\.200\.20\.10")){     #Have also
tried if (!uri=~"sip:.*@10\.200\.20\.10")
                         if (uri=~"^sip:[2-9]...... at .*") {    # and if
(!ip_addr==10\.200\.20\.10")
                        # attempt handoff to PSTN.
                        log( "Forwarding to PSTN\n" );
                       sethost("10.200.20.10");
                        };
                 };
            };
        };
        # forward to current uri now; use stateful forwarding; that
        # works reliably even if we forward from TCP to UDP
        if (!t_relay()) {
                sl_reply_error();
        };
}


AJ Grinnell
Network Operations Technician
CRT/ Arialink Broadband
1223 Turner Street, Suite A
Lansing, MI 48906
517.346.5041
517.492.1321 direct




More information about the sr-users mailing list