<br><font size=2>Hi all</font>
<br>
<br><font size=2> I am using SER+NAT+rtpproxy as proxy servers.
I have serched</font>
<br><font size=2>seruser mailing list for solution and I didn't find any.
Please help</font>
<br><font size=2>me in below senerio.</font>
<br><font size=2>Elements</font>
<br><font size=2>-----------------</font>
<br><font size=2>1) UA 'PUBLIC'
( in public internet with IP 211.95.122.XXX.XXX)</font>
<br>
<br><font size=2>2) SIP SER with NAT helper(CVS version) +
rtp proxy on same</font>
<br><font size=2>machine(http://www.portaone.com/~sobomax/rtpproxy.tar
) with one</font>
<br><font size=2>external public IP and internal privite IP)</font>
<br>
<br><font size=2>3) UA 'PRIVATE' - in side private domain with 192.17.1.XXX)
ip address.</font>
<br>
<br><font size=2>4) UA 'PUBLIC' not register to ser. UA 'PRIVATE'
have registerd to ser.</font>
<br>
<br><font size=2> I am trying to accomplish to make call from UA 'PRIVATE'
to UA 'PUBLIC'. i'e</font>
<br><font size=2> calls from private IP to public IP using SER as
my signalling proxy</font>
<br><font size=2> and rtpproxy as proxy for RTP.</font>
<br>
<br><font size=2> SER is succussfully etablishing connection between
two user agents and</font>
<br><font size=2> but it is failed to forward rtp between two UAs.
No voice. Request as 'INVITE'</font>
<br><font size=2> ser proxy change SDP's ip and port, but reply as
stats 200 and 183 did not change</font>
<br><font size=2> SDP's ip and report, so UA 'PUBLIC' can hear UA
'PRIVATE', but UA 'PRIVATE' can't</font>
<br><font size=2> hear from UA 'PUBLIC'.</font>
<br>
<br><font size=2> Is it MUST that UA 'PUBLIC' register to ser?</font>
<br>
<br><font size=2> This is my ser.cfg:</font>
<br>
<br><font size=2># main routing logic</font>
<br>
<br><font size=2>route</font>
<br><font size=2>{</font>
<br><font size=2> /*================================
ROUTINE CHECKS =============================================*/</font>
<br><font size=2> # filter too old messages</font>
<br><font size=2> if (!mf_process_maxfwd_header("10"))
</font>
<br><font size=2> {</font>
<br><font size=2>
log("LOG: Too many hops\n");</font>
<br><font size=2>
sl_send_reply("483","Too Many Hops");</font>
<br><font size=2>
break;</font>
<br><font size=2> }</font>
<br><font size=2> </font>
<br><font size=2> if (msg:len > max_len)
</font>
<br><font size=2> {</font>
<br><font size=2>
sl_send_reply("513", "Message too big");</font>
<br><font size=2>
break;</font>
<br><font size=2> }</font>
<br>
<br><font size=2> # compulsory processing
of Route header fields and adding RR</font>
<br><font size=2> loose_route();</font>
<br>
<br><font size=2> # These devices need
rtp proxy</font>
<br><font size=2> #if (search("User-Agent:"))
</font>
<br><font size=2> #{</font>
<br><font size=2>
setflag(2); # remember this needs rtp proxy</font>
<br><font size=2>
force_rport();</font>
<br><font size=2>
# fix_nated_contact();</font>
<br><font size=2> #}</font>
<br>
<br><font size=2> # registration (uses
rewritten contacts)</font>
<br><font size=2> if (method=="REGISTER")
</font>
<br><font size=2> {</font>
<br><font size=2>
if(!radius_proxy_authorize("REGISTER")) </font>
<br><font size=2>
{</font>
<br><font size=2>
sl_send_reply("401",
"Forbidden");</font>
<br><font size=2>
break;</font>
<br><font size=2>
}</font>
<br><font size=2>
</font>
<br><font size=2>
save("location");</font>
<br><font size=2>
break;</font>
<br><font size=2> }</font>
<br>
<br><font size=2> # Invite authentication</font>
<br><font size=2> if (method=="INVITE")
</font>
<br><font size=2> {</font>
<br><font size=2>
record_route();</font>
<br><font size=2>
if (isflagset(2))</font>
<br><font size=2>
{</font>
<br><font size=2>
if(!radius_proxy_authorize("INVITE"))
</font>
<br><font size=2>
{</font>
<br><font size=2>
sl_send_reply("401", "Forbidden");</font>
<br><font size=2>
break;</font>
<br><font size=2>
}</font>
<br><font size=2>
force_rtp_proxy();</font>
<br><font size=2>
}</font>
<br><font size=2>
</font>
<br><font size=2>
/* set up reply processing */</font>
<br><font size=2>
t_on_reply("1");</font>
<br><font size=2> }</font>
<br>
<br><font size=2> # Forward</font>
<br><font size=2> if(uri=~"^sip:5[0-9][0-9]*@")</font>
<br><font size=2> {</font>
<br><font size=2>
rewritehost("211.95.122.158");</font>
<br><font size=2>
prefix("66123");</font>
<br><font size=2>
forward(211.95.122.158, 5060);</font>
<br><font size=2>
break;</font>
<br><font size=2> }</font>
<br>
<br><font size=2> # Look up the callee</font>
<br><font size=2> if (method == "INVITE"
|| method == "CANCEL") </font>
<br><font size=2> {</font>
<br><font size=2>
if (!lookup("location")) </font>
<br><font size=2>
{</font>
<br><font size=2>
sl_send_reply("404",
"Not Found");</font>
<br><font size=2>
break;</font>
<br><font size=2>
}</font>
<br><font size=2> }</font>
<br><font size=2> </font>
<br><font size=2> # forward the request
statefuly now; (we need *stateful* forwarding,</font>
<br><font size=2> # because the stateful
mode correlates requests with replies and</font>
<br><font size=2> # drops retranmissions;
otherwise, we would have to report on</font>
<br><font size=2> # every single message
received)</font>
<br><font size=2> setflag(1); # set
for accounting (the same value as in log_flag!)</font>
<br><font size=2> if(!t_relay()) </font>
<br><font size=2> {</font>
<br><font size=2>
sl_reply_error();</font>
<br><font size=2>
break;</font>
<br><font size=2> }</font>
<br><font size=2>}</font>
<br>
<br><font size=2># all incoming replies for t_onrepli-ed transactions enter
here</font>
<br><font size=2>onreply_route[1] </font>
<br><font size=2>{</font>
<br><font size=2> if (status=~"(183)|2[0-9][0-9]")
</font>
<br><font size=2> {</font>
<br><font size=2>
force_rtp_proxy();</font>
<br><font size=2> }</font>
<br><font size=2>}</font>
<br>
<br>
<br>
<br><font size=2> Thanks for help.</font>
<br>
<br><font size=2> Regards,</font>
<br>
<br><font size=2> robert</font>