FW: [Serusers] Rtpproxy & UDP

Klaus Darilion klaus.mailinglists at pernau.at
Fri Feb 27 14:47:15 CET 2004



Shirley Toh wrote:

> Hi, 
> 
> Thank you for the reply.
> 
> 1. Can I checked on the SIP messages Status == 200 OK,  there is a <Contact:
> <sip:joo at 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.


> 2. 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 at singnet.com.sg  
> 
> Regards, 
> Shirley
> 
> 
>>-----Original Message-----
>>From:	Klaus Darilion [SMTP:klaus.mailinglists at 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 at 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 at 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 at 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 at lists.iptel.org
>>>>>>>>>http://lists.iptel.org/mailman/listinfo/serusers
>>>>>>>
>>>>>>>
>>>>>>>_______________________________________________
>>>>>>>Serusers mailing list
>>>>>>>serusers at lists.iptel.org
>>>>>>>http://lists.iptel.org/mailman/listinfo/serusers
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>>
>>>
> 
> 




More information about the sr-users mailing list