<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=big5">
<META content="MSHTML 6.00.2900.2668" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial>That's an old old version!&nbsp; You need to get rtpproxy 
from the repository. Or use the Getting Started source package from 
ONsip.org</FONT></DIV>
<DIV><FONT face=Arial>g-)</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>---- Original Message ----<BR>From: Freeman<BR>To: 
serusers@lists.iptel.org<BR>Sent: Wednesday, June 22, 2005 12:57 PM<BR>Subject: 標題: 
RE: [Serusers] RTPProxy Problem !<BR><BR>&gt; but i using "Portaone rtpproxy", 
only that files :<BR>&gt; <BR>&gt; main.c<BR>&gt; Makefile<BR>&gt; 
Makefile.gnu<BR>&gt; myqueue.h<BR>&gt; README<BR>&gt; <BR>&gt; is this rtpproxy 
is not work in ser ???<BR>&gt; <BR>&gt; Tks a Lot !<BR>&gt; Freeman<BR>&gt; 
<BR>&gt; harry gaillac &lt;gaillacharry@yahoo.fr&gt; 說:<BR>&gt; look at 
rtpp_defines.h<BR>&gt; re-compile rtpproxy.<BR>&gt; put a rtpproxy script in 
/etc/rc.d/init.d redhat<BR>&gt; you must add option in this script if ser run on 
the<BR>&gt; same box.<BR>&gt; So look at your ser.cfg script if you want call 
others<BR>&gt; domains or your own domain<BR>&gt; <BR>&gt; Harry<BR>&gt; 
<BR>&gt; <BR>&gt; --- Freeman a 嶰rit :<BR>&gt; <BR>&gt;&gt; How can i get more 
information about config port<BR>&gt;&gt; range of rtpproxy,<BR>&gt;&gt; because 
not found in onsip.org !<BR>&gt;&gt; <BR>&gt;&gt; Tks a Lot !<BR>&gt;&gt; 
Freeman<BR>&gt;&gt; <BR>&gt;&gt; <BR>&gt;&gt; harry gaillac 說:Hello,<BR>&gt;&gt; 
<BR>&gt;&gt; If ser and rtpproxy run on the same box your ser.cfg<BR>&gt;&gt; is 
wrong.<BR>&gt;&gt; <BR>&gt;&gt; you need to define rtp range ports when you 
compile<BR>&gt;&gt; rtpproxy according to the rules of you fiwerall<BR>&gt;&gt; 
<BR>&gt;&gt; Look at onsip.org for help !<BR>&gt;&gt; <BR>&gt;&gt; 
Harry<BR>&gt;&gt; --- Freeman a 嶰rit :<BR>&gt;&gt; <BR>&gt;&gt;&gt; 
Hi,<BR>&gt;&gt;&gt; <BR>&gt;&gt;&gt; I installed "Ser-0.8.14" + "nathelper" 
+<BR>&gt;&gt;&gt; "rtpproxy" in RedHat 9.0, and add "./rtpproxy" 
in<BR>&gt;&gt;&gt; startup script, when i tried both sipsoftphone 
in<BR>&gt;&gt;&gt; the internet behind NAT that can connect but 
"no<BR>&gt;&gt;&gt; voice" and auto hang-up, but when both<BR>&gt;&gt; 
sipsoftphone<BR>&gt;&gt;&gt; in local network that no problem !<BR>&gt;&gt;&gt; 
<BR>&gt;&gt;&gt; Which port range i need release for rtpproxy in<BR>&gt;&gt; 
the<BR>&gt;&gt;&gt; firewall ?<BR>&gt;&gt;&gt; <BR>&gt;&gt;&gt; my ser.cfg 
config as below :<BR>&gt;&gt;&gt; <BR>&gt;&gt;&gt; # ----------- global 
configuration parameters<BR>&gt;&gt;&gt; 
------------------------<BR>&gt;&gt;&gt; #debug=3 # debug level (cmd 
line:<BR>&gt;&gt;&gt; -dddddddddd)<BR>&gt;&gt;&gt; #fork=yes<BR>&gt;&gt;&gt; 
#log_stderror=no # (cmd line: -E)<BR>&gt;&gt;&gt; /* Uncomment these lines to 
enter debugging mode<BR>&gt;&gt;&gt; fork=no<BR>&gt;&gt;&gt; */<BR>&gt;&gt;&gt; 
#log_stderror=yes<BR>&gt;&gt;&gt; #debug=4<BR>&gt;&gt;&gt; check_v ia=no # (cmd. 
line: -v)<BR>&gt;&gt;&gt; dns=no # (cmd. line: -r)<BR>&gt;&gt;&gt; rev_dns=no # 
(cmd. line: -R)<BR>&gt;&gt;&gt; #port=5060<BR>&gt;&gt;&gt; 
#children=4<BR>&gt;&gt;&gt; fifo="/tmp/ser_fifo"<BR>&gt;&gt;&gt; # 
------------------ module loading<BR>&gt;&gt;&gt; 
----------------------------------<BR>&gt;&gt;&gt; <BR>&gt;&gt;&gt; loadmodule 
"/usr/local/lib/ser/modules/sl.so"<BR>&gt;&gt;&gt; loadmodule 
"/usr/local/lib/ser/modules/tm.so"<BR>&gt;&gt;&gt; loadmodule 
"/usr/local/lib/ser/modules/rr.so"<BR>&gt;&gt;&gt; loadmodule 
"/usr/local/lib/ser/modules/maxfwd.so"<BR>&gt;&gt;&gt; loadmodule 
"/usr/local/lib/ser/modules/usrloc.so"<BR>&gt;&gt;&gt; loadmodule<BR>&gt;&gt; 
"/usr/local/lib/ser/modules/registrar.so"<BR>&gt;&gt;&gt; loadmodule 
"/usr/local/lib/ser/modules/textops.so"<BR>&gt;&gt;&gt; loadmodule<BR>&gt;&gt; 
"/usr/local/lib/ser/modules/nathelper.so"<BR>&gt;&gt;&gt; # Uncomment this if 
you want digest authentication<BR>&gt;&gt;&gt; # mysql.so must be loaded 
!<BR>&gt;&gt;&gt; #loadmodule 
"/usr/local/lib/ser/modules/dbtext.so"<BR>&gt;&gt;&gt; #loadmodule 
"/usr/local/lib/ser/modules/auth.so"<BR>&gt;&gt;&gt; #loadmodule<BR>&gt;&gt; 
"/usr/local/lib/ser/modules/auth_db.so"<BR>&gt;&gt;&gt; #loadmodule 
"/usr/local/lib/ser/modules/mysql.so"<BR>&gt;&gt;&gt; # ----------------- 
setting module-specific<BR>&gt;&gt;&gt; parameters 
---------------<BR>&gt;&gt;&gt; # -- usrloc params --<BR>&gt;&gt;&gt; 
modparam("usrloc", "db_mode", 0)<BR>&gt;&gt;&gt; #modparam("auth_db", "db_url", 
"db:/var/dbtext")<BR>&gt;&gt;&gt; #modparam("auth_db", "user_column", 
"user")<BR>&gt;&gt;&gt; #modparam("auth_db", "domain_column", 
"domain")<BR>&gt;&gt;&gt; #modparam("auth_db", "password_column",<BR>&gt;&gt; 
"password")<BR>&gt;&gt;&gt; #modparam("auth_db", "calculate_ha1", 
1)<BR>&gt;&gt;&gt; #modparam("auth_db", "password_column_2", 
"ha1_2")<BR>&gt;&gt;&gt; modparam("registrar", "nat_flag", 6)<BR>&gt;&gt;&gt; 
modparam("nathelper", "natping_interval", 30) #<BR>&gt;&gt; Ping<BR>&gt;&gt;&gt; 
interval 30 s<BR>&gt;&gt;&gt; modparam("nathelper", "ping_nated_only", 1) # 
Ping<BR>&gt;&gt;&gt; only clients behind NAT<BR>&gt;&gt;&gt; 
modparam("nathelper",<BR>&gt;&gt;&gt; 
"rtpproxy_sock","/var/run/rtpproxy.sock")<BR>&gt;&gt;&gt; # -- auth params 
--<BR>&gt;&gt;&gt; # Uncomment if you are using auth module<BR>&gt;&gt;&gt; 
#<BR>&gt;&gt;&gt; #modparam("auth_db", "calculate_ha1", yes)<BR>&gt;&gt;&gt; 
#<BR>&gt;&gt;&gt; # If you set "calculate_ha1" parameter to yes<BR>&gt;&gt; 
(which<BR>&gt;&gt;&gt; true in this config),<BR>&gt;&gt;&gt; # uncomment also 
the following parameter)<BR>&gt;&gt;&gt; #<BR>&gt;&gt;&gt; #modparam("auth_db", 
"password_column",<BR>&gt;&gt; "password")<BR>&gt;&gt;&gt; # -- rr params 
--<BR>&gt;&gt;&gt; # add value to ;lr param to make some broken 
UAs<BR>&gt;&gt;&gt; happy<BR>&gt;&gt;&gt; modparam("rr", "enable_full_lr", 
1)<BR>&gt;&gt;&gt; # ------------------------- request routing 
logic<BR>&gt;&gt;&gt; -------------------<BR>&gt;&gt;&gt; # main routing 
logic<BR>&gt;&gt;&gt; #define NAT_UAC_TEST_C_1918 0x01<BR>&gt;&gt;&gt; 
/*<BR>&gt;&gt;&gt; * test for occurences of RFC1918 addresses in<BR>&gt;&gt;&gt; 
Contact<BR>&gt;&gt;&gt; * header field<BR>&gt;&gt;&gt; */<BR>&gt; &amp; gt; &gt; 
#define NAT_UAC_TEST_RCVD 0x02<BR>&gt;&gt;&gt; /*<BR>&gt;&gt;&gt; * test if 
source address of signaling is different<BR>&gt;&gt;&gt; from<BR>&gt;&gt;&gt; * 
address advertised in Via<BR>&gt;&gt;&gt; */<BR>&gt;&gt;&gt; #define 
NAT_UAC_TEST_V_1918 0x04<BR>&gt;&gt;&gt; /*<BR>&gt;&gt;&gt; * test for 
occurences of RFC1918 addresses in SDP<BR>&gt;&gt;&gt; body<BR>&gt;&gt;&gt; 
*/<BR>&gt;&gt;&gt; #define NAT_UAC_TEST_S_1918 0x08<BR>&gt;&gt;&gt; 
/*<BR>&gt;&gt;&gt; * test for occurences of RFC1918 addresses top 
Via<BR>&gt;&gt;&gt; */<BR>&gt;&gt;&gt; route{<BR>&gt;&gt;&gt; # initial sanity 
checks -- messages with<BR>&gt;&gt;&gt; # max_forwards==0, or excessively long 
requests<BR>&gt;&gt;&gt; if (!mf_process_maxfwd_header("10")) {<BR>&gt;&gt;&gt; 
sl_send_reply("483","Too Many Hops");<BR>&gt;&gt;&gt; break;<BR>&gt;&gt;&gt; 
};<BR>&gt;&gt;&gt; if (msg:len &gt;= max_len ) {<BR>&gt;&gt;&gt; 
sl_send_reply("513", "Message too big");<BR>&gt;&gt;&gt; break;<BR>&gt;&gt;&gt; 
};<BR>&gt;&gt;&gt; if (nat_uac_test("3")) {<BR>&gt;&gt;&gt; 
append_hf("Alex-hint: NAThelper\r\n");<BR>&gt; &amp;g t; &gt; 
fix_nated_contact(); # Rewrite contact with source<BR>&gt;&gt;&gt; IP of 
signalling<BR>&gt;&gt;&gt; if (method == "REGISTER" || !<BR>&gt;&gt;&gt; 
search("^Record-Route:")) {<BR>&gt;&gt;&gt; #if (www_authorize("iptel.org", 
"subscriber")) {<BR>&gt;&gt;&gt; # www_challenge("iptel.org", 
"1");<BR>&gt;&gt;&gt; # };<BR>&gt;&gt;&gt; if (method == "INVITE") 
{<BR>&gt;&gt;&gt; append_hf("Alex-hint: SDP rewritten\r\n");<BR>&gt;&gt;&gt; 
fix_nated_sdp("3"); # Add direction=active to SDP<BR>&gt;&gt;&gt; 
};<BR>&gt;&gt;&gt; log("LOG: Someone trying to register from 
private<BR>&gt;&gt;&gt; IP, rewriting\n");<BR>&gt;&gt;&gt; force_rport(); # Add 
rport parameter to<BR>&gt;&gt;&gt; topmost Via<BR>&gt;&gt;&gt; setflag(6); # 
Mark as NATed<BR>&gt;&gt;&gt; };<BR>&gt;&gt;&gt; };<BR>&gt;&gt;&gt; 
<BR>&gt;&gt;&gt; if (!method=="REGISTER") record_route();<BR>&gt;&gt;&gt; # 
subsequent messages withing a dialog should take<BR>&gt;&gt;&gt; 
the<BR>&gt;&gt;&gt; # path determined by record-routing<BR>&gt;&gt;&gt; if 
(loose_route()) {<BR>&gt;&gt;&gt; # mark routing logic in 
request<BR>&gt;&gt;&gt; append_hf("P-hint: rr-enforced\r\n");<BR>&gt;&gt;&gt; 
route(1);<BR>&gt;&gt;&gt; break;<BR>&gt;&gt;&gt; };<BR>&gt;&gt;&gt; if 
(!uri==myself) {<BR>&gt;&gt;&gt; # mark routing logic in request<BR>&gt;&gt;&gt; 
append_hf("P-hint: outbound\r\n");<BR>&gt;&gt;&gt; route(1);<BR>&gt;&gt;&gt; 
break;<BR>&gt;&gt;&gt; };<BR>&gt;&gt;&gt; # if the request is for other domain 
use UsrLoc<BR>&gt;&gt;&gt; # (in case, it does not work, use the 
following<BR>&gt;&gt;&gt; command<BR>&gt;&gt;&gt; # with proper names and 
addresses in it)<BR>&gt;&gt;&gt; if (uri==myself) {<BR>&gt;&gt;&gt; if 
(method=="REGISTER") {<BR>&gt;&gt;&gt; save("location");<BR>&gt;&gt;&gt; 
break;<BR>&gt;&gt;&gt; };<BR>&gt;&gt;&gt; lookup("aliases");<BR>&gt;&gt;&gt; if 
(!uri==myself) {<BR>&gt;&gt;&gt; append_hf("P-hint: outbound 
alias\r\n");<BR>&gt;&gt;&gt; route(1);<BR>&gt;&gt;&gt; break;<BR>&gt;&gt;&gt; 
};<BR>&gt;&gt;&gt; # native SIP destinations are handled using 
our<BR>&gt;&gt;&gt; USRLOC DB<BR>&gt;&gt;&gt; if (!lookup("location")) 
{<BR>&gt;&gt;&gt; sl_send_reply("404", "Not Found");<BR>&gt;&gt;&gt; 
break;<BR>&gt;&gt; <BR>&gt; === message truncated ===&gt;<BR>&gt; 
_______________________________________________<BR>&gt;&gt; Serusers mailing 
list<BR>&gt;&gt; serusers@lists.iptel.org<BR>&gt;&gt; 
http://lists.iptel.org/mailman/listinfo/serusers<BR>&gt;&gt; <BR>&gt; <BR>&gt; 
<BR>&gt; <BR>&gt; <BR>&gt; <BR>&gt; <BR>&gt; <BR>&gt; 
___________________________________________________________________________<BR>&gt; 
Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo!<BR>&gt; 
Messenger T幨嶰hargez cette version sur http://fr.messenger.yahoo.com<BR>&gt; 
<BR>&gt; _______________________________________<BR>&gt; 想即時收到新 email 
通知?<BR>&gt; 下載 Yahoo! Messenger http://messenger.yahoo.com.hk<BR>&gt; <BR>&gt; 
<BR>&gt; <BR>&gt; _______________________________________________<BR>&gt; 
Serusers mailing list<BR>&gt; serusers@lists.iptel.org<BR>&gt; <A 
href="http://lists.iptel.org/mailman/listinfo/serusers">http://mail.iptel.org/mailman/listinfo/serusers</A></DIV>
<DIV><FONT face=Arial></FONT>&nbsp;</DIV></BODY></HTML>