[Serusers] Can't see BYE anywhere

Nikola Stojanoski nikola at intrafon.com
Sun Feb 22 19:22:26 CET 2004


  Hi,

i'm trying to forward the calls to deltathree's netfork but the problem is
that i can CANCEL the call but if the call has started i can't send BYE to
the server. SER is not recording any BYE messages and a simple call from
10-20 sec. is recorder as 100-110 sec.'s on deltathree servers.

Here is my config:

debug=3
fork=yes
log_stderror=no

listen=192.168.0.2
#listen=127.0.0.1

# hostname matching an alias will satisfy the condition uri==myself".
alias=intranet.com.mk
alias=192.168.0.2

# dns - Uses dns to check if it is necessary to add a "received=" field
# to a via. Default is no.
# rev_dns - Same as dns but use reverse DNS.

dns=no
rev_dns=no

port=5060
children=4

# check_via - Turn on or off Via host checking when forwarding replies.
# Default is no. arcane. looks for discrepancy between name and
# ip address when forwarding replies.

check_via=yes

# syn_branch - Shall the server use stateful synonym branches? It is
# faster but not reboot-safe. Default is yes.

syn_branch=yes

# memlog - Debugging level for final memory statistics report. Default
# is L_DBG -- memory statistics are dumped only if debug is set high.

memlog=3

# sip_warning - Should replies include extensive warnings? By default
# yes, it is good for trouble-shooting.

sip_warning=yes

# fifo - FIFO special file pathname

fifo="/tmp/ser_fifo"

# server_signature - Should locally-generated messages include server's
# signature? By default yes, it is good for trouble-shooting.

server_signature=yes

# reply_to_via - A hint to reply modules whether they should send reply
# to IP advertised in Via. Turned off by default, which means that
# replies are sent to IP address from which requests came.

reply_to_via=no

# user | uid - uid to be used by the server. 99 = nobody.

uid="nobody"

# group | gid - gid to be used by the server. 99 = nobody.

gid="nobody"

# mhomed -- enable calculation of outbound interface; useful on
# multihomed servers.

mhomed=0

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

loadmodule "/usr/local/lib/ser/modules/mysql.so"
loadmodule "/usr/local/lib/ser/modules/sl.so"
loadmodule "/usr/local/lib/ser/modules/tm.so"
loadmodule "/usr/local/lib/ser/modules/rr.so"
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
loadmodule "/usr/local/lib/ser/modules/usrloc.so"
loadmodule "/usr/local/lib/ser/modules/registrar.so"
loadmodule "/usr/local/lib/ser/modules/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_db.so"
loadmodule "/usr/local/lib/ser/modules/acc.so"
loadmodule "/usr/local/lib/ser/modules/exec.so"
loadmodule "/usr/local/lib/ser/modules/group.so"
loadmodule "/usr/local/lib/ser/modules/print.so"
loadmodule "/usr/local/lib/ser/modules/textops.so"
loadmodule "/usr/local/lib/ser/modules/uri.so"

# ------------- tm parameters

modparam("tm", "fr_timer", 12)
modparam("tm", "fr_inv_timer", 24)

# ------------- rr parameters
modparam("rr", "enable_full_lr", 1)
modparam("rr", "append_fromtag", 1)

# ------------- accounting parameters

modparam("acc", "db_url", "sql://ser:heslo@localhost/ser")
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 3)

modparam("acc", "report_ack", 0)
modparam("acc", "report_cancels", 1)
modparam("acc", "early_media", 1)

# Account failed transactions
modparam("acc", "failed_transactions", 1)
modparam("acc", "log_fmt", "miocfst")

# ------------- usrloc parameters
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "timer_interval", 10)
modparam("usrloc", "db_url", "sql://ser:heslo@localhost/ser")

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

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

route{
        # filter too old messages
        if (!mf_process_maxfwd_header("10")) {
                log("LOG: Too many hops\n");
                sl_send_reply("483","Too Many Hops");
                break;
        };
        if (msg:len > max_len) {
                sl_send_reply("513", "Message too large");
                break;
        };

        /* ********* RR ********************************** */

        /* Do strict routing if route headers present */
        loose_route();

        /* record-route INVITEs -- all subsequent requests must visit us */
        if (method=="INVITE") {
                record_route();
        } else if (method=="REGISTER") {
                log("here is a register");
                save("location");
                break;
        };

        # now check if it really is a PSTN destination which should be
handled
        # by our gateway; if not, and the request is an invitation, drop
it --
        # we cannot terminate it in PSTN; relay non-INVITE requests -- it may
        # be for example BYEs sent by gateway to call originator
        if (!uri=~"sip:9[0-9]*@.*") {
                if (method=="INVITE") {
                        sl_send_reply("403", "Call cannot be served here");
                        setflag(1);
                } else if(method=="BYE") {
                        setflag(1);
                        t_relay();
                } else if(method=="CANCEL") {
                        setflag(1);
                        t_relay();
                } else {
                        t_relay();
                };
                break;
        };

        # account completed transactions via syslog
        setflag(1);

        strip(1);


        rewritehostport("natrelay.deltathree.com:5060");

        # forward the request now
        if (!t_relay()) {
                sl_reply_error();
                break;
        };
}







More information about the sr-users mailing list