[OpenSER-Users] Opnser rejecting BYE packet

Dan fiedler.dan at gmail.com
Tue Sep 4 10:49:54 CEST 2007


My Config File:

listen=72.65.56.136

#alias=0.0.0.0
alias=dstpl.com

check_via=no    # (cmd. line: -v)
dns=no           # (cmd. line: -r)
rev_dns=no      # (cmd. line: -R)
port=5060
children=6
fifo="/tmp/openser_fifo"
fifo_db_url="postgres://openser:openserrw@localhost/openser"

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

# Uncomment this if you want to use SQL database
 loadmodule "/usr/local/lib/openser/modules/postgres.so"
 loadmodule "/usr/local/lib/openser/modules/sl.so"
 loadmodule "/usr/local/lib/openser/modules/tm.so"
 loadmodule "/usr/local/lib/openser/modules/rr.so"
 loadmodule "/usr/local/lib/openser/modules/uac.so"
 loadmodule "/usr/local/lib/openser/modules/maxfwd.so"
 loadmodule "/usr/local/lib/openser/modules/usrloc.so"
 loadmodule "/usr/local/lib/openser/modules/registrar.so"
 loadmodule "/usr/local/lib/openser/modules/textops.so"
# Uncomment this if you want diest authentication mysql.so must be loaded !
 loadmodule "/usr/local/lib/openser/modules/auth.so"
 loadmodule "/usr/local/lib/openser/modules/auth_radius.so"
 loadmodule "/usr/local/lib/openser/modules/acc.so"
 loadmodule "/usr/local/lib/openser/modules/avpops.so"
 loadmodule "/usr/local/lib/openser/modules/avp_radius.so"
 loadmodule "/usr/local/lib/openser/modules/group_radius.so"
# loadmodule "/usr/local/lib/openser/modules/lcr.so"
 loadmodule "/usr/local/lib/openser/modules/nathelper.so"
#loadmodule "/usr/local/lib/openser/modules/mediaproxy.so"
 loadmodule "/usr/local/lib/openser/modules/uri.so"
 loadmodule "/usr/local/lib/openser/modules/uri_db.so"
 loadmodule "/usr/local/lib/openser/modules/permissions.so"

 modparam("auth_db|permissions|uri_db|usrloc","db_url",
"postgres://openser:openserrw@localhost/openser")

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


# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
#modparam("usrloc", "db_mode", 2)
 modparam("maxfwd", "max_limit", 32)
 
