[Serusers] NAT Problem No Voice
Kamran Ahmad
p_kami at yahoo.com
Sat Apr 9 12:59:13 CEST 2005
i am getting following error
-------------------------------------------------
WARNING: no fork mode and more than one listen
address found (will use only the the first one)
0(25979) DEBUG: init_mod: sl_module
stateless - initializing
0(25979) DEBUG: register_fifo_cmd: new command
(sl_stats) registered
0(25979) DEBUG: MD5 calculated:
b27e1a1d33761e85846fc98f5f3a7e58
0(25979) DEBUG: init_mod: tm
0(25979) TM - initializing...
0(25979) Call-ID initialization: '7f7bddf7'
0(25979) DEBUG: register_fifo_cmd: new command
(t_uac_dlg) registered
0(25979) DEBUG: register_fifo_cmd: new command
(t_uac_cancel) registered
0(25979) DEBUG: register_fifo_cmd: new command
(t_hash) registered
0(25979) DEBUG: lock_initialize: lock initialization
started
0(25979) DEBUG: register_fifo_cmd: new command
(t_stats) registered
0(25979) DEBUG: MD5 calculated:
533cb9e91f4b999cf76861cbb9ed54ed
0(25979) DEBUG: MD5 calculated:
a6a1c5f60faecf035a1ae5b6e96e979a
0(25979) DEBUG: init_mod: rr
0(25979) rr - initializing
0(25979) DEBUG: init_mod: maxfwd_module
Maxfwd module- initializing
0(25979) DEBUG: init_mod: usrloc
0(25979) usrloc - initializing
0(25979) DEBUG: register_fifo_cmd: new command
(ul_stats) registered
0(25979) DEBUG: register_fifo_cmd: new command
(ul_rm) registered
0(25979) DEBUG: register_fifo_cmd: new command
(ul_rm_contact) registered
0(25979) DEBUG: register_fifo_cmd: new command
(ul_dump) registered
0(25979) DEBUG: register_fifo_cmd: new command
(ul_flush) registered
0(25979) DEBUG: register_fifo_cmd: new command
(ul_add) registered
0(25979) DEBUG: register_fifo_cmd: new command
(ul_show_contact) registered
0(25979) DEBUG: init_mod: registrar
0(25979) registrar - initializing
0(25979) find_export: found <sl_send_reply> in module
sl_module [/usr/local/lib/ser/modules/sl.so]
0(25979) find_export: found <ul_bind_usrloc> in
module usrloc [/usr/local/lib/ser/modules/usrloc.so]
0(25979) find_export: found <ul_register_udomain> in
module usrloc [/usr/local/lib/ser/modules/usrloc.so]
0(25979) find_export: found <ul_get_all_ucontacts> in
module usrloc [/usr/local/lib/ser/modules/usrloc.so]
0(25979) find_export: found <ul_insert_urecord> in
module usrloc [/usr/local/lib/ser/modules/usrloc.so]
0(25979) find_export: found <ul_delete_urecord> in
module usrloc [/usr/local/lib/ser/modules/usrloc.so]
0(25979) find_export: found <ul_get_urecord> in
module usrloc [/usr/local/lib/ser/modules/usrloc.so]
0(25979) find_export: found <ul_lock_udomain> in
module usrloc [/usr/local/lib/ser/modules/usrloc.so]
0(25979) find_export: found <ul_unlock_udomain> in
module usrloc [/usr/local/lib/ser/modules/usrloc.so]
0(25979) find_export: found <ul_release_urecord> in
module usrloc [/usr/local/lib/ser/modules/usrloc.so]
0(25979) find_export: found <ul_insert_ucontact> in
module usrloc [/usr/local/lib/ser/modules/usrloc.so]
0(25979) find_export: found <ul_delete_ucontact> in
module usrloc [/usr/local/lib/ser/modules/usrloc.so]
0(25979) find_export: found <ul_get_ucontact> in
module usrloc [/usr/local/lib/ser/modules/usrloc.so]
0(25979) find_export: found <ul_update_ucontact> in
module usrloc [/usr/local/lib/ser/modules/usrloc.so]
0(25979) DEBUG: init_mod: uri
0(25979) uri - initializing
0(25979) find_export: <db_use_table> not found
0(25979) uri:mod_init(): No database module found
0(25979) init_mod(): Error while initializing module
uri
ERROR: error while initializing modules
0(25979) DEBUG: tm_shutdown : start
0(25979) DEBUG: tm_shutdown : empting DELETE list
0(25979) DEBUG: tm_shutdown : empting hash table
0(25979) DEBUG: tm_shutdown: releasing timers
0(25979) DEBUG: tm_shutdown : removing semaphores
0(25979) DEBUG: tm_shutdown : done
0(25979) shm_mem_destroy
0(25979) destroying the shared memory lock
-----------------------------------------------------
ser.cfg
-----------------------------------------------------
#debug=3
#fork=yes
#log_stderror=no
debug=7
fork=no
log_stderror=yes
dns=no
rev_dns=no
fifo="/tmp/ser_fifo"
#fifo_db_url="mysql://ser:heslo@localhost/ser"
#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/uri.so"
loadmodule "/usr/local/lib/ser/modules/domain.so"
loadmodule "/usr/local/lib/ser/modules/nathelper.so"
loadmodule "/usr/local/lib/ser/modules/textops.so"
#loadmodule "/usr/local/lib/ser/modules/uri_db.so"
#modparam("auth_db|usrloc|uri_db", "db_url",
"mysql://ser:heslo@localhost/ser")
#modparam("auth_db", "calculate_ha1", 1)
#modparam("auth_db", "password_column", "password")
modparam("nathelper", "natping_interval", 30)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "rtpproxy_sock",
"unix:/var/run/rtpproxy.sock")
modparam("usrloc", "db_mode", 0)
modparam("registrar", "nat_flag", 6)
modparam("rr", "enable_full_lr", 1)
route {
#
-----------------------------------------------------------------
# Sanity Check Section
#
-----------------------------------------------------------------
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483", "Too Many Hops");
break;
};
if (msg:len > max_len) {
sl_send_reply("513", "Message Overflow");
break;
};
#
-----------------------------------------------------------------
# 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") {
if (nat_uac_test("19")) {
setflag(6);
force_rport();
fix_nated_contact();
};
force_rtp_proxy("l");
};
route(1);
break;
};
#
-----------------------------------------------------------------
# Call Type Processing Section
#
-----------------------------------------------------------------
if (uri==myself) {
if (method=="INVITE") {
route(3);
break;
} else if (method=="REGISTER") {
route(2);
break;
};
if (!lookup("location")) {
sl_send_reply("404", "User Not
Found");
break;
};
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();
fix_nated_contact();
force_rport();
};
sl_send_reply("100", "Trying");
# if (!www_authorize("","subscriber")) {
# www_challenge("","0");
# break;
# };
if (!check_to()) {
sl_send_reply("401", "Unauthorized");
break;
};
# consume_credentials();
if (!save("location")) {
sl_reply_error();
};
}
route[3] {
#
-----------------------------------------------------------------
# INVITE Message Handler
#
-----------------------------------------------------------------
if (nat_uac_test("19")) {
setflag(6);
}
if (!lookup("location")) {
sl_send_reply("404", "User Not Found");
break;
};
# if (!proxy_authorize("","subscriber")) {
# proxy_challenge("","0");
# break;
# } else if (!check_from()) {
# if(!check_from()) {
# sl_send_reply("403", "Use From=ID");
# break;
# };
# consume_credentials();
if (isflagset(6)) {
force_rport();
fix_nated_contact();
force_rtp_proxy();
};
t_on_reply("1");
if (!t_relay()) {
if(isflagset(6)) {
unforce_rtp_proxy();
}
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();
};
} else if (nat_uac_test("1")) {
fix_nated_contact();
};
}
-----------------------------------------------------
--- "Greger V. Teigre" <greger at teigre.com> wrote:
> Kamran,
> There is not rtpproxy installation. Just start it...
> It will communicate
> through the default Unix socket. You need to make
> sure that rtpproxy has
> the correct version number to communicate with your
> ser version.
> You will find instructions in the Getting
> Started document at
> http://onsip.org/ as well as a ser Getting Started
> source package where the
> versions match.
> g-)
>
> Kamran Ahmad wrote:
> > hello
> >
> > NATHelper Module is usefull in communicating
> through
> > sip.
> >
> > now i am getting calles on both sides of NAT but
> > without voice. here is my "var/log/messages"
> >
> > need help on RTP Proxy. how to install RTPProxy.
> >
> >
>
------------------------------------------------------
> > Apr 9 01:55:10 achieva ser[10869]: ERROR:
> > force_rtp_proxy2: support for RTP proxy is
> disabled
> > Apr 9 01:55:15 achieva ser[10870]: ERROR:
> > send_rtpp_command: can't connect to RTP proxy
> > Apr 9 01:55:15 achieva ser[10870]: WARNING:
> > rtpp_test: can't get version of the RTP proxy
> > Apr 9 01:55:15 achieva ser[10870]: WARNING:
> > rtpp_test: support for RTP proxyhas been disabled
> > temporarily
> > Apr 9 01:55:15 achieva ser[10870]: ERROR:
> > force_rtp_proxy2: support for RTP proxy is
> disabled
> > Apr 9 01:55:15 achieva ser[10870]: ERROR:
> on_reply
> > processing failed
> >
>
------------------------------------------------------
> >
> > ser.cfg
> >
>
------------------------------------------------------
> > 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
> > fifo="/tmp/ser_fifo"
> >
> > # ------------------ 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"
> >
> > # !! 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")
> >
> > # -- 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;
> > };
> >
> > # !! Nathelper
> > # Special handling for NATed clients; first, NAT
> test
> > is
> > # executed: it looks for via!=received and RFC1918
> > addresses
> > # in Contact (may fail if line-folding is used);
> > also,
> > # the received test should, if completed, should
> > check all
> > # 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");
> >
> > # 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
> > };
> > };
> >
> > # we record-route all messages -- to make sure
> that
> > # subsequent messages will go through our proxy;
> > that's
> > # particularly good if upstream and downstream
>
=== message truncated ===
__________________________________
Do you Yahoo!?
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/
More information about the sr-users
mailing list