<DIV>
<DIV>but i using "Portaone rtpproxy", only&nbsp;that files :</DIV>
<DIV>&nbsp;</DIV>
<DIV>main.c</DIV>
<DIV>Makefile</DIV>
<DIV>Makefile.gnu</DIV>
<DIV>myqueue.h</DIV>
<DIV>README</DIV>
<DIV>&nbsp;</DIV>
<DIV>is this rtpproxy is not work in ser ???</DIV>
<DIV>&nbsp;</DIV>
<DIV>Tks a Lot !<BR>Freeman<BR><BR><B><I>harry gaillac &lt;gaillacharry@yahoo.fr&gt;</I></B> 說:</DIV>
<BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">look at rtpp_defines.h<BR>re-compile rtpproxy.<BR>put a rtpproxy script in /etc/rc.d/init.d redhat<BR>you must add option in this script if ser run on the<BR>same box.<BR>So look at your ser.cfg script if you want call others<BR>domains or your own domain<BR><BR>Harry<BR><BR><BR>--- Freeman <HYKH080@YAHOO.COM.HK>a 嶰rit :<BR><BR>&gt; How can i get more information about config port<BR>&gt; range of rtpproxy, <BR>&gt; because not found in onsip.org !<BR>&gt; <BR>&gt; Tks a Lot !<BR>&gt; Freeman<BR>&gt; <BR>&gt; <BR>&gt; harry gaillac <GAILLACHARRY@YAHOO.FR>說:Hello,<BR>&gt; <BR>&gt; If ser and rtpproxy run on the same box your ser.cfg<BR>&gt; is wrong.<BR>&gt; <BR>&gt; you need to define rtp range ports when you compile<BR>&gt; rtpproxy according to the rules of you fiwerall<BR>&gt; <BR>&gt; Look at onsip.org for help ! <BR>&gt; <BR>&gt; Harry <BR>&gt; --- Freeman a 嶰rit :<BR>&gt;
 <BR>&gt; &gt; Hi,<BR>&gt; &gt; <BR>&gt; &gt; I installed "Ser-0.8.14" + "nathelper" +<BR>&gt; &gt; "rtpproxy" in RedHat 9.0, and add "./rtpproxy" in<BR>&gt; &gt; startup script, when i tried both sipsoftphone in<BR>&gt; &gt; the internet behind NAT that can connect but "no<BR>&gt; &gt; voice" and auto hang-up, but when both<BR>&gt; sipsoftphone<BR>&gt; &gt; in local network that no problem !<BR>&gt; &gt; <BR>&gt; &gt; Which port range i need release for rtpproxy in<BR>&gt; the<BR>&gt; &gt; firewall ?<BR>&gt; &gt; <BR>&gt; &gt; my ser.cfg config as below :<BR>&gt; &gt; <BR>&gt; &gt; # ----------- global configuration parameters<BR>&gt; &gt; ------------------------<BR>&gt; &gt; #debug=3 # debug level (cmd line:<BR>&gt; &gt; -dddddddddd)<BR>&gt; &gt; #fork=yes<BR>&gt; &gt; #log_stderror=no # (cmd line: -E)<BR>&gt; &gt; /* Uncomment these lines to enter debugging mode <BR>&gt; &gt; fork=no<BR>&gt; &gt; */<BR>&gt; &gt; #log_stderror=yes<BR>&gt; &gt; #debug=4<BR>&gt; &gt; check_via=no #
 (cmd. line: -v)<BR>&gt; &gt; dns=no # (cmd. line: -r)<BR>&gt; &gt; rev_dns=no # (cmd. line: -R)<BR>&gt; &gt; #port=5060<BR>&gt; &gt; #children=4<BR>&gt; &gt; fifo="/tmp/ser_fifo"<BR>&gt; &gt; # ------------------ module loading<BR>&gt; &gt; ----------------------------------<BR>&gt; &gt; <BR>&gt; &gt; loadmodule "/usr/local/lib/ser/modules/sl.so"<BR>&gt; &gt; loadmodule "/usr/local/lib/ser/modules/tm.so"<BR>&gt; &gt; loadmodule "/usr/local/lib/ser/modules/rr.so"<BR>&gt; &gt; loadmodule "/usr/local/lib/ser/modules/maxfwd.so"<BR>&gt; &gt; loadmodule "/usr/local/lib/ser/modules/usrloc.so"<BR>&gt; &gt; loadmodule<BR>&gt; "/usr/local/lib/ser/modules/registrar.so"<BR>&gt; &gt; loadmodule "/usr/local/lib/ser/modules/textops.so"<BR>&gt; &gt; loadmodule<BR>&gt; "/usr/local/lib/ser/modules/nathelper.so"<BR>&gt; &gt; # Uncomment this if you want digest authentication<BR>&gt; &gt; # mysql.so must be loaded !<BR>&gt; &gt; #loadmodule "/usr/local/lib/ser/modules/dbtext.so"<BR>&gt; &gt;
 #loadmodule "/usr/local/lib/ser/modules/auth.so"<BR>&gt; &gt; #loadmodule<BR>&gt; "/usr/local/lib/ser/modules/auth_db.so"<BR>&gt; &gt; #loadmodule "/usr/local/lib/ser/modules/mysql.so"<BR>&gt; &gt; # ----------------- setting module-specific<BR>&gt; &gt; parameters ---------------<BR>&gt; &gt; # -- usrloc params --<BR>&gt; &gt; modparam("usrloc", "db_mode", 0)<BR>&gt; &gt; #modparam("auth_db", "db_url", "db:/var/dbtext")<BR>&gt; &gt; #modparam("auth_db", "user_column", "user")<BR>&gt; &gt; #modparam("auth_db", "domain_column", "domain")<BR>&gt; &gt; #modparam("auth_db", "password_column",<BR>&gt; "password")<BR>&gt; &gt; #modparam("auth_db", "calculate_ha1", 1)<BR>&gt; &gt; #modparam("auth_db", "password_column_2", "ha1_2")<BR>&gt; &gt; modparam("registrar", "nat_flag", 6)<BR>&gt; &gt; modparam("nathelper", "natping_interval", 30) #<BR>&gt; Ping<BR>&gt; &gt; interval 30 s<BR>&gt; &gt; modparam("nathelper", "ping_nated_only", 1) # Ping<BR>&gt; &gt; only clients behind NAT<BR>&gt;
 &gt; modparam("nathelper",<BR>&gt; &gt; "rtpproxy_sock","/var/run/rtpproxy.sock")<BR>&gt; &gt; # -- auth params --<BR>&gt; &gt; # Uncomment if you are using auth module<BR>&gt; &gt; #<BR>&gt; &gt; #modparam("auth_db", "calculate_ha1", yes)<BR>&gt; &gt; #<BR>&gt; &gt; # If you set "calculate_ha1" parameter to yes<BR>&gt; (which<BR>&gt; &gt; true in this config), <BR>&gt; &gt; # uncomment also the following parameter)<BR>&gt; &gt; #<BR>&gt; &gt; #modparam("auth_db", "password_column",<BR>&gt; "password")<BR>&gt; &gt; # -- rr params --<BR>&gt; &gt; # add value to ;lr param to make some broken UAs<BR>&gt; &gt; happy<BR>&gt; &gt; modparam("rr", "enable_full_lr", 1)<BR>&gt; &gt; # ------------------------- request routing logic<BR>&gt; &gt; -------------------<BR>&gt; &gt; # main routing logic<BR>&gt; &gt; #define NAT_UAC_TEST_C_1918 0x01<BR>&gt; &gt; /*<BR>&gt; &gt; * test for occurences of RFC1918 addresses in<BR>&gt; &gt; Contact<BR>&gt; &gt; * header field<BR>&gt; &gt; */<BR>&gt; &gt;
 #define NAT_UAC_TEST_RCVD 0x02<BR>&gt; &gt; /*<BR>&gt; &gt; * test if source address of signaling is different<BR>&gt; &gt; from<BR>&gt; &gt; * address advertised in Via<BR>&gt; &gt; */<BR>&gt; &gt; #define NAT_UAC_TEST_V_1918 0x04<BR>&gt; &gt; /*<BR>&gt; &gt; * test for occurences of RFC1918 addresses in SDP<BR>&gt; &gt; body<BR>&gt; &gt; */<BR>&gt; &gt; #define NAT_UAC_TEST_S_1918 0x08<BR>&gt; &gt; /*<BR>&gt; &gt; * test for occurences of RFC1918 addresses top Via<BR>&gt; &gt; */<BR>&gt; &gt; route{<BR>&gt; &gt; # initial sanity checks -- messages with<BR>&gt; &gt; # max_forwards==0, or excessively long requests<BR>&gt; &gt; if (!mf_process_maxfwd_header("10")) {<BR>&gt; &gt; sl_send_reply("483","Too Many Hops");<BR>&gt; &gt; break;<BR>&gt; &gt; };<BR>&gt; &gt; if (msg:len &gt;= max_len ) {<BR>&gt; &gt; sl_send_reply("513", "Message too big");<BR>&gt; &gt; break;<BR>&gt; &gt; };<BR>&gt; &gt; if (nat_uac_test("3")) {<BR>&gt; &gt; append_hf("Alex-hint: NAThelper\r\n");<BR>&gt; &gt;
 fix_nated_contact(); # Rewrite contact with source<BR>&gt; &gt; IP of signalling<BR>&gt; &gt; if (method == "REGISTER" || !<BR>&gt; &gt; search("^Record-Route:")) {<BR>&gt; &gt; #if (www_authorize("iptel.org", "subscriber")) {<BR>&gt; &gt; # www_challenge("iptel.org", "1");<BR>&gt; &gt; # };<BR>&gt; &gt; if (method == "INVITE") {<BR>&gt; &gt; append_hf("Alex-hint: SDP rewritten\r\n");<BR>&gt; &gt; fix_nated_sdp("3"); # Add direction=active to SDP<BR>&gt; &gt; };<BR>&gt; &gt; log("LOG: Someone trying to register from private<BR>&gt; &gt; IP, rewriting\n");<BR>&gt; &gt; force_rport(); # Add rport parameter to<BR>&gt; &gt; topmost Via<BR>&gt; &gt; setflag(6); # Mark as NATed<BR>&gt; &gt; };<BR>&gt; &gt; };<BR>&gt; &gt; <BR>&gt; &gt; if (!method=="REGISTER") record_route(); <BR>&gt; &gt; # subsequent messages withing a dialog should take<BR>&gt; &gt; the<BR>&gt; &gt; # path determined by record-routing<BR>&gt; &gt; if (loose_route()) {<BR>&gt; &gt; # mark routing logic in
 request<BR>&gt; &gt; append_hf("P-hint: rr-enforced\r\n"); <BR>&gt; &gt; route(1);<BR>&gt; &gt; break;<BR>&gt; &gt; };<BR>&gt; &gt; if (!uri==myself) {<BR>&gt; &gt; # mark routing logic in request<BR>&gt; &gt; append_hf("P-hint: outbound\r\n"); <BR>&gt; &gt; route(1);<BR>&gt; &gt; break;<BR>&gt; &gt; };<BR>&gt; &gt; # if the request is for other domain use UsrLoc<BR>&gt; &gt; # (in case, it does not work, use the following<BR>&gt; &gt; command<BR>&gt; &gt; # with proper names and addresses in it)<BR>&gt; &gt; if (uri==myself) {<BR>&gt; &gt; if (method=="REGISTER") {<BR>&gt; &gt; save("location");<BR>&gt; &gt; break;<BR>&gt; &gt; };<BR>&gt; &gt; lookup("aliases");<BR>&gt; &gt; if (!uri==myself) {<BR>&gt; &gt; append_hf("P-hint: outbound alias\r\n"); <BR>&gt; &gt; route(1);<BR>&gt; &gt; break;<BR>&gt; &gt; };<BR>&gt; &gt; # native SIP destinations are handled using our<BR>&gt; &gt; USRLOC DB<BR>&gt; &gt; if (!lookup("location")) {<BR>&gt; &gt; sl_send_reply("404", "Not
 Found");<BR>&gt; &gt; break;<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>_______________________________________<br> 想即時收到新 email 通知?<br> 下載 Yahoo! Messenger http://messenger.yahoo.com.hk