Shirley Toh wrote:
Hi,
Thank you for the reply.
- Can I checked on the SIP messages Status == 200 OK, there is a <Contact:
sip:joo@ip:port> field. May I know on the onreply_route what is the command that is control this field on the IP and Port is have the reply_route like below when my UA is behind the fire-wall: onreply_route[1] { if (isflagset(6) && status=~"2[0-9][0-9]") {
here you should also check for 183 early media responses
fix_nated_contact(); fix_nated_sdp("1");
don't do this, the sdp will be rewritten by force_rtp_proxy!
force_rtp_proxy(); }else{
if the reponse is not 2xx (except183), then there will be no sdp in the response, therefore:
fix_nated_contact(); fix_nated_sdp("3");
fix sdp is not necessary as there are no reposnses with sdp here!
force_rtp_proxy();
the same: no sdp, so this useless!
}
also the fix_nated contact is not necessary, as you have to use record_rout and then contact header field is not used!
but you should use force_rport for clients behind nat, so that the SIP signalling will be forced to symmetrical.
- What is function in ser.cfg is sending the UDP to the Ethereal? As when I
have UA1 calling to UA2, I cannot see any UDP messages on the Ethereal. Please advice what is the command that is doing the RTP or UDP, is it force_rtp_proxy() or t_on_reply("1") or etc. Thanks alot......:)
ethereal is total independent from ser or any application. ethereal simply sniffs all packets on the selected interface!
klaus
p/s: kindly cc to j2xue@singnet.com.sg
Regards, Shirley
-----Original Message----- From: Klaus Darilion [SMTP:klaus.mailinglists@pernau.at] Sent: Thursday, February 26, 2004 10:35 PM To: Shirley Toh; Serusers Subject: Re: FW: [Serusers] Rtpproxy
Search the mailing list archive for configuration samples!
regards, klaus
PS: cc to the mailing list!
Shirley Toh wrote:
Hi ,
How about the force_rtp_proxy? Where should I appropriate apply this command? The current Nat module have no problem going through from
Symmetric
Newtwork to Symmetric Network right? Thank you for your answer it really helps!!! :)
Regards, Shirley
-----Original Message----- From: Klaus Darilion [SMTP:klaus.mailinglists@pernau.at] Sent: Thursday, February 26, 2004 8:18 PM To: Shirley Toh Cc: SER Users (E-mail) Subject: Re: FW: [Serusers] Rtpproxy
start ethereal on the machine with the SIP&RTP proxy. as filter use: UDP Then take a look at the SIP messages. The nathelper module has to rewrite the IP-address and the port in the SDP of the INVITE and the 200
OK message.
klaus
Shirley Toh wrote:
Hi,
thank you for replying....
Yes my UA do support Symmetric. What are the things that I have to take
note
on the messages that whether the messages is properly written? And how
can I
check the IP address and port on the RTP traffic? Please help...is
really
greatly appreciated.
Regards, Shirley
-----Original Message----- From: Klaus Darilion [SMTP:klaus.mailinglists@pernau.at] Sent: Thursday, February 26, 2004 5:56 PM To: Shirley Toh Cc: SER Users (E-mail) Subject: Re: FW: [Serusers] Rtpproxy
You have to provide more information. Which clients (do they support symmetric RTP?). Take a look at SIP messages when they arive at the proxy and when they are forwarded and vrify that the messages are properly rewritten by the nathelper module.
Check if there is any RTP traffic going to the RTPproxy and if it is forwarded to the proper IP address and port.
regards, Klaus
Shirley Toh wrote:
>Hi, > >I am using the code below. When I am dialing through this scenario
--->
>UA1(Symmetric NAT) ----> SER ---> UA2 (Symmetric NAT) >. I hear no audio and I haev no error in my route. Please kindly
advise
is
>there something missing or I need to have extra components. I am
using
CVS
>rel_0.8.12 and latest rtpproxy!!! Help Help!!! > >Regards, >Shirley > > > > > >>-----Original Message----- >>From: Shirley Toh >>Sent: Wednesday, February 25, 2004 6:37 PM >>To: SER Users (E-mail) >>Subject: FW: [Serusers] Rtpproxy >> >>Hi >> >>I have problem calling through UA behind Symmetric network? Please
advice
>>any solution to this problem. Thank you!!! >> >>UA1(Symmetric NAT) ----> SER ---> UA2 (Symmetric NAT) >> >>Regards, >>Shirley >>-----Original Message----- >>From: Shirley Toh >>Sent: Tuesday, February 24, 2004 9:09 PM >>To: 'Jan Janak' >>Subject: RE: [Serusers] Rtpproxy >> >>Hi, >> >>Thank you for your answer. >> >>Can I check the latest module in CVS does it support to call from >>Symmetric network to Symmetric network?Please help. If can what
sgould
I
>>take note in the commands? >> >>Regards, >>Shirley >> >>-----Original Message----- >>From: Jan Janak [SMTP:jan@iptel.org] >>Sent: Tuesday, February 24, 2004 8:35 PM >>To: Shirley Toh >>Cc: SER Users (E-mail) >>Subject: Re: [Serusers] Rtpproxy >> >>You are calling force_rtp_proxy or fix_nated_sdp on a message with
empty
>>body. Make sure that you call the functions from the script only
when
>>the message contains SDP body (usually INVITE and 200 OK). >> >>Jan. >> >>On 24-02 11:36, Shirley Toh wrote: >> >> >> >> >>>Hi, >>> >>>Can anyone help me!! I am having this error on my log file when I
try
to
>>>make calls. I have attached my ser.cfg. Please help!! Thanks!! >>> >>>Feb 24 11:29:54 sipserver2 /usr/local/sbin/ser[20404]: ERROR: >>>send_rtpp_command: can't read reply from a RTP proxy >>>Feb 24 11:29:54 sipserver2 /usr/local/sbin/ser[20413]: ERROR: >> >>extract_body: >> >> >> >> >>>message body has lenght zero >>>Feb 24 11:29:54 sipserver2 /usr/local/sbin/ser[20413]: ERROR: >>>force_rtp_proxy: can't extract body from the message >>>Feb 24 11:29:54 sipserver2 /usr/local/sbin/ser[20413]: ERROR:
on_reply
>>>processing failed >>>Feb 24 11:29:54 sipserver2 /usr/local/sbin/ser[20417]: ERROR: >> >>extract_body: >> >> >> >> >>>message body has lenght zero >>>Feb 24 11:29:54 sipserver2 /usr/local/sbin/ser[20417]: ERROR: >>>force_rtp_proxy: can't extract body from the message >>>Feb 24 11:29:54 sipserver2 /usr/local/sbin/ser[20417]: ERROR:
on_reply
>>>processing failed >>>Feb 24 11:30:24 sipserver2 /usr/local/sbin/ser[20417]: ERROR: >> >>extract_body: >> >> >> >> >>>message body has lenght zero >>>Feb 24 11:30:24 sipserver2 /usr/local/sbin/ser[20417]: ERROR: >>>force_rtp_proxy: can't extract body from the message >>>Feb 24 11:30:24 sipserver2 /usr/local/sbin/ser[20417]: ERROR:
on_reply
>>>processing failed >>>Feb 24 11:30:24 sipserver2 /usr/local/sbin/ser[20407]: ERROR: >> >>extract_body: >> >> >> >> >>>message body has lenght zero >>>Feb 24 11:30:24 sipserver2 /usr/local/sbin/ser[20407]: ERROR: >> >>fix_nated_sdp: >> >> >> >> >>>cannot extract body from msg! >>>Feb 24 11:30:24 sipserver2 /usr/local/sbin/ser[20407]: ERROR: >> >>extract_body: >> >> >> >> >>>message body has lenght zero >>>Feb 24 11:30:24 sipserver2 /usr/local/sbin/ser[20407]: ERROR: >>>force_rtp_proxy: can't extract body from the message >>>Feb 24 11:30:24 sipserver2 /usr/local/sbin/ser[20407]: ERROR:
on_reply
>>>processing failed >>> >>><<ser.cfg.txt>> >>> >>>regards, >>>shirley >>> >> >>># >>># $Id: ser.cfg,v 1.21.4.1 2003/11/10 15:35:15 andrei Exp $ >>># >>># simple quick-start config script >>># >>> >>># ----------- global configuration parameters
>>>#debug=3 # debug level (cmd line: -dddddddddd) >>>#fork=yes >>>#log_stderror=no # (cmd line: -E) >>> >>>/* Uncomment these lines to enter debugging mode >>>debug=7 >>>fork=no >>>log_stderror=yes >>>*/ >>> >>>check_via=no # (cmd. line: -v) >>>dns=no # (cmd. line: -r) >>>rev_dns=no # (cmd. line: -R) >>>#port=5060 >>>#children=4 >>>fifo="/tmp/ser_fifo" >>>mhomed=yes >>> >>># ------------------ module loading
>>># Uncomment this if you want to use SQL database >>>loadmodule "/usr/local/lib/ser/modules/mysql.so" >>> >>>loadmodule "/usr/local/lib/ser/modules/nathelper.so" >>>loadmodule "/usr/local/lib/ser/modules/textops.so" >>>loadmodule "/usr/local/lib/ser/modules/sl.so" >>>loadmodule "/usr/local/lib/ser/modules/tm.so" >>>loadmodule "/usr/local/lib/ser/modules/rr.so" >>>loadmodule "/usr/local/lib/ser/modules/maxfwd.so" >>>loadmodule "/usr/local/lib/ser/modules/usrloc.so" >>>loadmodule "/usr/local/lib/ser/modules/registrar.so" >>> >>># Uncomment this if you want digest authentication >>># mysql.so must be loaded ! >>>loadmodule "/usr/local/lib/ser/modules/auth.so" >>>loadmodule "/usr/local/lib/ser/modules/auth_db.so" >>> >>># ----------------- setting module-specific parameters
>>># -- usrloc params -- >>> >>>#modparam("usrloc", "db_mode", 0) >>> >>># Uncomment this if you want to use SQL database >>># for persistent storage and comment the previous line >>>modparam("usrloc", "db_mode", 2) >>> >>># -- auth params -- >>># Uncomment if you are using auth module >>># >>>modparam("auth_db", "calculate_ha1", yes) >>># >>># If you set "calculate_ha1" parameter to yes (which true in this >> >>config), >> >> >> >> >>># uncomment also the following parameter) >>># >>>modparam("auth_db", "password_column", "password") >>> >>># -- rr params -- >>># add value to ;lr param to make some broken UAs happy >>>modparam("rr", "enable_full_lr", 1) >>> >>># -- Nathelper -- >>>modparam("registrar" , "nat_flag", 6) >>>modparam("nathelper", "natping_interval", 60) >>>modparam("nathelper", "ping_nated_only", 1) >>> >>># ------------------------- request routing logic
>>># main routing logic >>> >>>route{ >>> >>> # initial sanity checks -- messages with >>> # max_forwards==0, or excessively long requests >>> if (!mf_process_maxfwd_header("10")) { >>> sl_send_reply("483","Too Many Hops"); >>> break; >>> >>> }; >>> if ( msg:len > max_len ) { >>> sl_send_reply("513", "Message too big"); >>> break; >>> }; >>> >>> >>> #!! Nathelper >>> if (nat_uac_test("3")){ >>> if (method == "REGISTER"){ >>> log("LOG:Someone trying to register from
private
>>IP, rewriting\n"); >> >> >> >> >>> fix_nated_contact(); # Rewtite contact with >> >>source IP of signalling >> >> >> >> >>> if(method== "INVITE"){ >>> fix_nated_sdp("1"); # Add >> >>direction-active to SDP >> >> >> >> >>> }; >>> force_rport(); >>> setflag(6); >>> }; >>> }; >>> >>> # we record-route all messages -- to make sure that >>> # subsequent messages will go through our proxy; that's >>> # particularly good if upstream and downstream entities >>> # use different transport protocol >>> record_route(); >>> # loose-route processing >>> if (loose_route()) { >>> t_relay(); >>> break; >>> }; >>> >>> # if the request is for other domain use UsrLoc >>> # (in case, it does not work, use the following command >>> # with proper names and addresses in it) >>> if (uri==myself) { >>> >>> if (method=="REGISTER") { >>> save("location"); >>> break; >>> }; >>> >>> # native SIP destinations are handled using our
USRLOC
>>DB >> >> >> >> >>> if (!lookup("location")) { >>> sl_send_reply("", "Connecting"); >>> break; >>> }; >>> }; >>> if (isflagset(6)){ >>> force_rtp_proxy(); >>> }; >>> t_on_reply("1"); >>> >>> # forward to current uri now; use stateful forwarding; that >>> # works reliably even if we forward from TCP to UDP >>> if (!t_relay()) { >>> sl_reply_error(); >>> break; >>> }; >>> >>>} >>> >>># all incoming replies for t_onrepli-ed transactions enter here >>>onreply_route[1] { >>> if (isflagset(6) && status=~"(183)|2[0-9][0-9]") { >>> fix_nated_contact(); >>> fix_nated_sdp("1"); >>> force_rtp_proxy(); >>> }else if(nat_uac_test("1")){ >>> fix_nated_contact(); >>> force_rtp_proxy(); >>> }; >>> >>>} >> >>>_______________________________________________ >>>Serusers mailing list >>>serusers@lists.iptel.org >>>http://lists.iptel.org/mailman/listinfo/serusers > > >_______________________________________________ >Serusers mailing list >serusers@lists.iptel.org >http://lists.iptel.org/mailman/listinfo/serusers > >