Ok, I'll try that. Thanks.
Bill Dunn
----- Original Message -----
From: dhiraj.2.bhuyan(a)bt.com
To: admin(a)vci.net
Cc: serusers(a)lists.iptel.org
Sent: Tuesday, June 29, 2004 8:03 AM
Subject: RE: [Serusers] nat_uac_test
You will need the CVS version. Or you can use the Media Proxy - which has
something similar and works with 0.8.12.
Dhiraj
-----Original Message-----
From: serusers-bounces(a)iptel.org [mailto:serusers-bounces@lists.iptel.org]On
Behalf Of VCI Help Desk
Sent: 29 June 2004 14:01
To: serusers(a)lists.iptel.org
Subject: Re: [Serusers] nat_uac_test
I didn't mention it but I have version 0.8.12 from source (not RPM).
I've tried searching all the modules source code and I can't find any
references to nat_uac_test. Is this function in the nathelper module or in
something else?
Bill Dunn
----- Original Message -----
From: Klaus Darilion
To: Bill
Cc: serusers(a)lists.iptel.org
Sent: Tuesday, June 29, 2004 2:46 AM
Subject: Re: [Serusers] nat_uac_test
probably you use an old ser version (rpm?). Get the latest stable from
cvs and build ser yourself. Then you have the nathelper module with all
features which were introduced after the first 0.8.12 release.
klaus
Bill wrote:
Shown below is my ser.cfg file. For some reason
the nat_uac_test
routine doesn't work. The debugging says it doesn't know the command and
believes I left out a module. I can't find much documentation on this
command. Did I leave out a module or something required to use this?
Bill
#
# $Id: ser.cfg,v 1.21.4.1 2003/11/10 15:35:15 andrei Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
#debug=3 # debug level (cmd line: -dddddddddd)
#fork=yes
#log_stderror=no # (cmd line: -E)
/* Uncomment these lines to enter debugging mode
debug=7
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
fifo="/tmp/ser_fifo"
fifo_mode=0666
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
loadmodule "/lib/ser/modules/mysql.so"
loadmodule "/lib/ser/modules/sl.so"
loadmodule "/lib/ser/modules/tm.so"
loadmodule "/lib/ser/modules/maxfwd.so"
loadmodule "/lib/ser/modules/registrar.so"
loadmodule "/lib/ser/modules/auth.so"
# loadmodule "/lib/ser/modules/textops.so"
# loadmodule "/lib/ser/modules/enum.so"
loadmodule "/lib/ser/modules/group.so"
loadmodule "/lib/ser/modules/nathelper.so"
modparam("nathelper", "natping_interval", 10)
# loadmodule "/lib/ser/modules/vm.so"
# modparam("vm", "db_url", "sql://root:@127.0.0.1/ser")
# modparam("vm", "email_column", "sip(a)xxx.xxx.net
<mailto:sip@xxx.xxx.net>")
# modparam("vm", "domain_column",
"ser.vci.net")
loadmodule "/lib/ser/modules/acc.so"
modparam("acc", "db_url", "sql://root:@127.0.0.1/ser")
modparam("acc", "log_missed_flag", 2)
modparam("acc", "log_level", 1)
modparam("acc", "log_flag", 1)
modparam("acc", "db_flag", 2)
modparam("acc", "db_missed_flag", 2)
loadmodule "/lib/ser/modules/usrloc.so"
modparam("usrloc", "db_mode", 0)
modparam("usrloc", "db_mode", 2)
loadmodule "/lib/ser/modules/auth_db.so"
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
loadmodule "/lib/ser/modules/rr.so"
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;
};
if (nat_uac_test("3")) {
log("1,Connection from someone behind a NAT");
};
if (uri =~ "^sip:admin" ) {
log(1, "Connection from admin(a)xxx.xxx.net
<mailto:admin@xxx.xxx.net>");
};
if (method=="CANCEL") {
log(1,"Sent CANCEL request");
}
if (method=="INVITE") {
log(1,"Sent INVITE request");
}
# we record-route all messages -- to make sure that
# subsequent messages will go through our proxy; that's
# particularly good if upstream and downstream entities
# use different transport protocol
record_route();
# loose-route processing
if (loose_route()) {
t_relay();
break;
};
setflag(2);
# 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) {
log(1,"processing request for
ser.vci.net domain");
if (method=="REGISTER") {
log(1,"register request for
xxx.xxx.net domain");
if (!www_authorize("xxx.xxx.net",
"subscriber")) {
www_challenge("ser.vci.net", "0");
break;
};
save("location");
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
log(1,"404 - Not Found");
acc_db_request("404 Not Found", "acc");
sl_send_reply("404", "Not Found");
break;
};
};
# forward to current uri now; use stateful forwarding; that
# works reliably even if we forward from TCP to UDP
if (!t_relay()) {
log(1,"not sure what this does");
sl_reply_error();
};
}
------------------------------------------------------------------------
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers