[SR-Users] AWS LOOP detected

julian arsanches guandulito.com at gmail.com
Mon Oct 21 16:04:40 CEST 2013


Daniel, Klaus thanks a lot for your responses i do appreciate them,
just got me a bit confuse because on the documents as what Daniel
suggest to advertise directive for listen parameter, I do if you see
my config below that i advertise it and have an alias, kamailio still
sends an invite to itself without recognizing that it came from the
internal ip.


Is there anything else wrong that i am not putting on my advertise line ?

thanks i really apreciate your input.

Julian.

*listen=udp:1.1.1.1:5060 advertise 2.2.2.2:5060*>>* *>>**>>*
alias=1.1.1.1:5060 <http://1.1.1.1:5060>*>>* alias=1.1.1.1*>>*
alias=2.2.2.2:5060 <http://2.2.2.2:5060>*>>* alias=2.2.2.2*

>Hello,
>
>for reference, in case kamailio is running behind nat, like on AWS, one
>should just use advertise directive for listen parameter, like:>
>
>listen=proto:privateip:port advertise publicip:port>
>
>
>See:
>
>http://www.kamailio.org/wiki/cookbooks/4.0.x/core#listen
>
>It simplifies the config by not needing to use alias parameter,
>advertised_address/set_addvertised_address() and record_route_preset().>
>
>Cheers,
>Daniel
>
>On 10/18/13 8:23 AM, Klaus Darilion wrote:
>**>**>* On 17.10.2013 17:31, julian arsanches wrote:*>>* Hi all, before hand thanks for all the support received on this channel.*>>**>>* I have an issue with an installed server on a aws instance which is*>>* giving me routing loops, my setup is simple, i have alias set for both*>>* ips internal and external and the loop still present when t_relay don't*>>* find any routes to relay it just sent it to  itself with the public ip*>>* then the loop starts.*>>**>>* can any one please advise how can i prevent that or just tell t_relay*>>* that if there is no more routes just respond with a cancel or stop*>>* searching.*>**>* If you call t_relay, then the message will be forwarded to $ru (or to *>* $du if $du is set). t_relay itself does not have any logic inside.*>**>* Thus, if you do not want a message to be forwarded, then you must not *>* call t_relay.*>**>* If you do not want to send a message to a certain destination, then *>* set $ru (the domain part) to the respective destination.*>**>* One issue may be the aliases. If Kamailio thinks that it is not *>* authoritative for a domain, then it forwards the message to the *>* domain. Kamailio by default feels authoritative for the IP addresses *>* on which it listens (the private IP addresses). Thus if a request is *>* received by Kamailio, but the RURI (request URI, $ru) indicated the *>* public IP address, KAmailio by default forwards the message to the *>* respective RURI (which my be forward again by AWS NAT to Kamailio).*>**>* Thus, alias=public.ip.addr.ess must be added to the config.*>**>* If there are still problems you have set debug=4 and track in the log *>* file how the message is processed, and where the routing decision *>* takes the wrong direction.*>**>* regards*>* Klaus*>**>>**>>* same thing happens when a gw code is not found on the dispatcher list *>>* file.*>>**>>* as i had read by just specifying the alias=domain it should take care of*>>* it but it is not happening perhaps because it is a AWS instance, or most*>>* likely i am missing something after the T_relay to stop the call from*>>* looping.*>>**>>* I do have several headers fix because i have an asterisk sending calls*>>* with lots of signalling calls added to the call that i need to remove*>>* before the call is passed out to a carrier or another UA, Kamailio is*>>* just proxing the calls between asterisk and the outside world no Media*>>* handling, No registrations.*>>**>>*   Again thanks for any tips to find my answer or if anyone had a similar*>>* issue thanks again.*>>**>>* thanks for any help .*>>**>>* Julian.*>>**>>* on this setup i have*>>**>>* public ip as 2.2.2.2*>>**>>* private IP as 1.1.1.1*>>**>>**>>* #!KAMAILIO*>>* ####### Global Parameters #########*>>**>>* #!ifdef WITH_DEBUG*>>* debug=4*>>* log_stderror=yes*>>* #!else*>>* #debug=2*>>* #log_stderror=yes*>>* #!endif*>>**>>* memdbg=5*>>* memlog=5*>>**>>* log_facility=LOG_LOCAL7*>>**>>* fork=yes*>>* children=6*>>**>>* auto_aliases=no*>>**>>**>>* listen=udp:1.1.1.1:5060 <http://1.1.1.1:5060> advertise 2.2.2.2:5060*>>* <http://2.2.2.2:5060>*>>**>>* alias=1.1.1.1:5060 <http://1.1.1.1:5060>*>>* alias=1.1.1.1*>>* alias=2.2.2.2:5060 <http://2.2.2.2:5060>*>>* alias=2.2.2.2*>>**>>**>>* port=5060*>>**>>* enable_tls=no*>>**>>* #tcp_connection_lifetime=3605*>>**>>* #!ifdef WITH_SRCPATH*>>* mpath="modules_k:modules"*>>* #!else*>>* mpath="/usr/lib64/kamailio/modules_k/:/usr/lib64/kamailio/modules/"*>>**>>* #!endif*>>* loadmodule "db_mysql.so"*>>* ##loadmodule "mi_fifo.so"*>>* loadmodule "tm.so"*>>* loadmodule "sl.so"*>>* loadmodule "acc.so"*>>* loadmodule "rr.so"*>>* loadmodule "maxfwd.so"*>>* loadmodule "uac.so"*>>* loadmodule "textops.so"*>>* loadmodule "pv.so"*>>* loadmodule "dispatcher.so"*>>* loadmodule "usrloc.so"*>>* loadmodule "registrar.so"*>>* loadmodule "siputils.so"*>>* loadmodule "sanity.so"*>>* loadmodule "ctl.so"*>>* loadmodule "mi_rpc.so"*>>* loadmodule "avpops.so"*>>* #!ifdef WITH_NAT*>>* loadmodule "nathelper.so"*>>* loadmodule "rtpproxy.so"*>>* #!endif*>>* loadmodule "xlog.so"*>>* ##mysqlcdr*>>* modparam("acc", "db_flag", 2)*>>* modparam("acc", "db_missed_flag", 3)*>>* modparam("acc", "report_cancels", 1)*>>* modparam("acc", "db_url", "mysql://openser:password@1.1.1.2/openser*>>* <http://openser:password@1.1.1.2/openser>")*>>* modparam("acc", "db_extra", "from_uri=$fu; to_uri=$tu; intid=$fU;*>>* type_call=$si; dst_ip=$ru; carriercode=$tu;callmode=$var(out)" )*>>**>>* #loadmodule "carrierroute"*>>* modparam("tm", "cancel_b_method", 1)*>>* modparam("tm", "failure_reply_mode", 3)*>>* modparam("tm", "fr_timer", 30000)*>>* modparam("tm", "fr_inv_timer", 120000)*>>**>>* modparam("dispatcher", "list_file", "/etc/kamailio/dispatcher.lst")*>>* modparam("rr", "enable_full_lr", 1)*>>**>>* #!ifdef WITH_NAT*>>* # ----- rtpproxy params -----*>>* modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:7722*>>* <http://127.0.0.1:7722>")*>>**>>* # ----- nathelper params -----*>>* modparam("nathelper", "natping_interval", 30)*>>* modparam("nathelper", "ping_nated_only", 1)*>>* modparam("nathelper", "sipping_bflag", FLB_NATSIPPING)*>>* modparam("nathelper", "sipping_from", "sip:pinger at kamailio.org <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>*>>* <mailto:sip%3Apinger at kamailio.org <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>>")*>>* # ----- mi_fifo params -----*>>**>>* ##modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo")*>>**>>* # params needed for NAT traversal in other modules*>>* modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")*>>* modparam("usrloc", "nat_bflag", FLB_NATB)*>>* #!endif*>>* modparam("xlog", "buf_size", 8192)*>>* modparam("xlog", "force_color", 1)*>>* #carrierroute*>>* #modparam("carrierroute", "config_file", *>>* "/etc/kamailio/carrierroute.conf")*>>* #end carrierroute*>>**>>* modparam("pv", "shvset", "ruta=s:$ru")*>>* modparam("pv", "varset","in=s:IN")*>>* modparam("pv", "varset","out=s:OUT")*>>* #################BEGINING MAINROUTE##################*>>* request_route {*>>**>>*          if (!mf_process_maxfwd_header("4")) {*>>*                  sl_send_reply("483","Too Many Hops");*>>* drop;*>>*                  exit;*>>*          }*>>* ##*>>*   # initial sanity checks -- too long messages*>>*         if (msg:len >=  2048 ) {*>>*                 sl_send_reply("513", "Message too big");*>>* xlog("out header CHECK 513 baderror from_uri=$fu;($ct++)<$tU---=$var(n)>*>>* to_uri=$tu; intid=$fU; type_call=$si; dst_ip=$ru;*>>* carriercode=$var(z);callmode=$var(out)");*>>* drop;*>>*                 exit;*>>*         };*>>* #*>>*          if(is_method("OPTIONS")) {*>>*              # send reply for each options request*>>*              sl_send_reply("200", "ok");*>>*              exit();*>>*           }*>>**>>**>>**>>* #*>>* if ( is_method("ACK") ) {*>>* if ( t_check_trans() ) {*>>* # no loose-route, but stateful ACK;*>>* # must be an ACK after a 487*>>* # or e.g. 404 from upstream server*>>* $var(n)=$(tU{s.substr,3,0});*>>* $var(i)=$(ct{re.subst,/^.*11811(.*)/"\1/});*>>**>>* $var(t)=$(fn{re.subst,/^.*11811(.*)/"\1/});*>>**>>* $var(r)=$rd; ##to domain*>>* $fU=$(fU{s.substr,14,0});*>>* $fn=$var(t);*>>* $tU=$var(n);*>>* $td=$var(r);*>>**>>* subst('/^Contact:.*11811(.*)$/Contact: <sip:\1\2/ig');*>>**>>* # Remove prefixes numbers from Contact\*>>* t_relay();*>>* exit;*>>* } else {*>>* # ACK without matching transaction ... ignore and discard*>>* $var(n)=$(tU{s.substr,3,0});*>>* $var(i)=$(ct{re.subst,/^.*11811(.*)/"\1/});*>>**>>* $var(t)=$(fn{re.subst,/^.*11811(.*)/"\1/});*>>**>>* $var(r)=$rd; ##to domain*>>* $fU=$(fU{s.substr,14,0});*>>* $fn=$var(t);*>>* $tU=$var(n);*>>* $td=$var(r);*>>**>>* subst('/^Contact:.*11811(.*)$/Contact: <sip:\1\2/ig');*>>* t_relay();*>>* exit;*>>* }*>>* }*>>* ##responding to bye requests and modifying headers to match invite*>>*     if(method=="BYE") {*>>*     #Account BYE transactions*>>* #$var(d) = $tu;*>>* #$var(e)=$(var(d){s.substr,4,3});*>>* setflag(2);*>>* setflag(10);*>>* $var(n)=$(tU{s.substr,3,0});*>>* $var(i)=$(ct{re.subst,/^.*11811(.*)/"\1/});*>>**>>* $var(t)=$(fn{re.subst,/^.*11811(.*)/"\1/});*>>**>>* $var(r)=$rd; ##to domain*>>* $fU=$(fU{s.substr,14,0});*>>* $fn=$var(t);*>>* $tU=$var(n);*>>* $td=$var(r);*>>**>>* subst('/^Contact:.*11811(.*)$/Contact: <sip:\1\2/ig');*>>* t_relay();*>>*          exit;*>>* };*>>**>>* #CANCEL processing*>>* if (method=="CANCEL") {*>>* setflag(2);*>>* setflag(3);*>>* $var(n)=$(tU{s.substr,3,0});*>>* $var(i)=$(ct{re.subst,/^.*11811(.*)/"\1/});*>>**>>* $var(t)=$(fn{re.subst,/^.*11811(.*)/"\1/});*>>**>>* $var(r)=$rd; ##to domain*>>* $fU=$(fU{s.substr,14,0});*>>* $fn=$var(t);*>>* $tU=$var(n);*>>* $td=$var(r);*>>**>>* subst('/^Contact:.*11811(.*)$/Contact: <sip:\1\2/ig');*>>* t_relay();*>>*          exit;*>>* ##if (t_check_trans()) t_relay();*>>**>>* exit;*>>* };*>>**>>**>>* #*>>**>>**>>* #*>>*         if (loose_route()) {*>>**>>**>>* ##*>>* if(is_method("OPTIONS")) {*>>*              # send reply for each options request*>>*              sl_send_reply("200", "ok");*>>*              exit();*>>*           }*>>* ##*>>* if(method=="BYE") {*>>*     #Account BYE transactions*>>* setflag(2);*>>* };*>>**>>**>>* ##CANCEL processing*>>* if (method=="CANCEL") {*>>* setflag(3);*>>* $var(n)=$(tU{s.substr,3,0});*>>* $var(i)=$(ct{re.subst,/^.*11811(.*)/"\1/});*>>**>>* $var(t)=$(fn{re.subst,/^.*11811(.*)/"\1/});*>>**>>* $var(r)=$rd; ##to domain*>>* $fU=$(fU{s.substr,14,0});*>>* $fn=$var(t);*>>* $tU=$var(n);*>>* $td=$var(r);*>>* subst('/^Contact:.*11811(.*)$/Contact: <sip:\1\2/ig');*>>* if (t_check_trans()) t_relay();*>>* exit;*>>* };*>>**>>* if (!t_relay()) {*>>*                          sl_reply_error();*>>*                  }*>>*                  exit;*>>*         }*>>**>>**>>*   if (is_method("INVITE")) { #Procesing invites*>>**>>**>>* record_route();*>>*          }*>>* ##LOGGING CALL BEFORE IS PROCESSED*>>* xlog("before strip,< time [$Tf] > Aip= $src_ip, r-uri($ru\n");*>>* xlog("before from_uri=$fu; to_uri=$tu; pai=<<$ct>>;intid=$fU;*>>* type_call=$si; dst_ip=$ru; carriercode=$tu;callmode=$var(out) *>>* --$$--$ou");*>>* #creando rutas*>>* setflag(2);*>>* # Account Missed calls*>>* setflag(3);*>>* ###VARIABLES FOR MODIFICATIONS*>>* $var(x) = $(ru);*>>**>>* $var(y)=$(var(x){s.substr,4,3});*>>**>>* $var(z)=$(var(y){s.int <http://s.int>});*>>**>>* $var(t)=$(var(x){s.substr,7,0});*>>**>>* $var(h)=$(var(x){s.substr,0,7});*>>**>>* $var(o)=$(fU{s.substr,14,0});*>>**>>* if($(var(x){s.len}) < 3)*>>* {*>>*   $var(z)='0'+ $var(z);*>>* }*>>**>>* xlog("dsroute $var(z)fullruri($ru)\n");*>>**>>**>>* strip(3);*>>**>>* xlog("after strip time [$Tf] method ($rm) via el code*>>* ($var(z)--varhex($var(h))-- ($var(y))\n");*>>* xlog("after from_uri=$fu; to_uri=$tu; intid=$fU; type_call=$si;*>>* dst_ip=$ru; carriercode=$var(z);callmode=$var(out)");*>>**>>* ds_select_domain ("$var(z)", "4");#carrer dynamic*>>**>>**>>* ###########KILLING BUGGIES#######when t_realy fails to find a route a*>>* loop is generate then strip takes off a digit until 0 at 2.2.2.2 <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>*>>* <mailto:0 at 2.2.2.2 <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>> is left for to: user this kills that call.#####*>>* if ($(tU{s.len}) < 4) {*>>* xlog("CHECK TU 1bad kILLING BUGGIES>>> $tu--$td-$tU-$tt--$dd-$dd-$du-*>>* -<<$rd>$ru --- $oU> pai+++ <<$ct>>++ from_uri=$fu;<$tU---=$var(n)>*>>* to_uri=$tu; }pai<$ai> id=$fU; type_call=$si; dst_ip=$ru;*>>* carriercode=$var(z);callmode=$var(out)");*>>* ##sl_reply_error();*>>* ##sl_send_reply("513", "Message too big");*>>* ##sl_send_reply("488","Not Acceptable Here");*>>* sl_send_reply("488","Not Acceptable Here");*>>* #t_reset_retr();*>>* #t_release();*>>* ##if(!t_relay()){ sl_reply_error(); drop; exit;}*>>**>>* #if (!t_relay()) { sl_reply_error(); break; };*>>* # t_relay();*>>* #setflag(2);*>>* drop;*>>* exit;*>>**>>* }; ## Endif less than 4*>>* ##############END KILLING###########*>>* ################ROUTE SELECTION###############*>>* if($(fn{s.len}) > 10) { # IF WE CHECK FOR FROM: ROUTEID MUST BE LONGER*>>* THAN 10 DIGITS TO BE A VALID ROUTE*>>**>>* xlog("out header CHECK more than 10 digits BEFORE*>>* from_uri=$fu;($ct++)<$tU---=$var(n)> to_uri=$tu; intid=$fU;*>>* type_call=$si; dst_ip=$ru; carriercode=$var(z);callmode=$var(out)");*>>* $var(n)=$(tU{s.substr,3,0});*>>* $var(i)=$(ct{re.subst,/^.*00700(.*)/"\1/});*>>* $var(t)=$(fn{re.subst,/^.*00700(.*)/"\1/});*>>* $var(r)=$rd; ##to domain*>>* $fU=$(fU{s.substr,14,0});*>>* $fn=$var(t);*>>* $tU=$var(n);*>>* $td=$var(r);*>>**>>* subst('/^Contact:.*11811(.*)$/Contact: <sip:\1\2/ig'); # Remove number*>>* from Contact*>>**>>* ##if(!t_relay()){ sl_reply_error(); drop; exit;}*>>**>>* if (!t_relay()) { sl_reply_error(); break; };*>>**>>* # t_relay();*>>**>>* drop;*>>*   exit;*>>**>>* };*>>**>>* ################ENDrouteselect##############################*>>**>>**>>* ###############AFTER LAST IF##############reply 488 ANY CALL THAT DID*>>* NOT FOUND A ROUTE.*>>* sl_send_reply("488","Not Acceptable Here");*>>* drop;*>>* exit;*>>* }*>>**>>* ###################END MAINROUTE#################*>>**>>**>>**>>**>>**>>* On My dispatcher.lst i have*>>**>>**>>* 1 sip:1.1.1.1:5060 <http://1.1.1.1:5060>*>>* 2 sip:2.2.2.2:5060 <http://2.2.2.2:5060>*>>* 3 sip:3.3.3.3:5060 <http://3.3.3.3:5060>*>>* 3 sip:3.3.3.5:5060 <http://3.3.3.5:5060>*>>* ...*>>**>>**>>**>>**>>* _______________________________________________*>>* SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list*>>* sr-users at lists.sip-router.org <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>*>>* http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users*>>**>**>* _______________________________________________*>* SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list*>* sr-users at lists.sip-router.org <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>*>* http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users*
-- 
Daniel-Constantin Mierla -
http://www.asipto.comhttp://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
Kamailio Advanced Trainings - Berlin, Nov 25-28; Miami, Nov 18-20, 2013
   - more details about Kamailio trainings at http://www.asipto.com -



------------------------------


   - Previous message: [SR-Users] Loop detected on aws
setup<http://lists.sip-router.org/pipermail/sr-users/2013-October/080128.html>
   - Next message: [SR-Users] Proxy-Registrar call
issues<http://lists.sip-router.org/pipermail/sr-users/2013-October/080126.html>
   - *Messages sorted by:* [ date
]<http://lists.sip-router.org/pipermail/sr-users/2013-October/date.html#80129>
    [ thread ]<http://lists.sip-router.org/pipermail/sr-users/2013-October/thread.html#80129>
    [ subject ]<http://lists.sip-router.org/pipermail/sr-users/2013-October/subject.html#80129>
    [ author ]<http://lists.sip-router.org/pipermail/sr-users/2013-October/author.html#80129>

------------------------------
More information about the sr-users mailing
list<http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20131021/c6e112b2/attachment-0001.html>


More information about the sr-users mailing list