Re: [SR-Users] kamailio as load balancer

2018-03-16 Thread Daniel Tryba
On Thu, Mar 15, 2018 at 03:32:00PM +, Seyed Mohammad Mirheydari wrote:
> I have 5 asterisk servers. And I want to use kamailio as load balancer.
> How can route sip calls from outside to asterisk servers?
> 
> Note:
> I installed kamailio and mairadb , etc.
> I configured subscriber for kamailio.
> And add my 5 servers to databse.
> 
> Hust to know how to change the file kamailio.cfg to route all incoming calls 
> to my 5 asterisk server (round robin).

This can be accomplished with the dispatcher module. There is an example
in 
https://www.kamailio.org/docs/modules/stable/modules/dispatcher.html#dispatcher.ex.config
It does exactly what you requested. 

Now if for example you want to have subscribers REGISTER or route
INVITEs from these asterisk backends to the outside work through these
proxies, you'll need to to adapt some (minor) details.


___
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


Re: [SR-Users] INFO: Relevant fixes in the last releases

2018-03-16 Thread Daniel Tryba
On Wed, Mar 14, 2018 at 05:30:23PM +0100, Daniel-Constantin Mierla wrote:
> I want to highlight that the last stable versions (for the latest 3
> release series: 4.4, 5.0 and 5.1) include fixes for two issues that can
> crash a running instance of Kamailio, therefore it is strongly
> recommended to upgrade if you are using tmx or lcr modules.
> 
> Next week a CVE report is going to be created with more details about
> one of these issues.

It is not totaly clear for me if the issue that will be revealed is
already fixed in 4.4.7, 5.0.6, and 5.1.2 or whether we will need to
update to a new release next week. I guess/hope it is the former.

Kudos to the people/organisations finding these flaws and disclosing
responsibly.


___
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


Re: [SR-Users] Select last URI from Record-Route

2018-03-16 Thread John Petrini
Hi Carsten,

Thanks for the suggestion but it looks like that takes the URI from the
route header not record-route. I tested to be sure but the assignment fails
because there is no route header.


John Petrini
Platforms Engineer

[image: Call CoreDial] 215.297.4400 x 232 <215-297-4400>
[image: Call CoreDial] www.coredial.com 
[image: CoreDial] 751 Arbor Way, Hillcrest I, Suite 150 Blue Bell, PA 19422

The information transmitted is intended only for the person or entity to
which it is addressed and may contain confidential and/or privileged
material. Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by persons or
entities other than the intended recipient is prohibited. If you received
this in error, please contact the sender and delete the material from any
computer.

On Fri, Mar 16, 2018 at 12:32 PM, Carsten Bock  wrote:

> Hi,
>
> Check for $route_uri, we use it to determine the session-case (no or Mt)
> on the Proxy-CSCF.
>
> Thanks,
> Carsten
>
> Am 16.03.2018 17:07 schrieb "John Petrini" :
>
>> The simple answer to that is it's a last ditch effort to look up an AOR
>> record on a reply but it's part of other logic we use to establish direct
>> media.
>>
>> ___
>> Kamailio (SER) - Users Mailing List
>> sr-users@lists.kamailio.org
>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>
>>
> ___
> Kamailio (SER) - Users Mailing List
> sr-users@lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
>
___
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


Re: [SR-Users] Select last URI from Record-Route

2018-03-16 Thread Carsten Bock
Hi,

Check for $route_uri, we use it to determine the session-case (no or Mt) on
the Proxy-CSCF.

Thanks,
Carsten

Am 16.03.2018 17:07 schrieb "John Petrini" :

> The simple answer to that is it's a last ditch effort to look up an AOR
> record on a reply but it's part of other logic we use to establish direct
> media.
>
> ___
> Kamailio (SER) - Users Mailing List
> sr-users@lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
>
___
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


Re: [SR-Users] Select last URI from Record-Route

2018-03-16 Thread John Petrini
The simple answer to that is it's a last ditch effort to look up an AOR
record on a reply but it's part of other logic we use to establish direct
media.
___
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


Re: [SR-Users] Select last URI from Record-Route

2018-03-16 Thread Alex Balashov
I do have to wonder: what do you need to do that for? What are you
trying to accomplish?

On Fri, Mar 16, 2018 at 11:40:01AM -0400, John Petrini wrote:

