<DIV>How can i get more information about config port range of rtpproxy, </DIV>
<DIV>because not found in onsip.org !</DIV>
<DIV>&nbsp;</DIV>
<DIV>Tks a Lot !</DIV>
<DIV>Freeman</DIV>
<DIV><BR><BR><B><I>harry gaillac &lt;gaillacharry@yahoo.fr&gt;</I></B> 說:
<BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">Hello,<BR><BR>If ser and rtpproxy run on the same box your ser.cfg<BR>is wrong.<BR><BR>you need to define rtp range ports when you compile<BR>rtpproxy according to the rules of you fiwerall<BR><BR>Look at onsip.org for help ! <BR><BR>Harry <BR>--- Freeman <HYKH080@YAHOO.COM.HK>a 嶰rit :<BR><BR>&gt; Hi,<BR>&gt; <BR>&gt; I installed "Ser-0.8.14" + "nathelper" +<BR>&gt; "rtpproxy" in RedHat 9.0, and add "./rtpproxy" in<BR>&gt; startup script, when i tried both sipsoftphone in<BR>&gt; the internet behind NAT that can connect but "no<BR>&gt; voice" and auto hang-up, but when both sipsoftphone<BR>&gt; in local network that no problem !<BR>&gt; <BR>&gt; Which port range i need release for rtpproxy in the<BR>&gt; firewall ?<BR>&gt; <BR>&gt; my ser.cfg config as below :<BR>&gt; <BR>&gt; # ----------- global configuration parameters<BR>&gt; ------------------------<BR>&gt; #debug=3 # debug
 level (cmd line:<BR>&gt; -dddddddddd)<BR>&gt; #fork=yes<BR>&gt; #log_stderror=no # (cmd line: -E)<BR>&gt; /* Uncomment these lines to enter debugging mode <BR>&gt; fork=no<BR>&gt; */<BR>&gt; #log_stderror=yes<BR>&gt; #debug=4<BR>&gt; check_via=no # (cmd. line: -v)<BR>&gt; dns=no # (cmd. line: -r)<BR>&gt; rev_dns=no # (cmd. line: -R)<BR>&gt; #port=5060<BR>&gt; #children=4<BR>&gt; fifo="/tmp/ser_fifo"<BR>&gt; # ------------------ module loading<BR>&gt; ----------------------------------<BR>&gt; <BR>&gt; loadmodule "/usr/local/lib/ser/modules/sl.so"<BR>&gt; loadmodule "/usr/local/lib/ser/modules/tm.so"<BR>&gt; loadmodule "/usr/local/lib/ser/modules/rr.so"<BR>&gt; loadmodule "/usr/local/lib/ser/modules/maxfwd.so"<BR>&gt; loadmodule "/usr/local/lib/ser/modules/usrloc.so"<BR>&gt; loadmodule "/usr/local/lib/ser/modules/registrar.so"<BR>&gt; loadmodule "/usr/local/lib/ser/modules/textops.so"<BR>&gt; loadmodule "/usr/local/lib/ser/modules/nathelper.so"<BR>&gt; # Uncomment this if you want
 digest authentication<BR>&gt; # mysql.so must be loaded !<BR>&gt; #loadmodule "/usr/local/lib/ser/modules/dbtext.so"<BR>&gt; #loadmodule "/usr/local/lib/ser/modules/auth.so"<BR>&gt; #loadmodule "/usr/local/lib/ser/modules/auth_db.so"<BR>&gt; #loadmodule "/usr/local/lib/ser/modules/mysql.so"<BR>&gt; # ----------------- setting module-specific<BR>&gt; parameters ---------------<BR>&gt; # -- usrloc params --<BR>&gt; modparam("usrloc", "db_mode", 0)<BR>&gt; #modparam("auth_db", "db_url", "db:/var/dbtext")<BR>&gt; #modparam("auth_db", "user_column", "user")<BR>&gt; #modparam("auth_db", "domain_column", "domain")<BR>&gt; #modparam("auth_db", "password_column", "password")<BR>&gt; #modparam("auth_db", "calculate_ha1", 1)<BR>&gt; #modparam("auth_db", "password_column_2", "ha1_2")<BR>&gt; modparam("registrar", "nat_flag", 6)<BR>&gt; modparam("nathelper", "natping_interval", 30) # Ping<BR>&gt; interval 30 s<BR>&gt; modparam("nathelper", "ping_nated_only", 1) # Ping<BR>&gt; only clients behind
 NAT<BR>&gt; modparam("nathelper",<BR>&gt; "rtpproxy_sock","/var/run/rtpproxy.sock")<BR>&gt; # -- auth params --<BR>&gt; # Uncomment if you are using auth module<BR>&gt; #<BR>&gt; #modparam("auth_db", "calculate_ha1", yes)<BR>&gt; #<BR>&gt; # If you set "calculate_ha1" parameter to yes (which<BR>&gt; true in this config), <BR>&gt; # uncomment also the following parameter)<BR>&gt; #<BR>&gt; #modparam("auth_db", "password_column", "password")<BR>&gt; # -- rr params --<BR>&gt; # add value to ;lr param to make some broken UAs<BR>&gt; happy<BR>&gt; modparam("rr", "enable_full_lr", 1)<BR>&gt; # ------------------------- request routing logic<BR>&gt; -------------------<BR>&gt; # main routing logic<BR>&gt; #define NAT_UAC_TEST_C_1918 0x01<BR>&gt; /*<BR>&gt; * test for occurences of RFC1918 addresses in<BR>&gt; Contact<BR>&gt; * header field<BR>&gt; */<BR>&gt; #define NAT_UAC_TEST_RCVD 0x02<BR>&gt; /*<BR>&gt; * test if source address of signaling is different<BR>&gt; from<BR>&gt; * address
 advertised in Via<BR>&gt; */<BR>&gt; #define NAT_UAC_TEST_V_1918 0x04<BR>&gt; /*<BR>&gt; * test for occurences of RFC1918 addresses in SDP<BR>&gt; body<BR>&gt; */<BR>&gt; #define NAT_UAC_TEST_S_1918 0x08<BR>&gt; /*<BR>&gt; * test for occurences of RFC1918 addresses top Via<BR>&gt; */<BR>&gt; route{<BR>&gt; # initial sanity checks -- messages with<BR>&gt; # max_forwards==0, or excessively long requests<BR>&gt; if (!mf_process_maxfwd_header("10")) {<BR>&gt; sl_send_reply("483","Too Many Hops");<BR>&gt; break;<BR>&gt; };<BR>&gt; if (msg:len &gt;= max_len ) {<BR>&gt; sl_send_reply("513", "Message too big");<BR>&gt; break;<BR>&gt; };<BR>&gt; if (nat_uac_test("3")) {<BR>&gt; append_hf("Alex-hint: NAThelper\r\n");<BR>&gt; fix_nated_contact(); # Rewrite contact with source<BR>&gt; IP of signalling<BR>&gt; if (method == "REGISTER" || !<BR>&gt; search("^Record-Route:")) {<BR>&gt; #if (www_authorize("iptel.org", "subscriber")) {<BR>&gt; # www_challenge("iptel.org", "1");<BR>&gt; # };<BR>&gt;
 if (method == "INVITE") {<BR>&gt; append_hf("Alex-hint: SDP rewritten\r\n");<BR>&gt; fix_nated_sdp("3"); # Add direction=active to SDP<BR>&gt; };<BR>&gt; log("LOG: Someone trying to register from private<BR>&gt; IP, rewriting\n");<BR>&gt; force_rport(); # Add rport parameter to<BR>&gt; topmost Via<BR>&gt; setflag(6); # Mark as NATed<BR>&gt; };<BR>&gt; };<BR>&gt; <BR>&gt; if (!method=="REGISTER") record_route(); <BR>&gt; # subsequent messages withing a dialog should take<BR>&gt; the<BR>&gt; # path determined by record-routing<BR>&gt; if (loose_route()) {<BR>&gt; # mark routing logic in request<BR>&gt; append_hf("P-hint: rr-enforced\r\n"); <BR>&gt; route(1);<BR>&gt; break;<BR>&gt; };<BR>&gt; if (!uri==myself) {<BR>&gt; # mark routing logic in request<BR>&gt; append_hf("P-hint: outbound\r\n"); <BR>&gt; route(1);<BR>&gt; break;<BR>&gt; };<BR>&gt; # if the request is for other domain use UsrLoc<BR>&gt; # (in case, it does not work, use the following<BR>&gt; command<BR>&gt; # with proper
 names and addresses in it)<BR>&gt; if (uri==myself) {<BR>&gt; if (method=="REGISTER") {<BR>&gt; save("location");<BR>&gt; break;<BR>&gt; };<BR>&gt; lookup("aliases");<BR>&gt; if (!uri==myself) {<BR>&gt; append_hf("P-hint: outbound alias\r\n"); <BR>&gt; route(1);<BR>&gt; break;<BR>&gt; };<BR>&gt; # native SIP destinations are handled using our<BR>&gt; USRLOC DB<BR>&gt; if (!lookup("location")) {<BR>&gt; sl_send_reply("404", "Not Found");<BR>&gt; break;<BR>&gt; };<BR>&gt; };<BR>&gt; append_hf("P-hint: usrloc applied\r\n"); <BR>&gt; route(1);<BR>&gt; }<BR>&gt; route[1]<BR>&gt; {<BR>&gt; # !! Nathelper<BR>&gt; if (isflagset(6)) {<BR>&gt; force_rtp_proxy();<BR>&gt; append_hf("NAT: ...\r\n");<BR>&gt; };<BR>&gt; # NAT processing of replies; apply to all<BR>&gt; transactions (for example,<BR>&gt; # re-INVITEs from public to private UA are<BR>&gt; hard to identify as<BR>&gt; # NATed at the moment of request<BR>&gt; processing); look at replies<BR>&gt; t_on_reply("1");<BR>&gt; # send it out
 now; use stateful forwarding<BR>&gt; as it works reliably<BR>&gt; # even for UDP2TCP<BR>&gt; if (!t_relay()) {<BR>&gt; sl_reply_error();<BR>&gt; };<BR>&gt; }<BR>&gt; # !! Nathelper<BR>&gt; onreply_route[1] {<BR>&gt; # NATed transaction ?<BR>&gt; append_hf("NAT: tes\r\n");<BR>&gt; <BR>=== message truncated ===&gt;<BR>_______________________________________________<BR>&gt; Serusers mailing list<BR>&gt; serusers@lists.iptel.org<BR>&gt; http://lists.iptel.org/mailman/listinfo/serusers<BR>&gt; <BR><BR><BR><BR><BR><BR><BR><BR>___________________________________________________________________________ <BR>Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger <BR>T幨嶰hargez cette version sur http://fr.messenger.yahoo.com<BR></BLOCKQUOTE></DIV><p>
                相片電郵測試版一個郵件就可以傳送過百張相片!