<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2><FONT face="Times New Roman" size=3>hello<BR><BR>if
I utilize rtpproxy.<BR><BR>I show it my configuration :<BR><BR>1- rtpproxy -l
ip-private/ip-public<BR><BR>2- ser.cfg<BR><BR># Sections marked with !!
Nathelper contain modifications for nathelper<BR>#<BR># NOTE !! This config is
EXPERIMENTAL !<BR>#<BR># ----------- global configuration parameters
------------------------<BR><BR>debug=3
# debug level (cmd line: -dddddddddd)<BR>fork=yes<BR>log_stderror=no # (cmd
line: -E)<BR><BR>/* Uncomment these lines to enter debugging
mode<BR>fork=no<BR>log_stderror=yes<BR>*/<BR><BR>check_via=no
# (cmd. line:
-v)<BR>dns=no #
(cmd. line: -r)<BR>rev_dns=no # (cmd. line:
-R)<BR>port=5060<BR>children=4<BR>fifo="/tmp/ser_fifo"<BR>listen=200.61.161.132<BR>alias="sip.boxip.com.ar"<BR><BR>#
------------------ module loading ----------------------------------<BR>#
Uncomment this if you want to use SQL database<BR>#loadmodule
"/usr/local/lib/ser/modules/mysql.so"<BR>loadmodule
"/usr/local/lib/ser/modules/sl.so"<BR>loadmodule
"/usr/local/lib/ser/modules/tm.so"<BR>loadmodule
"/usr/local/lib/ser/modules/rr.so"<BR>loadmodule
"/usr/local/lib/ser/modules/maxfwd.so"<BR>loadmodule
"/usr/local/lib/ser/modules/usrloc.so"<BR>loadmodule
"/usr/local/lib/ser/modules/registrar.so"<BR>loadmodule
"/usr/local/lib/ser/modules/textops.so"<BR># Uncomment this if you want digest
authentication<BR># mysql.so must be loaded !<BR>#loadmodule
"/usr/local/lib/ser/modules/auth.so"<BR>#loadmodule
"/usr/local/lib/ser/modules/auth_db.so"<BR># !! Nathelper<BR>loadmodule
"/usr/local/lib/ser/modules/nathelper.so"<BR><BR># ----------------- setting
module-specific parameters ---------------<BR><BR># -- usrloc params
--<BR><BR>modparam("usrloc", "db_mode", 0)<BR><BR># Uncomment this
if you want to use SQL database<BR># for persistent storage and comment the
previous line<BR>#modparam("usrloc", "db_mode", 2)<BR># -- auth params --<BR>#
Uncomment if you are using auth module<BR>#modparam("auth_db", "calculate_ha1",
yes)<BR># If you set "calculate_ha1" parameter to yes (which true in this
config),<BR># uncomment also the following parameter)<BR>#modparam("auth_db",
"password_column", "password")<BR># -- rr params --<BR># add value to ;lr param
to make some broken UAs happy<BR>modparam("rr", "enable_full_lr", 1)<BR># !!
Nathelper<BR>modparam("registrar", "nat_flag", 6)<BR>modparam("nathelper",
"natping_interval", 30) # Ping interval 30 s<BR>modparam("nathelper",
"ping_nated_only", 1) # Ping only clients behind NAT<BR><BR>#
------------------------- request routing logic
-------------------<BR><BR># main routing
logic<BR><BR>route{<BR><BR> # initial
sanity checks -- messages with<BR> #
max_forwards==0, or excessively long
requests<BR> if
(!mf_process_maxfwd_header("10"))
{<BR>
sl_send_reply("483","Too Many
Hops");<BR>
break;<BR>
};<BR> if (msg:len >= max_len
)
{<BR>
sl_send_reply("513", "Message too
big");<BR>
break;<BR>
};<BR><BR> if (nat_uac_test("3"))
{<BR><BR>
if (method == "REGISTER" || ! search("^Record-Route:"))
{<BR>
log("LOG: Someone trying to register from private
IP,<BR>rewriting\n");<BR>
fix_nated_contact(); # Rewrite contact with source IP
of<BR>signalling<BR>
if (method == "INVITE")
{<BR>
fix_nated_sdp("1"); # Add direction=active to
SDP<BR>
};<BR>
force_rport(); # Add rport parameter to topmost
Via<BR>
setflag(6); # Mark as
NATed<BR>
};<BR>
};<BR><BR> if (!method=="REGISTER")
record_route();<BR><BR> if
(loose_route())
{<BR>
# mark routing logic in
request<BR>
append_hf("P-hint:
rr-enforced\r\n");<BR>
route(1);<BR>
break;<BR>
};<BR><BR> if (!uri==myself)
{<BR>
# mark routing logic in
request<BR>
append_hf("P-hint:
outbound\r\n");<BR>
route(1);<BR>
break;<BR>
};<BR> if (uri==myself)
{<BR><BR>
if (method=="REGISTER") {<BR># Uncomment this if you want to use digest
authentication<BR>#
if (!www_authorize("iptel.org", "subscriber"))
{<BR>#
www_challenge("iptel.org",
"0");<BR>#
break;<BR>#
};<BR>
log(1,"registo
1");<BR>
save("location");<BR>
break;<BR>
};<BR><BR>
lookup("aliases");<BR>
if (!uri==myself)
{<BR>
append_hf("P-hint: outbound
alias\r\n");<BR>
route(1);<BR>
break;<BR>
};<BR><BR>
# native SIP destinations are handled using our USRLOC
DB<BR>
if (!lookup("location"))
{<BR>
sl_send_reply("404", "Not
Found");<BR>
break;<BR>
};<BR>
};<BR> append_hf("P-hint: usrloc
applied\r\n");<BR>
route(1);<BR>}<BR><BR>route[1]<BR>{<BR>
# !! Nathelper<BR> if
(uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)"
&&<BR>!search("^Route:")){<BR>
sl_send_reply("479", "We don't forward to private
IP<BR>addresses");<BR>
break;<BR>
};<BR><BR> if (isflagset(6))
{<BR>
force_rtp_proxy();<BR>
};<BR><BR>
t_on_reply("1");<BR><BR> if
(!t_relay())
{<BR>
sl_reply_error();<BR> };<BR>}<BR><BR>#
!! Nathelper<BR>onreply_route[1] {<BR> # NATed transaction
?<BR> if (isflagset(6) && status =~
"(183)|2[0-9][0-9]") {<BR>
fix_nated_contact();<BR>
force_rtp_proxy();<BR> } else if (nat_uac_test("1"))
{<BR>
fix_nated_contact();<BR> };<BR>}<BR><BR>3- my
log<BR><BR>May 4 16:46:36 chitara rtpproxy[5767]: rtpproxy
started.<BR>May 4 16:46:40 chitara rtpproxy[5767]: error: received invalid
command 'V'<BR>May 4 16:46:40 chitara ser[5770]: ERROR: send_rtpp_command:
can't read<BR>reply from a RTP proxy<BR>May 4 16:46:40 chitara ser[5770]:
WARNING: nathelper: can't get version of<BR>the RTP proxy<BR>May 4
16:46:40 chitara ser[5770]: WARNING: nathelper: support for RTP<BR>proxyhas been
disabled<BR>May 4 16:46:40 chitara ser[5770]: INFO: udp_init: SO_RCVBUF is
initially<BR>65535<BR>May 4 16:46:40 chitara ser[5770]: INFO: udp_init:
SO_RCVBUF is finally<BR>131070<BR>May 4 16:46:40 chitara ser[5775]: INFO:
fifo process starting: 5775<BR>May 4 16:46:40 chitara ser[5775]: SER:
open_uac_fifo: fifo server up at<BR>/tmp/ser_fifo...<BR>May 4 16:46:40
chitara ser[5775]: WARNING: no fifo_db_url given - fifo DB<BR>commands
disabled!<BR>May 4 16:48:05 chitara ser[5771]: registo 1<BR>May 4
16:48:05 chitara ser[5773]: registo 1<BR>May 4 16:48:10 chitara ser[5771]:
registo 1<BR>May 4 16:48:10 chitara ser[5774]: registo 1<BR>May 4
16:48:34 chitara ser[5774]: registo 1<BR>May 4 16:48:35 chitara ser[5771]:
registo 1<BR>May 4 16:48:39 chitara ser[5774]: ERROR: force_rtp_proxy:
support for RTP<BR>proxy is disabled<BR>May 4 16:48:42 chitara ser[5774]:
ERROR: force_rtp_proxy: support for RTP<BR>proxy is disabled<BR>May 4
16:48:42 chitara ser[5774]: ERROR: on_reply processing failed<BR>May 4
16:48:42 chitara ser[5771]: ERROR: force_rtp_proxy: support for RTP<BR>proxy is
disabled<BR><BR><BR>thanks</FONT><BR></FONT></DIV><FONT face=Arial size=2>
<DIV><BR>Saludos!</DIV>
<DIV> </DIV>
<DIV>Sergio </DIV></FONT></BODY></HTML>