Thank you for your answer. Can you elaborate on "voice switch and voice calls only"?
So there is nothing I can do about it? To make a connection working fast and reliable? > On 08 May 2014, at 04:07, [email protected] wrote: > > You are confronted with the classic problem “this voice switch was designed > to handle UDP and voice calls only” problem. > > This is a VoIP industry level problem, which is yet to be properly addressed > by anyone in the field. > > Adrian > >> On 07 May 2014, at 21:16, Maksim Solovjov <[email protected]> wrote: >> >> Hello, >> >> From time to time I am encountering a problem while sending instant >> messages ( using sip MESSAGE request ) or sending call invites. >> Sometimes it works well and fast, sometimes it doesn't, sometimes >> messages are delivered very slowly. With two last options ( doesn't >> work at all and/or messages are delivered slowly ), I get the >> following errors: >> >> ERROR:core:tcp_blocking_connect: timeout 10 s elapsed from 10 s >> ERROR:core:tcpconn_connect: tcp_blocking_connect failed >> ERROR:core:tcp_send: connect failed >> ERROR:tm:msg_send: tcp_send failed >> ERROR:tm:t_forward_nonack: sending request failed >> >> My devices are behind NAT ( mobile phones ) and I am using pjsip with >> tcp connection. >> Moreover I am trying to set up a persistent connection and hope, that >> server will reuse it, when it needs to send something. I am sending >> keep-alive packets every 600 seconds and I am not using any STUN or >> TURN servers. >> >> My opensips and rtpproxy are running on EC2, so are behind NAT as well. >> And I don't have any STUN or TURN servers intalled ( should I install >> any of it? ) >> >> Any help, advice or suggestions would be highly appreciated! >> Here is my opensips.cfg, please help: >> >> debug=3 >> log_stderror=no >> log_facility=LOG_LOCAL1 >> >> fork=yes >> children=4 >> >> dns=no >> rev_dns=no >> >> disable_tcp=no >> >> listen=udp:private-ip:5060 # CUSTOMIZE ME >> listen=tcp:private-ip:5060 >> >> advertised_address="public-ip" >> alias="public-ip:5060" >> alias="domain.com:5060" #// NB!! domain address is not associated with >> public-ip ( using A record ) >> >> db_default_url="mysql://opensips:opensipsrw@database-url/opensips" >> >> mpath="/usr/lib64/opensips/modules/" >> >> ### MYSQL module >> loadmodule "db_mysql.so" >> >> ### Domain module >> loadmodule "domain.so" >> modparam("domain", "db_url", >> "mysql://opensips:opensipsrw@database-url/opensips") >> >> >> #### 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) >> >> #### USeR LOCation module >> loadmodule "usrloc.so" >> modparam("usrloc", "nat_bflag", "NAT") >> modparam("usrloc", "db_mode", 0) >> >> #### REGISTRAR module >> loadmodule "registrar.so" >> modparam("registrar", "tcp_persistent_flag", "TCP_PERSISTENT") >> modparam("registrar", "received_avp", "$avp(rcv)") >> >> loadmodule "nathelper.so" >> modparam("nathelper", "received_avp", "$avp(rcv)") >> >> loadmodule "rtpproxy.so" >> modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:12221") >> >> #### ACCounting module >> loadmodule "acc.so" >> modparam("acc", "early_media", 0) >> modparam("acc", "report_cancels", 0) >> modparam("acc", "detect_direction", 0) >> modparam("acc", "failed_transaction_flag", "ACC_FAILED") >> modparam("acc", "log_flag", "ACC_DO") >> modparam("acc", "log_missed_flag", "ACC_MISSED") >> >> >> route{ >> >> force_rport(); #nathelper >> if (nat_uac_test("23")) { #nathelper >> if (is_method("REGISTER")) { >> fix_nated_register(); #nathelper >> setbflag(NAT); >> } else { >> fix_nated_contact(); #nathelper >> setflag(NAT); >> } >> } >> >> if (!mf_process_maxfwd_header("10")) { >> sl_send_reply("483","Too Many Hops"); >> exit; >> } >> if (has_totag()) { >> # sequential requests within a dialog should >> # take the path determined by record-routing >> if (loose_route()) { >> >> if (is_method("BYE")) { >> setflag(ACC_DO); # do accounting ... >> setflag(ACC_FAILED); # ... 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(NAT); >> >> # route it out to whatever destination was set >> by loose_route() >> # in $du (destination URI). >> route(relay); >> } 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 (from_uri==myself) >> { >> } else { >> # if caller is not local, then called number >> must be local >> if (!uri==myself) { >> 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")) { >> >> setflag(ACC_DO); # do accounting >> } >> >> if (!uri==myself) { >> append_hf("P-hint: outbound\r\n"); >> route(relay); >> } >> # requests for my domain >> if (is_method("PUBLISH|SUBSCRIBE")) >> { >> sl_send_reply("503", "Service Unavailable"); >> exit; >> } >> >> if (is_method("REGISTER")) >> { >> setflag(TCP_PERSISTENT); >> 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")) { >> t_newtran(); >> t_reply("404", "Not Found"); >> exit; >> } >> >> if (isbflagset(NAT)) setflag(NAT); >> >> # when routing via usrloc, log the missed calls also >> setflag(ACC_MISSED); >> route(relay); >> } >> >> route[relay] { >> # for INVITEs enable some additional helper routes >> if (is_method("INVITE")) { >> >> if (isflagset(NAT)) { >> rtpproxy_offer("ro"); >> } >> >> t_on_branch("per_branch_ops"); >> t_on_reply("handle_nat"); >> t_on_failure("missed_call"); >> >> } >> >> if (isflagset(NAT)) { >> add_rr_param(";nat=yes"); >> } >> >> if (!t_relay()) { >> send_reply("500","Internal Error"); >> }; >> exit; >> } >> >> branch_route[per_branch_ops] { >> xlog("new branch at $ru\n"); >> } >> >> >> onreply_route[handle_nat] { >> if (nat_uac_test("1")) >> fix_nated_contact(); >> if ( isflagset(NAT) ) >> rtpproxy_answer("ro"); >> xlog("incoming reply\n"); >> } >> >> failure_route[missed_call] { >> 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; >> ##} >> >> } >> >> >> Thank you in advance! >> >> _______________________________________________ >> 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
