Opensips 1.6 + nathelper + rtpproxy 1.2.1 is working fine. Thanks everyone.
On Tue, Aug 7, 2012 at 10:11 AM, Ali Pey <[email protected]> wrote: > Hi, > > It's your nat traversal. Capture your call and examine the media ip > addresses in the SDP of all invites. That should give you a clue what's > wrong. > > Regards, > Ali Pey > > > On Mon, Aug 6, 2012 at 1:47 PM, siponcloud user <[email protected]> wrote: > >> Thanks, that really helped. >> >> I am still having problem with the following: when user x calls user y, >> audio is one-way, and when audio y calls x, audio is two-way. Why is it so? >> What could be the possible reasons? >> >> Also would like to add that -- iptables has to be appropriate rules on >> opensips to get clients connecting to it or even rtpproxy connecting to it. >> >> -- >> sip user. >> >> >> On Fri, Aug 3, 2012 at 4:49 AM, SamyGo <[email protected]> wrote: >> >>> Hi, >>> >>> You may not want to tell your rtpproxy module to use DB as well as a >>> socket connection at the same time: I wonder if it will work this way. >>> >>> modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:9999") >>>> modparam("rtpproxy", "nortpproxy_str", "a=sdpmangled:yes\r\n") >>>> modparam("rtpproxy", "db_url", >>>> "mysql://opensips:opensipsrw@localhost/opensips") >>>> #modparam("rtpproxy", "db_table", "nh_rtpp") >>>> modparam("rtpproxy", "rtpp_socket_col", "rtpproxy_sock") >>> >>> >>> Comment out the red lines as well. >>> Once commented restart opensips and verify that your RTPproxy is indeed >>> listening on the port 9999 >>> * >>> * >>> *#netstat -pln | grep 9999* >>> >>> If you get an output then its fine, next you should make a call and see >>> if the error changes or not. >>> >>> Regards, >>> Sammy. >>> >>> >>> On Fri, Aug 3, 2012 at 2:38 AM, siponcloud user <[email protected]>wrote: >>> >>>> Opensips is a great product, but I have been having problem in >>>> configuring >>>> the nat traversal + rtpproxy with opensips and have spent about a week >>>> on >>>> this. I am a novice in this... when opensips runs with the following >>>> opensips.cfg relevant portions -- it raises the following rtpproxy >>>> problem: >>>> >>>> "ERROR:rtpproxy:select_rtpp_node: script error -no valid set selected" >>>> "ERROR:rtpproxy:force_rtp_proxy: no available proxies" >>>> >>>> #-------- nat_traversal params ----- >>>> modparam("nat_traversal", "keepalive_interval", 30) >>>> modparam("nat_traversal", "keepalive_method", "OPTIONS") >>>> modparam("nat_traversal", "keepalive_from", "sip:[hidden email]") >>>> modparam("nat_traversal", "keepalive_state_file", >>>> "/var/run/opensips/keepalive_state") >>>> >>>> #ak# --- rtpproxy ----- >>>> # single rtproxy with specific weight >>>> modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:9999") >>>> modparam("rtpproxy", "nortpproxy_str", "a=sdpmangled:yes\r\n") >>>> modparam("rtpproxy", "db_url", >>>> "mysql://opensips:opensipsrw@localhost/opensips") >>>> #modparam("rtpproxy", "db_table", "nh_rtpp") >>>> modparam("rtpproxy", "rtpp_socket_col", "rtpproxy_sock") >>>> >>>> >>>> ####### Routing Logic ######## >>>> >>>> >>>> # main request routing logic >>>> >>>> route{ >>>> ####nat_traversal info >>>> force_rport(); >>>> if (client_nat_test("7")) { >>>> fix_contact(); >>>> setflag(5); >>>> } >>>> >>>> if ((method=="REGISTER" || method=="SUBSCRIBE" || >>>> (method=="INVITE" && !has_totag())) && >>>> client_nat_test("7")) >>>> { >>>> nat_keepalive(); >>>> } >>>> ####nat_traversal info ends >>>> >>>> if (!mf_process_maxfwd_header("10")) { >>>> sl_send_reply("483","Too Many Hops"); >>>> exit; >>>> } >>>> >>>> ##ak# >>>> if ((is_method("INVITE")) && has_totag()) { >>>> #(has_body("application/sdp"))) { >>>> engage_rtp_proxy(); >>>> } >>>> >>>> if (has_totag()) { >>>> # sequential request withing a dialog should >>>> # take the path determined by record-routing >>>> if (loose_route()) { >>>> 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(); >>>> } >>>> # route it out to whatever destination was set >>>> by >>>> loose_route() >>>> # in $du (destination URI). >>>> route(1); >>>> } else { >>>> /* uncomment the following lines if you want to >>>> enable presence */ >>>> ##if (is_method("SUBSCRIBE") && $rd == "your.server.ip.address") { >>>> ## # in-dialog subscribe requests >>>> ## route(2); >>>> ## exit; >>>> ##} >>>> 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; >>>> } >>>> >>>> #initial requests >>>> >>>> # CANCEL processing >>>> if (is_method("CANCEL")) >>>> { >>>> if (t_check_trans()) >>>> t_relay(); >>>> #unforce_rtpproxy(); >>>> exit; >>>> } >>>> >>>> t_check_trans(); >>>> >>>> # 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")) { >>>> setflag(1); # do accounting >>>> } >>>> if (!uri==myself) >>>> ## replace with following line if multi-domain support is used >>>> ##if (!is_uri_host_local()) >>>> { >>>> append_hf("P-hint: outbound\r\n"); >>>> # if you have some interdomain connections via TLS >>>> ##if($rd=="tls_domain1.net") { >>>> ## t_relay("tls:domain1.net"); >>>> ## exit; >>>> ##} else if($rd=="tls_domain2.net") { >>>> ## t_relay("tls:domain2.net"); >>>> ## exit; >>>> ##} >>>> route(1); >>>> } >>>> >>>> # requests for my domain >>>> >>>> ## uncomment this if you want to enable presence server >>>> ## and comment the next 'if' block >>>> ## NOTE: uncomment also the definition of route[2] from below >>>> ##if( is_method("PUBLISH|SUBSCRIBE")) >>>> ## route(2); >>>> >>>> if (is_method("PUBLISH")) >>>> { >>>> sl_send_reply("503", "Service Unavailable"); >>>> exit; >>>> } >>>> >>>> >>>> if (is_method("REGISTER")) >>>> { >>>> # authenticate the REGISTER requests (uncomment to >>>> enable >>>> auth) >>>> ##if (!www_authorize("", "subscriber")) >>>> ##{ >>>> ## www_challenge("", "0"); >>>> ## exit; >>>> ##} >>>> ## >>>> ##if (!db_check_to()) >>>> ##{ >>>> ## sl_send_reply("403","Forbidden auth ID"); >>>> ## exit; >>>> ##} >>>> >>>> #---- Request is behind NAT(flag5) save with bflag 6 >>>> ----# >>>> #---- Use bflag 7 to start SIP pinging (Options) >>>> ----# >>>> if (isflagset(5)) { >>>> setbflag(6); >>>> setbflag(7); >>>> }; >>>> >>>> if (!save("location")) >>>> sl_reply_error(); >>>> >>>> exit; >>>> } >>>> >>>> if ($rU==NULL) { >>>> # request with no Username in RURI >>>> sl_send_reply("484","Address Incomplete"); >>>> exit; >>>> } >>>> >>>> # apply DB based aliases (uncomment to enable) >>>> ##alias_db_lookup("dbaliases"); >>>> if (!lookup("location","m")) { >>>> switch ($retcode) { >>>> case -1: >>>> case -3: >>>> t_newtran(); >>>> t_reply("404", "Not Found"); >>>> exit; >>>> case -2: >>>> sl_send_reply("405", "Method Not >>>> Allowed"); >>>> exit; >>>> } >>>> } >>>> >>>> # when routing via usrloc, log the missed calls also >>>> setflag(2); >>>> >>>> route(1); >>>> } >>>> >>>> >>>> route[1] { >>>> # for INVITEs enable some additional helper routes >>>> >>>> #---- RTP Proxy handling ---# >>>> if (is_method("BYE|CANCEL")) { >>>> unforce_rtp_proxy(); >>>> } else if (is_method("INVITE")){ >>>> #---- Activates the RTP Proxy for the CALLEE ---# >>>> rtpproxy_offer(); >>>> }; >>>> #ak## catch and fix replies >>>> #ak#t_on_reply("2"); >>>> >>>> if (is_method("INVITE")) { >>>> t_on_branch("2"); >>>> t_on_reply("2"); >>>> t_on_failure("1"); >>>> } >>>> >>>> if (!t_relay()) { >>>> sl_reply_error(); >>>> }; >>>> exit; >>>> } >>>> >>>> branch_route[2] { >>>> if (client_nat_test("3")) { >>>> fix_contact(); >>>> } >>>> >>>> xlog("new branch at $ru\n"); >>>> } >>>> >>>> >>>> onreply_route[2] { >>>> if (client_nat_test("7")) { >>>> fix_contact(); >>>> if ( is_method("INVITE") && has_body("application/sdp") >>>> ){ >>>> ######ak# (isflagset(5) || isbflagset(6)) && >>>> rtpproxy_answer(); >>>> } >>>> } >>>> 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; >>>> ##} >>>> >>>> # uncomment the following lines if you want to redirect the >>>> failed >>>> # calls to a different new destination >>>> ##if (t_check_status("486|408")) { >>>> ## sethostport("192.168.2.100:5060"); >>>> ## # do not set the missed call flag again >>>> ## t_relay(); >>>> ##} >>>> } >>>> >>>> >>>> >>>> -- >>>> View this message in context: >>>> http://opensips-open-sip-server.1449251.n2.nabble.com/Problem-with-OpenSIPS-1-7-NAT-and-RTPProxy-tp7581021.html >>>> Sent from the OpenSIPS - Users mailing list archive at Nabble.com. >>>> >>>> _______________________________________________ >>>> Users mailing list >>>> [email protected] >>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>>> >>> >>> >>> _______________________________________________ >>> Users mailing list >>> [email protected] >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>> >>> >> >> _______________________________________________ >> Users mailing list >> [email protected] >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> >> > > _______________________________________________ > Users mailing list > [email protected] > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > >
_______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