modparam("auth_radius","radius_config","/etc/radiusclient-ng/radiusclient.co
nf")
 modparam("auth_radius", "service_type", 15)
 modparam("avp_radius", "radius_config",
"/etc/radiusclient-ng/radiusclient.conf")
 modparam("group_radius", "radius_config",
"/etc/radiusclient-ng/radiusclient.conf")

# -- Accounting param --

 modparam("acc", "radius_config", "/etc/radiusclient-ng/radiusclient.conf")
 modparam("acc", "service_type", 16)
 modparam("acc", "radius_flag", 1)
 modparam("acc", "log_level", 1)
# modparam("acc", "radius_missed_flag", 1)
 modparam("acc", "report_ack", 0)   # 1 reporta dos starts en acc
 modparam("acc", "radius_extra", "Sip-Source-IP-Address=$si")

# -- auth params --
# Uncomment if you are using auth module
#modparam("auth_db", "calculate_ha1", yes)
#
# If you set "calculate_ha1" parameter to yes (which true in this config),
# uncomment also the following parameter)
#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)

# modparam("avpops", "avp_aliases", "c_uri=i:888; s_ip=i:999" )

 modparam("nathelper", "natping_interval", 30)
 modparam("nathelper", "ping_nated_only", 1)
 modparam("nathelper", "rtpproxy_sock", "unix:/var/run/rtpproxy.sock")

#modparam("usrloc", "db_mode", 2)
 modparam("registrar", "nat_flag", 6)


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

# main routing logic

route{

        # initial sanity checks -- messages with
        # max_forwards==0, or excessively long requests

        if((method=="INVITE") ||  (method=="ACK") || (method=="BYE") ||
(method=="CANCEL")) {
            setflag(1);
        }
        if (!mf_process_maxfwd_header("10")) {
                sl_send_reply("483","Too Many Hops");
                exit;
        };
        if (msg:len >  2048 ) {
                sl_send_reply("513", "Message too big");
                exit;
        };
        # -----------------------------------------------------------------
        # Record Route Section
        # -----------------------------------------------------------------
        if (method!="REGISTER") {
            record_route();
        };

        if (method=="BYE" || method=="CANCEL") {
                unforce_rtp_proxy();
        }

        # -----------------------------------------------------------------
        # Loose Route Section
        # -----------------------------------------------------------------
        if (loose_route()) {

                if (has_totag() && (method=="INVITE" || method=="ACK")) {
                        if (nat_uac_test("19")) {
                                setflag(6);
                                force_rport();
                                fix_nated_contact();
                        };
                    force_rtp_proxy("l");
                };
                route(1);
                exit;
        };

        if (!uri==myself) {
                route(5);
                route(1);
                exit;
        };
        if (uri==myself) {
                if (method=="CANCEL") {
                    route(1);
                    exit;
                } else if (method=="INVITE") {
                    route(3);
                    exit;        
                } else if (method=="REGISTER") {
                    route(2);
                    exit;
                };

                lookup("aliases");
                if (uri!=myself) {
                        route(5);
                        route(1);
                        exit;
                };
                if (!lookup("location")) {
                        sl_send_reply("404", "User Not Found");
                        exit;
                };
        };
        route(1);
}

route[1] {

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

        t_on_reply("1");

        if (!t_relay()) {
                if (method=="INVITE" && isflagset(6)) {
                  unforce_rtp_proxy();
                };
                sl_reply_error();
        };
}

route[2] {

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

        if (!search("^Contact:\ +\*") && nat_uac_test("19")) {
                setflag(6);
                fix_nated_register();
                force_rport();
        };

        sl_send_reply("100", "Trying");

        if (!radius_www_authorize("72.65.56.136")) {
                www_challenge("72.65.56.136", "0");
                exit;
        };

        if (!check_to()) {
                  sl_send_reply("401", "Unauthorized");
                  exit;
        };

        consume_credentials();

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

onreply_route[1] {
      if (isflagset(6) && status=~"(180)|(183)|2[0-9][0-9]") {
            if (!search("^Content-Length:\ +0")) {
                force_rtp_proxy();
            };
      };
      if (nat_uac_test("1")) {
            fix_nated_contact();
      };
}

route[5] {

        # -----------------------------------------------------------------
        # RTP Proxy Enabler
        # -----------------------------------------------------------------

       if (isflagset(6) || isflagset(7)) {
            force_rport();
            fix_nated_contact();
            force_rtp_proxy();
        };

}

route[3] {

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

        if (nat_uac_test("19")) {
            setflag(6);
        }
                            
        lookup("aliases");
        if (uri!=myself) {
                route(5);
                route(1);
                exit;
        };

        if (!allow_trusted() && uri=~"^sip:[0-9]*@.*") {
            if (!radius_www_authorize("72.65.56.136")) {
                www_challenge("72.65.56.136", "0");
                exit;
            };
        };

        if (uri=~"^sip:[0-9]*@.*"){
                route(11);
                exit;
        };

        if (!lookup("location")) {
                sl_send_reply("404", "User Not Found");
                exit;
        };

        if (method=="CANCEL") {
            route(1);
            exit;
        };

        route(5);
        route(1);
}
route[11]{
        # -----------------------------------------------------------------
        # PSTN Handler
        # -----------------------------------------------------------------
        strip(0);
        prefix("");
        rewritehostport("206.234.108.104:5060");
        route(5);
        route(1);
}

-----Original Message-----
From: users-bounces at openser.org [mailto:users-bounces at openser.org] On Behalf
Of Dan-Cristian Bogos
Sent: Tuesday, September 04, 2007 1:30 PM
To: users openser.org
Subject: Re: [OpenSER-Users] Opnser rejecting BYE packet

Hello Inaki,

yes, it is almost sure that it does (except receiving this answer from
remote party). This is the reason all the people place loose-route
block before location query and this is why I have assumed that it
does not match the loose-routing and ends up to location query
automatically.
DanB

On 9/4/07, Marc LEURENT <lftsy at free.fr> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Like Dan said,
> send us your configuration, you may have forbidden something!
>
> Dan a écrit :
> > *_Scenario 1:_*
> >
> >
> >
> >
> >
> > U 212.34.169.220:5060 -> 78.45.146.34:5060
> >
> > BYE sip:test at 78.45.146.34 SIP/2.0.
> >
> > Route: <sip:78.45.146.34;ftag=aa313a3c;lr>.
> >
> > CSeq: 2 BYE.
> >
> > Via: SIP/2.0/UDP 212.34.169.220:5060.
> >
> > From: <sip:1217773456 at 78.45.146.34>;tag=03095807065938997270316869.
> >
> > Call-ID: 8246bf729f62a754.
> >
> > To: 58.68.96.11<sip:test at 78.45.146.34>;tag=aa313a3c.
> >
> > Content-Length: 0.
> >
> >
> >
> > #
> >
> > U 78.45.146.34:5060 -> 212.34.169.220:5060
> >
> > SIP/2.0 404 User Not Found.
> >
> > CSeq: 2 BYE.
> >
> > Via: SIP/2.0/UDP 212.34.169.220:5060.
> >
> > From: <sip:1217773456 at 78.45.146.34>;tag=03095807065938997270316869.
> >
> > Call-ID: 8246bf729f62a754.
> >
> > To: 58.68.96.11<sip:test at 78.45.146.34>;tag=aa313a3c.
> >
> > Server: OpenSer (1.0.1 (i386/linux)).
> >
> > Content-Length: 0.
> >
> > Warning: 392 78.45.146.34:5060 "Noisy feedback tells:  pid=24525
> > req_src_ip=78.45.146.34 req_src_port=5060
> > in_uri=sip:78.45.146.34;ftag=aa313a3c;lr
> > out_uri=sip:78.45.146.34;ftag=aa313a3c;lr via_cnt==2".
> >
> >
> >
> >
> >
> > *_Scenario 2:_*
> >
> >
> >
> > U 59.176.78.110:50496 -> 210.68.65.78:5060
> >
> > BYE sip:210.68.65.78 SIP/2.0.
> >
> > Route: <sip:@209.67.171.10;transport=udp>.
> >
> > Via: SIP/2.0/UDP 59.176.78.110:50496.
> >
> > From: sip:user1 at 210.68.65.78;tag=4154163258.
> >
> > To:
> > <sip:12818495027 at 210.68.65.78;user=phone>;tag=3005360702044301069847989.
> >
> > Call-ID: 4202237689 at 192.168.1.156.
> >
> > CSeq: 3 BYE.
> >
> > User-Agent: Cisco ATA  v2.15 ata18x (020927a).
> >
> > Content-Length: 0.
> >
> > .
> >
> >
> >
> > #
> >
> > U 210.68.65.78:5060 -> 59.176.78.110:50496
> >
> > SIP/2.0 478 Unresolvable destination (478/TM).
> >
> > Via: SIP/2.0/UDP 59.176.78.110:50496.
> >
> > From: sip:user1 at 210.68.65.78;tag=4154163258.
> >
> > To:
> > <sip:12818495027 at 210.68.65.78;user=phone>;tag=3005360702044301069847989.
> >
> > Call-ID: 4202237689 at 192.168.1.156.
> >
> > CSeq: 3 BYE.
> >
> > Server: OpenSer (1.0.1 (i386/linux)).
> >
> > Content-Length: 0.
> >
> > Warning: 392 210.68.65.78:5060 "Noisy feedback tells:  pid=2144
> > req_src_ip=59.176.78.110 req_src_port=50496 in_uri=sip:210.68.65.78.
> >
> >
> >
> >
> >
> > In both cases BYE is not getting accounted for. Can anyone help me on
> > this ??
> >
> >
> >
> >
> >
> > Regards
> >
> > Dan
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Users mailing list
> > Users at openser.org
> > http://openser.org/cgi-bin/mailman/listinfo/users
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.7 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFG3Q9/qjpLE0HiOBYRArgmAKCec0eFK2QQyBmV5eGoCWRmUOMM8ACgmFgp
> tOKvu9D6afXK2f8if8FABnM=
> =66HB
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users
>

_______________________________________________
Users mailing list
Users at openser.org
http://openser.org/cgi-bin/mailman/listinfo/users





More information about the Users mailing list