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
