RTPProxy Problem

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

RTPProxy Problem

Ignacio Gonzalez
hello everybody, i'm having a problem with rtpproxy, i try to make a call and i get this message in the log file of opensips

force_rtp_proxy_body: no available proxies


i use this command to start rtpproxy:

./rtpproxy -l domain.org/192.168.1.220 -s udp:localhost:12221 -u user -m 35000 -M 35200

Can anybody help me?


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: RTPProxy Problem

Spady#7
Hi, take a look at my post. Probably you will find a solution for your issue.

http://opensips-open-sip-server.1449251.n2.nabble.com/Rtpproxy-connection-td7581935.html
Reply | Threaded
Open this post in threaded view
|

Re: RTPProxy Problem

qasimakhan@gmail.com
Or you can follow this tutorial and mend it to your needs,

http://saevolgo.blogspot.com/2012/03/making-rtpproxy-work.html

Regards,
Qasim


On Mon, Nov 12, 2012 at 1:40 PM, spady <[hidden email]> wrote:
Hi, take a look at my post. Probably you will find a solution for your issue.

http://opensips-open-sip-server.1449251.n2.nabble.com/Rtpproxy-connection-td7581935.html



--
View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/RTPProxy-Problem-tp7582930p7582943.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: RTPProxy Problem

Ignacio Gonzalez
Hello everybody, i red the post and didn't work.

Here is my command line to run rtpproxy and my configuration file of OPENSIPS, if some one could help me.

./rtpproxy -l PUBLICIP/192.168.1.220 -s udp:192.168.1.220:12333 -n tcp:192.168.1.220:12333 -u user -m 35000 -M 35200



#
# $Id: opensips_residential.m4 9042 2012-05-17 13:57:10Z vladut-paiu $
#
# OpenSIPS residential configuration script
#     by OpenSIPS Solutions <[hidden email]>
#
# This script was generated via "make menuconfig", from
#   the "Residential" scenario.
# You can enable / disable more features / functionalities by
#   re-generating the scenario with different options.#
#
# Please refer to the Core CookBook at:
#      http://www.opensips.org/Resources/DocsCookbooks
# for a explanation of possible statements, functions and parameters.
#


####### Global Parameters #########

debug=3
log_stderror=no
log_facility=LOG_LOCAL1



fork=yes
children=4

/* uncomment the following lines to enable debugging */
#debug=6
#fork=no
#log_stderror=yes

/* uncomment the next line to enable the auto temporary blacklisting of
   not available destinations (default disabled) */
#disable_dns_blacklist=no

/* uncomment the next line to enable IPv6 lookup after IPv4 dns
   lookup failures (default disabled) */
#dns_try_ipv6=yes

/* comment the next line to enable the auto discovery of local aliases
   based on revers DNS on IPs */
auto_aliases=no

/* It can be an IP address or string and represents the address advertised
   in Via header and other destination lumps (e.g RR header). If empty or not
   set (default value) the socket address from where the request will be sent is used. */
advertised_address="public_ip"



listen=udp:192.168.1.220:5062 
disable_tcp=no
listen=tcp:192.168.1.220:5062 

disable_tls=yes

#port=5062
####### Modules Section ########

#set module path
mpath="/home/syrium/opensips_proxy/lib/opensips/modules/"

#### SIGNALING module
loadmodule "signaling.so"

#### StateLess module
loadmodule "sl.so"

#### Transaction Module
loadmodule "tm.so"
modparam("tm", "fr_timer", 5)
modparam("tm", "fr_inv_timer", 30)
modparam("tm", "restart_fr_on_each_reply", 0)
modparam("tm", "onreply_avp_mode", 1)

#### Record Route Module
loadmodule "rr.so"
/* do not append from tag to the RR (no need for this script) */
modparam("rr", "append_fromtag", 0)

#### MAX ForWarD module
loadmodule "maxfwd.so"

#### SIP MSG OPerationS module
loadmodule "sipmsgops.so"

#### FIFO Management Interface
loadmodule "mi_fifo.so"
modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")
modparam("mi_fifo", "fifo_mode", 0666)


