[Serusers] warning: fifo_db_url not given

Eduard San Anselmo Mateu Eduard at albasoft.com
Tue Feb 17 17:59:05 CET 2004


Hi all.
Could fix the problem with RTP proxy (thanks), but now I'm experiencing problems
with the FIFO and serctl. I'm not using any kind of authentication (just
testing) nor mysql, but I get this line in my logs:

Feb 16 18:17:52 sistemas2 /usr/sbin/ser[24383]: WARNING: no fifo_db_url given -
fifo DB commands disabled!

As far as I can understand, this means that the FIFO won't talk to Mysql
database (well, that's what I wanted!), but then I run 'serctl ul show' and I
get the informations from all the registered hosts, but when I try to 'serctl ul
rm username', even thoguh SER tells me it has deleted that user, I can see her
by running again 'serctl ul show'. What's missing in my reasoning?

By the way, I don't know if my cfg is necessary, but here it is:

debug=3         # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)
                                                                               
                                            
/* Uncomment these lines to enter debugging mode
fork=no
log_stderror=yes
*/
                                                                               
                                            
check_via=no    # (cmd. line: -v)
dns=no           # (cmd. line: -r)
rev_dns=no      # (cmd. line: -R)

port=5060
children=4
                                                                               
                                            
listen=192.168.20.15
alias=albasoft.com
alias=192.168.0.15
alias=192.168.20.15
                                                                               
                                            
fifo="/tmp/ser_fifo"
                                                                               
                                            
# ------------------ module loading ----------------------------------
                                                                               
                                            
# Uncomment this if you want to use SQL database
#loadmodule "/usr/lib/ser/modules/mysql.so"
                                                                               
                                            
loadmodule "/usr/lib/ser/modules/sl.so"
loadmodule "/usr/lib/ser/modules/tm.so"
loadmodule "/usr/lib/ser/modules/rr.so"
loadmodule "/usr/lib/ser/modules/maxfwd.so"
loadmodule "/usr/lib/ser/modules/usrloc.so"
loadmodule "/usr/lib/ser/modules/registrar.so"
loadmodule "/usr/lib/ser/modules/textops.so"
                                                                               
                                            
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
#loadmodule "/usr/lib/ser/modules/auth.so"
#loadmodule "/usr/lib/ser/modules/auth_db.so"
                                                                               
                                            
# !! Nathelper
loadmodule "/usr/lib/ser/modules/nathelper.so"

modparam("usrloc", "db_mode",   0)
modparam("rr", "enable_full_lr", 1)
modparam("registrar", "nat_flag", 6)
modparam("nathelper", "natping_interval", 30) # Ping interval 30 s
modparam("nathelper", "ping_nated_only", 1)   # Ping only clients behind NAT

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;
        };
        if (nat_uac_test("3")) {
                # Allow RR-ed requests, as these may indicate that
                # a NAT-enabled proxy takes care of it; unless it is
                # a REGISTER
                                                                               
                                            
                if (method == "REGISTER" || ! search("^Record-Route:")) {
                    log("LOG: Someone trying to register from private IP,
rewriting\n");
                                                                               
                                            
                    # This will work only for user agents that support symmetric
                    # communication. We tested quite many of them and majority is
                    # smart enough to be symmetric. In some phones it takes a
configuration
                    # option. With Cisco 7960, it is called NAT_Enable=Yes, with
kphone it is
                    # called "symmetric media" and "symmetric signalling".
                                                                               
                                            
                    fix_nated_contact(); # Rewrite contact with source IP of
signalling
                    if (method == "INVITE") {
                        fix_nated_sdp("1"); # Add direction=active to SDP
                    };
                    force_rport(); # Add rport parameter to topmost Via
                    setflag(6);    # Mark as NATed
                };
        };
        if (!method=="REGISTER") record_route();
                                                                               
                                            
        # subsequent messages withing a dialog should take the
        # path determined by record-routing
        if (loose_route()) {
                # mark routing logic in request
                append_hf("P-hint: rr-enforced\r\n");
                route(1);
                break;
        };
                                                                               
                                            
        if (!uri==myself) {
                # mark routing logic in request
                append_hf("P-hint: outbound\r\n");
                route(1);
                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") {
                        save("location");
                        break;
                };
                                                                               
                                            
                lookup("aliases");
                if (!uri==myself) {
                        append_hf("P-hint: outbound alias\r\n");
                        route(1);
                        break;
                };
                                                                               
                                            
                # native SIP destinations are handled using our USRLOC DB
                if (!lookup("location")) {
                        sl_send_reply("404", "Not Found");
                        break;
                };
        };
        append_hf("P-hint: usrloc applied\r\n");
        route(1);
}
                                                                               
                                            
route[1]
{
        # !! Nathelper
        #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");
        #    break;
        #};
                                                                               
                                            
        # if client or server know to be behind a NAT, enable relay
        if (isflagset(6)) {
            force_rtp_proxy();
        };
        t_on_reply("1");
                                                                               
                                            
        # send it out now; use stateful forwarding as it works reliably
        # even for UDP2TCP
        if (!t_relay()) {
                sl_reply_error();
        };
}
                                                                               
                                            
# !! Nathelper
onreply_route[1] {
    # NATed transaction ?
    if (isflagset(6) && status =~ "(183)|2[0-9][0-9]") {
        fix_nated_contact();
        force_rtp_proxy();
    # otherwise, is it a transaction behind a NAT and we did not
    # know at time of request processing ? (RFC1918 contacts)
    } else if (nat_uac_test("1")) {
        fix_nated_contact();
    };
}

Thanks in advance

Eduard San Anselmo Mateu




More information about the sr-users mailing list