2008/11/20 Maxim Sobolev <[EMAIL PROTECTED]>: > Joan wrote: >> Hello, I've been trying to setup a testing scenario to offer voip services. >> At this point I've a phone behind a nat, and I am trying to >> communicate to the openser, that in turns forwards the calls to an >> asterisk server. >> Before nating the phone and starting with the rtpproxy everything was >> working properly. >> The current scenario would be: >> IP Phone (192.168.2.50) -> NAT server masking as 192.168.253.12) >> -> Kamailio (192.168.253.98) -> Asterisk (192.168.253.2) >> >> The working scenario was: >> IP Phone 192.168.253.25 -> Kamailio (192.168.253.98) -> Asterisk >> (192.168.253.2) >> >> I've configured everthing in kamailio as the examples I saw, but I >> suspect there's something wrong with my rtpproxy (I'm using >> rtpproxy-1.2.alpha.20081104) >> The fact is that when I sniff the traffic in localhost, having started >> rtpproxy as "rtpproxy -s udp:localhost 15000 -f -u openser -l >> 192.168.253.98 &" >> >> ################################################################################### >> test:~# ngrep -lqtt -W byline port 15000 -d lo >> interface: lo (127.0.0.0/255.0.0.0) >> filter: (ip or ip6) and ( port 15000 ) >> >> U 2008/11/20 16:46:13.466299 127.0.0.1:59654 -> 127.0.0.1:15000 >> 19694_4 L [EMAIL PROTECTED] 192.168.253.2 17790 >> 4e178bc90eb3861o0;1 as64b2e8a6;1 >> >> U 2008/11/20 16:46:13.466376 127.0.0.1:15000 -> 127.0.0.1:59654 >> 19694_4 0 192.168.253.98 >> ################################################################################### >> >> I see that rtpproxy is returning 0 to the openser doesn't like it and >> it says "ERROR:nathelper:force_rtp_proxy2_f: incorrect port 0 in reply >> from rtp proxy" >> >> Do i have a broken rtpproxy, or it's a matter of configuration? > > Joan, > > It looks like misconfiguration to me, can you please send your > openser.cfg config? >
This is basically most of the config ... This is the original config from kamailio adapted to work with db + some nat detection/correction # -- nathelper modparam("nathelper", "rtpproxy_sock", "udp:127.0.0.1:15000") ####### Routing Logic ######## # main request routing logic route{ 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()) { if (is_method("BYE")) { log(1, "MIS: Allibero el proxy \n"); unforce_rtp_proxy(); setflag(1); # do accouting ... setflag(3); # ... even if the transaction fails } 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.\n"); exit; } } sl_send_reply("404","Not here"); } exit; } #initial requests # CANCEL processing if (is_method("CANCEL")) { #Freeing proxy unforce_rtp_proxy(); if (t_check_trans()) t_relay(); exit; } t_check_trans(); # authenticate if from local subscriber (uncomment to enable auth) if (!(method=="REGISTER") && from_uri==myself) { if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "0"); exit; } if (!check_from()) { sl_send_reply("403","Forbidden auth ID"); exit; } consume_credentials(); # caller authenticated } # record routing if (!is_method("REGISTER|MESSAGE")) record_route(); # account only INVITEs if (is_method("INVITE")) { setflag(1); # do accouting if (uri =~ "sip:[EMAIL PROTECTED]") { rewritehost("192.168.253.2"); log(1, "MIS: Redirecting call to internal asterisk \n"); route(1); return; } } 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 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 (!check_to()) { sl_send_reply("403","Forbidden auth ID"); exit; } 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")) { 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 if (is_method("INVITE")) { if(isbflagset(2)) {########## # behind a NAT log("MIS: Forcing proxy within router 1") force_rtp_proxy(); }; t_on_branch("2"); t_on_reply("2"); t_on_failure("1"); } if (!t_relay()) { sl_reply_error(); }; exit; } branch_route[2] { xlog("MIS: new branch at $ru\n"); } onreply_route[2] { xlog("MIS: incoming reply\n"); force_rport(); if (status =~ "(183)|(2[0-9][0-9])") { if(nat_uac_test("19")) { log("MIS: Hem detectat NAT"); setbflag(2); # flag for NAT fix_nated_contact(); fix_nated_sdp("11"); force_rtp_proxy(); }; }; } failure_route[1] { if (t_was_cancelled()) { exit; } } _______________________________________________ Users mailing list Users@rtpproxy.org http://lists.rtpproxy.org/mailman/listinfo/users