#### URI module
loadmodule "uri.so"
modparam("uri", "use_uri_table", 0)
modparam("uri", "db_url",
        "mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME




#### MYSQL module
loadmodule "db_mysql.so"

#### USeR LOCation module
loadmodule "usrloc.so"
modparam("usrloc", "nat_bflag", 10)
modparam("usrloc", "db_mode",   2)
modparam("usrloc", "db_url",
    "mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME


#### REGISTRAR module
loadmodule "registrar.so"
modparam("registrar", "tcp_persistent_flag", 7)
modparam("registrar", "received_avp", "$avp(received_nh)")
/* uncomment the next line not to allow more than 10 contacts per AOR */
#modparam("registrar", "max_contacts", 10)

#### ACCounting module
loadmodule "acc.so"
/* what special events should be accounted ? */
modparam("acc", "early_media", 0)
modparam("acc", "report_cancels", 0)
/* by default we do not adjust the direct of the sequential requests.
   if you enable this parameter, be sure the enable "append_fromtag"
   in "rr" module */
modparam("acc", "detect_direction", 0)
modparam("acc", "failed_transaction_flag", 3)
/* account triggers (flags) */
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 2)
modparam("acc", "db_url",
    "mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME


#### AUTHentication modules
loadmodule "auth.so"
loadmodule "auth_db.so"
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
modparam("auth_db", "db_url",
    "mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME
modparam("auth_db", "load_credentials", "")




#### DOMAIN module
loadmodule "domain.so"
modparam("domain", "db_url",
    "mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME
modparam("domain", "db_mode", 1)   # Use caching
modparam("auth_db|usrloc|uri", "use_domain", 1)




#### DIALOG module
loadmodule "dialog.so"
modparam("dialog", "dlg_match_mode", 1)
modparam("dialog", "default_timeout", 21600)  # 6 hours timeout
modparam("dialog", "db_mode", 2)
modparam("dialog", "db_url",
    "mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME


####  NAT modules
loadmodule "nathelper.so"
modparam("nathelper", "natping_interval", 10)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "received_avp", "$avp(received_nh)")

loadmodule "nat_traversal.so"


loadmodule "rtpproxy.so"
modparam("rtpproxy", "rtpproxy_sock", "1 == udp:192.168.1.220:12333")
modparam("rtpproxy", "rtpp_notify_socket","tcp:192.168.1.220:12333")
modparam("rtpproxy", "rtpproxy_autobridge", 1)






####### Routing Logic ########

# main request routing logic

route{
    force_rport();
    if (nat_uac_test("23")) {
        if (is_method("REGISTER")) {
            fix_nated_register();
            setbflag(10);
        } else {
            fix_nated_contact();
            setflag(10);
        }
    }
    

    if (!mf_process_maxfwd_header("10")) {
        sl_send_reply("483","Too Many Hops");
        exit;
    }

    if (has_totag()) {
        # sequential request withing a dialog should
        # take the path determined by record-routing
        if (loose_route()) {
           
            # validate the sequential request against dialog
            if ( $DLG_status!=NULL && !validate_dialog() ) {
                xlog("In-Dialog $rm from $si (callid=$ci) is not valid according to dialog\n");
                ## exit;
            }
           
            if (is_method("BYE")) {
                setflag(1); # do accounting ...
                setflag(3); # ... even if the transaction fails
            } else if (is_method("INVITE")) {
                # even if in most of the cases is useless, do RR for
                # re-INVITEs alos, as some buggy clients do change route set
                # during the dialog.
                record_route();
            }

            if (check_route_param("nat=yes"))
                setflag(10);

            # route it out to whatever destination was set by loose_route()
            # in $du (destination URI).
            route(1);
        } else {
           
            if ( is_method("ACK") ) {
                if ( t_check_trans() ) {
                    # non loose-route, but stateful ACK; must be an ACK after
                    # a 487 or e.g. 404 from upstream server
                    t_relay();
                    exit;
                } else {
                    # ACK without matching transaction ->
                    # ignore and discard
                    exit;
                }
            }
            sl_send_reply("404","Not here");
        }
        exit;
    }

    # CANCEL processing
    if (is_method("CANCEL"))
    {
        if (t_check_trans())
            t_relay();
        exit;
    }

    t_check_trans();

    if ( !(is_method("REGISTER")  ) ) {
       
        if (is_from_local())
        {
           
            # authenticate if from local subscriber
            # authenticate all initial non-REGISTER request that pretend to be
            # generated by local subscriber (domain from FROM URI is local)
            if (!proxy_authorize("", "subscriber")) {
                proxy_challenge("", "0");
                exit;
            }
            if (!db_check_from()) {
                sl_send_reply("403","Forbidden auth ID");
                exit;
            }
       
            consume_credentials();
            # caller authenticated
           
        } else {
            # if caller is not local, then called number must be local
           
            if (!is_uri_host_local()) {
                send_reply("403","Rely forbidden");
                exit;
            }
        }

    }

    # preloaded route checking
    if (loose_route()) {
        xlog("L_ERR",
        "Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");
        if (!is_method("ACK"))
            sl_send_reply("403","Preload Route denied");
        exit;
    }

    # record routing
    if (!is_method("REGISTER|MESSAGE"))
        record_route();

    # account only INVITEs
    if (is_method("INVITE")) {
       
        # create dialog with timeout
        if ( !create_dialog("B") ) {
            send_reply("500","Internal Server Error");
            exit;
        }
       
        setflag(1); # do accounting
    }

   
    if (!is_uri_host_local()) {
        append_hf("P-hint: outbound\r\n");
       
        route(1);
    }

    # requests for my domain
   
    if (is_method("PUBLISH|SUBSCRIBE"))
    {
        sl_send_reply("503", "Service Unavailable");
        exit;
    }

    if (is_method("REGISTER"))
    {
       
        # authenticate the REGISTER requests
        if (!www_authorize("", "subscriber"))
        {
            www_challenge("", "0");
            exit;
        }
       
        if (!db_check_to())
        {
            sl_send_reply("403","Forbidden auth ID");
            exit;
        }

        if ( proto==TCP ||  0 ) setflag(7);

        if (client_nat_test("3")) {
                nat_keepalive();
            }

        if (!save("location"))
            sl_reply_error();

        exit;
    }

    if ($rU==NULL) {
        # request with no Username in RURI
        sl_send_reply("484","Address Incomplete");
        exit;
    }

   

   

     

    # do lookup with method filtering
    if (!lookup("location","m")) {
        if (!db_does_uri_exist()) {
            send_reply("420","Bad Extension");
            exit;
        }
       
        t_newtran();
        t_reply("404", "Not Found");
        exit;
    }

    if (isbflagset(10)) setflag(10);

    # when routing via usrloc, log the missed calls also
    setflag(2);
    route(1);
}


route[1] {
    # for INVITEs enable some additional helper routes
    if (is_method("INVITE")) {
       
        if (isflagset(10)) {
            set_rtp_proxy_set("1");
            rtpproxy_offer("ro");
        }

        t_on_branch("2");
        t_on_reply("2");
        t_on_failure("1");

        if (client_nat_test("3")) {
                        nat_keepalive();
                }

    }

    if (isflagset(10)) {
        add_rr_param(";nat=yes");
        }

    if (!t_relay()) {
        send_reply("500","Internal Error");
    };
    exit;
}




branch_route[2] {
    xlog("new branch at $ru\n");
}


#onreply_route[1]{
#        xlog("reply route 1: sequential requests ($rs $rr)\n");
#        if ( src_ip != onebox_asterisk1_ip && src_ip != onebox_asterisk2_ip ){
#           if ( nat_uac_test( "31") ) {
#             fix_nated_contact();
#             force_rport();
#             if( has_body( "application/sdp" ) ) {
#               fix_nated_sdp( "3" );
#             }
#           }
#        }
#}


onreply_route[2] {
    if (nat_uac_test("1"))
        fix_nated_contact();
    if ( isflagset(10) ){
        set_rtp_proxy_set("1");
        rtpproxy_answer("ro");
        }
    xlog("incoming reply\n");
}


failure_route[1] {
    if (t_was_cancelled()) {
        exit;
    }

    # uncomment the following lines if you want to block client
    # redirect based on 3xx replies.
    ##if (t_check_status("3[0-9][0-9]")) {
    ##t_reply("404","Not found");
    ##    exit;
    ##}

   
}



local_route {
    if (is_method("BYE") && $DLG_dir=="UPSTREAM") {
       
        acc_db_request("200 Dialog Timeout", "acc");
       
    }
}



2012/11/12 [hidden email] <[hidden email]>
Or you can follow this tutorial and mend it to your needs,

http://saevolgo.blogspot.com/2012/03/making-rtpproxy-work.html

Regards,
Qasim



On Mon, Nov 12, 2012 at 1:40 PM, spady <[hidden email]> wrote:
Hi, take a look at my post. Probably you will find a solution for your issue.

http://opensips-open-sip-server.1449251.n2.nabble.com/Rtpproxy-connection-td7581935.html



--
View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/RTPProxy-Problem-tp7582930p7582943.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users



_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: RTPProxy Problem

Spady#7
Please, post entire opensips log ( set debug to 6 ).

Why are you using same port for sock and notify_sock ??? Have you tried with different ports?

Bye
Reply | Threaded
Open this post in threaded view
|

Re: RTPProxy Problem

Ignacio Gonzalez
Hello, I change the command line to run rtpproxy and change my configuration file:

./rtpproxy -l timewarnercable.dyndns.org -s udp:192.168.1.220:12333 -n tcp:192.168.1.220:12333 -u syrium -m 35000 -M 35200

rtpproxy_offer("ro" , "timewarnercable.dyndns.org");

And now the SDP message looks like this:

v=0
o=- 0 0 IN IP4 PUBLICIP
s=-
c=IN IP4 PUBLICIP
t=0 0
m=audio 35134 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv
a=nortpproxy:yes

But there is no audio, and I don't know what is the meaning of the a=nortpproxy:yes


Thanks for your help.




2012/11/12 Ignacio Gonzalez <[hidden email]>
I use the same port but tcp because in the post the answer is that. I Attach the debug file





2012/11/12 spady <[hidden email]>
Please, post entire opensips log ( set debug to 6 ).

Why are you using same port for sock and notify_sock ??? Have you tried with
different ports?

Bye



--
View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/RTPProxy-Problem-tp7582930p7582974.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users



_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: RTPProxy Problem

Ignacio Gonzalez
I change the attribute using adding this to the opensips configuration file

modparam("rtpproxy", "nortpproxy_str", "a=sdpmangled:yes\r\n")


a=nortpproxy:yes


But there is no audio, i check the traffic using wireshark and i see that a lot of packets are sent to another port not the one that i send in the first message, example:

First SDP

v=0
o=- 465641 0 IN IP4 10.168.123.201
s=-
c=IN IP4 10.168.123.201
t=0 0
m=audio 11670 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv



Changed by opensips and rtpproxy to look like


v=0
o=- 465641 0 IN IP4 IP_PUBLIC
s=-
c=IN IP4 IP_PUBLIC
t=0 0
m=audio 35000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv


And packets are being recived on the udp:10.168.123.201:45708


Thanks for your help



2012/11/13 Ignacio Gonzalez <[hidden email]>
Hello, I change the command line to run rtpproxy and change my configuration file:

./rtpproxy -l timewarnercable.dyndns.org -s udp:192.168.1.220:12333 -n tcp:192.168.1.220:12333 -u syrium -m 35000 -M 35200

rtpproxy_offer("ro" , "timewarnercable.dyndns.org");

And now the SDP message looks like this:

v=0
o=- 0 0 IN IP4 PUBLICIP
s=-
c=IN IP4 PUBLICIP
t=0 0
m=audio 35134 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv
a=nortpproxy:yes

But there is no audio, and I don't know what is the meaning of the a=nortpproxy:yes


Thanks for your help.





2012/11/12 Ignacio Gonzalez <[hidden email]>
I use the same port but tcp because in the post the answer is that. I Attach the debug file





2012/11/12 spady <[hidden email]>
Please, post entire opensips log ( set debug to 6 ).

Why are you using same port for sock and notify_sock ??? Have you tried with
different ports?

Bye



--
View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/RTPProxy-Problem-tp7582930p7582974.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: RTPProxy Problem

Razvan Crainea-3
Hi, Ignacio!

The ports you have listed in the SDP snippet belong to a single rtp stream - Callee-RTPProxy-Caller. You should also check the ports in the 200OK.
The "nortpproxy_str" parameter you are specifying is used by RTPProxy to determine if the SDP has to be changed, or somebody else already changed in the path.
I noticed that you call rtpproxy_offer() function with two parameters:
1. "ro" - if the SDP has a private IP, you shouldn't use the "r" flag. This flag is used to specify that RTPProxy should accept packages only from that IP, whereas in your case he will receive the packets from a public IP.
2. "domain" - you shouldn't use this parameter unless you really know what you are doing. This overwrites the domain specified by RTPProxy, which is not always such a good idea.

I hope these remarks will help you fix your problem.

Regards,
Razvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
On 11/14/2012 01:11 AM, Ignacio Gonzalez wrote:
I change the attribute using adding this to the opensips configuration file

modparam("rtpproxy", "nortpproxy_str", "a=sdpmangled:yes\r\n")


a=nortpproxy:yes


But there is no audio, i check the traffic using wireshark and i see that a lot of packets are sent to another port not the one that i send in the first message, example:

First SDP

v=0
o=- 465641 0 IN IP4 10.168.123.201
s=-
c=IN IP4 10.168.123.201
t=0 0
m=audio 11670 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv



Changed by opensips and rtpproxy to look like


v=0
o=- 465641 0 IN IP4 IP_PUBLIC
s=-
c=IN IP4 IP_PUBLIC
t=0 0
m=audio 35000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv


And packets are being recived on the udp:10.168.123.201:45708


Thanks for your help



2012/11/13 Ignacio Gonzalez <[hidden email]>
Hello, I change the command line to run rtpproxy and change my configuration file:

./rtpproxy -l timewarnercable.dyndns.org -s udp:192.168.1.220:12333 -n tcp:192.168.1.220:12333 -u syrium -m 35000 -M 35200

rtpproxy_offer("ro" , "timewarnercable.dyndns.org");

And now the SDP message looks like this:

v=0
o=- 0 0 IN IP4 PUBLICIP
s=-
c=IN IP4 PUBLICIP
t=0 0
m=audio 35134 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv
a=nortpproxy:yes

But there is no audio, and I don't know what is the meaning of the a=nortpproxy:yes


Thanks for your help.





2012/11/12 Ignacio Gonzalez <[hidden email]>
I use the same port but tcp because in the post the answer is that. I Attach the debug file





2012/11/12 spady <[hidden email]>
Please, post entire opensips log ( set debug to 6 ).

Why are you using same port for sock and notify_sock ??? Have you tried with
different ports?

Bye



--
View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/RTPProxy-Problem-tp7582930p7582974.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users





_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: RTPProxy Problem

Ignacio Gonzalez
Ok i will check the flags, I set the domain parameter of rtpproxy_offer to PUBLIC_IP, i create the rules in my router to bind the ports 35000 to 35200 of the public_ip to the ports 35000 to 35200 in the PRIVATE_IP of rtpproxy 192.168.1.220, I'm not sure if this is correct.

If i don't put the domain parameter in the rtpproxy_offer the SDP message contains the private ip of the RTPPROXY (192.168.1.220) and my clients are outside this nat.

Thanks


2012/11/14 Răzvan Crainea <[hidden email]>
Hi, Ignacio!

The ports you have listed in the SDP snippet belong to a single rtp stream - Callee-RTPProxy-Caller. You should also check the ports in the 200OK.
The "nortpproxy_str" parameter you are specifying is used by RTPProxy to determine if the SDP has to be changed, or somebody else already changed in the path.
I noticed that you call rtpproxy_offer() function with two parameters:
1. "ro" - if the SDP has a private IP, you shouldn't use the "r" flag. This flag is used to specify that RTPProxy should accept packages only from that IP, whereas in your case he will receive the packets from a public IP.
2. "domain" - you shouldn't use this parameter unless you really know what you are doing. This overwrites the domain specified by RTPProxy, which is not always such a good idea.

I hope these remarks will help you fix your problem.

Regards,
Razvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
On 11/14/2012 01:11 AM, Ignacio Gonzalez wrote:
I change the attribute using adding this to the opensips configuration file

modparam("rtpproxy", "nortpproxy_str", "a=sdpmangled:yes\r\n")


a=nortpproxy:yes


But there is no audio, i check the traffic using wireshark and i see that a lot of packets are sent to another port not the one that i send in the first message, example:

First SDP

v=0
o=- 465641 0 IN IP4 10.168.123.201
s=-
c=IN IP4 10.168.123.201
t=0 0
m=audio 11670 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv



Changed by opensips and rtpproxy to look like


v=0
o=- 465641 0 IN IP4 IP_PUBLIC
s=-
c=IN IP4 IP_PUBLIC
t=0 0
m=audio 35000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv


And packets are being recived on the udp:10.168.123.201:45708


Thanks for your help



2012/11/13 Ignacio Gonzalez <[hidden email]>
Hello, I change the command line to run rtpproxy and change my configuration file:

./rtpproxy -l timewarnercable.dyndns.org -s udp:192.168.1.220:12333 -n tcp:192.168.1.220:12333 -u syrium -m 35000 -M 35200

rtpproxy_offer("ro" , "timewarnercable.dyndns.org");

And now the SDP message looks like this:

v=0
o=- 0 0 IN IP4 PUBLICIP
s=-
c=IN IP4 PUBLICIP
t=0 0
m=audio 35134 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv
a=nortpproxy:yes

But there is no audio, and I don't know what is the meaning of the a=nortpproxy:yes


Thanks for your help.





2012/11/12 Ignacio Gonzalez <[hidden email]>
I use the same port but tcp because in the post the answer is that. I Attach the debug file





2012/11/12 spady <[hidden email]>
Please, post entire opensips log ( set debug to 6 ).

Why are you using same port for sock and notify_sock ??? Have you tried with
different ports?

Bye



--
View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/RTPProxy-Problem-tp7582930p7582974.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users





_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users



_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: RTPProxy Problem

Razvan Crainea-3
Hi, Ignacio!

So you are trying to use RTPProxy in bridge mode (between a private and a public network). This means that for INVITE you should have a public IP, and for 200OK a private IP (or the other way around, depending on your scenario). You have three possible solutions to achieve this:

1. For INVITE, call rtpproxy_offer("flags", "PUBLIC_IP") and for 200OK, rtpproxy_answer("flags", "PRIVATE_IP") (or reverse the IPs in case of a different scenario). I am not sure this works, as RTPProxy will have no idea about where exactly is your UAC/UAS - therefore it might use wrong sockets to send data (for example, it might use a PRIVATE_IP socket to send RTP to a public ip).
2. Enable the autobridge mode, by setting the 'rtpproxy_autobrige' parameter [1]. I've never used this, so I can't confirm whether it works properly or not.
3. Call the rtpproxy_offer/answer functions with the 'E' or 'I' flags[2]. This is the most reliable method I've used I can confirm it works.

[1] http://www.opensips.org/html/docs/modules/1.8.x/rtpproxy#id250154
[2] http://www.opensips.org/html/docs/modules/1.8.x/rtpproxy#id292744

Regards,
Razvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
On 11/14/2012 05:14 PM, Ignacio Gonzalez wrote:
Ok i will check the flags, I set the domain parameter of rtpproxy_offer to PUBLIC_IP, i create the rules in my router to bind the ports 35000 to 35200 of the public_ip to the ports 35000 to 35200 in the PRIVATE_IP of rtpproxy 192.168.1.220, I'm not sure if this is correct.

If i don't put the domain parameter in the rtpproxy_offer the SDP message contains the private ip of the RTPPROXY (192.168.1.220) and my clients are outside this nat.

Thanks


2012/11/14 Răzvan Crainea <[hidden email]>
Hi, Ignacio!

The ports you have listed in the SDP snippet belong to a single rtp stream - Callee-RTPProxy-Caller. You should also check the ports in the 200OK.
The "nortpproxy_str" parameter you are specifying is used by RTPProxy to determine if the SDP has to be changed, or somebody else already changed in the path.
I noticed that you call rtpproxy_offer() function with two parameters:
1. "ro" - if the SDP has a private IP, you shouldn't use the "r" flag. This flag is used to specify that RTPProxy should accept packages only from that IP, whereas in your case he will receive the packets from a public IP.
2. "domain" - you shouldn't use this parameter unless you really know what you are doing. This overwrites the domain specified by RTPProxy, which is not always such a good idea.

I hope these remarks will help you fix your problem.

Regards,
Razvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
On 11/14/2012 01:11 AM, Ignacio Gonzalez wrote:
I change the attribute using adding this to the opensips configuration file

modparam("rtpproxy", "nortpproxy_str", "a=sdpmangled:yes\r\n")


a=nortpproxy:yes


But there is no audio, i check the traffic using wireshark and i see that a lot of packets are sent to another port not the one that i send in the first message, example:

First SDP

v=0
o=- 465641 0 IN IP4 10.168.123.201
s=-
c=IN IP4 10.168.123.201
t=0 0
m=audio 11670 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv



Changed by opensips and rtpproxy to look like


v=0
o=- 465641 0 IN IP4 IP_PUBLIC
s=-
c=IN IP4 IP_PUBLIC
t=0 0
m=audio 35000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv


And packets are being recived on the udp:10.168.123.201:45708


Thanks for your help



2012/11/13 Ignacio Gonzalez <[hidden email]>
Hello, I change the command line to run rtpproxy and change my configuration file:

./rtpproxy -l timewarnercable.dyndns.org -s udp:192.168.1.220:12333 -n tcp:192.168.1.220:12333 -u syrium -m 35000 -M 35200

rtpproxy_offer("ro" , "timewarnercable.dyndns.org");

And now the SDP message looks like this:

v=0
o=- 0 0 IN IP4 PUBLICIP
s=-
c=IN IP4 PUBLICIP
t=0 0
m=audio 35134 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv
a=nortpproxy:yes

But there is no audio, and I don't know what is the meaning of the a=nortpproxy:yes


Thanks for your help.





2012/11/12 Ignacio Gonzalez <[hidden email]>
I use the same port but tcp because in the post the answer is that. I Attach the debug file





2012/11/12 spady <[hidden email]>
Please, post entire opensips log ( set debug to 6 ).

Why are you using same port for sock and notify_sock ??? Have you tried with
different ports?

Bye



--
View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/RTPProxy-Problem-tp7582930p7582974.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users





_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: RTPProxy Problem

Ignacio Gonzalez
Here is my complete scenario:

OPENSIPS is in a private network inside of a virtual machine 192.168.1.220 and is using port 5062 on udp and tcp
RTPProxy is in a private network inside of the same virtual machine 192.168.1220 and this is the command line I'm using to run rtpproxy:

./rtpproxy -l 192.168.1.220 -s udp:192.168.1.220:12400 -n tcp:192.168.1.220:12333 -u user -m 35000 -M 35200

The host machine is 192.168.1.200

My router create the binding rules for  public_ip:35000 -> 192.168.1.220:35000    to public_ip:35200 -> 192.168.1.220:35200

I'm making a call between to UAs outside of the LAN 192.168.1.0, both clients are outside of the LAN.


I tried to set the flags "i" and "e" but still not working, I also tried setting the autobridged parameter for the rtpproxy module.

Thanks for helping.

P.D. I want to see the debug of rtpproxy but I don't know how to do that, can any one help me with this?







2012/11/14 Răzvan Crainea <[hidden email]>
Hi, Ignacio!

So you are trying to use RTPProxy in bridge mode (between a private and a public network). This means that for INVITE you should have a public IP, and for 200OK a private IP (or the other way around, depending on your scenario). You have three possible solutions to achieve this:

1. For INVITE, call rtpproxy_offer("flags", "PUBLIC_IP") and for 200OK, rtpproxy_answer("flags", "PRIVATE_IP") (or reverse the IPs in case of a different scenario). I am not sure this works, as RTPProxy will have no idea about where exactly is your UAC/UAS - therefore it might use wrong sockets to send data (for example, it might use a PRIVATE_IP socket to send RTP to a public ip).
2. Enable the autobridge mode, by setting the 'rtpproxy_autobrige' parameter [1]. I've never used this, so I can't confirm whether it works properly or not.
3. Call the rtpproxy_offer/answer functions with the 'E' or 'I' flags[2]. This is the most reliable method I've used I can confirm it works.

[1] http://www.opensips.org/html/docs/modules/1.8.x/rtpproxy#id250154
[2] http://www.opensips.org/html/docs/modules/1.8.x/rtpproxy#id292744

Regards,
Razvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
On 11/14/2012 05:14 PM, Ignacio Gonzalez wrote:
Ok i will check the flags, I set the domain parameter of rtpproxy_offer to PUBLIC_IP, i create the rules in my router to bind the ports 35000 to 35200 of the public_ip to the ports 35000 to 35200 in the PRIVATE_IP of rtpproxy 192.168.1.220, I'm not sure if this is correct.

If i don't put the domain parameter in the rtpproxy_offer the SDP message contains the private ip of the RTPPROXY (192.168.1.220) and my clients are outside this nat.

Thanks


2012/11/14 Răzvan Crainea <[hidden email]>
Hi, Ignacio!

The ports you have listed in the SDP snippet belong to a single rtp stream - Callee-RTPProxy-Caller. You should also check the ports in the 200OK.
The "nortpproxy_str" parameter you are specifying is used by RTPProxy to determine if the SDP has to be changed, or somebody else already changed in the path.
I noticed that you call rtpproxy_offer() function with two parameters:
1. "ro" - if the SDP has a private IP, you shouldn't use the "r" flag. This flag is used to specify that RTPProxy should accept packages only from that IP, whereas in your case he will receive the packets from a public IP.
2. "domain" - you shouldn't use this parameter unless you really know what you are doing. This overwrites the domain specified by RTPProxy, which is not always such a good idea.

I hope these remarks will help you fix your problem.

Regards,
Razvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
On 11/14/2012 01:11 AM, Ignacio Gonzalez wrote:
I change the attribute using adding this to the opensips configuration file

modparam("rtpproxy", "nortpproxy_str", "a=sdpmangled:yes\r\n")


a=nortpproxy:yes


But there is no audio, i check the traffic using wireshark and i see that a lot of packets are sent to another port not the one that i send in the first message, example:

First SDP

v=0
o=- 465641 0 IN IP4 10.168.123.201
s=-
c=IN IP4 10.168.123.201
t=0 0
m=audio 11670 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv



Changed by opensips and rtpproxy to look like


v=0
o=- 465641 0 IN IP4 IP_PUBLIC
s=-
c=IN IP4 IP_PUBLIC
t=0 0
m=audio 35000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv


And packets are being recived on the udp:10.168.123.201:45708


Thanks for your help



2012/11/13 Ignacio Gonzalez <[hidden email]>
Hello, I change the command line to run rtpproxy and change my configuration file:

./rtpproxy -l timewarnercable.dyndns.org -s udp:192.168.1.220:12333 -n tcp:192.168.1.220:12333 -u syrium -m 35000 -M 35200

rtpproxy_offer("ro" , "timewarnercable.dyndns.org");

And now the SDP message looks like this:

v=0
o=- 0 0 IN IP4 PUBLICIP
s=-
c=IN IP4 PUBLICIP
t=0 0
m=audio 35134 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv
a=nortpproxy:yes

But there is no audio, and I don't know what is the meaning of the a=nortpproxy:yes


Thanks for your help.





2012/11/12 Ignacio Gonzalez <[hidden email]>
I use the same port but tcp because in the post the answer is that. I Attach the debug file





2012/11/12 spady <[hidden email]>
Please, post entire opensips log ( set debug to 6 ).

Why are you using same port for sock and notify_sock ??? Have you tried with
different ports?

Bye



--
View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/RTPProxy-Problem-tp7582930p7582974.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users





_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users



_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: RTPProxy Problem

Ignacio Gonzalez
I found where the other port is taken from. I use Java, JMF to create the RTP part of the UA, I create two RTPManagers, one to send and one to receive, and I use two different ports, one is for sending and one for receiving, and rtpproxy send me packets to the sending port, I don't know if i have to use only one RTPManager to send and receive rtppackets using the port I send in the SDP message. This has been always a doubt for me.

m=audio 11670 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv

this SDP message is the one i send in the INVITE

so i listen to RTP packets in the 11760 udp port

and create a "rtp sender" using another random port chosen by JMF, this random port is where packets are sent from rtpproxy.

Thanks for your help.


2012/11/14 Ignacio Gonzalez <[hidden email]>
Here is my complete scenario:

OPENSIPS is in a private network inside of a virtual machine 192.168.1.220 and is using port 5062 on udp and tcp
RTPProxy is in a private network inside of the same virtual machine 192.168.1220 and this is the command line I'm using to run rtpproxy:

./rtpproxy -l 192.168.1.220 -s udp:192.168.1.220:12400 -n tcp:192.168.1.220:12333 -u user -m 35000 -M 35200

The host machine is 192.168.1.200

My router create the binding rules for  public_ip:35000 -> 192.168.1.220:35000    to public_ip:35200 -> 192.168.1.220:35200

I'm making a call between to UAs outside of the LAN 192.168.1.0, both clients are outside of the LAN.


I tried to set the flags "i" and "e" but still not working, I also tried setting the autobridged parameter for the rtpproxy module.

Thanks for helping.

P.D. I want to see the debug of rtpproxy but I don't know how to do that, can any one help me with this?








2012/11/14 Răzvan Crainea <[hidden email]>
Hi, Ignacio!

So you are trying to use RTPProxy in bridge mode (between a private and a public network). This means that for INVITE you should have a public IP, and for 200OK a private IP (or the other way around, depending on your scenario). You have three possible solutions to achieve this:

1. For INVITE, call rtpproxy_offer("flags", "PUBLIC_IP") and for 200OK, rtpproxy_answer("flags", "PRIVATE_IP") (or reverse the IPs in case of a different scenario). I am not sure this works, as RTPProxy will have no idea about where exactly is your UAC/UAS - therefore it might use wrong sockets to send data (for example, it might use a PRIVATE_IP socket to send RTP to a public ip).
2. Enable the autobridge mode, by setting the 'rtpproxy_autobrige' parameter [1]. I've never used this, so I can't confirm whether it works properly or not.
3. Call the rtpproxy_offer/answer functions with the 'E' or 'I' flags[2]. This is the most reliable method I've used I can confirm it works.

[1] http://www.opensips.org/html/docs/modules/1.8.x/rtpproxy#id250154
[2] http://www.opensips.org/html/docs/modules/1.8.x/rtpproxy#id292744

Regards,
Razvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
On 11/14/2012 05:14 PM, Ignacio Gonzalez wrote:
Ok i will check the flags, I set the domain parameter of rtpproxy_offer to PUBLIC_IP, i create the rules in my router to bind the ports 35000 to 35200 of the public_ip to the ports 35000 to 35200 in the PRIVATE_IP of rtpproxy 192.168.1.220, I'm not sure if this is correct.

If i don't put the domain parameter in the rtpproxy_offer the SDP message contains the private ip of the RTPPROXY (192.168.1.220) and my clients are outside this nat.

Thanks


2012/11/14 Răzvan Crainea <[hidden email]>
Hi, Ignacio!

The ports you have listed in the SDP snippet belong to a single rtp stream - Callee-RTPProxy-Caller. You should also check the ports in the 200OK.
The "nortpproxy_str" parameter you are specifying is used by RTPProxy to determine if the SDP has to be changed, or somebody else already changed in the path.
I noticed that you call rtpproxy_offer() function with two parameters:
1. "ro" - if the SDP has a private IP, you shouldn't use the "r" flag. This flag is used to specify that RTPProxy should accept packages only from that IP, whereas in your case he will receive the packets from a public IP.
2. "domain" - you shouldn't use this parameter unless you really know what you are doing. This overwrites the domain specified by RTPProxy, which is not always such a good idea.

I hope these remarks will help you fix your problem.

Regards,
Razvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
On 11/14/2012 01:11 AM, Ignacio Gonzalez wrote:
I change the attribute using adding this to the opensips configuration file

modparam("rtpproxy", "nortpproxy_str", "a=sdpmangled:yes\r\n")


a=nortpproxy:yes


But there is no audio, i check the traffic using wireshark and i see that a lot of packets are sent to another port not the one that i send in the first message, example:

First SDP

v=0
o=- 465641 0 IN IP4 10.168.123.201
s=-
c=IN IP4 10.168.123.201
t=0 0
m=audio 11670 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv



Changed by opensips and rtpproxy to look like


v=0
o=- 465641 0 IN IP4 IP_PUBLIC
s=-
c=IN IP4 IP_PUBLIC
t=0 0
m=audio 35000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv


And packets are being recived on the udp:10.168.123.201:45708


Thanks for your help



2012/11/13 Ignacio Gonzalez <[hidden email]>
Hello, I change the command line to run rtpproxy and change my configuration file:

./rtpproxy -l timewarnercable.dyndns.org -s udp:192.168.1.220:12333 -n tcp:192.168.1.220:12333 -u syrium -m 35000 -M 35200

rtpproxy_offer("ro" , "timewarnercable.dyndns.org");

And now the SDP message looks like this:

v=0
o=- 0 0 IN IP4 PUBLICIP
s=-
c=IN IP4 PUBLICIP
t=0 0
m=audio 35134 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv
a=nortpproxy:yes

But there is no audio, and I don't know what is the meaning of the a=nortpproxy:yes


Thanks for your help.





2012/11/12 Ignacio Gonzalez <[hidden email]>
I use the same port but tcp because in the post the answer is that. I Attach the debug file





2012/11/12 spady <[hidden email]>
Please, post entire opensips log ( set debug to 6 ).

Why are you using same port for sock and notify_sock ??? Have you tried with
different ports?

Bye



--
View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/RTPProxy-Problem-tp7582930p7582974.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users





_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: RTPProxy Problem

Ignacio Gonzalez
Hi, I red the RFC 4961 Symetric RTP, i set the flags of rtp_offer "a", and then i stop receiving packets to the udp port i use to send RTP, but the audio is not being sent to the port that i set on the SDP message. Do i have to run rtpproxy with any special parameter to support asymmetric rtp?


2012/11/14 Ignacio Gonzalez <[hidden email]>
I found where the other port is taken from. I use Java, JMF to create the RTP part of the UA, I create two RTPManagers, one to send and one to receive, and I use two different ports, one is for sending and one for receiving, and rtpproxy send me packets to the sending port, I don't know if i have to use only one RTPManager to send and receive rtppackets using the port I send in the SDP message. This has been always a doubt for me.


m=audio 11670 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv

this SDP message is the one i send in the INVITE

so i listen to RTP packets in the 11760 udp port

and create a "rtp sender" using another random port chosen by JMF, this random port is where packets are sent from rtpproxy.

Thanks for your help.



2012/11/14 Ignacio Gonzalez <[hidden email]>
Here is my complete scenario:

OPENSIPS is in a private network inside of a virtual machine 192.168.1.220 and is using port 5062 on udp and tcp
RTPProxy is in a private network inside of the same virtual machine 192.168.1220 and this is the command line I'm using to run rtpproxy:

./rtpproxy -l 192.168.1.220 -s udp:192.168.1.220:12400 -n tcp:192.168.1.220:12333 -u user -m 35000 -M 35200

The host machine is 192.168.1.200

My router create the binding rules for  public_ip:35000 -> 192.168.1.220:35000    to public_ip:35200 -> 192.168.1.220:35200

I'm making a call between to UAs outside of the LAN 192.168.1.0, both clients are outside of the LAN.


I tried to set the flags "i" and "e" but still not working, I also tried setting the autobridged parameter for the rtpproxy module.

Thanks for helping.

P.D. I want to see the debug of rtpproxy but I don't know how to do that, can any one help me with this?








2012/11/14 Răzvan Crainea <[hidden email]>
Hi, Ignacio!

So you are trying to use RTPProxy in bridge mode (between a private and a public network). This means that for INVITE you should have a public IP, and for 200OK a private IP (or the other way around, depending on your scenario). You have three possible solutions to achieve this:

1. For INVITE, call rtpproxy_offer("flags", "PUBLIC_IP") and for 200OK, rtpproxy_answer("flags", "PRIVATE_IP") (or reverse the IPs in case of a different scenario). I am not sure this works, as RTPProxy will have no idea about where exactly is your UAC/UAS - therefore it might use wrong sockets to send data (for example, it might use a PRIVATE_IP socket to send RTP to a public ip).
2. Enable the autobridge mode, by setting the 'rtpproxy_autobrige' parameter [1]. I've never used this, so I can't confirm whether it works properly or not.
3. Call the rtpproxy_offer/answer functions with the 'E' or 'I' flags[2]. This is the most reliable method I've used I can confirm it works.

[1] http://www.opensips.org/html/docs/modules/1.8.x/rtpproxy#id250154
[2] http://www.opensips.org/html/docs/modules/1.8.x/rtpproxy#id292744

Regards,
Razvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
On 11/14/2012 05:14 PM, Ignacio Gonzalez wrote:
Ok i will check the flags, I set the domain parameter of rtpproxy_offer to PUBLIC_IP, i create the rules in my router to bind the ports 35000 to 35200 of the public_ip to the ports 35000 to 35200 in the PRIVATE_IP of rtpproxy 192.168.1.220, I'm not sure if this is correct.

If i don't put the domain parameter in the rtpproxy_offer the SDP message contains the private ip of the RTPPROXY (192.168.1.220) and my clients are outside this nat.

Thanks


2012/11/14 Răzvan Crainea <[hidden email]>
Hi, Ignacio!

The ports you have listed in the SDP snippet belong to a single rtp stream - Callee-RTPProxy-Caller. You should also check the ports in the 200OK.
The "nortpproxy_str" parameter you are specifying is used by RTPProxy to determine if the SDP has to be changed, or somebody else already changed in the path.
I noticed that you call rtpproxy_offer() function with two parameters:
1. "ro" - if the SDP has a private IP, you shouldn't use the "r" flag. This flag is used to specify that RTPProxy should accept packages only from that IP, whereas in your case he will receive the packets from a public IP.
2. "domain" - you shouldn't use this parameter unless you really know what you are doing. This overwrites the domain specified by RTPProxy, which is not always such a good idea.

I hope these remarks will help you fix your problem.

Regards,
Razvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
On 11/14/2012 01:11 AM, Ignacio Gonzalez wrote:
I change the attribute using adding this to the opensips configuration file

modparam("rtpproxy", "nortpproxy_str", "a=sdpmangled:yes\r\n")


a=nortpproxy:yes


But there is no audio, i check the traffic using wireshark and i see that a lot of packets are sent to another port not the one that i send in the first message, example:

First SDP

v=0
o=- 465641 0 IN IP4 10.168.123.201
s=-
c=IN IP4 10.168.123.201
t=0 0
m=audio 11670 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv



Changed by opensips and rtpproxy to look like


v=0
o=- 465641 0 IN IP4 IP_PUBLIC
s=-
c=IN IP4 IP_PUBLIC
t=0 0
m=audio 35000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv


And packets are being recived on the udp:10.168.123.201:45708


Thanks for your help



2012/11/13 Ignacio Gonzalez <[hidden email]>
Hello, I change the command line to run rtpproxy and change my configuration file:

./rtpproxy -l timewarnercable.dyndns.org -s udp:192.168.1.220:12333 -n tcp:192.168.1.220:12333 -u syrium -m 35000 -M 35200

rtpproxy_offer("ro" , "timewarnercable.dyndns.org");

And now the SDP message looks like this:

v=0
o=- 0 0 IN IP4 PUBLICIP
s=-
c=IN IP4 PUBLICIP
t=0 0
m=audio 35134 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv
a=nortpproxy:yes

But there is no audio, and I don't know what is the meaning of the a=nortpproxy:yes


Thanks for your help.





2012/11/12 Ignacio Gonzalez <[hidden email]>
I use the same port but tcp because in the post the answer is that. I Attach the debug file





2012/11/12 spady <[hidden email]>
Please, post entire opensips log ( set debug to 6 ).

Why are you using same port for sock and notify_sock ??? Have you tried with
different ports?

Bye



--
View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/RTPProxy-Problem-tp7582930p7582974.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users





_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users





_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: RTPProxy Problem

Ignacio Gonzalez
Hello, I have implemented my RTP according to RFC 4961 Symmetric RTP and works, I'm using the flags "ro" in the rtp_offer function, but I don't know how to use asymmetric rtp with rtpproxy, adding the "a" to my flags doesn't fix it. I think rtpproxy needs more documentation and maybe a webinar.


2012/11/15 Ignacio Gonzalez <[hidden email]>
Hi, I red the RFC 4961 Symetric RTP, i set the flags of rtp_offer "a", and then i stop receiving packets to the udp port i use to send RTP, but the audio is not being sent to the port that i set on the SDP message. Do i have to run rtpproxy with any special parameter to support asymmetric rtp?



2012/11/14 Ignacio Gonzalez <[hidden email]>
I found where the other port is taken from. I use Java, JMF to create the RTP part of the UA, I create two RTPManagers, one to send and one to receive, and I use two different ports, one is for sending and one for receiving, and rtpproxy send me packets to the sending port, I don't know if i have to use only one RTPManager to send and receive rtppackets using the port I send in the SDP message. This has been always a doubt for me.


m=audio 11670 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv

this SDP message is the one i send in the INVITE

so i listen to RTP packets in the 11760 udp port

and create a "rtp sender" using another random port chosen by JMF, this random port is where packets are sent from rtpproxy.

Thanks for your help.



2012/11/14 Ignacio Gonzalez <[hidden email]>
Here is my complete scenario:

OPENSIPS is in a private network inside of a virtual machine 192.168.1.220 and is using port 5062 on udp and tcp
RTPProxy is in a private network inside of the same virtual machine 192.168.1220 and this is the command line I'm using to run rtpproxy:

./rtpproxy -l 192.168.1.220 -s udp:192.168.1.220:12400 -n tcp:192.168.1.220:12333 -u user -m 35000 -M 35200

The host machine is 192.168.1.200

My router create the binding rules for  public_ip:35000 -> 192.168.1.220:35000    to public_ip:35200 -> 192.168.1.220:35200

I'm making a call between to UAs outside of the LAN 192.168.1.0, both clients are outside of the LAN.


I tried to set the flags "i" and "e" but still not working, I also tried setting the autobridged parameter for the rtpproxy module.

Thanks for helping.

P.D. I want to see the debug of rtpproxy but I don't know how to do that, can any one help me with this?








2012/11/14 Răzvan Crainea <[hidden email]>
Hi, Ignacio!

So you are trying to use RTPProxy in bridge mode (between a private and a public network). This means that for INVITE you should have a public IP, and for 200OK a private IP (or the other way around, depending on your scenario). You have three possible solutions to achieve this:

1. For INVITE, call rtpproxy_offer("flags", "PUBLIC_IP") and for 200OK, rtpproxy_answer("flags", "PRIVATE_IP") (or reverse the IPs in case of a different scenario). I am not sure this works, as RTPProxy will have no idea about where exactly is your UAC/UAS - therefore it might use wrong sockets to send data (for example, it might use a PRIVATE_IP socket to send RTP to a public ip).
2. Enable the autobridge mode, by setting the 'rtpproxy_autobrige' parameter [1]. I've never used this, so I can't confirm whether it works properly or not.
3. Call the rtpproxy_offer/answer functions with the 'E' or 'I' flags[2]. This is the most reliable method I've used I can confirm it works.

[1] http://www.opensips.org/html/docs/modules/1.8.x/rtpproxy#id250154
[2] http://www.opensips.org/html/docs/modules/1.8.x/rtpproxy#id292744

Regards,
Razvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
On 11/14/2012 05:14 PM, Ignacio Gonzalez wrote:
Ok i will check the flags, I set the domain parameter of rtpproxy_offer to PUBLIC_IP, i create the rules in my router to bind the ports 35000 to 35200 of the public_ip to the ports 35000 to 35200 in the PRIVATE_IP of rtpproxy 192.168.1.220, I'm not sure if this is correct.

If i don't put the domain parameter in the rtpproxy_offer the SDP message contains the private ip of the RTPPROXY (192.168.1.220) and my clients are outside this nat.

Thanks


2012/11/14 Răzvan Crainea <[hidden email]>
Hi, Ignacio!

The ports you have listed in the SDP snippet belong to a single rtp stream - Callee-RTPProxy-Caller. You should also check the ports in the 200OK.
The "nortpproxy_str" parameter you are specifying is used by RTPProxy to determine if the SDP has to be changed, or somebody else already changed in the path.
I noticed that you call rtpproxy_offer() function with two parameters:
1. "ro" - if the SDP has a private IP, you shouldn't use the "r" flag. This flag is used to specify that RTPProxy should accept packages only from that IP, whereas in your case he will receive the packets from a public IP.
2. "domain" - you shouldn't use this parameter unless you really know what you are doing. This overwrites the domain specified by RTPProxy, which is not always such a good idea.

I hope these remarks will help you fix your problem.

Regards,
Razvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
On 11/14/2012 01:11 AM, Ignacio Gonzalez wrote:
I change the attribute using adding this to the opensips configuration file

modparam("rtpproxy", "nortpproxy_str", "a=sdpmangled:yes\r\n")


a=nortpproxy:yes


But there is no audio, i check the traffic using wireshark and i see that a lot of packets are sent to another port not the one that i send in the first message, example:

First SDP

v=0
o=- 465641 0 IN IP4 10.168.123.201
s=-
c=IN IP4 10.168.123.201
t=0 0
m=audio 11670 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv



Changed by opensips and rtpproxy to look like


v=0
o=- 465641 0 IN IP4 IP_PUBLIC
s=-
c=IN IP4 IP_PUBLIC
t=0 0
m=audio 35000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv


And packets are being recived on the udp:10.168.123.201:45708


Thanks for your help



2012/11/13 Ignacio Gonzalez <[hidden email]>
Hello, I change the command line to run rtpproxy and change my configuration file:

./rtpproxy -l timewarnercable.dyndns.org -s udp:192.168.1.220:12333 -n tcp:192.168.1.220:12333 -u syrium -m 35000 -M 35200

rtpproxy_offer("ro" , "timewarnercable.dyndns.org");

And now the SDP message looks like this:

v=0
o=- 0 0 IN IP4 PUBLICIP
s=-
c=IN IP4 PUBLICIP
t=0 0
m=audio 35134 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv
a=nortpproxy:yes

But there is no audio, and I don't know what is the meaning of the a=nortpproxy:yes


Thanks for your help.





2012/11/12 Ignacio Gonzalez <[hidden email]>
I use the same port but tcp because in the post the answer is that. I Attach the debug file





2012/11/12 spady <[hidden email]>
Please, post entire opensips log ( set debug to 6 ).

Why are you using same port for sock and notify_sock ??? Have you tried with
different ports?

Bye



--
View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/RTPProxy-Problem-tp7582930p7582974.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users





_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users






_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users