FW: [Serusers] Rtpproxy

Klaus Darilion klaus.mailinglists at pernau.at
Thu Feb 26 10:56:18 CET 2004


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