[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