<div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">Hello Greger:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">&nbsp;<o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">You are really the man. I have tried your suggestion, to put the two Video Phones to the public IP network with the same IP segment of the SER server and the two Video Phones works perfectly. So, officially, it works with non-NAted. As you stated, this is typically a NAT problem.<o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">&nbsp;<o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">As stated, I am really new with SER,
 RTPProxy and Nathelper. I had included my ser.cfg below. Could you please have a look to see if there is any thing wrong with it (if you have time and if it's possible)? Once again many thanks for your precious help. <o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">&nbsp;<o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">To all SER Users:<o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">&nbsp;<o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">If you have time,&nbsp;please have a&nbsp;look at the below&nbsp;ser.cfg and let us know if there is anything wrong with it? It's basically can handles video and audio non-NAted. But can only handle audio with NAted.<o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US
 style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">&nbsp;<o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">Your help is greatly appreciated.<o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">&nbsp;<o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">Best regards,<o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US">&nbsp;<o:p></o:p></SPAN></div>  <div><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: FR; mso-bidi-language: AR-SA">Steven Wong</SPAN><BR><BR><B><I>"Greger V. Teigre" &lt;greger@teigre.com&gt;</I></B> wrote:</div>  <BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px;
 BORDER-LEFT: #1010ff 2px solid">You don't say if this is a NAT problem or not. <BR>I would start with devices non-NATed (to sort out rtpproxy issues).<BR>I think rtpproxy got video support a while back, but I haven't tested it. <BR>If it works with non-NAted, you may want to review your NAT handling based on the Getting Started guide.<BR>g-)<BR><BR><BR>Steven Wong wrote:   <BLOCKQUOTE cite=mid936785.28094.qm@web35603.mail.mud.yahoo.com type="cite">  <DIV>Hello All:</DIV>  <DIV>&nbsp;</DIV>  <DIV>You will find enclosed our ser.cfg file that I have adapted from a very generous SIP user from the Internet.<BR>&nbsp;&nbsp; <BR>This ser.cfg file work perfectly with Audio (IP Phone and Softphone). But when I am trying to use a Video Phone (we did try with GrandStream GXV-3000 Video Phone), it just giving us Audio but NOT Video. I did also try the same GrandStream GXV-3000 Video Phone with FreeWorldDialup and it is working fine with Video.</DIV>  <DIV>&nbsp;</DIV>  <DIV>We have
 checked the etherreal output&nbsp;while trying to make a call and we are&nbsp;having&nbsp;this type of errors on the etherreal:</DIV>  <DIV>&nbsp;</DIV>  <DIV>-----</DIV>  <DIV>  <DIV>RTP Protocol</DIV>  <DIV>Source IP (The IP of the Video Phone) and Destination IP (The IP of the SER Server)&nbsp;------&shy; Payload Type = Unknown (126)</DIV>  <DIV>&nbsp;</DIV>  <DIV>ICMP Protocol</DIV>  <DIV>Source IP (The IP of the SER Server) and Destination IP (The IP of the Video Phone)&nbsp;------&shy;Destination Unreachable&nbsp;(Port Unreacheable)</DIV>  <DIV>&nbsp;</DIV>  <DIV>These 2 errors repeated six time before it stop with a good signal of:</DIV>  <DIV>&nbsp;</DIV>  <DIV>Payload Type = ITU-T G.711 PCMU</DIV>  <DIV>&nbsp;</DIV>  <DIV>Then the audio start but without audio.<BR>---</DIV>  <DIV><BR>Would you please tell us what is going wrong with this ser.cfg file? your answer is greatly appreciated.<BR>&nbsp;&nbsp; <BR>Many thanks,<BR>&nbsp;&nbsp; <BR>Steven Wong</DIV></DIV> 
 <DIV>&nbsp;</DIV>  <DIV>--------------------------------------------------------------------------</DIV>  <DIV>debug=3<BR>fork=yes<BR>log_stderror=no</DIV>  <DIV>check_via=no<BR>dns=no<BR>rev_dns=no</DIV>  <DIV>listen=XXX.XXX.XXX.XXX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # INSERT YOUR IP ADDRESS HERE<BR># port=5060<BR>children=3</DIV>  <DIV>alias="<SPAN id=lw_1172198623_0 style="BORDER-BOTTOM: rgb(0,102,204) 1px dashed">HOST.DOMAINNAME.COM</SPAN>"<BR>alias="XXX.XXX.XXX.XXX"</DIV>  <DIV>fifo="/tmp/ser_fifo"<BR>fifo_db_url="mysql://ser:PASSWORD@localhost/ser"</DIV>  <DIV>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/auth.so"<BR>loadmodule "/usr/local/lib/ser/modules/auth_db.so"<BR>loadmodule "/usr/local/lib/ser/modules/uri.so"<BR>loadmodule "/usr/local/lib/ser/modules/uri_db.so"<BR>loadmodule "/usr/local/lib/ser/modules/nathelper.so"<BR>loadmodule "/usr/local/lib/ser/modules/textops.so"<BR>loadmodule "/usr/local/lib/ser/modules/acc.so"</DIV>  <DIV>modparam("auth_db|uri_db|usrloc", "db_url", "mysql://ser:PASSWORD@localhost/ser")<BR>modparam("auth_db", "calculate_ha1", 1)<BR>modparam("auth_db", "password_column", "password")</DIV>  <DIV>modparam("nathelper", "natping_interval", 30) <BR>modparam("nathelper", "ping_nated_only", 1)&nbsp;&nbsp; <BR>modparam("nathelper", "rtpproxy_sock", "unix:/var/run/rtpproxy.sock")</DIV>  <DIV>modparam("usrloc", "db_mode", 2)</DIV>  <DIV>modparam("registrar", "nat_flag", 6)</DIV>  <DIV>modparam("rr", "enable_full_lr", 1)<BR>#---Accounting params<BR>modparam("acc", "log_level", 1)<BR>modparam("acc", "log_flag", 1)</DIV>  <DIV>#
 -------------------------&nbsp; request routing logic -------------------</DIV>  <DIV># main routing logic</DIV>  <DIV>route{</DIV>  <DIV>&nbsp;# initial sanity checks -- messages with<BR>&nbsp;# max_forwards==0, or excessively long requests<BR>&nbsp;if (!mf_process_maxfwd_header("10")) {<BR>&nbsp;&nbsp;sl_send_reply("483","Too Many Hops");<BR>&nbsp;&nbsp;break;<BR>&nbsp;};<BR>&nbsp;if (msg:len &gt;=&nbsp; max_len ) {<BR>&nbsp;&nbsp;sl_send_reply("513", "Message too big");<BR>&nbsp;&nbsp;break;<BR>&nbsp;};<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # !! Nathelper<BR>&nbsp;# Special handling for NATed clients; first, NAT test is<BR>&nbsp;# executed: it looks for via!=received and RFC1918 addresses<BR>&nbsp;# in Contact (may fail if line-folding is used); also,<BR>&nbsp;# the received test should, if completed, should check all<BR>&nbsp;# vias for rpesence of received<BR>&nbsp;if (nat_uac_test("3")) {<BR>&nbsp;&nbsp;# Allow RR-ed requests, as these may indicate
 that<BR>&nbsp;&nbsp;# a NAT-enabled proxy takes care of it; unless it is<BR>&nbsp;&nbsp;# a REGISTER<BR>&nbsp;&nbsp;if (method == "REGISTER" || ! search("^Record-Route:")) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log("LOG: Someone trying to register from private IP, rewriting\n");</DIV>  <DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # This will work only for user agents that support symmetric<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # communication. We tested quite many of them and majority is<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # smart enough to be symmetric. In some phones it takes a configuration<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # option. With Cisco 7960, it is called NAT_Enable=Yes, with kphone it is<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # called "symmetric media" and "symmetric signalling".</DIV>  <DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fix_nated_contact(); # Rewrite contact with source IP of signalling<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (method == "INVITE")
 {<BR>&nbsp;&nbsp;&nbsp;fix_nated_sdp("1"); # Add direction=active to SDP<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; force_rport(); # Add rport parameter to topmost Via<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setflag(6);&nbsp;&nbsp;&nbsp; # Mark as NATed<BR>&nbsp;&nbsp;};<BR>&nbsp;};</DIV>  <DIV>&nbsp;# we record-route all messages -- to make sure that<BR>&nbsp;# subsequent messages will go through our proxy; that's<BR>&nbsp;# particularly good if upstream and downstream entities<BR>&nbsp;# use different transport protocol<BR>&nbsp;if (!method=="REGISTER") record_route();&nbsp;</DIV>  <DIV>&nbsp;# subsequent messages withing a dialog should take the<BR>&nbsp;# path determined by record-routing<BR>&nbsp;if (loose_route()) {<BR>&nbsp;&nbsp;# mark routing logic in request<BR>&nbsp;&nbsp;append_hf("P-hint: rr-enforced\r\n"); <BR>&nbsp;&nbsp;route(1);<BR>&nbsp;&nbsp;break;<BR>&nbsp;};</DIV>  <DIV>&nbsp;setflag(1);<BR>&nbsp;if (!uri==myself)
 {<BR>&nbsp;&nbsp;# mark routing logic in request<BR>&nbsp;&nbsp;append_hf("P-hint: outbound\r\n"); <BR>&nbsp;&nbsp;route(1);<BR>&nbsp;&nbsp;break;<BR>&nbsp;};</DIV>  <DIV>&nbsp;# if the request is for other domain use UsrLoc<BR>&nbsp;# (in case, it does not work, use the following command<BR>&nbsp;# with proper names and addresses in it)<BR>&nbsp;if (uri==myself) {</DIV>  <DIV>&nbsp;&nbsp;if (method=="REGISTER") {</DIV>  <DIV># Uncomment this if you want to use digest authentication<BR>&nbsp;&nbsp;&nbsp;if (!www_authorize("<SPAN id=lw_1172198623_1 style="BORDER-BOTTOM: rgb(0,102,204) 1px dashed">HOST.DOMAINNAME.COM</SPAN>", "subscriber")) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;www_challenge("<SPAN id=lw_1172198623_2 style="BORDER-BOTTOM: rgb(0,102,204) 1px dashed">HOST.DOMAINNAME.COM</SPAN>", "0");<BR>&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;};</DIV>  <DIV>&nbsp;&nbsp;&nbsp;save("location");<BR>&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;};</DIV> 
 <DIV>&nbsp;&nbsp;lookup("aliases");<BR>&nbsp;&nbsp;if (!uri==myself) {<BR>&nbsp;&nbsp;&nbsp;append_hf("P-hint: outbound alias\r\n"); <BR>&nbsp;&nbsp;&nbsp;route(1);<BR>&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;};</DIV>  <DIV>&nbsp;&nbsp;# native SIP destinations are handled using our USRLOC DB<BR>&nbsp;&nbsp;if (!lookup("location")) {<BR>&nbsp;&nbsp;&nbsp;sl_send_reply("404", "Not Found");<BR>&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;};<BR>&nbsp;};<BR>&nbsp;append_hf("P-hint: usrloc applied\r\n"); <BR>&nbsp;route(1);<BR>}</DIV>  <DIV>route[1] <BR>{<BR>&nbsp;# !! Nathelper<BR>&nbsp;if (uri=~<A class=moz-txt-link-rfc2396E href="mailto:[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)">"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)"</A> &amp;&amp; !search("^Route:")){<BR>&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply("479", "We don't forward to private IP addresses");<BR>&nbsp;&nbsp;&nbsp;&nbsp; break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>&nbsp;<BR>&nbsp;# if
 client or server know to be behind a NAT, enable relay<BR>&nbsp;if (isflagset(6)) {<BR>&nbsp;&nbsp;&nbsp;&nbsp; force_rtp_proxy();<BR>&nbsp;};</DIV>  <DIV>&nbsp;# NAT processing of replies; apply to all transactions (for example,<BR>&nbsp;# re-INVITEs from public to private UA are hard to identify as<BR>&nbsp;# NATed at the moment of request processing); look at replies<BR>&nbsp;t_on_reply("1");</DIV>  <DIV>&nbsp;# send it out now; use stateful forwarding as it works reliably<BR>&nbsp;# even for UDP2TCP<BR>&nbsp;if (!t_relay()) {<BR>&nbsp;&nbsp;sl_reply_error();<BR>&nbsp;};<BR>}</DIV>  <DIV># !! Nathelper<BR>onreply_route[1] {<BR>&nbsp;&nbsp;&nbsp; # NATed transaction ?<BR>&nbsp;&nbsp;&nbsp; if (isflagset(6) &amp;&amp; status =~ "(183)|2[0-9][0-9]") {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fix_nated_contact();<BR>&nbsp;force_rtp_proxy();<BR>&nbsp;&nbsp;&nbsp; # otherwise, is it a transaction behind a NAT and we did not<BR>&nbsp;&nbsp;&nbsp; # know at time of request
 processing ? (RFC1918 contacts)<BR>&nbsp;&nbsp;&nbsp; } else if (nat_uac_test("1")) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fix_nated_contact();<BR>&nbsp;&nbsp;&nbsp; };<BR>}<BR>--------------------------------------------------------------------------</DIV>  <div></div>  <HR SIZE=1>  The fish are biting.<BR><A href="http://us.rd.yahoo.com/evt=49679/*http://searchmarketing.yahoo.com/arp/sponsoredsearch_v2.php?o=US2140&amp;cmp=Yahoo&amp;ctv=Q107Tagline&amp;s=Y&amp;s2=EM&amp;b=50">Get more visitors</A> on your site using <A href="http://us.rd.yahoo.com/evt=49679/*http://searchmarketing.yahoo.com/arp/sponsoredsearch_v2.php?o=US2140&amp;cmp=Yahoo&amp;ctv=Q107Tagline&amp;s=Y&amp;s2=EM&amp;b=50">Yahoo! Search Marketing.</A> <PRE wrap=""><HR width="90%" SIZE=4>  _______________________________________________  Serusers mailing list  <A class=moz-txt-link-abbreviated href="mailto:Serusers@lists.iptel.org">Serusers@lists.iptel.org</A>  <A class=moz-txt-link-freetext
 href="http://lists.iptel.org/mailman/listinfo/serusers">http://lists.iptel.org/mailman/listinfo/serusers</A>    </PRE></BLOCKQUOTE></BLOCKQUOTE><BR><p>&#32;

<hr size=1>Any questions?  Get answers on any topic at <a href="http://answers.yahoo.com/;_ylc=X3oDMTFvbGNhMGE3BF9TAzM5NjU0NTEwOARfcwMzOTY1NDUxMDMEc2VjA21haWxfdGFnbGluZQRzbGsDbWFpbF90YWcx">Yahoo! Answers</a>. Try it now.