[Serusers] SER + NAT + RTPPROXY

robert at polylink.net robert at polylink.net
Mon Aug 30 04:12:21 CEST 2004


Hi all

    I am using SER+NAT+rtpproxy as proxy servers. I have serched
seruser mailing list for solution and I didn't find any. Please help
me in below senerio.
Elements
-----------------
1)   UA 'PUBLIC'           ( in public internet with IP 
211.95.122.XXX.XXX)

2)   SIP SER with NAT helper(CVS version)  + rtp proxy  on same
machine(http://www.portaone.com/~sobomax/rtpproxy.tar ) with one
external  public IP and internal privite IP)

3)  UA 'PRIVATE' - in side private domain with 192.17.1.XXX)  ip address.

4)  UA 'PUBLIC' not register to ser. UA 'PRIVATE' have registerd to ser.

 I am trying to accomplish to make call from UA 'PRIVATE' to UA 'PUBLIC'. 
i'e
 calls from private IP to public IP using SER as my signalling proxy
 and rtpproxy as proxy for RTP.

 SER is succussfully etablishing connection between two user agents and
 but it is failed to forward rtp between two UAs. No voice. Request as 
'INVITE'
 ser proxy change SDP's ip and port, but reply as stats 200 and 183 did 
not change
 SDP's ip and report, so UA 'PUBLIC' can hear UA 'PRIVATE', but UA 
'PRIVATE' can't
 hear from UA 'PUBLIC'.

 Is it MUST that UA 'PUBLIC' register to ser?

 This is my ser.cfg:

# main routing logic

route
{
        /*================================ ROUTINE CHECKS 
=============================================*/
        # filter too old messages
        if (!mf_process_maxfwd_header("10")) 
        {
                log("LOG: Too many hops\n");
                sl_send_reply("483","Too Many Hops");
                break;
        }
 
        if (msg:len > max_len) 
        {
                sl_send_reply("513", "Message too big");
                break;
        }

        # compulsory processing of Route header fields and adding RR
        loose_route();

        # These devices need rtp proxy
        #if (search("User-Agent:")) 
        #{
                setflag(2); # remember this needs rtp proxy
                force_rport();
                # fix_nated_contact();
        #}

        # registration (uses rewritten contacts)
        if (method=="REGISTER") 
        {
                if(!radius_proxy_authorize("REGISTER")) 
                {
                        sl_send_reply("401", "Forbidden");
                        break;
                }
 
                save("location");
                break;
        }

        # Invite authentication
        if (method=="INVITE") 
        {
                record_route();
                if (isflagset(2))
                {
                        if(!radius_proxy_authorize("INVITE")) 
                        {
                                sl_send_reply("401", "Forbidden");
                                break;
                        }
                        force_rtp_proxy();
                }
 
                /* set up reply processing */
                t_on_reply("1");
        }

        # Forward
        if(uri=~"^sip:5[0-9][0-9]*@")
        {
                rewritehost("211.95.122.158");
                  prefix("66123");
                forward(211.95.122.158, 5060);
                break;
        }

        # Look up the callee
        if (method == "INVITE" || method == "CANCEL") 
        {
                if (!lookup("location")) 
                {
                        sl_send_reply("404", "Not Found");
                        break;
                }
        }
 
        # forward the request statefuly now; (we need *stateful* 
forwarding,
        # because the stateful mode correlates requests with replies and
        # drops retranmissions; otherwise, we would have to report on
        # every single message received)
        setflag(1); # set for accounting (the same value as in log_flag!)
        if(!t_relay()) 
        {
                sl_reply_error();
                break;
        }
}

# all incoming replies for t_onrepli-ed transactions enter here
onreply_route[1] 
{
        if (status=~"(183)|2[0-9][0-9]") 
        {
                force_rtp_proxy();
        }
}



 Thanks for help.

 Regards,

 robert
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20040830/a3108aad/attachment.htm>


More information about the sr-users mailing list