> Hello list,
> 
> Does anyone how I can extract the last URI from a compact Record-Route
> header?
> 
> I've tried using a negative index in the parameter of my select but it
> returns the first URI in the header instead of the last.
> 
> $var(rr_last_uri) = @record_route.uri[-1];
> 
> Maybe there's another way instead of using selects?
> 
> Thanks,
> 
> John

> ___
> Kamailio (SER) - Users Mailing List
> sr-users@lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


-- 
Alex Balashov | Principal | Evariste Systems LLC

Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free) 
Web: http://www.evaristesys.com/, http://www.csrpswitch.com/

___
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


[SR-Users] Select last URI from Record-Route

2018-03-16 Thread John Petrini
Hello list,

Does anyone how I can extract the last URI from a compact Record-Route
header?

I've tried using a negative index in the parameter of my select but it
returns the first URI in the header instead of the last.

$var(rr_last_uri) = @record_route.uri[-1];

Maybe there's another way instead of using selects?

Thanks,

John
___
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


Re: [SR-Users] Need useful graphics ideas

2018-03-16 Thread Joel Serrano
Good stuff!! We use something similar too, so only stats served when
requested on 127.0.0.1/stats while
keeping websockets as usual.

I’m not good with grafana but it would be nice if anyone shares some
dashboard or graph ideas  that make the metrics look nice ;)

Joel.

On Fri, Mar 16, 2018 at 04:28 Karsten Horsmann  wrote:

> Hello Joel and List,
>
> okay i found a "maybe good" way to bind it to localhost without break WSS.
>
> Btw - if the returning lines of data within  var(metrics_count)  are
> higher than 100, the max_while_loops protection cuts off the rest.
>
> Mar 16 12:11:05 sipedge1 /usr/sbin/kamailio[3531]: ERROR: 
> [core/action.c:1348]: do_action(): runaway while (1049, 30): more then 100
> loops
> Mar 16 12:11:05 sipedge1 /usr/sbin/kamailio[3531]: ERROR: 
> [core/action.c:1505]: do_action(): run action error at:
> /etc/kamailio/kamailio.cfg:1055
>
> They you could disable or raise the value (i raised up the value).
> https://www.kamailio.org/wiki/cookbooks/5.0.x/core#max_while_loops
>
>
>
> [...]
> event_route[xhttp:request] {
> set_reply_close();
> set_reply_no_connect();
>
> #!ifdef WITH_JSONSTATS
> if ($Rp == MY_HTTP_PORT && dst_ip == "127.0.0.1") {
> # Metrics endpoint
> if ( src_ip == "127.0.0.1" && $hu =~ "^/stats" ) {
>
> jsonrpc_exec('{"jsonrpc": "2.0","method":
> "stats.get_statistics","params": ["all"],"id": 1}');
> $var(metrics_count) = 0;
> jansson_array_size("result", $jsonrpl(body),
> "$var(total_metrics)");
>
> while($var(metrics_count) < $var(total_metrics)) {
> jansson_get("result[$var(metrics_count)]",
> $jsonrpl(body), "$var(v)");
> $var(metric_key) =
> $(var(v){s.select,0,=}{s.trim}{s.replace,:,-});
> $var(metric_value) =
> $(var(v){s.select,1,=}{s.trim});
> jansson_set("integer", "$var(metric_key)",
> "$var(metric_value)", "$var(metrics_json)");
> $var(metrics_count) = $var(metrics_count) + 1;
> }
>
> xhttp_reply("200", "OK", "application/json",
> "$var(metrics_count)");
> exit;
>
> }
> }
> #!endif
>
>
> if ($Rp != MY_WS_PORT
> [...]
>
>
>
>
___
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


Re: [SR-Users] Lua script reload

2018-03-16 Thread Igor Olhovskiy
In most cases with parameter.

Regards, Igor

On Mar 16, 2018, 1:29 PM +0200, Daniel-Constantin Mierla , 
wrote:
> Hello,
> indeed, I looked at code and ds_is_from_list is not exported. Do you need to 
> use it with parameters or without?
> Cheers,
> Daniel
>
> On 15.03.18 15:55, Igor Olhovskiy wrote:
> > Hi!
> >
> > Checked with 5.1.4 about ds_is_from_list
> >
> > exporting KSR.dispatcher.ds_select(...)
> > exporting KSR.dispatcher.ds_select_limit(...)
> > exporting KSR.dispatcher.ds_select_domain(...)
> > exporting KSR.dispatcher.ds_select_domain_limit(...)
> > exporting KSR.dispatcher.ds_next_domain(...)
> > exporting KSR.dispatcher.ds_select_dst(...)
> > exporting KSR.dispatcher.ds_select_dst_limit(...)
> > exporting KSR.dispatcher.ds_next_dst(...)
> > initializing kemi sub-module: KSR.dispatcher (dispatcher) (8/24/261)
> >
> > Seems no function for check if source in dispatcher table….
> >
> > Also not mentioned here
> >
> > https://www.kamailio.org/docs/tutorials/devel/kamailio-kemi-framework/modules/#dispatcher
> >
> > Regards, Igor
> >
> > On Mar 14, 2018, 5:58 PM +0200, Daniel-Constantin Mierla 
> > , wrote:
> > >
> > >
> > > On 14.03.18 16:53, Igor Olhovskiy wrote:
> > > > It was has_body(), not has_totag()
> > > Ohh, I misread...
> > > >
> > > > Thanks for tip, will try to upgrade. This version was from debian repo.
> > > Probably from debian repo for master branch, which meanwhile has kamailio 
> > > 5.2.0-dev there.
> > >
> > > >
> > > > Also missing quite needed function like ds_is_from_list
> > >
> > > Stable branch releases 5.1.x should have it.
> > >
> > > Cheers,
> > > Daniel
> > >
> > > >
> > > > Regards, Igor
> > > >
> > > > On Mar 14, 2018, 11:13 AM +0200, Daniel-Constantin Mierla 
> > > > , wrote:
> > > > > Again, wrote in previous response, if you are looking for 
> > > > > has_totag(), you look at the wrong module.
> > > > > However, regarding the exports, you are using a version during devel 
> > > > > phase, upgrade to latest stable 5.1.x and you will get more exported 
> > > > > functions.
> > > > > On the other hand, for some of the functions related to string 
> > > > > search/comparison, I put lower priority, because they can be done in 
> > > > > the scripting language itself - Lua has more operations and functions 
> > > > > for string handling that we have in our modules. I do not recall by 
> > > > > heart right now if I exported all of them at the end, but there are 
> > > > > more than you listed here in 5.1.2.
> > > > > Cheers,
> > > > > Daniel
> > > > >
> > > > > On 13.03.18 15:57, Igor Olhovskiy wrote:
> > > > > > For textops.
> > > > > >
> > > > > > Seems textops module not exporting everything to Lua
> > > > > >
> > > > > > app_lua [app_lua_sr.c:1961]: lua_sr_kemi_register_libs(): exporting 
> > > > > > KSR.textops.search(...)
> > > > > > app_lua [app_lua_sr.c:1961]: lua_sr_kemi_register_libs(): exporting 
> > > > > > KSR.textops.search_body(...)
> > > > > > app_lua [app_lua_sr.c:1961]: lua_sr_kemi_register_libs(): exporting 
> > > > > > KSR.textops.search_hf(...)
> > > > > > app_lua [app_lua_sr.c:1961]: lua_sr_kemi_register_libs(): exporting 
> > > > > > KSR.textops.is_present_hf(...)
> > > > > > app_lua [app_lua_sr.c:1961]: lua_sr_kemi_register_libs(): exporting 
> > > > > > KSR.textops.subst(...)
> > > > > > app_lua [app_lua_sr.c:1961]: lua_sr_kemi_register_libs(): exporting 
> > > > > > KSR.textops.subst_uri(...)
> > > > > > app_lua [app_lua_sr.c:1961]: lua_sr_kemi_register_libs(): exporting 
> > > > > > KSR.textops.subst_user(...)
> > > > > > app_lua [app_lua_sr.c:1961]: lua_sr_kemi_register_libs(): exporting 
> > > > > > KSR.textops.subst_body(...)
> > > > > > app_lua [app_lua_sr.c:1961]: lua_sr_kemi_register_libs(): exporting 
> > > > > > KSR.textops.subst_hf(...)
> > > > > > app_lua [app_lua_sr.c:1961]: lua_sr_kemi_register_libs(): exporting 
> > > > > > KSR.textops.remove_hf_re(...)
> > > > > > app_lua [app_lua_sr.c:1961]: lua_sr_kemi_register_libs(): exporting 
> > > > > > KSR.textops.remove_hf_exp(...)
> > > > > > app_lua [app_lua_sr.c:1975]: lua_sr_kemi_register_libs(): 
> > > > > > initializing kemi sub-module: KSR.textops (textops)
> > > > > >
> > > > > >
> > > > > > Regards, Igor
> > > > > >
> > > > > > On Mar 13, 2018, 4:03 PM +0200, Igor Olhovskiy 
> > > > > > , wrote:
> > > > > > > Hi!
> > > > > > >
> > > > > > > I’m playing with new KEMI framework and trying to reload script 
> > > > > > > without reloading Kamailio.
> > > > > > >
> > > > > > > Lua code is mostly one from example.
> > > > > > >
> > > > > > > ...
> > > > > > > modparam("app_lua", "load", "/etc/kamailio/lua/kamailio.lua")
> > > > > > > cfgengine "lua"
> > > > > > > ...
> > > > > > >
> > > > > > > So, I’m changing lua code and giving command
> > > > > > >
> > > > > > > kamctl rpc app_lua.reload
> > > > > > >
> > > > > > > But in the answer
> > > > > > >
> > > > > > > {
> > > > > > >   "jsonrpc":  

Re: [SR-Users] Need useful graphics ideas

2018-03-16 Thread Karsten Horsmann
Hello Joel and List,

okay i found a "maybe good" way to bind it to localhost without break WSS.

Btw - if the returning lines of data within  var(metrics_count)  are higher
than 100, the max_while_loops protection cuts off the rest.

Mar 16 12:11:05 sipedge1 /usr/sbin/kamailio[3531]: ERROR: 
[core/action.c:1348]: do_action(): runaway while (1049, 30): more then 100
loops
Mar 16 12:11:05 sipedge1 /usr/sbin/kamailio[3531]: ERROR: 
[core/action.c:1505]: do_action(): run action error at:
/etc/kamailio/kamailio.cfg:1055

They you could disable or raise the value (i raised up the value).
https://www.kamailio.org/wiki/cookbooks/5.0.x/core#max_while_loops



[...]
event_route[xhttp:request] {
set_reply_close();
set_reply_no_connect();

#!ifdef WITH_JSONSTATS
if ($Rp == MY_HTTP_PORT && dst_ip == "127.0.0.1") {
# Metrics endpoint
if ( src_ip == "127.0.0.1" && $hu =~ "^/stats" ) {

jsonrpc_exec('{"jsonrpc": "2.0","method":
"stats.get_statistics","params": ["all"],"id": 1}');
$var(metrics_count) = 0;
jansson_array_size("result", $jsonrpl(body),
"$var(total_metrics)");

while($var(metrics_count) < $var(total_metrics)) {
jansson_get("result[$var(metrics_count)]",
$jsonrpl(body), "$var(v)");
$var(metric_key) =
$(var(v){s.select,0,=}{s.trim}{s.replace,:,-});
$var(metric_value) =
$(var(v){s.select,1,=}{s.trim});
jansson_set("integer", "$var(metric_key)",
"$var(metric_value)", "$var(metrics_json)");
$var(metrics_count) = $var(metrics_count) + 1;
}

xhttp_reply("200", "OK", "application/json",
"$var(metrics_count)");
exit;

}
}
#!endif


if ($Rp != MY_WS_PORT
[...]
___
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


[SR-Users] Issue in cdr generation in seconds format

2018-03-16 Thread Narayan P
Hello Sir,


I need your expertise for kamailio cdr generation in seconds format.


I have a requirement to generate cdr duration in second format.Now I am getting 
second.milliseconds format.Below is the log where duration is 18.676 but I want 
this to be 19.(suppose where duration =18.234, I need it to be 18).


Mar 16 10:38:22 vm11-kamailio /usr/local/sbin/kamailio[20787]: NOTICE: acc 
[acc_cdr.c:352]: log_write_cdr(): start_time=1521196683.464; 
end_time=1521196702.140; duration=18.676; src_user=71097345; 
src_domain=185.122.XXX.XXX; src_ip=185.122.XXX.XXX; dst_user=; 
dst_ouser=91786042; dst_domain=185.122.XXX.XXX; sip_code=; sip_reason=; 
callid=LVHyTCFWYBpEFp.sFpY204aBdx.nez9B; dst_ip=185.122.XXX.XXX



My kamailio configuration related to cdr is like this;

/* what special events should be accounted ? */
modparam("acc", "db_url", "flatstore:/var/log/cdr.log")
#modparam("acc", "cdr_extra", "c1=$dlg_var(caller);c2=$dlg_var(callee)")
modparam("acc", "log_facility", "LOG_DAEMON")
modparam("acc", "cdr_enable", 1)
modparam("acc", "cdr_start_on_confirmed", 1)
modparam("acc", "cdr_log_enable", 1)
modparam("acc", "time_mode", 0)
modparam("acc", "time_attr", "seconds")
modparam("acc", "cdr_start_id", "start_time")
modparam("acc", "cdr_end_id", "end_time")
modparam("acc", "cdr_duration_id", "duration")
#modparam("acc", "cdr_flag", 3)
#modparam("acc", "early_media", 0)
#modparam("acc", "report_ack", 0)
#modparam("acc", "report_cancels", 0)
#modparam("dialog", "enable_stats", 1)
modparam("dialog", "hash_size", 1024)
modparam("dialog", "dlg_flag", 3)
modparam("dialog", "db_url", DBURL)

/* by default ww do not adjust the direct of the sequential requests.
 * if you enable this parameter, be sure the enable "append_fromtag"
 * in "rr" module */
modparam("acc", "detect_direction", 0)
/* account triggers (flags) */
#modparam("acc", "log_flag", FLT_ACC)
#modparam("acc", "log_missed_flag", FLT_ACCMISSED)
#modparam("acc", "log_extra",
#   "src_user=$fU;src_domain=$fd;src_ip=$si;"
#   "dst_user=$tU;dst_user=$rU;dst_domain=$rd")
modparam("acc",

"cdr_extra","src_user=$fU;src_domain=$fd;src_ip=$si;dst_user=$rU;dst_ouser=$tU;dst_domain=$rd;sip_code=$rs;sip_reason=$rr;callid=$dlg(callid);dst_ip=$Ri")

Please suggest me what to configure more in kamailio to achieve cdr in second 
format.

Thanks,
Narayan

___
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


Re: [SR-Users] Need useful graphics ideas

2018-03-16 Thread Karsten Horsmann
Hi Joel,

thank you very much for the hints and the input.

I am not sure if i should run that in the REQUEST, but it works for me.

Only headache with that is, that i also use Websockets in my event_route.
And AFAIK there is "only one" event_route[xhttp:request].

Would be nice to separate the /stats to an local bound listener without
break the WS stuff.

An working one is this config snipped for me:

[...]
event_route[xhttp:request] {
set_reply_close();
set_reply_no_connect();

if ($Rp != MY_WS_PORT
#!ifdef WITH_TLS
&& $Rp != MY_WSS_PORT
#!endif
) {
xlog("L_WARN", "HTTP request received on $Rp\n");
if ($sel(cfg_get.mylog.logint) > 1) {
xhttp_reply("200", "OK",
"text/html","Received HTTP request to $hu from [$si:$sp] with
protocol $proto");
} else {
xhttp_reply("403", "Forbidden", "", "");
}
exit;
}

xlog("L_DBG", "HTTP Request Received\n");
xlog("L_INFO", "HTTP Request Received hu:($hu) src_ip:($src_ip)\n");

#!ifdef WITH_JSONSTATS
# Metrics endpoint
if ( ($src_ip == "127.0.0.1") && ($hu =~ "^/stats") ) {

jsonrpc_exec('{"jsonrpc": "2.0","method":
"stats.get_statistics","params": ["all"],"id": 1}');
$var(metrics_count) = 0;
jansson_array_size("result", $jsonrpl(body),
"$var(total_metrics)");
while($var(metrics_count) < $var(total_metrics)) {
jansson_get("result[$var(metrics_count)]",
$jsonrpl(body), "$var(v)");
$var(metric_key) =
$(var(v){s.select,0,=}{s.trim}{s.replace,:,-});
$var(metric_value) = $(var(v){s.select,1,=}{s.trim});
jansson_set("integer", "$var(metric_key)",
"$var(metric_value)", "$var(metrics_json)");
$var(metrics_count) = $var(metrics_count) + 1;
}

xhttp_reply("200", "OK", "application/json",
"$var(metrics_json)");
exit;

}
#!endif
if ($hdr(Upgrade)=~"websocket"
&& $hdr(Connection)=~"Upgrade"
&& $rm=~"GET") {

[...]


curl -s --interface lo -k https://MY-WEBRTC-IP:MY-WEBRTC-PORT/stats | jq '.'
{
  "core-bad_URIs_rcvd": 0,
  "core-bad_msg_hdr": 0,
  "core-drop_replies": 0,
  "core-drop_requests": 3,
  "core-err_replies": 0,
  "core-err_requests": 0,
  "core-fwd_replies": 0,
  "core-fwd_requests": 3,
  "core-rcv_replies": 16,
  "core-rcv_replies_18x": 0,
  "core-rcv_replies_1xx": 3,
  "core-rcv_replies_2xx": 13,
  "core-rcv_replies_3xx": 0,
  "core-rcv_replies_401": 0,
  "core-rcv_replies_404": 0,
  "core-rcv_replies_407": 0,
  "core-rcv_replies_480": 0,
  "core-rcv_replies_486": 0,
  "core-rcv_replies_4xx": 0,
  "core-rcv_replies_5xx": 0,
  "core-rcv_replies_6xx": 0,
  "core-rcv_requests": 30,
  "core-rcv_requests_ack": 3,
  "core-rcv_requests_bye": 3,
  "core-rcv_requests_cancel": 0,
  "core-rcv_requests_info": 0,
  "core-rcv_requests_invite": 6,
  "core-rcv_requests_message": 0,
  "core-rcv_requests_notify": 0,
  "core-rcv_requests_options": 8,
  "core-rcv_requests_prack": 0,
  "core-rcv_requests_publish": 0,
  "core-rcv_requests_refer": 0,
  "core-rcv_requests_register": 0,
  "core-rcv_requests_subscribe": 0,
  "core-rcv_requests_update": 0,
  "core-unsupported_methods": 0,
  "dns-failed_dns_request": 0,
  "mysql-driver_errors": 0,
  "registrar-accepted_regs": 0,
  "registrar-default_expire": 3600,
  "registrar-default_expires_range": 0,
  "registrar-expires_range": 0,
  "registrar-max_contacts": 0,
  "registrar-max_expires": 3600,
  "registrar-rejected_regs": 0,
  "shmem-fragments": 62,
  "shmem-free_size": 1064748608,
  "shmem-max_used_size": 9040400,
  "shmem-real_used_size": 8993216,
  "shmem-total_size": 1073741824,
  "shmem-used_size": 5363816,
  "sl-1xx_replies": 0,
  "sl-200_replies": 17,
  "sl-202_replies": 0,
  "sl-2xx_replies": 0,
  "sl-300_replies": 0,
  "sl-301_replies": 0,
  "sl-302_replies": 0,
  "sl-3xx_replies": 0,
  "sl-400_replies": 0,
  "sl-401_replies": 0,
  "sl-403_replies": 0,
  "sl-404_replies": 0,
  "sl-407_replies": 3,
  "sl-408_replies": 0,
  "sl-483_replies": 0,
  "sl-4xx_replies": 0,
  "sl-500_replies": 0,
  "sl-5xx_replies": 0,
  "sl-6xx_replies": 0,
  "sl-failures": 0,
  "sl-received_ACKs": 3,
  "sl-sent_err_replies": 0,
  "sl-sent_replies": 20,
  "sl-xxx_replies": 0,
  "tcp-con_reset": 0,
  "tcp-con_timeout": 0,
  "tcp-connect_failed": 0,
  "tcp-connect_success": 0,
  "tcp-current_opened_connections": 1,
  "tcp-current_write_queue_size": 0,
  "tcp-established": 10,
  "tcp-local_reject": 0,
  "tcp-passive_open": 10,
  "tcp-send_timeout": 0,
  "tcp-sendq_full": 0,
  "tmx-2xx_transactions": 6,
  "tmx-3xx_transactions": 0,
  "tmx-4xx_transactions": 0,
  "tmx-5xx_transactions": 0,
  "tmx-6xx_transactions": 0,
  "tmx-UAC_transactions": 0,
  "tmx-UAS_transactions": 6,