[SR-Users] AWS LOOP detected

Klaus Darilion klaus.mailinglists at pernau.at
Mon Oct 21 17:05:17 CEST 2013


It's difficult and time consuming to debug issues without seeing the 
config file and without seeing the packet traces (ngrep -W byline -d any 
-t -q -p "" port 5060).

Anyway, as an admin you should understand how Kamailio works. Thus it 
would be a good exercise to find the problem yourself. In severl places 
in your config you have routing decisions (if ... {}). Identify these 
places, and put meaningful logging (xlog("...") ) before and after the 
if statement.

Then make a call and watch the logfile. This will give you an 
understanding how Kamailio works.

regards
Klaus

On 21.10.2013 16:04, julian arsanches wrote:
> 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  <http://1.1.1.1:5060>  advertise2.2.2.2:5060  <http://2.2.2.2:5060>
> />>/
> />>/
> />>/  alias=1.1.1.1:5060  <http://1.1.1.1:5060>  <http://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>  <http://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>  <http://1.1.1.1:5060  <http://1.1.1.1:5060/>> advertise2.2.2.2:5060  <http://2.2.2.2:5060>
> />>/  <http://2.2.2.2:5060  <http://2.2.2.2:5060/>>
> />>/
> />>/  alias=1.1.1.1:5060  <http://1.1.1.1:5060>  <http://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>  <http://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>
> />>/  <http://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%  <mailto:sip%25>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>  <http://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 until0 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>  <http://1.1.1.1:5060  <http://1.1.1.1:5060/>>
> />>/  2 sip:2.2.2.2:5060  <http://2.2.2.2:5060>  <http://2.2.2.2:5060  <http://2.2.2.2:5060/>>
> />>/  3 sip:3.3.3.3:5060  <http://3.3.3.3:5060>  <http://3.3.3.3:5060  <http://3.3.3.3:5060/>>
> />>/  3 sip:3.3.3.5:5060  <http://3.3.3.5:5060>  <http://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.com  <http://www.asipto.com/>
> http://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 athttp://www.asipto.com  <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>
>
>
> _______________________________________________
> 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
>



More information about the sr-users mailing list