[Serusers] problem with the ser+pstn gateway

voip technocrat tech_voip at yahoo.co.in
Fri Nov 19 14:48:14 CET 2004


hello friends,

i was actuall trying for the ser+gateway 

but i was missing some where .

my idea is that any number stat


it gives message as seesion progress with the 

message type 183 


the same is working in between the two sers

i.e one user agent registered to the one ser server

can be able to place call to another ser server user 

agent


iam pasting my ser.cfg here please guide me where 

am i going wrong.

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

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


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"
fifo_mode=438
# ------------------ module loading
----------------------------------

# Uncomment this if you want to use SQL database
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/textops.so"

# Uncomment this if you want digest authentication
# mysql.so must be loaded !
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/uri.so"
loadmodule "/usr/local/lib/ser/modules/group.so"

# !! Nathelper
loadmodule "/usr/local/lib/ser/modules/nathelper.so"

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

# -- usrloc params --

#modparam("usrloc", "db_mode",   0)

# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
modparam("usrloc", "db_mode", 2)

# -- 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")
modparam("usrloc","db_url","mysql://ser:heslo@localhost:3306/ser")
modparam("acc", "log_level", 1)
modparam("acc", "log_flag", 1)
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 2)
modparam("acc", "log_fmt", "miocfst")
modparam("acc", "failed_transactions" ,1)


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

# !! Nathelper
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

# -------------------------  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;
        };

               
        # vias for rpesence of received
        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");
                    fix_nated_contact(); # Rewrite
contact with source IP of signalling
                    if (method == "INVITE") {
               
log("***********************INVITE**************************");

                        fix_nated_sdp("1"); # Add
direction=active to SDP
                    };
                    force_rport(); # Add rport
parameter to topmost Via
                    setflag(6);    # Mark as NATed
                };
        };
        setflag(1);
        setflag(2);
              
        
        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 (uri==myself) {

                if (method=="REGISTER") {
                        save("location");
                        break;
                };

   if (method=="INVITE")
                        {
        log("**********************in
invite******************************");
                         log(1, "INVITE\n");

                         setflag(1); /* set
foraccounting (the same valueas in  log_flag!) */
                         };

         if (method=="MESSAGE")
                        {
        log("**********************in
message******************************");
                         log(1, "MESSAGE\n");
                         setflag(1); /* set
foraccounting (the same valueas in  log_flag!) */
                         };

         if ( method=="BYE" || method=="CANCEL" )
                 {
        log("**********************in
bye******************************");
                         log (1, "BYE or CANCEL\n");
                         setflag(1);
                         };

                lookup("aliases");
                if (!uri==myself) {
                        append_hf("P-hint: outbound
alias\r\n");
                        route(1);
                        break;
                };


                if(uri=~"^sip:[6-9].*@*.*.*.*")
                {
        log("**********************in
forward*******************************");
                rewritehostport("*.*.*.101:5060");
#                forward(uri:host,uri:port);
               t_relay_to_udp("*.*.*.101","5060");

                break;
                }
                else
                {
        log("**************************in user
location********************");
                # 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();
        };

        # NAT processing of replies; apply to all
transactions (for example,
        # re-INVITEs from public to private UA are
hard to identify as
        # NATed at the moment of request processing);
look at replies
        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();
    };
}



with regards
tech_voip

________________________________________________________________________
Yahoo! India Matrimony: Find your life partner online
Go to: http://yahoo.shaadi.com/india-matrimony




More information about the sr-users mailing list