<div dir="ltr"><div class="gmail_extra"><div>I'm running out of ideas ..</div><div><br></div><div>My rtpproxy is fine</div><div><br></div><div>Oct 4 09:10:02 opensips /sbin/opensips[5019]: INFO:rtpproxy:rtpp_test: rtp proxy <udp:<a href="http://127.0.0.1:7890">127.0.0.1:7890</a>> found, support for it enabled</div>
<div>Oct 4 09:10:02 opensips /sbin/opensips[5020]: INFO:rtpproxy:rtpp_test: rtp proxy <udp:<a href="http://127.0.0.1:7890">127.0.0.1:7890</a>> found, support for it enabled</div><div>Oct 4 09:10:02 opensips /sbin/opensips[5018]: INFO:rtpproxy:rtpp_test: rtp proxy <udp:<a href="http://127.0.0.1:7890">127.0.0.1:7890</a>> found, support for it enabled</div>
<div>Oct 4 09:10:02 opensips /sbin/opensips[5022]: INFO:rtpproxy:rtpp_test: rtp proxy <udp:<a href="http://127.0.0.1:7890">127.0.0.1:7890</a>> found, support for it enabled</div><div>Oct 4 09:10:02 opensips /sbin/opensips[5023]: INFO:rtpproxy:rtpp_test: rtp proxy <udp:<a href="http://127.0.0.1:7890">127.0.0.1:7890</a>> found, support for it enabled</div>
<div>Oct 4 09:10:02 opensips /sbin/opensips[5017]: INFO:rtpproxy:rtpp_test: rtp proxy <udp:<a href="http://127.0.0.1:7890">127.0.0.1:7890</a>> found, support for it enabled</div><div>Oct 4 09:10:02 opensips /sbin/opensips[5016]: INFO:rtpproxy:rtpp_test: rtp proxy <udp:<a href="http://127.0.0.1:7890">127.0.0.1:7890</a>> found, support for it enabled</div>
<div><br></div><div><br></div><div>and here is my opensips.cfg,</div><div><br></div><div>####### Global Parameters #########</div><div><br></div><div>debug=3</div><div>log_stderror=no</div><div>log_facility=LOG_LOCAL0</div>
<div><br></div><div>fork=yes</div><div>children=4</div><div><br></div><div>/* uncomment the following lines to enable debugging */</div><div>#debug=6</div><div>#fork=no</div><div>#log_stderror=yes</div><div><br></div><div>
/* uncomment the next line to enable the auto temporary blacklisting of</div><div> not available destinations (default disabled) */</div><div>#disable_dns_blacklist=no</div><div><br></div><div>/* uncomment the next line to enable IPv6 lookup after IPv4 dns</div>
<div> lookup failures (default disabled) */</div><div>#dns_try_ipv6=yes</div><div><br></div><div>/* comment the next line to enable the auto discovery of local aliases</div><div> based on revers DNS on IPs */</div><div>
auto_aliases=no</div><div><br></div><div><br></div><div>listen=udp:###.###.###.###:5060 </div><div><br></div><div><br></div><div>disable_tcp=yes</div><div><br></div><div>db_default_url="mysql://opensips:opensipsrw@localhost/opensipsmysql://###:###@###/opensips"</div>
<div><br></div><div>####### Modules Section ########</div><div><br></div><div>#set module path</div><div>mpath="/lib64/opensips/modules/"</div><div><br></div><div>#### SIGNALING module</div><div>loadmodule "signaling.so"</div>
<div><br></div><div>#### StateLess module</div><div>loadmodule "sl.so"</div><div><br></div><div>#### Transaction Module</div><div>loadmodule "tm.so"</div><div>modparam("tm", "fr_timer", 5)</div>
<div>modparam("tm", "fr_inv_timer", 30)</div><div>modparam("tm", "restart_fr_on_each_reply", 0)</div><div>modparam("tm", "onreply_avp_mode", 1)</div><div><br></div>
<div>#### Record Route Module</div><div>loadmodule "rr.so"</div><div>/* do not append from tag to the RR (no need for this script) */</div><div>modparam("rr", "append_fromtag", 0)</div><div><br>
</div><div>#### MAX ForWarD module</div><div>loadmodule "maxfwd.so"</div><div><br></div><div>#### SIP MSG OPerationS module</div><div>loadmodule "sipmsgops.so"</div><div><br></div><div>#### FIFO Management Interface</div>
<div>loadmodule "mi_fifo.so"</div><div>modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")</div><div>modparam("mi_fifo", "fifo_mode", 0666)</div><div><br></div>
<div><br></div><div>#### URI module</div><div>loadmodule "uri.so"</div><div>modparam("uri", "use_uri_table", 0)</div><div><br></div><div>#### MYSQL module</div><div>loadmodule "db_mysql.so"</div>
<div><br></div><div>#### USeR LOCation module</div><div>loadmodule "usrloc.so"</div><div>modparam("usrloc", "nat_bflag", "NAT")</div><div>modparam("usrloc", "db_mode", 2)</div>
<div>modparam("usrloc", "db_url",</div><div> "mysql://####:####@######/opensips") </div><div><br></div><div>#### REGISTRAR module</div><div>loadmodule "registrar.so"</div><div>
modparam("registrar", "tcp_persistent_flag", "TCP_PERSISTENT")</div><div>modparam("registrar", "received_avp", "$avp(received_nh)")</div><div>/* uncomment the next line not to allow more than 10 contacts per AOR */</div>
<div>#modparam("registrar", "max_contacts", 10)</div><div><br></div><div>#### ACCounting module</div><div>loadmodule "acc.so"</div><div>/* what special events should be accounted ? */</div><div>
modparam("acc", "early_media", 0)</div><div>modparam("acc", "report_cancels", 0)</div><div>/* by default we do not adjust the direct of the sequential requests.</div><div> if you enable this parameter, be sure the enable "append_fromtag"</div>
<div> in "rr" module */</div><div>modparam("acc", "detect_direction", 0)</div><div>modparam("acc", "failed_transaction_flag", "ACC_FAILED")</div><div>/* account triggers (flags) */</div>
<div>modparam("acc", "db_flag", "ACC_DO")</div><div>modparam("acc", "db_missed_flag", "ACC_MISSED")</div><div>modparam("acc", "db_url",</div>
<div> "mysql://opensips:opensipsrw@localhost/opensipsmysql://###:###@###/opensips") </div><div><br></div><div>#### AUTHentication modules</div><div>loadmodule "auth.so"</div><div>loadmodule "auth_db.so"</div>
<div>modparam("auth_db", "calculate_ha1", yes)</div><div>modparam("auth_db", "password_column", "password")</div><div>modparam("auth_db", "db_url",</div>
<div> "mysql://opensips:opensipsrw@localhost/opensipsmysql://###:###@###/opensips") </div><div>modparam("auth_db", "load_credentials", "")</div><div><br></div><div>#### ALIAS module</div>
<div>loadmodule "alias_db.so"</div><div>modparam("alias_db", "db_url",</div><div> "mysql://opensips:opensipsrw@localhost/opensipsmysql://###:###@###/opensips") </div><div><br>
</div><div>#### DOMAIN module</div><div>loadmodule "domain.so"</div><div>modparam("domain", "db_url",</div><div> "mysql://opensips:opensipsrw@localhost/opensipsmysql://###:###@###/opensips") </div>
<div>modparam("domain", "db_mode", 1) # Use caching</div><div>modparam("auth_db|usrloc|uri", "use_domain", 1)</div><div><br></div><div>#### DIALOG module</div><div>loadmodule "dialog.so"</div>
<div>modparam("dialog", "dlg_match_mode", 1)</div><div>modparam("dialog", "default_timeout", 21600) # 6 hours timeout</div><div>modparam("dialog", "db_mode", 2)</div>
<div>modparam("dialog", "db_url",</div><div> "mysql://opensips:opensipsrw@localhost/opensipsmysql://###:###@###/opensips") </div><div><br></div><div>#### NAT modules</div><div>loadmodule "nathelper.so"</div>
<div>modparam("nathelper", "natping_interval", 10)</div><div>modparam("nathelper", "ping_nated_only", 1)</div><div>modparam("nathelper", "received_avp", "$avp(received_nh)")</div>
<div>modparam("nathelper", "natping_socket", "###.###.###.###:5060")</div><div>modparam("nathelper", "sipping_from", "sip:pinger@###.###.###.###")</div><div>modparam("nathelper", "sipping_method", "OPTIONS")</div>
<div><br></div><div>loadmodule "rtpproxy.so"</div><div>modparam("rtpproxy", "rtpproxy_sock", "udp:<a href="http://127.0.0.1:7890">127.0.0.1:7890</a>") </div><div><br></div><div>#### DIALPLAN module</div>
<div>loadmodule "dialplan.so"</div><div>modparam("dialplan", "db_url",</div><div> "mysql://opensips:opensipsrw@localhost/opensipsmysql://###:###@###/opensips") </div><div><br>
</div><div>#### DYNAMMIC ROUTING module</div><div>loadmodule "drouting.so"</div><div>modparam("drouting", "db_url",</div><div> "mysql://opensips:opensipsrw@localhost/opensipsmysql://###:###@###/opensips") </div>
<div><br></div><div><br></div><div>####### Routing Logic ########</div><div><br></div><div># main request routing logic</div><div><br></div><div>route{</div><div> force_rport();</div><div> if (nat_uac_test("23")) {</div>
<div> if (is_method("REGISTER")) {</div><div> fix_nated_register();</div><div> setbflag(NAT);</div><div> } else {</div><div> fix_nated_contact();</div>
<div> setflag(NAT);</div><div> }</div><div> }</div><div><br></div><div><br></div><div> if (!mf_process_maxfwd_header("10")) {</div><div> sl_send_reply("483","Too Many Hops");</div>
<div> exit;</div><div> }</div><div><br></div><div> if (has_totag()) {</div><div> # sequential request withing a dialog should</div><div> # take the path determined by record-routing</div>
<div> if (loose_route()) {</div><div><br></div><div> # validate the sequential request against dialog</div><div> if ( $DLG_status!=NULL && !validate_dialog() ) {</div>
<div> xlog("In-Dialog $rm from $si (callid=$ci) is not valid according to dialog\n");</div><div> ## exit;</div><div> }</div><div>
<br></div><div> if (is_method("BYE")) {</div><div> setflag(ACC_DO); # do accounting ...</div><div> setflag(ACC_FAILED); # ... even if the transaction fails</div>
<div> } else if (is_method("INVITE")) {</div><div> # even if in most of the cases is useless, do RR for</div><div> # re-INVITEs alos, as some buggy clients do change route set</div>
<div> # during the dialog.</div><div> record_route();</div><div> }</div><div><br></div><div> if (check_route_param("nat=yes"))</div>
<div> setflag(NAT);</div><div><br></div><div> # route it out to whatever destination was set by loose_route()</div><div> # in $du (destination URI).</div>
<div> route(relay);</div><div> } else {</div><div><br></div><div> if ( is_method("ACK") ) {</div><div> if ( t_check_trans() ) {</div>
<div> # non loose-route, but stateful ACK; must be an ACK after</div><div> # a 487 or e.g. 404 from upstream server</div><div> t_relay();</div>
<div> exit;</div><div> } else {</div><div> # ACK without matching transaction -></div><div> # ignore and discard</div>
<div> exit;</div><div> }</div><div> }</div><div> sl_send_reply("404","Not here");</div>
<div> }</div><div> exit;</div><div> }</div><div><br></div><div> # CANCEL processing</div><div> if (is_method("CANCEL"))</div><div> {</div><div> if (t_check_trans())</div>
<div> t_relay();</div><div> exit;</div><div> }</div><div><br></div><div> t_check_trans();</div><div><br></div><div> if ( !(is_method("REGISTER") || is_from_gw() ) ) {</div>
<div><br></div><div> if (is_from_local())</div><div> {</div><div><br></div><div> # authenticate if from local subscriber</div><div> # authenticate all initial non-REGISTER request that pretend to be</div>
<div> # generated by local subscriber (domain from FROM URI is local)</div><div> if (!proxy_authorize("", "subscriber")) {</div><div> proxy_challenge("", "0");</div>
<div> exit;</div><div> }</div><div> if (!db_check_from()) {</div><div> sl_send_reply("403","Forbidden auth ID");</div>
<div> exit;</div><div> }</div><div><br></div><div> consume_credentials();</div><div> # caller authenticated</div><div><br>
</div><div> } else {</div><div> # if caller is not local, then called number must be local</div><div><br></div><div> if (!is_uri_host_local()) {</div><div> send_reply("403","Rely forbidden");</div>
<div> exit;</div><div> }</div><div> }</div><div><br></div><div> }</div><div><br></div><div> # preloaded route checking</div><div> if (loose_route()) {</div>
<div> xlog("L_ERR",</div><div> "Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");</div><div> if (!is_method("ACK"))</div><div> sl_send_reply("403","Preload Route denied");</div>
<div> exit;</div><div> }</div><div><br></div><div> # record routing</div><div> if (!is_method("REGISTER|MESSAGE"))</div><div> record_route();</div><div><br></div>
<div> # account only INVITEs</div><div> if (is_method("INVITE")) {</div><div><br></div><div> # create dialog with timeout</div><div> if ( !create_dialog("B") ) {</div>
<div> send_reply("500","Internal Server Error");</div><div> exit;</div><div> }</div><div><br></div><div> setflag(ACC_DO); # do accounting</div>
<div> }</div><div><br></div><div><br></div><div> if (!is_uri_host_local()) {</div><div> append_hf("P-hint: outbound\r\n");</div><div><br></div><div> route(relay);</div>
<div> }</div><div><br></div><div> # requests for my domain</div><div><br></div><div> if (is_method("PUBLISH|SUBSCRIBE"))</div><div> {</div><div> sl_send_reply("503", "Service Unavailable");</div>
<div> exit;</div><div> }</div><div><br></div><div> if (is_method("REGISTER"))</div><div> {</div><div> fix_nated_register();</div><div> fix_nated_contact();</div>
<div> # authenticate the REGISTER requests</div><div> if (!www_authorize("", "subscriber"))</div><div> {</div><div> www_challenge("", "0");</div>
<div> exit;</div><div> }</div><div><br></div><div> if (!db_check_to())</div><div> {</div><div> sl_send_reply("403","Forbidden auth ID");</div>
<div> exit;</div><div> }</div><div><br></div><div> if ( 0 ) setflag(TCP_PERSISTENT);</div><div><br></div><div> if (!save("location"))</div><div>
sl_reply_error();</div><div><br></div><div> exit;</div><div> }</div><div><br></div><div> if ($rU==NULL) {</div><div> # request with no Username in RURI</div>
<div> sl_send_reply("484","Address Incomplete");</div><div> exit;</div><div> }</div><div><br></div><div><br></div><div> # apply DB based aliases</div><div> alias_db_lookup("dbaliases");</div>
<div><br></div><div><br></div><div> # apply transformations from dialplan table</div><div> dp_translate("0","$rU/$rU");</div><div><br></div><div><br></div><div> if ($rU=~"^\+[1-9][0-9]+$") {</div>
<div><br></div><div> if (!do_routing("0")) {</div><div> send_reply("500","No PSTN Route found");</div><div> exit;</div><div> }</div>
<div><br></div><div> route(relay);</div><div> exit;</div><div> }</div><div><br></div><div><br></div><div> # do lookup with method filtering</div><div> if (!lookup("location","m")) {</div>
<div> if (!db_does_uri_exist()) {</div><div> send_reply("420","Bad Extension");</div><div> exit;</div><div> }</div><div><br></div>
<div> t_newtran();</div><div> t_reply("404", "Not Found");</div><div> exit;</div><div> }</div><div><br></div><div> if (isbflagset(NAT)) setflag(NAT);</div>
<div><br></div><div> # when routing via usrloc, log the missed calls also</div><div> setflag(ACC_MISSED);</div><div> route(relay);</div><div>}</div><div><br></div><div><br></div><div>route[relay] {</div>
<div> # for INVITEs enable some additional helper routes</div><div> if (is_method("INVITE")) {</div><div> if(nat_uac_test("127")){</div><div> # Usuario identificado como atras de nat</div>
<div> xlog("Usuario atras de nat em handle nat");</div><div> fix_nated_contact();</div><div> }</div><div> if (isflagset(NAT)) {</div><div>
rtpproxy_offer("ro");</div><div> }</div><div><br></div><div> t_on_branch("per_branch_ops");</div><div> t_on_reply("handle_nat");</div>
<div> t_on_failure("missed_call");</div><div> }</div><div><br></div><div> if (isflagset(NAT)) {</div><div> add_rr_param(";nat=yes");</div><div> }</div>
<div><br></div><div> if (!t_relay()) {</div><div> send_reply("500","Internal Error");</div><div> };</div><div> exit;</div><div>}</div><div><br></div><div><br></div><div>
<br></div><div><br></div><div>branch_route[per_branch_ops] {</div><div> xlog("new branch at $ru\n");</div><div>}</div><div><br></div><div><br></div><div>onreply_route[handle_nat] {</div><div># if (nat_uac_test("1"))</div>
<div># fix_nated_contact();</div><div># if ( isflagset(NAT) )</div><div># rtpproxy_answer("ro");</div><div># xlog("incoming reply\n");</div><div><br></div><div># Recebemos resposta do pacote</div>
<div> xlog("incoming reply\n");</div><div><br></div><div> # Verificamos aqui se esta requisicao possui SDP</div><div> if(is_method("ACK") && has_body("application/sdp")){</div>
<div> # Atendemos no rtpproxy</div><div> rtpproxy_answer();</div><div><br></div><div> }else if(has_body("application/sdp")){</div><div> # possuindo sdp vamos re-escrever a informacao</div>
<div> #fix_nated_sdp("2");</div><div> rtpproxy_offer();</div><div> }</div><div><br></div><div><br></div><div> # Vamos tentar identificar se o usuario esta atras de nat</div>
<div> # executamos neste nivel pois aqui sera executado</div><div> # no momento que recebemos resposta, assim garantimos</div><div> # que em todos os casos manipularemos o nat</div><div> if(nat_uac_test("127")){</div>
<div> # Usuario identificado como atras de nat</div><div> xlog("Usuario atras de nat em handle nat");</div><div> fix_nated_contact();</div><div> }</div><div><br>
</div><div>}</div><div><br></div><div><br></div><div>failure_route[missed_call] {</div><div> if (t_was_cancelled()) {</div><div> exit;</div><div> }</div><div><br></div><div> # uncomment the following lines if you want to block client</div>
<div> # redirect based on 3xx replies.</div><div> ##if (t_check_status("3[0-9][0-9]")) {</div><div> ##t_reply("404","Not found");</div><div> ## exit;</div><div>
##}</div><div><br></div><div><br></div><div>}</div><div><br></div><div><br></div><div><br></div><div>local_route {</div><div> if (is_method("BYE") && $DLG_dir=="UPSTREAM") {</div>
<div><br></div><div> acc_db_request("200 Dialog Timeout", "acc");</div><div><br></div><div> }</div><div>}</div><div><br></div><div><br></div><div><br></div><div><br></div><div>Atenciosamente.</div>
<div>Eng.° Rodrigo Ferreira</div><div>ITIL v3 Certified</div><div><br></div><div><br></div><div><br></div><div><br></div><div>2013/10/4 Rodrigo Ferreira <<a href="mailto:rsferreira08@gmail.com">rsferreira08@gmail.com</a>></div>
<div>Yes I did Mike,</div><div><br></div><div>and my SIP messages are ok. </div><div><br></div><div>I will take a look at your tutorial.</div><div><br></div><div>tks</div><div><br></div><div><br></div><div><br></div><div>
Atenciosamente.</div><div>Eng.° Rodrigo Ferreira</div><div>ITIL v3 Certified</div><div><br></div><div><br></div><div><br></div><div><br></div><div>2013/10/3 Mike Tesliuk <<a href="mailto:mike@ultra.net.br">mike@ultra.net.br</a>></div>
<div>Did you try to made some debug rodrigo ? maybe some rule is missing on your route script</div><div><br></div><div>i made a tutorial over version 1.9 that you can check</div><div><br></div><div>[portugues] <a href="http://opensips.com.br/wiki/index.php?title=Opensips_NAT_Script_com_RTPproxy">http://opensips.com.br/wiki/index.php?title=Opensips_NAT_Script_com_RTPproxy</a></div>
<div>[english] <a href="http://opensips.com.br/wiki/index.php?title=Oopensips_Nat_script_with_RTPPROXY_-_English">http://opensips.com.br/wiki/index.php?title=Oopensips_Nat_script_with_RTPPROXY_-_English</a></div><div><br>
</div><div><br></div><div><br></div><div><br></div><div>2013/10/3 Rodrigo Ferreira <<a href="mailto:rsferreira08@gmail.com">rsferreira08@gmail.com</a>></div><div>Hi guys,</div><div><br></div><div>After a long time without using Opensips (almost a year) I tried to install the opensips 1.10 and everything went well BUT when I make a call, there's no audio, I know that is something because of NAT, but I have the nathelper and rtpproxy configuration on my opensips.cfg.</div>
<div><br></div><div>There's anything else that I could take a look at?</div><div><br></div><div>Thanks</div><div><br></div><div><br></div><div>Atenciosamente.</div><div>Eng.° Rodrigo Ferreira</div><div>ITIL v3 Certified</div>
<div><br></div><div><br></div><div><br></div><div>_______________________________________________</div><div>Users mailing list</div><div><a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a></div><div><a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a></div>
<div><br></div><div><br></div><div><br></div><div>_______________________________________________</div><div>Users mailing list</div><div><a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a></div><div><a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a></div>
<div><br></div><div><br></div></div></div>