Browse Source

make the log prefix consistent (#140)

master
bitbashing 5 years ago
committed by GitHub
parent
commit
182dc2890a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 325 additions and 322 deletions
  1. +35
    -35
      kamailio/acl-role.cfg
  2. +4
    -4
      kamailio/antiflood-role.cfg
  3. +13
    -12
      kamailio/authorization.cfg
  4. +23
    -23
      kamailio/default.cfg
  5. +11
    -11
      kamailio/dispatcher-role-5.3.cfg
  6. +16
    -16
      kamailio/kazoo-bindings.cfg
  7. +5
    -5
      kamailio/message-role.cfg
  8. +10
    -10
      kamailio/nat-traversal-role.cfg
  9. +12
    -12
      kamailio/nodes-role.cfg
  10. +15
    -15
      kamailio/presence-fast-pickup.cfg
  11. +27
    -26
      kamailio/presence-notify.cfg
  12. +7
    -7
      kamailio/presence-query.cfg
  13. +19
    -19
      kamailio/presence-reset.cfg
  14. +33
    -32
      kamailio/presence-role.cfg
  15. +19
    -19
      kamailio/pusher-role.cfg
  16. +30
    -30
      kamailio/rate-limiter-role.cfg
  17. +3
    -3
      kamailio/registrar-query.cfg
  18. +16
    -16
      kamailio/registrar-role.cfg
  19. +3
    -3
      kamailio/registrar-sync-role.cfg
  20. +1
    -1
      kamailio/sanity.cfg
  21. +8
    -8
      kamailio/trusted.cfg
  22. +15
    -15
      kamailio/websockets-role.cfg

+ 35
- 35
kamailio/acl-role.cfg View File

@ -16,7 +16,7 @@ route[ACL_CHECK] {
# If packet came from platform or from 4 class MERA, do not check it
if (isflagset(FLAG_INTERNALLY_SOURCED) || isflagset(FLAG_TRUSTED_SOURCE) ) {
xlog("L_DEBUG", "$ci|ACL|Trusted source IP($si) ignoring\n");
xlog("L_DEBUG", "$ci|acl|Trusted source IP($si) ignoring\n");
return;
}
@ -29,7 +29,7 @@ route[ACL_CHECK] {
# FIX for BYE method with IP instead of REALM in From, take REALM from To header
if ($fd =~ IP_REGEX) {
xlog("L_WARNING","$ci|ACL-realm|Fix for $var(sip-packet) with IP in from URI: use to-domain\n");
xlog("L_WARNING","$ci|acl|Fix for $var(sip-packet) with IP in from URI: use to-domain\n");
$var(realm) = $td;
} else {
$var(realm) = $fd;
@ -43,18 +43,18 @@ route[ACL_CHECK] {
if ($var(realm-decision) == -1) { # we do not have cached decision
$var(acl-realm-request) = "true";
} else if ($var(realm-decision) == 1 ){ # We have cached decision, let's use it
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is permitted by ACL for $var(realm)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is permitted by ACL for $var(realm)\n");
} else {
if (!isflagset(FLAG_IS_REPLY)) {
sl_send_reply(ACL_CODE_DENY, ACL_MESSAGE_DENY);
}
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is rejected by ACL for $var(realm)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is rejected by ACL for $var(realm)\n");
exit;
}
if (not_empty("$fU")) {
if ($fd =~ IP_REGEX) {
xlog("L_WARNING","$ci|ACL-device|Fix for $var(sip-packet) with IP in from URI: use to-domain\n");
xlog("L_WARNING","$ci|acl|Fix for $var(sip-packet) with IP in from URI: use to-domain\n");
$var(device) = $fU + "@" + $td;
} else {
$var(device) = $fU + "@" + $fd;
@ -64,12 +64,12 @@ route[ACL_CHECK] {
if ($var(device-decision) == -1) { # we do not have cached decision
$var(acl-device-request) = "true";
} else if ($var(device-decision) == 1 ){ # We have cached decision, let's use it
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is permitted by ACL for $var(device)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is permitted by ACL for $var(device)\n");
} else {
if (!isflagset(FLAG_IS_REPLY)) {
sl_send_reply(ACL_CODE_DENY, ACL_MESSAGE_DENY);
}
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is rejected by ACL for $var(device)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is rejected by ACL for $var(device)\n");
exit;
}
}
@ -80,10 +80,10 @@ route[ACL_CHECK] {
$var(query) = "{'Event-Category': 'acl', 'Event-Name': 'query', 'Entity': '" + $var(device) + "', 'With-Realm': " + $var(acl-realm-request) + "}";
else
$var(query) = "{'Event-Category': 'acl', 'Event-Name': 'query', 'Entity': '" + $var(realm) + "'}";
xlog("L_DBG", "$ci|ACL log|Query: $var(query)\n");
xlog("L_DBG", "$ci|acl|Query: $var(query)\n");
sl_send_reply("100", "Attempting K query");
if (kazoo_query("frontier", "sbc_config", $var(query), "$var(acl-response)")) {
xlog("L_DBG", "$ci|ACL log|Response: $var(acl-response)\n");
xlog("L_DBG", "$ci|acl|Response: $var(acl-response)\n");
kazoo_json($var(acl-response), "Realm.Order", "$var(acl-realm-order)");
kazoo_json($var(acl-response), "Realm.CIDR", "$var(acl-realm-cidr)");
@ -92,9 +92,9 @@ route[ACL_CHECK] {
kazoo_json($var(acl-response), "Device.User-Agent", "$var(acl-device-ua)");
} else {
xlog("L_ERROR","$ci|ACL log|DB is unreachable\n");
xlog("L_ERROR","$ci|acl|DB is unreachable\n");
$sht(acl=>$var(device)/$si) = 1;
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is permitted by ACL for $var(device)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is permitted by ACL for $var(device)\n");
return;
}
@ -115,9 +115,9 @@ route[ACL_CHECK_REALM] {
route(ACL_CHECK_REALM_DENY);
}
} else {
xlog("L_INFO","$ci|ACL-realm|undefined Order in response for $var(realm)\n");
xlog("L_INFO","$ci|acl|undefined Order in response for $var(realm)\n");
$sht(acl=>$var(realm)/$si) = 1;
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is permitted by ACL for $var(realm)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is permitted by ACL for $var(realm)\n");
}
}
@ -126,24 +126,24 @@ route[ACL_CHECK_REALM_ALLOW] {
$var(i) = 0;
kazoo_json($var(acl-response), "Realm.CIDR[$var(i)]", "$var(record)");;
while(not_empty("$var(record)")) {
xlog("L_INFO", "$ci|ACL-realm|checking if $si is in $var(record)\n");
xlog("L_INFO", "$ci|acl|checking if $si is in $var(record)\n");
if (($var(record) == ACL_IP_ADDR_ANY) || is_in_subnet("$si", $var(record))) {
$sht(acl=>$var(realm)/$si) = 1;
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is permitted by ACL for $var(realm)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is permitted by ACL for $var(realm)\n");
return;
}
$var(i) = $var(i) + 1;
kazoo_json($var(acl-response), "Realm.CIDR[$var(i)]", "$var(record)");;
}
} else {
xlog("L_INFO", "$ci|ACL-realm|undefined CIDR in response for $var(realm)\n");
xlog("L_INFO", "$ci|acl|undefined CIDR in response for $var(realm)\n");
}
# Remember in CACHE and DENY
$sht(acl=>$var(realm)/$si) = 0;
if (!isflagset(FLAG_IS_REPLY)) {
sl_send_reply(ACL_CODE_DENY, ACL_MESSAGE_DENY);
}
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is rejected by ACL for $var(realm)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is rejected by ACL for $var(realm)\n");
exit;
}
@ -153,24 +153,24 @@ route[ACL_CHECK_REALM_DENY] {
$var(i) = 0;
kazoo_json($var(acl-response), "Realm.CIDR[$var(i)]", "$var(record)");;
while(not_empty("$var(record)")) {
xlog("L_INFO", "$ci|ACL-realm|checking if $si is in $var(record)\n");
xlog("L_INFO", "$ci|acl|checking if $si is in $var(record)\n");
if (($var(record) == ACL_IP_ADDR_ANY) || is_in_subnet("$si", $var(record))) {
$sht(acl=>$var(realm)/$si) = 0;
if (!isflagset(FLAG_IS_REPLY)) {
sl_send_reply(ACL_CODE_DENY, ACL_MESSAGE_DENY);
}
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is rejected by ACL for $var(realm)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is rejected by ACL for $var(realm)\n");
exit;
}
$var(i) = $var(i) + 1;
kazoo_json($var(acl-response), "Realm.CIDR[$var(i)]", "$var(record)");;
}
} else {
xlog("L_INFO", "$ci|ACL-realm|undefined CIDR in response for $var(realm)\n");
xlog("L_INFO", "$ci|acl|undefined CIDR in response for $var(realm)\n");
}
# Remember in CACHE and ALLOW
$sht(acl=>$var(realm)/$si) = 1;
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is permitted by ACL for $var(realm)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is permitted by ACL for $var(realm)\n");
return;
}
@ -183,9 +183,9 @@ route[ACL_CHECK_DEVICE] {
route(ACL_CHECK_DEVICE_DENY);
}
} else {
xlog("L_INFO","$ci|ACL-device|undefined Order in response for $var(device)\n");
xlog("L_INFO","$ci|acl|undefined Order in response for $var(device)\n");
$sht(acl=>$var(device)/$si) = 1;
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is permitted by ACL for $var(device)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is permitted by ACL for $var(device)\n");
}
}
@ -195,17 +195,17 @@ route[ACL_CHECK_DEVICE_ALLOW] {
$var(i) = 0;
kazoo_json($var(acl-response), "Device.CIDR[$var(i)]", "$var(record)");;
while(not_empty("$var(record)")) {
xlog("L_INFO", "$ci|ACL-realm|checking if $si is in $var(record)\n");
xlog("L_INFO", "$ci|acl|checking if $si is in $var(record)\n");
if (($var(record) == ACL_IP_ADDR_ANY) || is_in_subnet("$si", $var(record))) {
$sht(acl=>$var(device)/$si) = 1;
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is permitted by ACL for $var(device)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is permitted by ACL for $var(device)\n");
return;
}
$var(i) = $var(i) + 1;
kazoo_json($var(acl-response), "Device.CIDR[$var(i)]", "$var(record)");;
}
} else {
xlog("L_INFO", "$ci|ACL-realm|undefined CIDR in response for $var(device)\n");
xlog("L_INFO", "$ci|acl|undefined CIDR in response for $var(device)\n");
}
}
# Remember in CACHE and DENY
@ -213,7 +213,7 @@ route[ACL_CHECK_DEVICE_ALLOW] {
if (!isflagset(FLAG_IS_REPLY)) {
sl_send_reply(ACL_CODE_DENY, ACL_MESSAGE_DENY);
}
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is rejected by ACL for $var(device)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is rejected by ACL for $var(device)\n");
exit;
}
@ -223,7 +223,7 @@ route[ACL_CHECK_DEVICE_DENY] {
if (!isflagset(FLAG_IS_REPLY)) {
sl_send_reply(ACL_CODE_DENY, ACL_MESSAGE_DENY);
}
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is rejected by ACL for $var(device)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is rejected by ACL for $var(device)\n");
exit;
}
@ -231,24 +231,24 @@ route[ACL_CHECK_DEVICE_DENY] {
$var(i) = 0;
kazoo_json($var(acl-response), "Device.CIDR[$var(i)]", "$var(record)");;
while(not_empty("$var(record)")) {
xlog("L_INFO", "$ci|ACL-device|checking if $si is in $var(record)\n");
xlog("L_INFO", "$ci|acl|checking if $si is in $var(record)\n");
if (($var(record) == ACL_IP_ADDR_ANY) || is_in_subnet("$si", $var(record))) {
$sht(acl=>$var(device)/$si) = 0;
if (!isflagset(FLAG_IS_REPLY)) {
sl_send_reply(ACL_CODE_DENY, ACL_MESSAGE_DENY);
}
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is rejected by ACL for $var(device)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is rejected by ACL for $var(device)\n");
exit;
}
$var(i) = $var(i) + 1;
kazoo_json($var(acl-response), "Device.CIDR[$var(i)]", "$var(record)");;
}
} else {
xlog("L_INFO", "$ci|ACL-device|undefined CIDR in response for $var(device)\n");
xlog("L_INFO", "$ci|acl|undefined CIDR in response for $var(device)\n");
}
# Remember in CACHE and ALLOW
$sht(acl=>$var(device)/$si) = 1;
xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is permitted by ACL for $var(device)\n");
xlog("L_INFO", "$ci|acl|$var(sip-packet) from $si is permitted by ACL for $var(device)\n");
return;
}
@ -256,11 +256,11 @@ event_route[kazoo:consumer-event-acl-acl-flush]
{
if( $(kzE{kz.json,Device}) != "" ) {
$var(device_regexp) = $(kzE{kz.json,Device}) + "@" + $(kzE{kz.json,Realm}) + "/.*" ;
xlog("L_INFO","|ACL-Flush| Flush ACL for Device. Regexp: $var(device_regexp)\n");
xlog("L_INFO","event|acl|Flush ACL for Device. Regexp: $var(device_regexp)\n");
sht_rm_name_re("acl=>$var(device_regexp)");
} else {
$var(realm_regexp) = "^" + $(kzE{kz.json,Realm}) + "/.*" ;
xlog("L_INFO","|ACL-Flush| Flush ACL for Realm. Regexp: $var(realm_regexp)\n");
xlog("L_INFO","event|acl|Flush ACL for Realm. Regexp: $var(realm_regexp)\n");
sht_rm_name_re("acl=>$var(realm_regexp)");
}
@ -270,4 +270,4 @@ route[ACL_BINDINGS]
{
$var(payload) = $_s({"name": "acl-role", "exchange" : "frontier_acl" , "type" : "topic", "queue" : "FRONTIERACL-FLUSH-MY_HOSTNAME", "routing" : "flush" });
kazoo_subscribe("$var(payload)");
}
}

+ 4
- 4
kamailio/antiflood-role.cfg View File

@ -52,7 +52,7 @@ route[ANTIFLOOD_RATE_LIMIT]
xlog("L_WARN", "$ci|end|dropping request from $fu due to rate of requests with source $si:$sp\n");
drop();
} else {
xlog("L_WARN", "$ci|allowed|request from $fu exceeded rate of requests with source $si:$sp\n");
xlog("L_WARN", "$ci|antiflood|request from $fu exceeded rate of requests with source $si:$sp\n");
}
}
}
@ -85,7 +85,7 @@ route[ANTIFLOOD_AUTH_LIMIT]
send_reply("403", "Forbidden");
exit;
} else {
xlog("L_NOTICE", "$ci|log|authorization failure limit $def(ANTIFLOOD_FAILED_AUTH_DENSITY) for $Au $si:$sp\n");
xlog("L_NOTICE", "$ci|antiflood|authorization failure limit $def(ANTIFLOOD_FAILED_AUTH_DENSITY) for $Au $si:$sp\n");
}
}
}
@ -121,7 +121,7 @@ route[ANITFLOOD_FAILED_AUTH]
$var(count) = $shtinc(antiflood=>$var(auth_key)::count);
$sht(antiflood=>$var(auth_key)::last) = $Ts;
xlog("L_INFO", "$ci|log|$var(count) errounous authorization response for $Au $si:$sp\n");
xlog("L_INFO", "$ci|antiflood|$var(count) errounous authorization response for $Au $si:$sp\n");
if ($var(count) >= ANTIFLOOD_FAILED_AUTH_DENSITY) {
$var(exp) = $Ts - ANTIFLOOD_FAILED_AUTH_WINDOW;
@ -136,5 +136,5 @@ route[ANITFLOOD_FAILED_AUTH]
event_route[htable:expired:antiflood]
{
xlog("L_NOTICE", "antiflood expired record $shtrecord(key) => $shtrecord(value)\n");
xlog("L_NOTICE", "event|antiflood|antiflood expired record $shtrecord(key) => $shtrecord(value)\n");
}

+ 13
- 12
kamailio/authorization.cfg View File

@ -20,12 +20,12 @@ route[AUTHORIZATION]
if (isflagset(FLAG_INTERNALLY_SOURCED)) {
setflag(FLAG_AUTHORIZED);
return;
}
}
if (!is_method("INVITE|REFER|MESSAGE|NOTIFY|SUBSCRIBE|PUBLISH")) {
setflag(FLAG_AUTHORIZED);
return;
}
}
route(AUTHORIZATION_CHECK);
@ -34,16 +34,16 @@ route[AUTHORIZATION]
return;
}
if (!isflagset(FLAG_AUTHORIZED)) {
xlog("L_INFO", "$ci|auth|challenging $rm from $Au $si:$sp\n");
if (!isflagset(FLAG_AUTHORIZED)) {
xlog("L_INFO", "$ci|auth|challenging $rm from $Au $si:$sp\n");
$var(auth) = auth_challenge("$fd", "4");
update_stat("auth:challenge", "+1");
if($var(auth) != 1) {
xlog("L_ERROR", "$ci|register|error creating or sending challenge to $rm attempt for $fu from $si:$sp\n");
xlog("L_ERROR", "$ci|end|error creating or sending challenge to $rm attempt for $fu from $si:$sp\n");
send_reply("403", "Forbidden");
}
exit;
}
}
}
@ -108,9 +108,9 @@ route[HANDLE_AUTHORIZATION]
$avp(kz_timeout) = $sel(cfg_get.kazoo.registrar_query_timeout_ms);
$xavp(deltas=>query) = $(TV(Sn){s.replace,.,});
xlog("L_DEBUG", "$ci|amqp|publishing to $def(REGISTRAR_AMQP_EXCHANGE) => $var(amqp_routing_key) : $def(REGISTRAR_AMQP_FLAGS) : $var(amqp_payload_request)\n");
xlog("L_DEBUG", "$ci|auth|publishing to $def(REGISTRAR_AMQP_EXCHANGE) => $var(amqp_routing_key) : $def(REGISTRAR_AMQP_FLAGS) : $var(amqp_payload_request)\n");
if(kazoo_async_query("$def(REGISTRAR_AMQP_EXCHANGE)", $var(amqp_routing_key), $var(amqp_payload_request), "KZ_AUTHORIZATION_CHECK_REPLY", "KZ_AUTHORIZATION_CHECK_TIMEOUT", "$def(REGISTRAR_AMQP_FLAGS)") != 1) {
xlog("L_INFO", "$ci|log|failed to send registrar query for authentication credentials for $Au $si:$sp\n");
xlog("L_INFO", "$ci|auth|failed to send registrar query for authentication credentials for $Au $si:$sp\n");
update_stat("auth:amqp_async_error", "+1");
send_reply("403", "Forbidden");
exit;
@ -120,7 +120,7 @@ route[HANDLE_AUTHORIZATION]
failure_route[KZ_AUTHORIZATION_CHECK_TIMEOUT]
{
if($(kzR{kz.json,Event-Name}) == "message_returned" ) {
xlog("L_WARNING", "$ci|amqp|message was returned by broker $(kzR{kz.json,Error-Code}) $(kzR{kz.json,Error-Reason})\n");
xlog("L_WARNING", "$ci|auth|message was returned by broker $(kzR{kz.json,Error-Code}) $(kzR{kz.json,Error-Reason})\n");
update_stat("auth:amqp_returned", "+1");
} else {
xlog("L_WARNING", "$ci|end|failed $T_reply_code $T_reply_reason [$T(id_index):$T(id_label)] querying directory for authentication credentials for $Au $si:$sp\n");
@ -135,7 +135,7 @@ onreply_route[KZ_AUTHORIZATION_CHECK_REPLY]
$var(StartRoute) = $(TV(Sn){s.replace,.,});
$var(delta_to_start) = $var(StartRoute) - $(kzR{kz.json,AMQP-Received});
$var(delta_from_query) = $(kzR{kz.json,AMQP-Received}) - $xavp(deltas=>query);
xlog("L_INFO", "$ci|log|received $(kzR{kz.json,Event-Category}) $(kzR{kz.json,Event-Name}) reply from $(kzR{kz.json,App-Name})-$(kzR{kz.json,App-Version}) (Δ1 $(kzR{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs, Δ3 $var(delta_from_query) μs)\n");
xlog("L_INFO", "$ci|auth|received $(kzR{kz.json,Event-Category}) $(kzR{kz.json,Event-Name}) reply from $(kzR{kz.json,App-Name})-$(kzR{kz.json,App-Version}) (Δ1 $(kzR{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs, Δ3 $var(delta_from_query) μs)\n");
$var(password) = $(kzR{kz.json,Auth-Password});
if( $(kzR{kz.json,Event-Name}) == "authn_err" ) {
update_stat("auth:authn_err", "+1");
@ -146,7 +146,7 @@ onreply_route[KZ_AUTHORIZATION_CHECK_REPLY]
route(KZ_AUTHORIZATION_CHECK_RESPONSE);
} else {
update_stat("auth:authn_unknown", "+1");
xlog("L_INFO", "$ci|log|unhandle response from directory $Au via $(kzR{kz.json,App-Name})-$(kzR{kz.json,App-Version})\n");
xlog("L_INFO", "$ci|auth|unhandle response from directory $Au via $(kzR{kz.json,App-Name})-$(kzR{kz.json,App-Version})\n");
t_reply("403", "Forbidden");
exit;
}
@ -155,9 +155,10 @@ onreply_route[KZ_AUTHORIZATION_CHECK_REPLY]
route[KZ_AUTHORIZATION_CHECK_RESPONSE]
{
if (!pv_auth_check("$fd", "$var(password)", "0", "0")) {
#!ifdef ANTIFLOOD_ROLE
#!ifdef ANTIFLOOD_ROLE
route(ANITFLOOD_FAILED_AUTH);
#!endif
xlog("L_WARNING", "$ci|end|auth|$mbu\n");
send_reply("403", "Forbidden");
exit;


+ 23
- 23
kamailio/default.cfg View File

@ -237,7 +237,7 @@ route
#!endif
if (!t_newtran()) {
xlog("L_ERROR", "$ci|log|failed to create transaction\n");
xlog("L_ERROR", "$ci|default|failed to create transaction\n");
drop;
exit;
}
@ -292,9 +292,9 @@ route[LOG_REQUEST]
# log the basic info regarding this call
xlog("$var(log_request_level)", "$ci|start|received $pr request $rm $ou\n");
xlog("$var(log_request_level)", "$ci|log|source $si:$sp -> $RAi:$RAp\n");
xlog("$var(log_request_level)", "$ci|log|from $fu\n");
xlog("$var(log_request_level)", "$ci|log|to $tu\n");
xlog("$var(log_request_level)", "$ci|default|source $si:$sp -> $RAi:$RAp\n");
xlog("$var(log_request_level)", "$ci|default|from $fu\n");
xlog("$var(log_request_level)", "$ci|default|to $tu\n");
}
route[CHECK_RETRANS]
@ -312,7 +312,7 @@ route[CHECK_RETRANS]
route[CLASSIFY_SOURCE]
{
if (allow_source_address()) {
xlog("$var(log_request_level)", "$ci|log|request from trusted IP\n");
xlog("$var(log_request_level)", "$ci|default|request from trusted IP\n");
setflag(FLAG_TRUSTED_SOURCE);
return;
}
@ -355,19 +355,19 @@ route[HANDLE_NOTIFY]
if (isflagset(FLAG_INTERNALLY_SOURCED)) {
if (loose_route()) {
xlog("L_INFO", "$ci|log|Able to loose-route. Cool beans!\n");
xlog("L_INFO", "$ci|default|Able to loose-route. Cool beans!\n");
}
#!ifdef REGISTRAR_ROLE
if (registered("location")) {
lookup("location");
xlog("L_INFO", "$ci|log|routing to $ruid\n");
xlog("L_INFO", "$ci|default|routing to $ruid\n");
}
#!endif
## verify we're not routing to ourselves
if(is_myself($du)) {
xlog("L_INFO", "$ci|log|notify from internal to invalid destination $ruid\n");
xlog("L_INFO", "$ci|default|notify from internal to invalid destination $ruid\n");
sl_send_reply("200", "Rawr!!");
exit;
}
@ -445,7 +445,7 @@ route[HANDLE_IN_DIALOG_REQUESTS]
}
#!endif
xlog("L_INFO", "$ci|log|loose_route in-dialog message\n");
xlog("L_INFO", "$ci|default|loose_route in-dialog message\n");
# Called on in-dialog requests
# If the request in an Invite for on hold from external to internal,
# associate the contact with the media server
@ -457,7 +457,7 @@ route[HANDLE_IN_DIALOG_REQUESTS]
# If the request in an Invite for t38 from internal,
# mark the request with FLT_T38
if (is_method("INVITE") && isflagset(FLAG_INTERNALLY_SOURCED) && sdp_with_media("image")) {
xlog("L_DEBUG", "$ci|log|T38 RE-INVITE\n");
xlog("L_DEBUG", "$ci|default|T38 RE-INVITE\n");
setflag(FLT_T38);
}
@ -467,7 +467,7 @@ route[HANDLE_IN_DIALOG_REQUESTS]
}
route(RELAY);
} else if (isflagset(FLAG_INTERNALLY_SOURCED)) {
xlog("L_INFO", "$ci|log|relay internally sourced in-dialog message without loose_route\n");
xlog("L_INFO", "$ci|default|relay internally sourced in-dialog message without loose_route\n");
#!ifdef NAT_TRAVERSAL_ROLE
if(!isdsturiset()) {
handle_ruri_alias();
@ -475,14 +475,14 @@ route[HANDLE_IN_DIALOG_REQUESTS]
#!endif
route(RELAY);
} else if (t_check_trans()) {
xlog("L_INFO", "$ci|log|allow message for a known transaction\n");
xlog("L_INFO", "$ci|default|allow message for a known transaction\n");
if ( is_method("NOTIFY") ) {
# Add Record-Route for in-dialog NOTIFY as per RFC 6665.
record_route();
}
route(RELAY);
} else {
xlog("L_INFO", "$ci|log|message had a to-tag but can't be loose routed\n");
xlog("L_INFO", "$ci|default|message had a to-tag but can't be loose routed\n");
sl_send_reply("481", "Call Leg/Transaction Does Not Exist");
}
exit();
@ -633,7 +633,7 @@ route[EXTERNAL_TO_INTERNAL_RELAY]
onreply_route[EXTERNAL_REPLY]
{
if ($rs < 300) {
xlog("L_INFO", "$ci|log|external reply $T_reply_code $T_reply_reason\n");
xlog("L_INFO", "$ci|default|external reply $T_reply_code $T_reply_reason\n");
}
if($rs == 100) {
@ -671,7 +671,7 @@ failure_route[EXTERNAL_FAULT]
# if the failure cause was due to the transaction being
# cancelled then we are complete
if (t_is_canceled()) {
xlog("L_INFO", "$ci|log|transaction was cancelled\n");
xlog("L_INFO", "$ci|default|transaction was cancelled\n");
exit;
}
@ -683,7 +683,7 @@ onreply_route[INTERNAL_REPLY]
{
# this route handles replies that are comming from our media server
if ($rs < 300) {
xlog("L_INFO", "$ci|log|internal reply $T_reply_code $T_reply_reason\n");
xlog("L_INFO", "$ci|default|internal reply $T_reply_code $T_reply_reason\n");
}
if($rs == 100) {
@ -711,7 +711,7 @@ onreply_route[INTERNAL_REPLY]
#!endif
if (is_method("INVITE") && t_check_status("(180)|(183)|(200)")) {
xlog("L_INFO", "$ci|log|call setup, now ignoring abnormal termination\n");
xlog("L_INFO", "$ci|default|call setup, now ignoring abnormal termination\n");
setflag(FLAG_SESSION_PROGRESS);
}
@ -725,7 +725,7 @@ failure_route[INTERNAL_FAULT]
# if the failure cause was due to the transaction being
# cancelled then we are complete
if (t_is_canceled()) {
xlog("L_INFO", "$ci|log|transaction was cancelled\n");
xlog("L_INFO", "$ci|default|transaction was cancelled\n");
exit;
}
@ -781,7 +781,7 @@ failure_route[INTERNAL_FAULT]
route[INTERNAL_REDIRECT]
{
xlog("L_INFO", "$ci|log|redirect to $T_rpl($hdr(X-Redirect-Server))\n");
xlog("L_INFO", "$ci|default|redirect to $T_rpl($hdr(X-Redirect-Server))\n");
$du = $T_rpl($hdr(X-Redirect-Server));
t_on_branch("MANAGE_BRANCH");
t_on_reply("INTERNAL_REPLY");
@ -795,7 +795,7 @@ route[INTERNAL_REDIRECT]
onsend_route {
if (isflagset(FLAG_ASSOCIATE_USER) && is_request()) {
$var(user_source) = $(ct{tobody.user}) + "@" + $si + ":" + $sp;
xlog("L_INFO", "$ci|log|associate traffic from $var(user_source) with media server sip:$sndto(ip):$sndto(port)\n");
xlog("L_INFO", "$ci|default|associate traffic from $var(user_source) with media server sip:$sndto(ip):$sndto(port)\n");
$sht(associations=>$var(user_source))= "sip:" + $sndto(ip) + ":" + $sndto(port);
}
@ -820,9 +820,9 @@ route[ROUTE_TO_AOR]
return;
}
xlog("L_INFO", "$ci|log|using AOR $hdr(X-KAZOO-AOR)\n");
xlog("L_INFO", "$ci|default|using AOR $hdr(X-KAZOO-AOR)\n");
if ($hdr(X-KAZOO-INVITE-FORMAT) == "route") {
xlog("L_INFO", "$ci|log|routing $hdr(X-KAZOO-AOR) to $ruri\n");
xlog("L_INFO", "$ci|default|routing $hdr(X-KAZOO-AOR) to $ruri\n");
} else if ($hdr(X-KAZOO-INVITE-FORMAT) == "contact") {
if(lookup("location", "$hdr(X-KAZOO-AOR)") > 0){
xlog("L_INFO", "$ci|end|routing to contact $ru\n");
@ -838,7 +838,7 @@ route[ROUTE_TO_AOR]
$du = $(ulc(callee=>received));
$fs = $(ulc(callee=>socket));
$bf = $bf | $(ulc(callee=>cflags));
xlog("L_INFO", "$ci|log|routing $hdr(X-KAZOO-AOR) to $du via $fs\n");
xlog("L_INFO", "$ci|default|routing $hdr(X-KAZOO-AOR) to $du via $fs\n");
$avp(aor) = $hdr(X-KAZOO-AOR);
} else {
xlog("L_INFO", "$ci|end|user is not registered\n");


+ 11
- 11
kamailio/dispatcher-role-5.3.cfg View File

@ -72,7 +72,7 @@ route[DISPATCHER_CLASSIFY_SOURCE]
if (!isflagset(FLAG_NETWORK_CLASSIFIED)) {
if (is_myself("$ou")) {
xlog("$var(log_request_level)", "$ci|log|original R-URI ($ou) is this proxy, treating as external sources\n");
xlog("$var(log_request_level)", "$ci|dispatcher|original R-URI ($ou) is this proxy, treating as external sources\n");
} else {
$var(classify_dispatcher_flag) = $(sel(cfg_get.kazoo.dispatcher_classify_flags){s.int});
if (ds_is_from_list(KZ_DISPATCHER_PRIMARY_GROUP, "$var(classify_dispatcher_flag)") ||
@ -86,10 +86,10 @@ route[DISPATCHER_CLASSIFY_SOURCE]
ds_is_from_list(KZ_DISPATCHER_PRESENCE_SECONDARY_GROUP, "$var(classify_dispatcher_flag)") ||
ds_is_from_list(KZ_DISPATCHER_REGISTRAR_PRIMARY_GROUP, "$var(classify_dispatcher_flag)") ||
ds_is_from_list(KZ_DISPATCHER_REGISTRAR_SECONDARY_GROUP, "$var(classify_dispatcher_flag)")) {
xlog("$var(log_request_level)", "$ci|log|originated from internal sources\n");
xlog("$var(log_request_level)", "$ci|dispatcher|originated from internal sources\n");
setflag(FLAG_INTERNALLY_SOURCED);
} else {
xlog("$var(log_request_level)", "$ci|log|originated from external sources\n");
xlog("$var(log_request_level)", "$ci|dispatcher|originated from external sources\n");
}
}
}
@ -150,7 +150,7 @@ route[DISPATCHER_SELECT_ROUTES]
if ($sht(associations=>$var(user_source)) != $null) {
if($sel(cfg_get.kazoo.dispatcher_route_to_associated_media) == 1) {
$var(prefered_route) = $sht(associations=>$var(user_source));
xlog("L_INFO", "$ci|route|found association for contact uri $var(user_source)\n");
xlog("L_INFO", "$ci|dispatcher|found association for contact uri $var(user_source)\n");
route(DISPATCHER_PREFERRED_ROUTE);
}
$sht(associations=>$var(user_source)) = $null;
@ -165,11 +165,11 @@ route[DISPATCHER_SELECT_ROUTES]
route[DISPATCHER_PREFERRED_ROUTE]
{
if(!ds_is_from_list(-1, 6, "$var(prefered_route)")) {
xlog("L_INFO", "$ci|log|associated media server $var(prefered_route) is inactive, moving to $xavp(ds_dst=>uri)\n");
xlog("L_INFO", "$ci|dispatcher|associated media server $var(prefered_route) is inactive, moving to $xavp(ds_dst=>uri)\n");
return -1;
}
xlog("L_INFO", "$ci|log|re-ordering the dispatcher list to maintain association with $var(prefered_route)\n");
xlog("L_INFO", "$ci|dispatcher|re-ordering the dispatcher list to maintain association with $var(prefered_route)\n");
$var(i) = 0;
while($var(i) < $xavp(ds_ctx=>cnt)) {
@ -192,7 +192,7 @@ route[PRINT_ROUTES]
$var(i) = 0;
while($xavp(ds_dst[$var(i)]=>uri) != $null) {
xlog("L_INFO", "$ci|route|group $xavp(ds_dst[$var(i)]=>grp) => $xavp(ds_dst[$var(i)]=>uri) => zone $(xavp(ds_dst[$var(i)]=>attrs){param.value,zone})\n");
xlog("L_INFO", "$ci|dispatcher|group $xavp(ds_dst[$var(i)]=>grp) => $xavp(ds_dst[$var(i)]=>uri) => zone $(xavp(ds_dst[$var(i)]=>attrs){param.value,zone})\n");
$var(i) = $var(i) + 1;
}
@ -209,7 +209,7 @@ route[DISPATCHER_NEXT_ROUTE]
$avp(ds_retries) = $avp(ds_retries) + 1;
if(ds_next_dst()) {
xlog("L_INFO", "$ci|log|routing call to next media server $du\n");
xlog("L_INFO", "$ci|dispatcher|routing call to next media server $du\n");
setflag(FLAG_SKIP_NAT_CORRECTION);
@ -223,12 +223,12 @@ route[DISPATCHER_NEXT_ROUTE]
event_route[dispatcher:dst-down]
{
xlog("L_WARNING", "Destination down: $ru , $xavp(ds_dst=>uri), $xavp(ds_dst=>grp), $xavp(ds_dst=>attrs)\n");
xlog("L_WARNING", "event|dispatcher|Destination down: $ru , $xavp(ds_dst=>uri), $xavp(ds_dst=>grp), $xavp(ds_dst=>attrs)\n");
}
event_route[dispatcher:dst-up]
{
xlog("L_WARNING", "Destination up: $ru , $xavp(ds_dst=>uri), $xavp(ds_dst=>grp), $xavp(ds_dst=>attrs)\n");
xlog("L_WARNING", "event|dispatcher|Destination up: $ru , $xavp(ds_dst=>uri), $xavp(ds_dst=>grp), $xavp(ds_dst=>attrs)\n");
}
@ -279,7 +279,7 @@ route[DISPATCHER_CHECK_MEDIA_SERVER]
route[DISPATCHER_RELOAD]
{
if($shv(dispatcher_reload) == 1) {
xlog("L_WARNING", "reloading dispatcher table\n");
xlog("L_WARNING", "evnet|dispatcher|reloading dispatcher table\n");
ds_reload();
};
$shv(dispatcher_reload) = 0;


+ 16
- 16
kamailio/kazoo-bindings.cfg View File

@ -78,67 +78,67 @@ event_route[kazoo:mod-init]
event_route[kazoo:consumer-event]
{
xlog("L_DEBUG","unhandled AMQP event, payload: $kzE\n");
xlog("L_DEBUG","event|bindings|unhandled AMQP event, payload: $kzE\n");
}
event_route[kazoo:consumer-event-connection-open]
{
xlog("L_DEBUG","connection to $(kzE{kz.json,host}) opened\n");
xlog("L_DEBUG","event|bindings|connection to $(kzE{kz.json,host}) opened\n");
}
event_route[kazoo:consumer-event-connection-error]
{
xlog("L_ERR","amqp|error|$(kzE{kz.json,zone})|$(kzE{kz.json,name})|$(kzE{kz.json,message})\n");
xlog("L_ERR","event|bindings|$(kzE{kz.json,zone})|$(kzE{kz.json,name})|$(kzE{kz.json,message})\n");
}
event_route[kazoo:consumer-event-connection-message]
{
xlog("L_DEBUG","amqp|msg|$(kzE{kz.json,zone})|$(kzE{kz.json,name})|$(kzE{kz.json,message})\n");
xlog("L_DEBUG","event|bindings|$(kzE{kz.json,zone})|$(kzE{kz.json,name})|$(kzE{kz.json,message})\n");
}
event_route[kazoo:consumer-event-connection-closed]
{
xlog("L_DEBUG","amqp|closed|$(kzE{kz.json,zone})|$(kzE{kz.json,name})|connection to $(kzE{kz.json,host}) closed\n");
xlog("L_DEBUG","event|bindings|$(kzE{kz.json,zone})|$(kzE{kz.json,name})|connection to $(kzE{kz.json,host}) closed\n");
}
event_route[kazoo:consumer-event-connection-zone-available]
{
xlog("L_DEBUG","amqp zone $(kzE{kz.json,zone}) is available\n");
xlog("L_DEBUG","event|bindings|amqp zone $(kzE{kz.json,zone}) is available\n");
}
event_route[kazoo:consumer-event-connection-zone-unavailable]
{
xlog("L_DEBUG","amqp zone $(kzE{kz.json,zone}) is unavailable\n");
xlog("L_DEBUG","event|bindings|amqp zone $(kzE{kz.json,zone}) is unavailable\n");
}
event_route[kazoo:consumer-event-connection-available]
{
xlog("L_DEBUG","amqp zone $(kzE{kz.json,zone}) is available\n");
xlog("L_DEBUG","event|bindings|amqp zone $(kzE{kz.json,zone}) is available\n");
}
event_route[kazoo:consumer-event-connection-unavailable]
{
xlog("L_DEBUG","amqp zone $(kzE{kz.json,zone}) is unavailable\n");
xlog("L_DEBUG","event|bindings|amqp zone $(kzE{kz.json,zone}) is unavailable\n");
}
event_route[kazoo:consumer-event-connection-zone-listener-available]
{
xlog("L_DEBUG","amqp zone $(kzE{kz.json,zone}) is available\n");
xlog("L_DEBUG","event|bindings|amqp zone $(kzE{kz.json,zone}) is available\n");
}
event_route[kazoo:consumer-event-connection-zone-listener-unavailable]
{
xlog("L_DEBUG","amqp zone $(kzE{kz.json,zone}) is unavailable\n");
xlog("L_DEBUG","event|bindings|amqp zone $(kzE{kz.json,zone}) is unavailable\n");
}
event_route[kazoo:consumer-event-connection-listener-zone-available]
{
xlog("L_NOTICE","amqp|connection|$(kzE{kz.json,zone})|$(kzE{kz.json,name})|listener available\n");
xlog("L_NOTICE","event|bindings|$(kzE{kz.json,zone})|$(kzE{kz.json,name})|listener available\n");
}
event_route[kazoo:consumer-event-connection-listener-zone-unavailable]
{
xlog("L_WARN","amqp|connection|$(kzE{kz.json,zone})|$(kzE{kz.json,name})|listener unavailable\n");
xlog("L_WARN","event|bindings|$(kzE{kz.json,zone})|$(kzE{kz.json,name})|listener unavailable\n");
#!ifdef PRESENCE_ROLE
route(PRESENCE_ZONE_UNAVAILABLE);
@ -147,17 +147,17 @@ event_route[kazoo:consumer-event-connection-listener-zone-unavailable]
event_route[kazoo:consumer-event-connection-listener-available]
{
xlog("L_DEBUG","amqp|connection|$(kzE{kz.json,zone})|$(kzE{kz.json,name})|listener available\n");
xlog("L_DEBUG","event|bindings|$(kzE{kz.json,zone})|$(kzE{kz.json,name})|listener available\n");
}
event_route[kazoo:consumer-event-connection-listener-unavailable]
{
xlog("L_DEBUG","amqp zone $(kzE{kz.json,zone}) is unavailable\n");
xlog("L_DEBUG","event|bindings|amqp zone $(kzE{kz.json,zone}) is unavailable\n");
}
event_route[kazoo:consumer-event-amqp-error-message-returned]
{
xlog("L_WARNING","$(kzE{kz.json,Msg-ID})|amqp|message $(kzE{kz.json,Original-Event-Category}):$(kzE{kz.json,Original-Event-Name}) was returned by broker $(kzE{kz.json,Error-Code}) $(kzE{kz.json,Error-Reason})\n");
xlog("L_WARNING","event|bindings|$(kzE{kz.json,Msg-ID}) $(kzE{kz.json,Original-Event-Category}):$(kzE{kz.json,Original-Event-Name}) was returned by broker $(kzE{kz.json,Error-Code}) $(kzE{kz.json,Error-Reason})\n");
}
# vim: tabstop=4 softtabstop=4 shiftwidth=4 expandtab

+ 5
- 5
kamailio/message-role.cfg View File

@ -5,7 +5,7 @@ route[HANDLE_MESSAGE]
if (isflagset(FLAG_INTERNALLY_SOURCED) || src_ip == myself) return;
xlog("L_INFO", "$ci|log|MESSAGE from $fu to $tu\n");
xlog("L_INFO", "$ci|message|MESSAGE from $fu to $tu\n");
if (!isflagset(FLAG_AUTHORIZED)) {
send_reply("403", "Forbidden");
exit;
@ -29,7 +29,7 @@ route[MESSAGE_INBOUND]
$var(exchange) = "im";
$var(RoutingKey) = $_s(sms.inbound.onnet.$(ci{kz.encode}));
xlog("L_INFO", "$ci|msg|sending inbound message $var(RoutingKey) => $var(Payload)\n");
xlog("L_INFO", "$ci|message|sending inbound message $var(RoutingKey) => $var(Payload)\n");
kazoo_publish($var(exchange), $var(RoutingKey), $var(Payload));
t_reply("200", "OK");
exit;
@ -49,7 +49,7 @@ event_route[kazoo:consumer-event-sms-outbound]
$uac_req(furi) = $var(from_uri);
$uac_req(ouri) = "sip:127.0.0.1:5090;transport=tcp";
$uac_req(callid) = $(kzE{kz.json,Message-ID});
xlog("L_INFO", "$(kzE{kz.json,Message-ID})|log|sending message from $var(from_uri) to $var(to_uri) \n");
xlog("L_INFO", "event|message|$(kzE{kz.json,Message-ID}) sending message from $var(from_uri) to $var(to_uri) \n");
uac_req_send();
}
@ -73,7 +73,7 @@ route[MESSAGE_ROUTE]
onreply_route[MESSAGE_REPLY]
{
if($T_reply_code < 300) {
xlog("L_INFO", "$ci|log|sending success delivery message to $avp(server_id)\n");
xlog("L_INFO", "$ci|message|sending success delivery message to $avp(server_id)\n");
$var(Payload) = $_s({"Event-Category" : "message", "Event-Name" : "delivery", "Call-ID" : "$ci", "Message-ID" : "$avp(message_id)" , "Delivery-Result-Code" : "sip:$T_reply_code", "Msg-ID" : "$avp(msg_id)" , "Status" : "delivered"});
$var(exchange) = "targeted";
$var(RK) = $avp(server_id);
@ -83,7 +83,7 @@ onreply_route[MESSAGE_REPLY]
failure_route[MESSAGE_FAULT]
{
xlog("L_INFO", "$ci|log|sending failure delivery message to $avp(server_id)\n");
xlog("L_INFO", "$ci|message|sending failure delivery message to $avp(server_id)\n");
$var(Payload) = $_s({"Event-Category" : "message", "Event-Name" : "delivery", "Call-ID" : "$ci", "Message-ID" : "$avp(message_id)" , "Delivery-Result-Code" : "sip:$T_reply_code", "Msg-ID" : "$avp(msg_id)" , "Status" : "failure"});
$var(exchange) = "targeted";
$var(RK) = $avp(server_id);


+ 10
- 10
kamailio/nat-traversal-role.cfg View File

@ -30,13 +30,13 @@ route[NAT_SDP]
{
if( has_body("application/sdp")) {
if( nat_uac_test(KZ_NAT_SDP_TEST)) {
xlog("L_DEBUG", "$ci|log|applying sdp nat fix\n");
xlog("L_DEBUG", "$ci|nat|applying sdp nat fix\n");
$var(ret) = fix_nated_sdp(KZ_NAT_SDP_FIX);
xlog("L_DEBUG", "$ci|log|result of applying sdp nat fix is $var(ret)\n");
xlog("L_DEBUG", "$ci|nat|result of applying sdp nat fix is $var(ret)\n");
} else if( is_method("INVITE") && !isflagset(FLAG_INTERNALLY_SOURCED) && is_audio_on_hold()) {
xlog("L_DEBUG", "$ci|log|applying sdp nat fix for held channel\n");
xlog("L_DEBUG", "$ci|nat|applying sdp nat fix for held channel\n");
$var(ret) = fix_nated_sdp(KZ_NAT_SDP_FIX);
xlog("L_DEBUG", "$ci|log|result of applying sdp nat fix for held channel is $var(ret)\n");
xlog("L_DEBUG", "$ci|nat|result of applying sdp nat fix for held channel is $var(ret)\n");
}
}
}
@ -60,7 +60,7 @@ route[NAT_DETECT]
if ($Rp == "5080") {
setflag(FLAG_SKIP_NAT_CORRECTION);
xlog("L_DEBUG", "$ci|log|skipping nat correction on PORT 5080\n");
xlog("L_DEBUG", "$ci|nat|skipping nat correction on PORT 5080\n");
} else {
if (is_present_hf("Record-Route")) {
$var(i) = 0;
@ -73,7 +73,7 @@ route[NAT_DETECT]
$var(i) = $var(i) + 1;
if (!is_myself("$(var(rr){nameaddr.uri})")) {
setflag(FLAG_SKIP_NAT_CORRECTION);
xlog("L_DEBUG", "$ci|log|skipping nat correction on record-route $(var(rr){nameaddr.uri})\n");
xlog("L_DEBUG", "$ci|nat|skipping nat correction on record-route $(var(rr){nameaddr.uri})\n");
}
$var(rr_idx) = $var(rr_idx) + 1;
$var(rr) = $(var(rr_base){s.select,$var(rr_idx),,});
@ -83,14 +83,14 @@ route[NAT_DETECT]
}
if (isflagset(FLAG_SKIP_NAT_CORRECTION)) {
xlog("L_DEBUG", "$ci|log|skipping nat detection\n");
xlog("L_DEBUG", "$ci|nat|skipping nat detection\n");
return;
}
force_rport();
if(nat_uac_test(KZ_NAT_DETECT)) {
xlog("L_DEBUG", "$ci|log|detected nat request\n");
xlog("L_DEBUG", "$ci|nat|detected nat request\n");
setflag(FLT_NATS);
}
@ -117,12 +117,12 @@ route[NAT_MANAGE]
}
if ( is_request() && isflagset(FLAG_INTERNALLY_SOURCED)) {
xlog("L_DEBUG", "$ci|log|INTERNAL AND REQUEST => SET FLB_NATB\n");
xlog("L_DEBUG", "$ci|nat|INTERNAL AND REQUEST => SET FLB_NATB\n");
setbflag(FLB_NATB);
}
if ( is_request() && has_totag() ) {
xlog("L_DEBUG", "$ci|log|TOTAG AND REQUEST => SET FLB_NATB\n");
xlog("L_DEBUG", "$ci|nat|TOTAG AND REQUEST => SET FLB_NATB\n");
setbflag(FLB_NATB);
}


+ 12
- 12
kamailio/nodes-role.cfg View File

@ -60,13 +60,13 @@ event_route[kazoo:consumer-event-nodes-advertise]
{
$var(count) = $shtinc(nodes=>$(kzE{kz.json,Node})::count);
if($var(count) == 0) {
xlog("L_NOTICE", "$(kzE{kz.json,Msg-ID})|nodes|heartbeat for reconnected node $(kzE{kz.json,Node})\n");
xlog("L_NOTICE", "event|nodes|$(kzE{kz.json,Msg-ID}) heartbeat for reconnected node $(kzE{kz.json,Node})\n");
$var(count) = $shtinc(nodes=>$(kzE{kz.json,Node})::count);
} else {
if($var(count) == 1) {
xlog("L_NOTICE", "$(kzE{kz.json,Msg-ID})|nodes|heartbeat from new node $(kzE{kz.json,Node})\n");
xlog("L_NOTICE", "event|nodes|$(kzE{kz.json,Msg-ID}) heartbeat from new node $(kzE{kz.json,Node})\n");
} else {
xlog("L_DEBUG", "$(kzE{kz.json,Msg-ID})|nodes|heartbeat from existing node $(kzE{kz.json,Node})\n");
xlog("L_DEBUG", "event|nodes|$(kzE{kz.json,Msg-ID}) heartbeat from existing node $(kzE{kz.json,Node})\n");
}
}
mq_add("node_heartbeat", "$(kzE{kz.json,Node})", "$kzE");
@ -76,13 +76,13 @@ event_route[htable:expired:nodes]
{
if($shtrecord(key) =~ "::count$$") {
if($shtrecord(value) == -1) {
xlog("L_WARNING", "htable|nodes|node $(shtrecord(key){s.rm,::count}) is still unreachable\n");
xlog("L_WARNING", "event|nodes|node $(shtrecord(key){s.rm,::count}) is still unreachable\n");
}
mq_add("node_track", "$shtrecord(key)", "");
return;
}
xlog("L_WARNING", "htable|nodes|heartbeat expired for node $shtrecord(key)\n");
xlog("L_WARNING", "event|nodes|heartbeat expired for node $shtrecord(key)\n");
}
route[NODE_TRACK_ROUTE]
@ -102,7 +102,7 @@ route[NODE_HEARTBEAT_ROUTE]
while(mq_fetch("node_heartbeat") == 1 && $var(runloop) < MAX_WHILE_LOOPS) {
$var(Node) = $mqk(node_heartbeat);
$var(Payload) = $mqv(node_heartbeat);
xlog("L_DEBUG", "$(var(Payload){kz.json,Msg-ID})|nodes|processing heartbeat for node $var(Node)\n");
xlog("L_DEBUG", "event|nodes|$(var(Payload){kz.json,Msg-ID}) processing heartbeat for node $var(Node)\n");
route(CHECK_MEDIA_SERVERS);
@ -136,7 +136,7 @@ route[CHECK_MEDIA_SERVERS]
$var(MediaReconnected) = 0;
$var(MediaConnected) = $(var(Payload){kz.json,Media-Servers.$var(MediaKey).Startup});
$var(ExistingMediaConnected) = $sht(media=>$var(MediaKey)::connected::$var(Node));
xlog("L_DEBUG", "$var(Msg-ID)|nodes|$var(MediaKey) from $var(Node) => $var(MediaConnected) vs $var(ExistingMediaConnected)\n");
xlog("L_DEBUG", "event|nodes|$var(Msg-ID) $var(MediaKey) from $var(Node) => $var(MediaConnected) vs $var(ExistingMediaConnected)\n");
if($var(ExistingMediaConnected) != $null && $var(MediaConnected) > $var(ExistingMediaConnected)) {
$var(MediaReconnected) = 1;
}
@ -173,7 +173,7 @@ route[CHECK_MEDIA_SERVERS]
route(MEDIA_SERVER_RECONNECTED);
};
$var(MediaExpire) = ($(var(Payload){kz.json,Expires}{s.int}) / 1000) + NODES_FUDGE_EXPIRE;
xlog("L_DEBUG", "$var(Msg-ID)|nodes|$var(Node) media expiration $var(MediaExpire) for $var(MediaUrl)\n");
xlog("L_DEBUG", "event|nodes|$var(Msg-ID) $var(Node) media expiration $var(MediaExpire) for $var(MediaUrl)\n");
$shtex(media=>$var(MediaUrl)::count) = $var(MediaExpire);
$var(ProfileIdx) = $var(ProfileIdx) + 1;
}
@ -192,7 +192,7 @@ event_route[htable:expired:media]
route[MEDIA_SERVER_UP]
{
xlog("L_NOTICE", "$var(Msg-ID)|nodes|$var(Node) reported new media server $var(MediaUrl) in zone $var(Zone)\n");
xlog("L_NOTICE", "event|nodes|$var(Msg-ID) $var(Node) reported new media server $var(MediaUrl) in zone $var(Zone)\n");
#!ifdef DISPATCHER_ROLE
route(DISPATCHER_CHECK_MEDIA_SERVER);
@ -207,7 +207,7 @@ route[MEDIA_SERVER_UP]
route[MEDIA_SERVER_DOWN]
{
xlog("L_WARNING", "expired|nodes|heartbeat expired for media server $var(MediaUrl) in zone $var(Zone)\n");
xlog("L_WARNING", "event|nodes|heartbeat expired for media server $var(MediaUrl) in zone $var(Zone)\n");
#!ifdef PRESENCE_ROLE
route(RESET_PUBLISHER);
@ -217,7 +217,7 @@ route[MEDIA_SERVER_DOWN]
route[MEDIA_SERVER_RESTART]
{
xlog("L_NOTICE", "$var(Msg-ID)|nodes|media server $var(MediaUrl) restarted in zone $var(Zone)\n");
xlog("L_NOTICE", "event|nodes|$var(Msg-ID) media server $var(MediaUrl) restarted in zone $var(Zone)\n");
#!ifdef PRESENCE_ROLE
route(RESET_PUBLISHER);
@ -227,7 +227,7 @@ route[MEDIA_SERVER_RESTART]
route[MEDIA_SERVER_RECONNECTED]
{
xlog("L_NOTICE", "$var(Msg-ID)|nodes|media server $var(MediaUrl) reconnected to $var(Node) in zone $var(Zone)\n");
xlog("L_NOTICE", "event|nodes|$var(Msg-ID) media server $var(MediaUrl) reconnected to $var(Node) in zone $var(Zone)\n");
#!ifdef PRESENCE_ROLE
route(RESET_PUBLISHER);


+ 15
- 15
kamailio/presence-fast-pickup.cfg View File

@ -18,7 +18,7 @@ route[PRESENCE_FAST_PICKUP_START]
route[PRESENCE_FAST_PICKUP_LOAD]
{
sht_reset("fp");
xlog("L_INFO", "$ci|log|fast|initializing fastpick hash table from dispatcher\n");
xlog("L_INFO", "$ci|pickup|initializing fastpick hash table from dispatcher\n");
if (sql_xquery("exec", "select destination from dispatcher", "ra") == 1) {
while($xavp(ra) != $null) {
$var(host) = $(xavp(ra=>destination){uri.host});
@ -26,9 +26,9 @@ route[PRESENCE_FAST_PICKUP_LOAD]
$var(destination) = $xavp(ra=>destination);
$var(i) = 0;
if(!is_ip("$var(host)")) {
xlog("L_INFO", "$ci|log|fast|ignoring $var(host) since its not a ip address\n");
xlog("L_INFO", "$ci|pickup|ignoring $var(host) since its not a ip address\n");
} else {
xlog("L_INFO", "$ci|log|fast|adding key $(var(destination){s.md5}) for $var(destination)\n");
xlog("L_INFO", "$ci|pickup|adding key $(var(destination){s.md5}) for $var(destination)\n");
$sht(fp=>$(var(destination){s.md5})) = $var(destination);
}
pv_unset("$xavp(ra)");
@ -63,21 +63,21 @@ route[PRESENCE_FAST_PICKUP_ATTEMPT]
if(!is_present_hf("k-cid")) {
append_hf("k-cid: $var(replaced_call_id)\r\n");
}
xlog("L_INFO", "$ci|log|fast|found shortcut for call-id $var(replaced_call_id) , redirecting ($(ru{uri.user})) to $du\n");
xlog("L_INFO", "$ci|pickup|found shortcut for call-id $var(replaced_call_id) , redirecting ($(ru{uri.user})) to $du\n");
route(RELAY);
exit();
} else {
xlog("L_INFO", "$ci|log|fast|shortcut $var(md5) invalid in this server, using standard routing\n");
xlog("L_INFO", "$ci|pickup|shortcut $var(md5) invalid in this server, using standard routing\n");
}
}
if($sel(cfg_get.kazoo.presence_fast_pickup_realtime) == 1) {
if($var(replaced_call_id) != "none") {
xlog("L_INFO", "$ci|log|request has replaces call-id $var(replaced_call_id)\n");
xlog("L_INFO", "$ci|pickup|request has replaces call-id $var(replaced_call_id)\n");
$var(amqp_payload_request) = '{"Event-Category" : "call_event" , "Event-Name" : "channel_status_req", "Call-ID" : "' + $var(replaced_call_id) + '", "Active-Only" : true }';
$var(amqp_routing_key) = "call.status_req." + $(var(replaced_call_id){kz.encode});
sl_send_reply("100", "locating your call");
xlog("L_INFO", "$ci|log|querying cluster for the location of call-id $var(replaced_call_id)\n");
xlog("L_INFO", "$ci|pickup|querying cluster for the location of call-id $var(replaced_call_id)\n");
if(kazoo_query("callevt", $var(amqp_routing_key), $var(amqp_payload_request))) {
$du = $(kzR{kz.json,Switch-URL});
if($du != $null) {
@ -93,14 +93,14 @@ route[PRESENCE_FAST_PICKUP_ATTEMPT]
if(!is_present_hf("k-cid")) {
append_hf("k-cid: $var(replaced_call_id)\r\n");
}
xlog("L_INFO", "$ci|log|call-id $var(replaced_call_id) found, redirecting call ($(ru{uri.user})) to $du => $var(rep)\n");
xlog("L_INFO", "$ci|pickup|call-id $var(replaced_call_id) found, redirecting call ($(ru{uri.user})) to $du => $var(rep)\n");
route(RELAY);
exit();
} else {
xlog("L_WARN", "$ci|log|call-id $var(replaced_call_id) not found in cluster, proceeding with normal dispatch\n");
xlog("L_WARN", "$ci|pickup|call-id $var(replaced_call_id) not found in cluster, proceeding with normal dispatch\n");
}
} else {
xlog("L_WARN", "$ci|log|error querying cluster for call-id $var(replaced_call_id), proceeding with normal dispatch\n");
xlog("L_WARN", "$ci|pickup|error querying cluster for call-id $var(replaced_call_id), proceeding with normal dispatch\n");
}
}
}
@ -116,7 +116,7 @@ route[PRESENCE_FAST_PICKUP_ATTEMPT]
if(!is_present_hf("k-cid")) {
append_hf("k-cid: $sht(park=>$var(park)::callid)\r\n");
}
xlog("L_INFO", "$ci|log|redirecting park request to $du , callid : $sht(park=>$var(park)::callid)\n");
xlog("L_INFO", "$ci|pickup|redirecting park request to $du , callid : $sht(park=>$var(park)::callid)\n");
route(RELAY);
exit();
}
@ -128,7 +128,7 @@ route[PRESENCE_FAST_PICKUP_ATTEMPT]
if(!is_present_hf("k-cid")) {
append_hf("k-cid: $sht(park=>$(ru{uri.user})@$(ruri{uri.domain})::callid)\r\n");
}
xlog("L_INFO", "$ci|log|redirecting park request to $du, callid: $sht(park=>$(ru{uri.user})@$(ruri{uri.domain})::callid)\n");
xlog("L_INFO", "$ci|pickup|redirecting park request to $du, callid: $sht(park=>$(ru{uri.user})@$(ruri{uri.domain})::callid)\n");
route(RELAY);
exit();
}
@ -139,13 +139,13 @@ route[PRESENCE_FAST_PICKUP_ATTEMPT]
$var(park_extension) = "^\*[3,5]";
}
if($(ru{uri.user}) =~ $var(park_extension) && !is_ip($rd)) {
xlog("L_INFO", "$ci|log|checking park request to $(ru{uri.user})@$(ru{uri.domain})\n");
xlog("L_INFO", "$ci|pickup|checking park request to $(ru{uri.user})@$(ru{uri.domain})\n");
$var(amqp_payload_request) = '{"Event-Category" : "call_event" , "Event-Name" : "query_user_channels_req", "Username" : "*3$(ru{uri.user}{s.substr,2,0})", "Realm" : "$(ru{uri.domain})", "Active-Only" : true }';
$var(amqp_routing_key) = "call.status_req." + $(ci{kz.encode});
if(kazoo_query("callevt", $var(amqp_routing_key), $var(amqp_payload_request))) {
$du = $(kzR{kz.json,Channels[0].switch_url});
if($du != $null) {
xlog("L_INFO", "$ci|log|redirecting park request to $du from realtime query reply\n");
xlog("L_INFO", "$ci|pickup|redirecting park request to $du from realtime query reply\n");
if(!is_present_hf("k-cid")) {
append_hf("k-cid: $(kzR{kz.json,Channels[0].call_id})\r\n");
}
@ -199,7 +199,7 @@ route[PRESENCE_FAST_PICKUP_INIT]
$var(Cookie) = $(kzE{kz.json,Switch-URI}{s.md5});
$var(call_id) = $(kzE{kz.json,Call-ID});
$var(JObj) = $(kzE{re.subst,/"Call-ID"\s*\:\s*"([^"]*)"/"Call-ID" : "kfp+$var(Option)$var(Cookie)@\1"/});
xlog("L_DEBUG", "$var(call_id)|fast|shortcut ($var(Pickup)) kfp+$var(Option)$var(Cookie)@$var(call_id)\n");
xlog("L_DEBUG", "$var(call_id)|pickup|shortcut ($var(Pickup)) kfp+$var(Option)$var(Cookie)@$var(call_id)\n");
}
}


+ 27
- 26
kamailio/presence-notify.cfg View File

@ -26,12 +26,12 @@ route[PRESENCE_LOCAL_REQ_NOTIFY]
return;
}
t_set_fr($sel(cfg_get.kazoo.presence_notify_timeout), $sel(cfg_get.kazoo.presence_notify_timeout));
xlog("L_DEBUG", "$ci|log|init preparing $subs(event) notify to $subs(watcher_username)@$subs(watcher_domain) on behalf of $subs(pres_uri) : $du\n");
xlog("L_DEBUG", "$ci|notify|init preparing $subs(event) notify to $subs(watcher_username)@$subs(watcher_domain) on behalf of $subs(pres_uri) : $du\n");
if($sel(cfg_get.kazoo.presence_notify_log_init_body) == 1) {
xlog("L_INFO", "$ci|log|init|body $(mb{s.escape.common}{s.replace,\','}{s.replace,$$,})\n");
xlog("L_INFO", "$ci|notify|init|body $(mb{s.escape.common}{s.replace,\','}{s.replace,$$,})\n");
}
if($sel(cfg_get.kazoo.presence_notify_force_send_socket) == 1) {
xlog("L_DEBUG", "$ci|log|init|forcing socket to $(pr{s.tolower}):$(hdr(Contact){nameaddr.uri}{uri.host}):$(hdr(Contact){nameaddr.uri}{uri.port}) when sending notify to $ruri\n");
xlog("L_DEBUG", "$ci|notify|init|forcing socket to $(pr{s.tolower}):$(hdr(Contact){nameaddr.uri}{uri.host}):$(hdr(Contact){nameaddr.uri}{uri.port}) when sending notify to $ruri\n");
$fs = $_s($(pr{s.tolower}):$(hdr(Contact){nameaddr.uri}{uri.host}):$(hdr(Contact){nameaddr.uri}{uri.port}));
}
if($sel(cfg_get.kazoo.presence_notify_record_route) == 1) {
@ -68,35 +68,35 @@ event_route[presence:notify-reply]
if($notify_reply($rs) == 200) {
$sht(notify=>$ci) = $null;
$sht(notify=>$ci::count) = 0;
xlog("$(sel(cfg_get.kazoo.presence_notify_log_level){s.int})", "$ci|end|notified $subs(watcher_username)@$subs(watcher_domain) on behalf of $subs(pres_uri)\n");
xlog("$(sel(cfg_get.kazoo.presence_notify_log_level){s.int})", "event|notify|notified $subs(watcher_username)@$subs(watcher_domain) on behalf of $subs(pres_uri)\n");
} else if($subs(reason) == "timeout") {
$xavp(pres=>delete_subscription) = 1;
xlog("L_DEBUG", "$ci|end|deleting subscription $subs(pres_uri) for $subs(watcher_username)@$subs(watcher_domain) due to timeout\n");
xlog("L_DEBUG", "event|notify|deleting subscription $subs(pres_uri) for $subs(watcher_username)@$subs(watcher_domain) due to timeout\n");
} else if($notify_reply($rs) == 481 && $subs(reason) == "timeout") {
xlog("L_DEBUG","$ci|end|sent subscription $hdr(Subscription-State)\n");
xlog("L_DEBUG","event|notify|sent subscription $hdr(Subscription-State)\n");
} else if($notify_reply($rs) == 408) {
if($rP != "UDP") {
$xavp(pres=>delete_subscription) = 1;
xlog("L_ERROR", "$ci|warning|removing $rP watcher $subs(watcher_username)@$subs(watcher_domain) for $subs(pres_uri) with reply $notify_reply($rs)\n");
xlog("L_ERROR", "event|notify|removing $rP watcher $subs(watcher_username)@$subs(watcher_domain) for $subs(pres_uri) with reply $notify_reply($rs)\n");
} else {
$var(shtinc) = $shtinc(notify=>$ci::count);
if($var(shtinc) > $sel(cfg_get.kazoo.presence_max_notify_error)) {
$xavp(pres=>delete_subscription) = 1;
xlog("L_WARNING", "$ci|error|removing $rP watcher $subs(watcher_username)@$subs(watcher_domain) for $subs(pres_uri) with reply $notify_reply($rs)\n");
xlog("L_WARNING", "event|notify|removing $rP watcher $subs(watcher_username)@$subs(watcher_domain) for $subs(pres_uri) with reply $notify_reply($rs)\n");
} else {
$var(level) = 6 - $var(shtinc);
xlog("$var(level)", "$ci|error|received $notify_reply($rs) ($var(shtinc)/$sel(cfg_get.kazoo.presence_max_notify_error)) when notifying $subs(watcher_username)@$subs(watcher_domain) on behalf of $subs(pres_uri) with reply $notify_reply($rs)\n");
xlog("$var(level)", "event|notify|received $notify_reply($rs) ($var(shtinc)/$sel(cfg_get.kazoo.presence_max_notify_error)) when notifying $subs(watcher_username)@$subs(watcher_domain) on behalf of $subs(pres_uri) with reply $notify_reply($rs)\n");
}
}
} else {
$xavp(pres=>delete_subscription) = 1;
xlog("L_WARNING", "$ci|end|deleting subscription $subs(pres_uri) as $subs(watcher_username)@$subs(watcher_domain) replied with $notify_reply($rs)\n");
xlog("L_WARNING", "event|notify|deleting subscription $subs(pres_uri) as $subs(watcher_username)@$subs(watcher_domain) replied with $notify_reply($rs)\n");
}
if($sel(cfg_get.kazoo.presence_notify_log_body) == 1)
xlog("L_INFO", "$ci|log|sent|body $(mb{s.escape.common}{s.replace,\','}{s.replace,$$,})\n");
xlog("L_INFO", "event|notify|sent|body $(mb{s.escape.common}{s.replace,\','}{s.replace,$$,})\n");
if($sel(cfg_get.kazoo.presence_notify_log_resp_body) == 1)
xlog("L_INFO", "$ci|log|resp|body $(notify_reply($mb){s.escape.common}{s.replace,\','}{s.replace,$$,})\n");
xlog("L_INFO", "event|notify|resp|body $(notify_reply($mb){s.escape.common}{s.replace,\','}{s.replace,$$,})\n");
if($sel(cfg_get.kazoo.presence_notify_log_to_amqp) == 1) {
route(PRESENCE_NOTIFY_AMQP);
@ -116,16 +116,17 @@ route[PRESENCE_LOG_TIMER_ROUTE]
$var(runloop) = 1;
while(mq_fetch("presence_last_notity") == 1 && $var(runloop) < MAX_WHILE_LOOPS) {
$var(ci) = $mqk(presence_last_notity);
xlog("L_DEBUG", "Query : $mqv(presence_last_notity)\n");
xlog("L_DEBUG", "event|notify|Query : $mqv(presence_last_notity)\n");
$var(sqlres) = sql_query("cb", "$mqv(presence_last_notity)");
xlog("L_DEBUG", "Query result : $var(sqlres)\n");
xlog("L_DEBUG", "event|notify|Query result : $var(sqlres)\n");
if($var(sqlres) < 0) {
xlog("L_ERROR", "$var(ci)|log|error running query : $mqv(presence_last_notity)\n");
xlog("L_ERROR", "$var(ci)|notify|error running query : $mqv(presence_last_notity)\n");
} else {
$var(nrows) = $sqlrows(cb);
xlog("L_DEBUG", "$var(ci)|log|end UPDATED $var(nrows)\n");
xlog("L_DEBUG", "event|notify|end UPDATED $var(nrows)\n");
if($var(nrows) == 0) {
xlog("L_DEBUG", "$var(ci)|log|error no rows affected when running query\n");
xlog("L_DEBUG", "event|notify|error no rows affected when running query\n");
}
}
$var(runloop) = $var(runloop) + 1;
@ -137,7 +138,7 @@ route[PRESENCE_NOTIFY_AMQP]
$var(amqp_payload_request) = $_s({"Event-Category" : "presence", "Event-Name" : "notify", "Event-Package" : "$subs(event)", "Timestamp" : $TS, "Call-ID" : "$subs(callid)", "From" : "$fu", "To" : "$subs(to_user)@$subs(to_domain)", "Sent" : "$(TS{s.ftime,%Y-%m-%d %H:%M:%S})", "Body" : "Hostname : MY_HOSTNAME\r\nTimestamp : $(TS{s.ftime,%Y-%m-%d %H:%M:%S})\r\n$(mb{s.escape.common}{s.replace,\','}{s.replace,$$,})\r\nResponse\r\n$(notify_reply($mb){s.escape.common}{s.replace,\','}{s.replace,$$,})","Remote-CSeq" : $subs(remote_cseq), "Local-CSeq" : $subs(local_cseq), "Sequence" : $cs, "Version" : $subs(version), "Reply" : $notify_reply($rs) });
$var(rk) = "notify." + $(subs(to_domain){kz.encode}) + "." + $(subs(to_user){kz.encode});
kazoo_publish("omnipresence", "$var(rk)", $var(amqp_payload_request));
xlog("L_INFO", "$ci|log|sent notify callback for event $subs(event) : $tu\n");
xlog("L_INFO", "$ci|notify|sent notify callback for event $subs(event) : $tu\n");
}
@ -155,11 +156,11 @@ route[PRESENCE_CLEANUP]
route[PRESENCE_PUBLISHER_CLEANUP]
{
xlog("L_DEBUG", "processing presence publisher cleanup\n");
xlog("L_DEBUG", "event|notify|processing presence publisher cleanup\n");
$var(sqlres) = sql_query("cb", "update tmp_probe set action = 1 where action = 0");
if($var(sqlres) < 0) {
xlog("L_ERROR", "$var(ci)|log|error cleaning tmp_probe\n");
xlog("L_ERROR", "event|notify|error cleaning tmp_probe\n");
return;
} else {
$var(nrows) = $sqlrows(cb);
@ -167,7 +168,7 @@ route[PRESENCE_PUBLISHER_CLEANUP]
if (sql_xquery("cb", "select * from tmp_probe where action = 1", "cleanup_pres") == 1)
{
while($xavp(cleanup_pres) != $null) {
xlog("L_DEBUG", "processing $xavp(cleanup_pres=>event) notifies for $xavp(cleanup_pres=>presentity_uri)\n");
xlog("L_DEBUG", "event|notify|processing $xavp(cleanup_pres=>event) notifies for $xavp(cleanup_pres=>presentity_uri)\n");
pres_refresh_watchers("$xavp(cleanup_pres=>presentity_uri)", "$xavp(cleanup_pres=>event)", 1);
pv_unset("$xavp(cleanup_pres)");
}
@ -175,11 +176,11 @@ route[PRESENCE_PUBLISHER_CLEANUP]
$var(sqlres) = sql_query("cb", "delete from tmp_probe where action = 1");
if($var(sqlres) < 0) {
xlog("L_ERROR", "$var(ci)|log|error cleaning tmp_probe\n");
xlog("L_ERROR", "event|notify|error cleaning tmp_probe\n");
} else {
$var(nrows) = $sqlrows(cb);
if($var(nrows) > 0) {
xlog("L_DEBUG", "presence publisher cleanup processed $var(nrows) rows\n");
xlog("L_DEBUG", "event|notify|presence publisher cleanup processed $var(nrows) rows\n");
}
}
}
@ -189,15 +190,15 @@ route[PRESENCE_PUBLISHER_CLEANUP]
route[PRESENCE_DEFERRED_INIT]
{
xlog("L_INFO", "processing presence deferred init\n");
xlog("L_INFO", "event|notify|processing presence deferred init\n");
$var(sqlres) = sql_query("cb", "update tmp_probe set action = 0 where action = 2");
if($var(sqlres) < 0) {
xlog("L_ERROR", "$var(ci)|log|error cleaning tmp_probe\n");
xlog("L_ERROR", "event|notify|error cleaning tmp_probe\n");
return;
} else {
$var(nrows) = $sqlrows(cb);
if($var(nrows) > 0) {
xlog("L_NOTICE", "scheduled update for $var(nrows) watched presentities/event\n");
xlog("L_NOTICE", "event|notify|scheduled update for $var(nrows) watched presentities/event\n");
}
}
}


+ 7
- 7
kamailio/presence-query.cfg View File

@ -5,7 +5,7 @@ kazoo.presence_query_reply_zones = KZ_PRESENCE_QUERY_REPLY_ZONES descr "0 - all,
route[PRESENCE_SEARCH_SUMMARY]
{
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|query|processing presence summary query for $(kzE{kz.json,Realm})\n");
xlog("L_INFO", "event|presence_query|$(kzE{kz.json,Msg-ID}) processing presence summary query for $(kzE{kz.json,Realm})\n");
$var(Queue) = $(kzE{kz.json,Server-ID});
$var(Event) = $(kzE{kz.json,Event-Package});
$var(Domain) = $(kzE{kz.json,Realm});
@ -20,7 +20,7 @@ route[PRESENCE_SEARCH_SUMMARY]
$var(Query) = $var(Query) + $_s( and watcher_username = "$var(Username)");
}
$var(Query) = $var(Query) + " order by presentity_uri, event, watcher_username, callid";
xlog("L_DEBUG", "$ci| QUERY $var(Query)\n");
xlog("L_DEBUG", "event|presence_query|query $var(Query)\n");
if (sql_xquery("cb", "$var(Query)", "ra") == 1)
{
@ -48,7 +48,7 @@ route[PRESENCE_SEARCH_SUMMARY]
$var(Sep1)=", ";
}
}
xlog("L_DEBUG", "$ci| RESULT \"Subscriptions\" : { $var(Subs) }\n");
xlog("L_DEBUG", "event|presence_query|result \"Subscriptions\" : { $var(Subs) }\n");
$var(amqp_payload_request) = $_s({"Event-Category" : "presence", "Event-Name" : "search_resp", "Msg-ID" : "$(kzE{kz.json,Msg-ID})", "Subscriptions" : { $var(Subs) } });
kazoo_publish("targeted", "$var(Queue)", $var(amqp_payload_request));
@ -57,7 +57,7 @@ route[PRESENCE_SEARCH_SUMMARY]
route[PRESENCE_SEARCH_DETAIL]
{
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|query|processing presence query detail for $(kzE{kz.json,Username}) in realm $(kzE{kz.json,Realm})\n");
xlog("L_INFO", "event|presence_query|$(kzE{kz.json,Msg-ID}) processing presence query detail for $(kzE{kz.json,Username}) in realm $(kzE{kz.json,Realm})\n");
$var(Queue) = $(kzE{kz.json,Server-ID});
$var(Msg-ID) = $(kzE{kz.json,Msg-ID});
$var(Event) = $(kzE{kz.json,Event-Package});
@ -71,14 +71,14 @@ route[PRESENCE_SEARCH_DETAIL]
$var(Query) = $var(Query) + $_s( and a.event = "$var(Event)");
}
$var(Query) = $var(Query) + " order by event, watcher_username, callid";
xlog("L_DEBUG", "$ci| STATUS QUERY $var(Query)\n");
xlog("L_DEBUG", "event|presence_query|status query $var(Query)\n");
if (sql_xquery("cb", "$var(Query)", "ra") == 1) {
while($xavp(ra) != $null) {
$var(Event) = $xavp(ra=>event);
while($xavp(ra) != $null && $var(Event) == $xavp(ra=>event)) {
$var(Sub) = $_s("$var(Username)" : {"$xavp(ra=>event)" : { "$xavp(ra=>watcher_username)" : {"kamailio@MY_HOSTNAME" : {"$xavp(ra=>callid)" : {"time" : $xavp(ra=>time), "result" : $xavp(ra=>result), "sent" : "$(xavp(ra=>sent_msg){s.escape.common}{s.replace,\','}{s.replace,$$,}{re.subst,/\\\\\\"/\\"/g})", "received" : "$(xavp(ra=>received_msg){s.escape.common}{s.replace,\','}{s.replace,$$,})", "user_agent" : "$(xavp(ra=>user_agent){s.escape.common}{s.replace,\','}{s.replace,$$,})"}}}}});
xlog("L_DEBUG", "$ci| RESULT \"Subscriptions\" : { $var(Sub) }\n");
xlog("L_DEBUG", "event|presence_query|result \"Subscriptions\" : { $var(Sub) }\n");
$var(amqp_payload_request) = '{"Event-Category" : "presence", "Event-Name" : "search_partial_resp", "Msg-ID" : "$var(Msg-ID)", "Subscriptions" : { $var(Sub) } }';
kazoo_publish("targeted", "$var(Queue)", $var(amqp_payload_request));
pv_unset("$xavp(ra)");
@ -105,7 +105,7 @@ event_route[kazoo:consumer-event-presence-search-req]
route(PRESENCE_SEARCH_DETAIL);
break;
default:
xlog("L_INFO", "$ci|search type '$(kzE{kz.json,Search-Type})' not handled\n");
xlog("L_INFO", "event|presence_query|search type '$(kzE{kz.json,Search-Type})' not handled\n");
}
}
}


+ 19
- 19
kamailio/presence-reset.cfg View File

@ -17,7 +17,7 @@ route[PRESENCE_RESET_ROUTE]
route[RESET_PUBLISHER]
{
xlog("L_INFO", "$var(Msg-ID)|reset|received presence reset for publisher $var(MediaUrl)\n");
xlog("L_INFO", "event|presence_reset|$var(Msg-ID) received presence reset for publisher $var(MediaUrl)\n");
if($sel(cfg_get.kazoo.presence_reset_blf_defer_update) == 0) {
$var(Query) = $_s(KZQ_RESET_PUBLISHER_UPDATE);
sql_query("exec", "$var(Query)");
@ -25,7 +25,7 @@ route[RESET_PUBLISHER]
$var(Query) = $_s(KZQ_PRESENCE_RESET);
sql_query("exec", "$var(Query)");
$var(presentities) = $sqlrows(exec);
xlog("L_INFO", "$var(Msg-ID)|reset|removed $var(presentities) presentities from publisher $var(MediaUrl)\n");
xlog("L_INFO", "event|presence_reset|$var(Msg-ID) removed $var(presentities) presentities from publisher $var(MediaUrl)\n");
if($var(presentities) > 0) {
route(PRESENCE_PUBLISHER_CLEANUP);
}
@ -35,7 +35,7 @@ route[PRESENCE_ZONE_UNAVAILABLE]
{
if($(kzE{kz.json,name}) == "presence") {
$var(Zone) = $(kzE{kz.json,zone});
xlog("L_WARN", "amqp|reset|resetting publisher zone $var(Zone)\n");
xlog("L_WARN", "event|presence_reset|resetting publisher zone $var(Zone)\n");
route(RESET_PUBLISHER_ZONE);
}
}
@ -49,7 +49,7 @@ route[RESET_PUBLISHER_ZONE]
$var(Query) = $_s(KZQ_PRESENCE_ZONE_RESET);
sql_query("exec", "$var(Query)");
$var(presentities) = $sqlrows(exec);
xlog("L_INFO", "amqp|reset|removed $var(presentities) presentities from zone $var(Zone)\n");
xlog("L_INFO", "event|presence_reset|removed $var(presentities) presentities from zone $var(Zone)\n");
if($var(presentities) > 0) {
route(PRESENCE_PUBLISHER_CLEANUP);
}
@ -57,33 +57,33 @@ route[RESET_PUBLISHER_ZONE]
route[RESET_ALL]
{
xlog("L_INFO", "$var(Msg-ID)|reset|received presence reset ALL\n");
xlog("L_INFO", "event|presence_reset|$var(Msg-ID) received presence reset ALL\n");
sql_query("exec", "delete from presentity");
$var(presentities) = $sqlrows(exec);
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|removed $var(presentities) presentities\n");
xlog("L_INFO", "event|presence_reset|$(kzE{kz.json,Msg-ID}) removed $var(presentities) presentities\n");
}
route[RESET_ZONE]
{
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for this zone (MY_AMQP_ZONE)\n");
xlog("L_INFO", "event|presence_reset|$(kzE{kz.json,Msg-ID}) received presence reset for this zone (MY_AMQP_ZONE)\n");
route(RESET_ALL);
}
route[RESET_SERVER]
{
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for this server (MY_HOSTNAME)\n");
xlog("L_INFO", "event|presence_reset|$(kzE{kz.json,Msg-ID}) received presence reset for this server (MY_HOSTNAME)\n");
route(RESET_ALL);
}
route[RESET_ACCOUNT]
{
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for realm $(kzE{kz.json,Realm})\n");
xlog("L_INFO", "event|presence_reset|$(kzE{kz.json,Msg-ID}) received presence reset for realm $(kzE{kz.json,Realm})\n");
sql_query("exec", 'KZQ_RESET_ACCOUNT_UPDATE');
$var(watchers) = $sqlrows(exec);
sql_query("exec", 'KZQ_RESET_ACCOUNT_RESET');
$var(presentities) = $sqlrows(exec);
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|removed $var(presentities) presentities and expired $var(watchers) subscribers for realm $(kzE{kz.json,Realm})\n");
xlog("L_INFO", "event|presence_reset|$(kzE{kz.json,Msg-ID}) removed $var(presentities) presentities and expired $var(watchers) subscribers for realm $(kzE{kz.json,Realm})\n");
if($var(watchers) > 0) {
route(PRESENCE_PUBLISHER_CLEANUP);
}
@ -92,7 +92,7 @@ route[RESET_ACCOUNT]
route[RESET_WILDCARD]
{
if($(kzE{kz.json,Realm}) == "*" && $(kzE{kz.json,Username}) == "*") {
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for cluster\n");
xlog("L_INFO", "event|presence_reset|$(kzE{kz.json,Msg-ID}) received presence reset for cluster\n");
route(RESET_ALL);
} else {
if($(kzE{kz.json,Realm}) == "*") {
@ -107,7 +107,7 @@ route[RESET_WILDCARD]
$var(MediaUrl) = $(kzE{kz.json,Username});
route(RESET_PUBLISHER);
} else {
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence wildcard reset for $(kzE{kz.json,Username}). 'MY_AMQP_ZONE/MY_HOSTNAME' doesn't care\n");
xlog("L_INFO", "event|presence_reset|$(kzE{kz.json,Msg-ID}) received presence wildcard reset for $(kzE{kz.json,Username}). 'MY_AMQP_ZONE/MY_HOSTNAME' doesn't care\n");
}
}
}
@ -125,30 +125,30 @@ event_route[kazoo:consumer-event-presence-reset]
exit();
}
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for $(kzE{kz.json,Username})@$(kzE{kz.json,Realm})\n");
xlog("L_INFO", "event|presence_reset|$(kzE{kz.json,Msg-ID}) received presence reset for $(kzE{kz.json,Username})@$(kzE{kz.json,Realm})\n");
$var(presentity) = $_s(sip:$(kzE{kz.json,Username})@$(kzE{kz.json,Realm}));
route(COUNT_SUBSCRIBERS);
sql_query("exec", 'KZQ_EVENT_PRESENCE_RESET_DELETE');
if($xavp(watchers=>message-summary) > 0) {
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|notifying $xavp(watchers=>message-summary) message-summary subscribers of $var(presentity)\n");
xlog("L_INFO", "event|presence_reset|$(kzE{kz.json,Msg-ID}) notifying $xavp(watchers=>message-summary) message-summary subscribers of $var(presentity)\n");
pres_refresh_watchers("$var(presentity)", "message-summary", 1);
} else {
xlog("L_DEBUG", "$(kzE{kz.json,Msg-ID})|reset|skip message-summary subscriber notification for $var(presentity)\n");
xlog("L_DEBUG", "event|presence_reset|$(kzE{kz.json,Msg-ID}) skip message-summary subscriber notification for $var(presentity)\n");
}
if($xavp(watchers=>presence) > 0) {
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|notifying $xavp(watchers=>presence) presence subscribers of $var(presentity)\n");
xlog("L_INFO", "event|presence_reset|$(kzE{kz.json,Msg-ID}) notifying $xavp(watchers=>presence) presence subscribers of $var(presentity)\n");
pres_refresh_watchers("$var(presentity)", "presence", 1);
} else {
xlog("L_DEBUG", "$(kzE{kz.json,Msg-ID})|reset|skip presence subscriber notification for $var(presentity)\n");
xlog("L_DEBUG", "event|presence_reset|$(kzE{kz.json,Msg-ID}) skip presence subscriber notification for $var(presentity)\n");
}
if($xavp(watchers=>dialog) > 0) {
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|notifying $xavp(watchers=>dialog) dialog subscribers of $var(presentity)\n");
xlog("L_INFO", "event|presence_reset|$(kzE{kz.json,Msg-ID}) notifying $xavp(watchers=>dialog) dialog subscribers of $var(presentity)\n");
pres_refresh_watchers("$var(presentity)", "dialog", 1);
} else {
xlog("L_DEBUG", "$(kzE{kz.json,Msg-ID})|reset|skip dialog subscriber notification for $var(presentity)\n");
xlog("L_DEBUG", "event|presence_reset|$(kzE{kz.json,Msg-ID}) skip dialog subscriber notification for $var(presentity)\n");
}
}

+ 33
- 32
kamailio/presence-role.cfg View File

@ -163,20 +163,20 @@ route[HANDLE_NEW_SUBSCRIBE]
if ($tU == $null) {
xlog("L_INFO", "$ci|stop|ignoring subscribe with empty TO username from a $ua\n");
xlog("L_INFO", "$ci|end|ignoring subscribe with empty TO username from a $ua\n");
send_reply(400, "Missing TO username");
return;
}
if ($fU == $null) {
xlog("L_INFO", "$ci|stop|ignoring subscribe with empty FROM username from a $ua\n");
xlog("L_INFO", "$ci|end|ignoring subscribe with empty FROM username from a $ua\n");
send_reply(400, "Missing FROM username");
return;
}
if($shtinc(first=>$ci) > 1) {
sql_query("exec", 'KZQ_HANDLE_NEW_SUBSCRIBE_DELETE1');
xlog("L_INFO", "$ci|subscribe|resetting $hdr(Event) subscription from $fU to $tU in realm $fd : $sqlrows(exec)\n");
xlog("L_INFO", "$ci|presence|resetting $hdr(Event) subscription from $fU to $tU in realm $fd : $sqlrows(exec)\n");
} else {
$var(presentity_uri) = $ru;
if($(var(presentity_uri){uri.user}) == "") {
@ -184,7 +184,7 @@ route[HANDLE_NEW_SUBSCRIBE]
}
if($shtinc(first=>$fU::$var(presentity_uri)::$fd::$hdr(Event)) > 1) {
sql_query("exec", 'KZQ_HANDLE_NEW_SUBSCRIBE_DELETE2');
xlog("L_INFO", "$ci|subscribe|resetting $hdr(Event) subscription from $fU to $var(presentity_uri) in realm $fd : $sqlrows(exec)\n");
xlog("L_INFO", "$ci|presence|resetting $hdr(Event) subscription from $fU to $var(presentity_uri) in realm $fd : $sqlrows(exec)\n");
}
}
@ -197,10 +197,10 @@ route[HANDLE_NEW_SUBSCRIBE]
route(PRESENCE_NAT);
#!endif
} else {
xlog("L_INFO", "$ci|stop|error $T_reply_code for new $hdr(Event) subscription from $fU to $tU in realm $fd\n");
xlog("L_INFO", "$ci|end|error $T_reply_code for new $hdr(Event) subscription from $fU to $tU in realm $fd\n");
}
} else {
xlog("L_INFO", "$ci|stop|unsupported subscription package $hdr(Event) from $fU to $tU in realm $fd\n");
xlog("L_INFO", "$ci|end|unsupported subscription package $hdr(Event) from $fU to $tU in realm $fd\n");
send_reply(489, "Bad Event");
}
}
@ -227,7 +227,7 @@ route[REQUEST_PROBE]
$var(mwi) = $(tU{s.substr,3,0});
route(REQUEST_MWI);
} else {
xlog("L_INFO", "$ci|sub|requesting $hdr(Event) probe for $subs(to_user) in realm $subs(to_domain)\n");
xlog("L_INFO", "$ci|presence|requesting $hdr(Event) probe for $subs(to_user) in realm $subs(to_domain)\n");
$var(rk) = "probes." + $hdr(Event);
$var(amqp_payload_request) = $_s({"Event-Category" : "presence", "Event-Name" : "probe", "Event-Package" : "$hdr(event)", "Username" : "$subs(to_user)", "Realm" : "$subs(to_domain)", "Call-ID" : "$ci"});
kazoo_publish("presence", "$var(rk)", $var(amqp_payload_request));
@ -239,7 +239,7 @@ route[REQUEST_PROBE]
route[REQUEST_MWI]
{
xlog("L_INFO", "$ci|sub|requesting mwi probe for $var(mwi) in realm $subs(to_domain)\n");
xlog("L_INFO", "$ci|presence|requesting mwi probe for $var(mwi) in realm $subs(to_domain)\n");
$var(rk) = "mwi_queries." + $(subs(to_domain){kz.encode});
$var(amqp_payload_request) = $_s({"Event-Category" : "presence", "Event-Name" : "mwi_query", "Username" : "$var(mwi)", "Realm" : "$fd", "Call-ID" : "$ci"});
kazoo_publish("presence", "$var(rk)", $var(amqp_payload_request));
@ -348,7 +348,7 @@ event_route[kazoo:consumer-event-presence-dialog-update]
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_no_targets_log_level){s.int});
$var(StartRoute) = $(TV(Sn){s.replace,.,});
$var(delta_to_start) = $var(StartRoute) - $(kzE{kz.json,AMQP-Received});
xlog("L_DEBUG", "$(kzE{kz.json,Call-ID})|log|received $(kzE{kz.json,Event-Package}) update for $(kzE{kz.json,From}) state $(kzE{kz.json,State}) from $(kzE{kz.json,AMQP-Broker-Zone}) => $(kzE{kz.json,Switch-URI}) (Δ1 $(kzE{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs)\n");
xlog("L_DEBUG", "event|presence|$(kzE{kz.json,Call-ID}) received $(kzE{kz.json,Event-Package}) update for $(kzE{kz.json,From}) state $(kzE{kz.json,State}) from $(kzE{kz.json,AMQP-Broker-Zone}) => $(kzE{kz.json,Switch-URI}) (Δ1 $(kzE{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs)\n");
$var(JObj) = $kzE;
route(PRESENCE_FAST_PICKUP_INIT);
@ -361,7 +361,7 @@ event_route[kazoo:consumer-event-presence-dialog-update]
$var(EndRoute) = $(TV(Sn){s.replace,.,});
$var(delta_to_finish) = $var(EndRoute) - $var(StartRoute);
xlog("$var(kz_presence_log_level)", "$(kzE{kz.json,Call-ID})|log|$(kzE{kz.json,Event-Package}) update for $(kzE{kz.json,From}) state $(kzE{kz.json,State}) from $(kzE{kz.json,AMQP-Broker-Zone}) => $(kzE{kz.json,Switch-URI}) (Δ1 $(kzE{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs, Δ3 $var(delta_to_finish) μs)\n");
xlog("$var(kz_presence_log_level)", "event|presence|$(kzE{kz.json,Call-ID}) $(kzE{kz.json,Event-Package}) update for $(kzE{kz.json,From}) state $(kzE{kz.json,State}) from $(kzE{kz.json,AMQP-Broker-Zone}) => $(kzE{kz.json,Switch-URI}) (Δ1 $(kzE{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs, Δ3 $var(delta_to_finish) μs)\n");
}
event_route[kazoo:consumer-event-presence-mwi-update]
@ -369,24 +369,24 @@ event_route[kazoo:consumer-event-presence-mwi-update]
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_no_targets_log_level){s.int});
$var(StartRoute) = $(TV(Sn){s.replace,.,});
$var(delta_to_start) = $var(StartRoute) - $(kzE{kz.json,AMQP-Received});
xlog("L_DBG", "$(kzE{kz.json,Call-ID})|log|received message-summary update for $(kzE{kz.json,From}) ($(kzE{kz.json,AMQP-Broker-Zone}))\n");
xlog("L_DBG", "event|presence|$(kzE{kz.json,Call-ID}) received message-summary update for $(kzE{kz.json,From}) ($(kzE{kz.json,AMQP-Broker-Zone}))\n");
$var(presentity) = $(kzE{kz.json,From});
$var(payload) = $kzE;
route(COUNT_SUBSCRIBERS);
if($xavp(watchers=>message-summary) > 0) {
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_with_targets_log_level){s.int});
xlog("L_INFO", "$(kzE{kz.json,Call-ID})|log|publishing $(kzE{kz.json,From}) message-summary update for $xavp(watchers=>message-summary) watchers\n");
xlog("L_INFO", "event|presence|$(kzE{kz.json,Call-ID}) publishing $(kzE{kz.json,From}) message-summary update for $xavp(watchers=>message-summary) watchers\n");
kazoo_pua_publish_mwi($kzE);
pres_refresh_watchers("$(kzE{kz.json,From})", "message-summary", 1);
} else {
#!ifdef PRESENCE_TRACK_ALL_PKG_MWI
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_with_targets_log_level){s.int});
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|saving $var(presentity) from mwi update => $var(payload)\n");
xlog("L_DEBUG", "event|presence|$(var(payload){kz.json,Call-ID}) saving $var(presentity) from mwi update => $var(payload)\n");
if(kazoo_pua_publish_mwi($kzE) != 1) {
xlog("L_ERR", "$(var(payload){kz.json,Call-ID})|log|error publishing $var(presentity) mwi update => $var(payload)\n");
xlog("L_ERR", "event|presence|$(var(payload){kz.json,Call-ID}) error publishing $var(presentity) mwi update => $var(payload)\n");
}
#!else
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|skip mwi update for $var(presentity)\n");
xlog("L_DEBUG", "event|presence|$(var(payload){kz.json,Call-ID}) skip mwi update for $var(presentity)\n");
#!endif
}
@ -399,7 +399,7 @@ event_route[kazoo:consumer-event-presence-mwi-update]
$var(EndRoute) = $(TV(Sn){s.replace,.,});
$var(delta_to_finish) = $var(EndRoute) - $var(StartRoute);
xlog("$var(kz_presence_log_level)", "$(kzE{kz.json,Call-ID})|log|message-summary update for $(kzE{kz.json,From}) light should be $var(mwi_state) (Δ1 $(kzE{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs, Δ3 $var(delta_to_finish) μs)\n");
xlog("$var(kz_presence_log_level)", "event|presence|$(kzE{kz.json,Call-ID}) message-summary update for $(kzE{kz.json,From}) light should be $var(mwi_state) (Δ1 $(kzE{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs, Δ3 $var(delta_to_finish) μs)\n");
}
@ -410,12 +410,12 @@ event_route[kazoo:consumer-event-presence-update]
$var(delta_to_start) = $var(StartRoute) - $(kzE{kz.json,AMQP-Received});
if($sel(cfg_get.kazoo.presence_ignore_status_probe_resp) == 1) {
if($(kzE{kz.json,State}) == "offline" || $(kzE{kz.json,State}) == "online") {
xlog("L_DEBUG", "$(kzE{kz.json,Call-ID})|log|ignoring $(kzE{kz.json,State}) state $(kzE{kz.json,Presence-ID})\n");
xlog("L_DEBUG", "event|presence|$(kzE{kz.json,Call-ID}) ignoring $(kzE{kz.json,State}) state $(kzE{kz.json,Presence-ID})\n");
return;
}
}
xlog("L_DEBUG", "$(kzE{kz.json,Call-ID})|log|received presence update for $(kzE{kz.json,Presence-ID})\n");
xlog("L_DEBUG", "event|presence|$(kzE{kz.json,Call-ID}) received presence update for $(kzE{kz.json,Presence-ID})\n");
$var(JObj) = $kzE;
$var(presentity) = $_s(sip:$(kzE{kz.json,Presence-ID}));
$var(payload) = $kzE;
@ -424,7 +424,7 @@ event_route[kazoo:consumer-event-presence-update]
$var(EndRoute) = $(TV(Sn){s.replace,.,});
$var(delta_to_finish) = $var(EndRoute) - $var(StartRoute);
xlog("$var(kz_presence_log_level)", "$(kzE{kz.json,Call-ID})|log|$(kzE{kz.json,Event-Package}) update for $(kzE{kz.json,From}) state $(kzE{kz.json,State}) from $(kzE{kz.json,AMQP-Broker-Zone}) => $(kzE{kz.json,Switch-URI}) (Δ1 $(kzE{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs, Δ3 $var(delta_to_finish) μs)\n");
xlog("$var(kz_presence_log_level)", "event|presence|$(kzE{kz.json,Call-ID}) $(kzE{kz.json,Event-Package}) update for $(kzE{kz.json,From}) state $(kzE{kz.json,State}) from $(kzE{kz.json,AMQP-Broker-Zone}) => $(kzE{kz.json,Switch-URI}) (Δ1 $(kzE{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs, Δ3 $var(delta_to_finish) μs)\n");
}
route[PRESENCE_UPDATE]
@ -440,57 +440,58 @@ route[PRESENCE_UPDATE]
( $(var(payload){kz.json,State}) == "early" ||
($(var(payload){kz.json,State}) == "confirmed" && $(var(payload){kz.json,State}) == "initiator")
)) {
xlog("L_WARN", "$(var(payload){kz.json,Call-ID})|log|not publishing state $(var(payload){kz.json,State}) for presentity $var(presentity) with $xavp(watchers=>self) calls, policy limit of $sel(cfg_get.kazoo.presence_max_call_per_presentity) calls per presentity \n");
xlog("L_WARN", "event|presence|$(var(payload){kz.json,Call-ID}) not publishing state $(var(payload){kz.json,State}) for presentity $var(presentity) with $xavp(watchers=>self) calls, policy limit of $sel(cfg_get.kazoo.presence_max_call_per_presentity) calls per presentity \n");
} else {
if($xavp(watchers=>dialog) > 0) {
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_with_targets_log_level){s.int});
if($(var(payload){kz.json,State}) == "terminated") {
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|publishing $var(presentity) dialog update for terminated dialog\n");
xlog("L_DEBUG", "event|presence|$(var(payload){kz.json,Call-ID}) publishing $var(presentity) dialog update for terminated dialog\n");
} else {
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|publishing $var(presentity) dialog update for $xavp(watchers=>dialog) watchers\n");
xlog("L_DEBUG", "event|presence|$(var(payload){kz.json,Call-ID}) publishing $var(presentity) dialog update for $xavp(watchers=>dialog) watchers\n");
}
if(kazoo_pua_publish_dialoginfo($var(JObj)) == 1) {
pres_refresh_watchers("$var(presentity)", "dialog", 1);
} else {
xlog("L_ERR", "$(var(payload){kz.json,Call-ID})|log|error publishing $var(presentity) dialog update\n");
xlog("L_ERR", "event|presence|$(var(payload){kz.json,Call-ID}) error publishing $var(presentity) dialog update\n");
};
} else {
#!ifdef PRESENCE_TRACK_ALL_PKG_DIALOG
if($(kzE{kz.json,Event-Package}) == "dialog") {
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_with_targets_log_level){s.int});
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|saving $var(presentity) from dialog update => $var(payload)\n");
xlog("L_DEBUG", "event|presence|$(var(payload){kz.json,Call-ID}) saving $var(presentity) from dialog update => $var(payload)\n");
if(kazoo_pua_publish_dialoginfo($var(JObj)) != 1) {
xlog("L_ERR", "$(var(payload){kz.json,Call-ID})|log|error publishing $var(presentity) dialog update => $var(payload)\n");
xlog("L_ERR", "event|presence|$(var(payload){kz.json,Call-ID}) error publishing $var(presentity) dialog update => $var(payload)\n");
}
}
#!else
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|skip dialog update for $var(presentity)\n");
xlog("L_DEBUG", "event|presence|$(var(payload){kz.json,Call-ID}) skip dialog update for $var(presentity)\n");
#!endif
}
if($xavp(watchers=>presence) > 0) {
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_with_targets_log_level){s.int});
if($(var(payload){kz.json,State}) == "terminated") {
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|publishing $var(presentity) presence update for terminated dialog\n");
xlog("L_DEBUG", "event|presence|$(var(payload){kz.json,Call-ID}) publishing $var(presentity) presence update for terminated dialog\n");
} else {
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|publishing $var(presentity) presence update for $xavp(watchers=>presence) watchers\n");
xlog("L_DEBUG", "event|presence|$(var(payload){kz.json,Call-ID}) publishing $var(presentity) presence update for $xavp(watchers=>presence) watchers\n");
}
if(kazoo_pua_publish_presence($var(JObj)) == 1) {
pres_refresh_watchers("$var(presentity)", "presence", 1);
} else {
xlog("L_ERR", "$(var(payload){kz.json,Call-ID})|log|error publishing $var(presentity) presence update\n");
xlog("L_ERR", "event|presence|$(var(payload){kz.json,Call-ID}) error publishing $var(presentity) presence update\n");
};
} else {
#!ifdef PRESENCE_TRACK_ALL_PKG_PRESENCE
if($(kzE{kz.json,Event-Package}) == "presence") {
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_with_targets_log_level){s.int});
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|saving $var(presentity) from presence update => $var(payload)\n");
xlog("L_DEBUG", "event|presence|$(var(payload){kz.json,Call-ID}) saving $var(presentity) from presence update => $var(payload)\n");
if(kazoo_pua_publish_presence($var(JObj)) != 1) {
xlog("L_ERR", "$(var(payload){kz.json,Call-ID})|log|error publishing $var(presentity) presence update => $var(payload)\n");
xlog("L_ERR", "event|presence|$(var(payload){kz.json,Call-ID}) error publishing $var(presentity) presence update => $var(payload)\n");
}
}
#!else
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|skip presence update for $var(presentity)\n");
xlog("L_DEBUG", "event|presence|$(var(payload){kz.json,Call-ID}) skip presence update for $var(presentity)\n");
#!endif
}
}


+ 19
- 19
kamailio/pusher-role.cfg View File

@ -184,27 +184,27 @@ route[PUSHER_DELIVER_CALL]
{
if(reg_fetch_contacts("location", "$hdr(X-KAZOO-AOR)", "callee")) {
if($sel(cfg_get.kazoo.pusher_log_contacts) == 1) {
xlog("L_NOTICE", "callee=>aor: $(ulc(callee=>aor))\n");
xlog("L_NOTICE", "callee=>count: $(ulc(callee=>count))\n");
xlog("L_NOTICE", "callee=>domain: $(ulc(callee=>domain))\n");
xlog("L_NOTICE", "callee=>aorhash $(ulc(callee=>aorhash))\n");
xlog("L_NOTICE", "$ci|pusher|callee=>aor: $(ulc(callee=>aor))\n");
xlog("L_NOTICE", "$ci|pusher|callee=>count: $(ulc(callee=>count))\n");
xlog("L_NOTICE", "$ci|pusher|callee=>domain: $(ulc(callee=>domain))\n");
xlog("L_NOTICE", "$ci|pusher|callee=>aorhash $(ulc(callee=>aorhash))\n");
$var(i) = 0;
while($var(i) < $(ulc(callee=>count))) {
xlog("L_NOTICE", "--- contact [$var(i)]\n");
xlog("L_NOTICE", "callee=>addr: $(ulc(callee=>addr)[$var(i)])\n");
xlog("L_NOTICE", "callee=>path: $(ulc(callee=>path)[$var(i)])\n");
xlog("L_NOTICE", "callee=>received: $(ulc(callee=>received)[$var(i)])\n");
xlog("L_NOTICE", "callee=>expires: $(ulc(callee=>expires)[$var(i)])\n");
xlog("L_NOTICE", "callee=>callid: $(ulc(callee=>callid)[$var(i)])\n");
xlog("L_NOTICE", "callee=>regid: $(ulc(callee=>regid)[$var(i)])\n");
xlog("L_NOTICE", "callee=>q: $(ulc(callee=>q)[$var(i)])\n");
xlog("L_NOTICE", "callee=>cseq: $(ulc(callee=>cseq)[$var(i)])\n");
xlog("L_NOTICE", "callee=>flags: $(ulc(callee=>flags)[$var(i)])\n");
xlog("L_NOTICE", "callee=>cflags: $(ulc(callee=>cflags)[$var(i)])\n");
xlog("L_NOTICE", "callee=>user_agent: $(ulc(callee=>user_agent)[$var(i)])\n");
xlog("L_NOTICE", "callee=>socket: $(ulc(callee=>socket)[$var(i)])\n");
xlog("L_NOTICE", "callee=>modified: $(ulc(callee=>modified)[$var(i)])\n");
xlog("L_NOTICE", "callee=>methods: $(ulc(callee=>methods)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|--- contact [$var(i)]\n");
xlog("L_NOTICE", "$ci|pusher|callee=>addr: $(ulc(callee=>addr)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|callee=>path: $(ulc(callee=>path)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|callee=>received: $(ulc(callee=>received)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|callee=>expires: $(ulc(callee=>expires)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|callee=>callid: $(ulc(callee=>callid)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|callee=>regid: $(ulc(callee=>regid)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|callee=>q: $(ulc(callee=>q)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|callee=>cseq: $(ulc(callee=>cseq)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|callee=>flags: $(ulc(callee=>flags)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|callee=>cflags: $(ulc(callee=>cflags)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|callee=>user_agent: $(ulc(callee=>user_agent)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|callee=>socket: $(ulc(callee=>socket)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|callee=>modified: $(ulc(callee=>modified)[$var(i)])\n");
xlog("L_NOTICE", "$ci|pusher|callee=>methods: $(ulc(callee=>methods)[$var(i)])\n");
$var(i) = $var(i) + 1;
}
}


+ 30
- 30
kamailio/rate-limiter-role.cfg View File

@ -15,7 +15,7 @@ route[DOS_PREVENTION] {
# If packet came from platform or from 4 class MERA, do not check it
if (isflagset(FLAG_INTERNALLY_SOURCED) || isflagset(FLAG_TRUSTED_SOURCE) ) {
xlog("L_DEBUG", "$ci |RL| Trusted source IP($si) ignoring\n");
xlog("L_DEBUG", "$ci|limiter|trusted source IP($si) ignoring\n");
return;
}
@ -39,7 +39,7 @@ route[DOS_PREVENTION] {
# For BYE method we use REALM from To SIP header
if ($fd =~ IP_REGEX) {
xlog("L_WARNING","$ci|RL-realm log| Fixup for $rm method with IP in from URI: use to-domain\n");
xlog("L_WARNING","$ci|limiter| Fixup for $rm method with IP in from URI: use to-domain\n");
$var(ltpm_realm) = $td+"/TOTAL/min";
$var(ltps_realm) = $td+"/TOTAL/sec";
$var(ltpm_device) = $fU+"@"+$td+"/TOTAL/min";
@ -57,20 +57,20 @@ route[DOS_PREVENTION] {
if ((is_method("INVITE") || is_method("REGISTER")) && (!isflagset(FLAG_IS_REPLY))) {
if ($sht(rate_limits=>$var(lrpm_realm)) == -1
|| $sht(rate_limits=>$var(lrps_realm)) == -1) {
xlog("L_INFO", "$ci|RL-realm log| Can't find HASHed rate for $var(entity) with $rm method\n");
xlog("L_INFO", "$ci|limiter|can't find HASHed rate for $var(entity) with $rm method\n");
$var(with-realm-request) = "true";
}
}
if ($sht(rate_limits=>$var(ltpm_realm)) == -1
|| $sht(rate_limits=>$var(ltps_realm)) == -1) {
xlog("L_INFO", "$ci|RL-realm log| Can't find HASHed rate for $var(entity) with $rm method\n");
xlog("L_INFO", "$ci|limiter|can't find HASHed rate for $var(entity) with $rm method\n");
$var(with-realm-total) = "true";
}
if (not_empty("$fU")) {
if ($fd =~ IP_REGEX) {
xlog("L_WARNING","$ci|RL-realm log| Fixup for $rm method with IP in from URI: use to-domain\n");
xlog("L_WARNING","$ci|limiter|fixup for $rm method with IP in from URI: use to-domain\n");
$var(entity) = $fU+"@"+$td;
} else {
$var(entity) = $fU+"@"+$fd;
@ -80,13 +80,13 @@ route[DOS_PREVENTION] {
if ((is_method("INVITE") || is_method("REGISTER")) && (!isflagset(FLAG_IS_REPLY))) {
if ($sht(rate_limits=>$var(lrpm_device)) == -1
|| $sht(rate_limits=>$var(lrps_device)) == -1) {
xlog("L_INFO", "$ci|RL-device log| Can't find HASHed rate for $var(entity) with $rm method\n");
xlog("L_INFO", "$ci|limiter|can't find HASHed rate for $var(entity) with $rm method\n");
$var(with-device-request) = "true";
}
}
if ($sht(rate_limits=>$var(ltpm_device)) == -1 || $sht(rate_limits=>$var(ltps_device)) == -1) {
xlog("L_INFO", "$ci|RL-device log| Can't find HASHed rate for $var(entity) with $rm method\n");
xlog("L_INFO", "$ci|limiter| can't find HASHed rate for $var(entity) with $rm method\n");
$var(with-device-total) = "true";
}
}
@ -104,10 +104,10 @@ route[DOS_PREVENTION] {
|| $var(with-realm-total) == "true" ) {
avp_printf("$avp(s:query-request)", "{\"Entity\" : \"$var(entity)\", \"$var(method-key)\" : $var(method-value), \"Event-Category\" : \"rate_limit\", \"Event-Name\" : \"query\", \"With-Realm\" : $var(with-realm-request)}");
xlog("L_INFO", "$ci|RL log| Query: $avp(s:query-request)\n");
xlog("L_INFO", "$ci|limiter|query: $avp(s:query-request)\n");
sl_send_reply("100", "Attempting K query");
if (kazoo_query("frontier", "sbc_config", $avp(s:query-request), "$var(amqp_result)")) {
xlog("L_INFO", "$ci|RL log| Response: $var(amqp_result)\n");
xlog("L_INFO", "$ci|limiter|response: $var(amqp_result)\n");
kazoo_json($var(amqp_result), "Realm.Minute." + $rm, "$var(realm-min)");
kazoo_json($var(amqp_result), "Realm.Second." + $rm, "$var(realm-sec)");
@ -120,44 +120,44 @@ route[DOS_PREVENTION] {
if ( not_empty("$var(realm-min)") ) {
$sht(rate_limits=>$var(lrpm_realm)) = $(var(realm-min){s.int});
xlog("L_INFO", "$ci|RL-realm log| $rm DB=>HASH for $var(lrpm_realm)=$sht(rate_limits=>$var(lrpm_realm))\n");
xlog("L_INFO", "$ci|limiter| $rm DB=>HASH for $var(lrpm_realm)=$sht(rate_limits=>$var(lrpm_realm))\n");
}
if ( not_empty("$var(realm-sec)") ) {
$sht(rate_limits=>$var(lrps_realm)) = $(var(realm-sec){s.int});
xlog("L_INFO", "$ci|RL-realm log| $rm DB=>HASH for $var(lrps_realm)=$sht(rate_limits=>$var(lrps_realm))\n");
xlog("L_INFO", "$ci|limiter| $rm DB=>HASH for $var(lrps_realm)=$sht(rate_limits=>$var(lrps_realm))\n");
}
if ( not_empty("$var(realm-min-total)") ) {
$sht(rate_limits=>$var(ltpm_realm)) = $(var(realm-min-total){s.int});
xlog("L_INFO", "$ci|RL-realm log| $rm DB=>HASH for $var(ltpm_realm)=$sht(rate_limits=>$var(ltpm_realm))\n");
xlog("L_INFO", "$ci|limiter| $rm DB=>HASH for $var(ltpm_realm)=$sht(rate_limits=>$var(ltpm_realm))\n");
}
if ( not_empty("$var(realm-sec-total)") ) {
$sht(rate_limits=>$var(ltps_realm)) = $(var(realm-sec-total){s.int});
xlog("L_INFO", "$ci|RL-realm log| $rm DB=>HASH for $var(ltps_realm)=$sht(rate_limits=>$var(ltps_realm))\n");
xlog("L_INFO", "$ci|limiter| $rm DB=>HASH for $var(ltps_realm)=$sht(rate_limits=>$var(ltps_realm))\n");
}
if ( not_empty("$var(device-min)") ) {
$sht(rate_limits=>$var(lrpm_device)) = $(var(device-min){s.int});
xlog("L_INFO", "$ci|RL-device log| $rm DB=>HASH for $var(lrpm_device)=$sht(rate_limits=>$var(lrpm_device))\n");
xlog("L_INFO", "$ci|limiter| $rm DB=>HASH for $var(lrpm_device)=$sht(rate_limits=>$var(lrpm_device))\n");
}
if ( not_empty("$var(device-sec)") ) {
$sht(rate_limits=>$var(lrps_device)) = $(var(device-sec){s.int});
xlog("L_INFO", "$ci|RL-device log| $rm DB=>HASH for $var(lrps_device)=$sht(rate_limits=>$var(lrps_device))\n");
xlog("L_INFO", "$ci|limiter| $rm DB=>HASH for $var(lrps_device)=$sht(rate_limits=>$var(lrps_device))\n");
}
if ( not_empty("$var(device-min-total)") ) {
$sht(rate_limits=>$var(ltpm_device)) = $(var(device-min-total){s.int});
xlog("L_INFO", "$ci|RL-device log| $rm DB=>HASH for $var(ltpm_device)=$sht(rate_limits=>$var(ltpm_device))\n");
xlog("L_INFO", "$ci|limiter| $rm DB=>HASH for $var(ltpm_device)=$sht(rate_limits=>$var(ltpm_device))\n");
}
if ( not_empty("$var(device-sec-total)") ) {
$sht(rate_limits=>$var(ltps_device)) = $(var(device-sec-total){s.int});
xlog("L_INFO", "$ci|RL-device log| $rm DB=>HASH for $var(ltps_device)=$sht(rate_limits=>$var(ltps_device))\n");
xlog("L_INFO", "$ci|limiter| $rm DB=>HASH for $var(ltps_device)=$sht(rate_limits=>$var(ltps_device))\n");
}
} else {
xlog("L_ERROR", "$ci|RL log| $rm DB unreachable for entity: $var(entity)\n");
xlog("L_ERROR", "$ci|limiter| $rm DB unreachable for entity: $var(entity)\n");
return;
}
}
if ($fd =~ IP_REGEX) {
xlog("L_WARNING","$ci|RL-device log| Fixup for $rm method with IP in from URI: use to-domain\n");
xlog("L_WARNING","$ci|limiter| Fixup for $rm method with IP in from URI: use to-domain\n");
$var(entity) = $td;
} else {
$var(entity) = $fd;
@ -175,7 +175,7 @@ route[DOS_PREVENTION] {
if ( not_empty("$fU") ) {
if ($fd =~ IP_REGEX) {
$var(entity) = $fU+"@"+$td;
xlog("L_WARNING","$ci|RL-device log| Fixup for $rm method with IP in from URI: use to-domain\n");
xlog("L_WARNING","$ci|limiter| Fixup for $rm method with IP in from URI: use to-domain\n");
} else {
$var(entity) = $fU+"@"+$fd;
}
@ -203,12 +203,12 @@ route[DO_DOS_PREVENTION] {
# Personal debug for INVITE and REGISTER
if ((is_method("INVITE") || is_method("REGISTER"))) {
xlog("L_INFO", "$ci|RL-$var(entity-type) log| L/C for $var(rpm) = $var(lrpm)/$sht(rpm=>$var(rpm))\n");
xlog("L_INFO", "$ci|RL-$var(entity-type) log| L/C for $var(rps) = $var(lrps)/$sht(rps=>$var(rps))\n");
xlog("L_INFO", "$ci|limiter| L/C for $var(rpm) = $var(lrpm)/$sht(rpm=>$var(rpm))\n");
xlog("L_INFO", "$ci|limiter| L/C for $var(rps) = $var(lrps)/$sht(rps=>$var(rps))\n");
}
# Commmon debug for ALL packet including INVITE and REGISTER
xlog("L_INFO", "$ci|RL-$var(entity-type) log| L/C for $var(tpm) = $var(ltpm)/$sht(tpm=>$var(tpm))\n");
xlog("L_INFO", "$ci|RL-$var(entity-type) log| L/C for $var(tps) = $var(ltps)/$sht(tps=>$var(tps))\n");
xlog("L_INFO", "$ci|limiter| L/C for $var(tpm) = $var(ltpm)/$sht(tpm=>$var(tpm))\n");
xlog("L_INFO", "$ci|limiter| L/C for $var(tps) = $var(ltps)/$sht(tps=>$var(tps))\n");
# Personal increment just for INVITE and REGISTER
if ((is_method("INVITE") || is_method("REGISTER")) && (!isflagset(FLAG_IS_REPLY))) {
@ -223,31 +223,31 @@ route[DO_DOS_PREVENTION] {
if ((is_method("INVITE") || is_method("REGISTER")) && (!isflagset(FLAG_IS_REPLY))) {
if ($sht(rps=>$var(rps)) > $var(lrps)) {
sl_send_reply(RATE_LIMIT_CODE, RATE_LIMIT_MESSAGE);
xlog("L_INFO", "$ci|RL-$var(entity-type) log| Out of $rm $var(rps) rate limits: $sht(rps=>$var(rps)) > $var(lrps))\n");
xlog("L_INFO", "$ci|limiter| Out of $rm $var(rps) rate limits: $sht(rps=>$var(rps)) > $var(lrps))\n");
exit;
}
if ($sht(rpm=>$var(rpm)) > $var(lrpm)) {
sl_send_reply(RATE_LIMIT_CODE, RATE_LIMIT_MESSAGE);
xlog("L_INFO", "$ci|RL-$var(entity-type) log| Out of $rm $var(rpm) rate limits: $sht(rpm=>$var(rpm)) > $var(lrpm))\n");
xlog("L_INFO", "$ci|limiter| Out of $rm $var(rpm) rate limits: $sht(rpm=>$var(rpm)) > $var(lrpm))\n");
exit;
}
}
# Commmon checks for ALL packet including INVITE and REGISTER
if ($sht(tps=>$var(tps)) > $var(ltps)) {
if (isflagset(FLAG_IS_REPLY)) {
xlog("L_INFO", "$ci|RL-$var(entity-type) log| Out of TOTAL($rm::$rs $rr) $var(tps) rate limits: $sht(tps=>$var(tps)) > $var(ltps))\n");
xlog("L_INFO", "$ci|limiter| Out of TOTAL($rm::$rs $rr) $var(tps) rate limits: $sht(tps=>$var(tps)) > $var(ltps))\n");
} else {
sl_send_reply(RATE_LIMIT_CODE, RATE_LIMIT_MESSAGE);
xlog("L_INFO", "$ci|RL-$var(entity-type) log| Out of TOTAL($rm) $var(tps) rate limits: $sht(tps=>$var(tps)) > $var(ltps))\n");
xlog("L_INFO", "$ci|limiter| Out of TOTAL($rm) $var(tps) rate limits: $sht(tps=>$var(tps)) > $var(ltps))\n");
}
exit;
}
if ($sht(tpm=>$var(tpm)) > $var(ltpm)) {
if (isflagset(FLAG_IS_REPLY)) {
xlog("L_INFO", "$ci|RL-$var(entity-type) log| Out of TOTAL($rm::$rs $rr) $var(tpm) rate limits: $sht(tpm=>$var(tpm)) > $var(ltpm))\n");
xlog("L_INFO", "$ci|limiter| Out of TOTAL($rm::$rs $rr) $var(tpm) rate limits: $sht(tpm=>$var(tpm)) > $var(ltpm))\n");
} else {
sl_send_reply(RATE_LIMIT_CODE, RATE_LIMIT_MESSAGE);
xlog("L_INFO", "$ci|RL-$var(entity-type) log| Out of TOTAL($rm) $var(tpm) rate limits: $sht(tpm=>$var(tpm)) > $var(ltpm))\n");
xlog("L_INFO", "$ci|limiter| Out of TOTAL($rm) $var(tpm) rate limits: $sht(tpm=>$var(tpm)) > $var(ltpm))\n");
}
exit;
}


+ 3
- 3
kamailio/registrar-query.cfg View File

@ -5,7 +5,7 @@ kazoo.registrar_query_reply_zones = KZ_REGISTRAR_QUERY_REPLY_ZONES descr "0 - al
route[REGISTRAR_SEARCH_SUMMARY]
{
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|query|processing registrar summary query for $(kzE{kz.json,Realm})\n");
xlog("L_INFO", "event|registrar_query|$(kzE{kz.json,Msg-ID}) processing registrar summary query for $(kzE{kz.json,Realm})\n");
$var(Queue) = $(kzE{kz.json,Server-ID});
$var(Domain) = $(kzE{kz.json,Realm});
$var(Username) = $(kzE{kz.json,Username});
@ -34,7 +34,7 @@ route[REGISTRAR_SEARCH_SUMMARY]
route[REGISTRAR_SEARCH_DETAIL]
{
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|query|processing registrar query detail for $(kzE{kz.json,Username}) in realm $(kzE{kz.json,Realm})\n");
xlog("L_INFO", "event|registrar_query|$(kzE{kz.json,Msg-ID}) processing registrar query detail for $(kzE{kz.json,Username}) in realm $(kzE{kz.json,Realm})\n");
$var(Queue) = $(kzE{kz.json,Server-ID});
$var(Msg-ID) = $(kzE{kz.json,Msg-ID});
$var(Domain) = $(kzE{kz.json,Realm});
@ -74,7 +74,7 @@ event_route[kazoo:consumer-event-registration-search-req]
route(REGISTRAR_SEARCH_DETAIL);
break;
default:
xlog("L_INFO", "$ci|search type '$(kzE{kz.json,Search-Type})' not handled\n");
xlog("L_INFO", "event|registrar_query|search type '$(kzE{kz.json,Search-Type})' not handled\n");
}
}
}


+ 16
- 16
kamailio/registrar-role.cfg View File

@ -153,7 +153,7 @@ kazoo.registrar_publish_reg_once = KZ_REGISTRAR_PUBLISH_REG_ONCE descr "should p
route[REGISTRAR_NAT_FLAGS]
{
if (isflagset(FLT_NATS)) {
xlog("L_DEBUG", "$ci|log|fixing contact for nat request\n");
xlog("L_DEBUG", "$ci|registrar|fixing contact for nat request\n");
setbflag(FLB_NATB);
fix_nated_register();
@ -165,7 +165,7 @@ route[REGISTRAR_NAT_FLAGS]
|| ($proto =="ws" || $proto == "wss")
|| ($(xavp(ulattrs=>custom_channel_vars){kz.json,Keep-Alive}) == "false")
)) {
xlog("L_DEBUG", "$ci|log|set nat pinging\n");
xlog("L_DEBUG", "$ci|registrar|set nat pinging\n");
setbflag(FLB_NATSIPPING);
}
} else {
@ -188,7 +188,7 @@ route[HANDLE_REGISTER]
#!endif
if($sel(cfg_get.kazoo.registrar_failover) == 1) {
xlog("L_INFO", "$ci|log|register|forcing failover\n");
xlog("L_INFO", "$ci|registrar|register|forcing failover\n");
update_stat("registrar:force_failover", "+1");
drop;
}
@ -218,7 +218,7 @@ route[HANDLE_REGISTER]
if($td =~ "[0-9]{1,3}\.[0-9]{1,3}.[0-9]{1,3}\.[0-9]{1,3}" ||
$fd =~ "[0-9]{1,3}\.[0-9]{1,3}.[0-9]{1,3}\.[0-9]{1,3}") {
xlog("L_INFO", "$ci|log|register|invalid domain\n");
xlog("L_INFO", "$ci|registrar|register|invalid domain\n");
update_stat("registrar:ip_realm", "+1");
drop;
}
@ -246,7 +246,7 @@ route[HANDLE_REGISTER]
}
if (!t_newtran()) {
xlog("L_ERROR", "$ci|log|failed to create transaction to query for authentication credentials for $Au $si:$sp\n");
xlog("L_ERROR", "$ci|registrar|failed to create transaction to query for authentication credentials for $Au $si:$sp\n");
update_stat("registrar:new_tran", "+1");
drop;
}
@ -260,9 +260,9 @@ route[HANDLE_REGISTER]
$avp(kz_timeout) = $sel(cfg_get.kazoo.registrar_query_timeout_ms);
$xavp(deltas=>query) = $(TV(Sn){s.replace,.,});
xlog("L_DEBUG", "$ci|amqp|publishing to $def(REGISTRAR_AMQP_EXCHANGE) => $var(amqp_routing_key) : $def(REGISTRAR_AMQP_FLAGS) : $var(amqp_payload_request)\n");
xlog("L_DEBUG", "$ci|registrar|publishing to $def(REGISTRAR_AMQP_EXCHANGE) => $var(amqp_routing_key) : $def(REGISTRAR_AMQP_FLAGS) : $var(amqp_payload_request)\n");
if(kazoo_async_query("$def(REGISTRAR_AMQP_EXCHANGE)", $var(amqp_routing_key), $var(amqp_payload_request), "KZ_AUTHORIZATION_REPLY", "KZ_AUTHORIZATION_TIMEOUT", "$def(REGISTRAR_AMQP_FLAGS)") != 1) {
xlog("L_INFO", "$ci|log|failed to send registrar query for authentication credentials for $Au $si:$sp\n");
xlog("L_INFO", "$ci|registrar|failed to send registrar query for authentication credentials for $Au $si:$sp\n");
update_stat("registrar:amqp_async_error", "+1");
t_drop();
}
@ -271,7 +271,7 @@ route[HANDLE_REGISTER]
failure_route[KZ_AUTHORIZATION_TIMEOUT]
{
if($(kzR{kz.json,Event-Name}) == "message_returned" ) {
xlog("L_WARNING", "$ci|amqp|message was returned by broker $(kzR{kz.json,Error-Code}) $(kzR{kz.json,Error-Reason})\n");
xlog("L_WARNING", "$ci|registrar|message was returned by broker $(kzR{kz.json,Error-Code}) $(kzR{kz.json,Error-Reason})\n");
update_stat("registrar:amqp_returned", "+1");
} else {
xlog("L_WARNING", "$ci|end|failed $T_reply_code $T_reply_reason [$T(id_index):$T(id_label)] querying directory for authentication credentials for $Au $si:$sp\n");
@ -286,7 +286,7 @@ onreply_route[KZ_AUTHORIZATION_REPLY]
$var(StartRoute) = $(TV(Sn){s.replace,.,});
$var(delta_to_start) = $var(StartRoute) - $(kzR{kz.json,AMQP-Received});
$var(delta_from_query) = $(kzR{kz.json,AMQP-Received}) - $xavp(deltas=>query);
xlog("L_INFO", "$ci|log|received $(kzR{kz.json,Event-Category}) $(kzR{kz.json,Event-Name}) reply from $(kzR{kz.json,App-Name})-$(kzR{kz.json,App-Version}) (Δ1 $(kzR{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs, Δ3 $var(delta_from_query) μs)\n");
xlog("L_INFO", "$ci|registrar|received $(kzR{kz.json,Event-Category}) $(kzR{kz.json,Event-Name}) reply from $(kzR{kz.json,App-Name})-$(kzR{kz.json,App-Version}) (Δ1 $(kzR{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs, Δ3 $var(delta_from_query) μs)\n");
$vn(password) = $(kzR{kz.json,Auth-Password});
$var(nonce) = $adn;
if( $(kzR{kz.json,Event-Name}) == "authn_err" ) {
@ -306,13 +306,13 @@ onreply_route[KZ_AUTHORIZATION_REPLY]
if( $(kzR{kz.json,Trusted-Auth}) == "true" ) {
route(SUCCESS_AUTHORIZATION);
} else {
xlog("L_INFO", "$ci|log|authenticating $Au via $(kzR{kz.json,App-Name})-$(kzR{kz.json,App-Version}) response\n");
xlog("L_INFO", "$ci|registrar|authenticating $Au via $(kzR{kz.json,App-Name})-$(kzR{kz.json,App-Version}) response\n");
route(CHECK_AUTHORIZATION);
}
} else {
update_stat("registrar:authn_unknown", "+1");
update_stat("registrar:drops", "+1");
xlog("L_INFO", "$ci|log|unhandle response from directory $Au via $(kzR{kz.json,App-Name})-$(kzR{kz.json,App-Version})\n");
xlog("L_INFO", "$ci|registrar|unhandle response from directory $Au via $(kzR{kz.json,App-Name})-$(kzR{kz.json,App-Version})\n");
t_drop();
}
}
@ -356,7 +356,7 @@ route[SAVE_LOCATION]
{
if ($sht(auth_cache=>$Au) == $null && $vn(password) != $null) {
xlog("L_INFO", "$ci|log|caching sip credentials for $Au\n");
xlog("L_INFO", "$ci|registrar|caching sip credentials for $Au\n");
};
$sht(auth_cache=>$Au) = $vn(password);
@ -467,7 +467,7 @@ route[PUBLISH_REGISTRATION]
event_route[kazoo:consumer-event-directory-reg-flush]
{
$var(user) = $(kzE{kz.json,Username}) + "@" + $(kzE{kz.json,Realm});
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|log|received directory flush for $var(user)\n");
xlog("L_INFO", "event|registrar|$(kzE{kz.json,Msg-ID}) received directory flush for $var(user)\n");
if ($sht(auth_cache=>$var(user)) != $null) {
$sht(auth_cache=>$var(user)) = $null;
}
@ -576,7 +576,7 @@ event_route[usrloc:contact-expired]
#!endif
## return until we handle this in ecallmr
xlog("L_INFO", "$ulc(exp=>callid)|expired|removed registration for $ulc(exp=>aor) with contact : $ulc(exp=>addr)\n");
xlog("L_INFO", "event|registrar|$ulc(exp=>callid) removed registration for $ulc(exp=>aor) with contact : $ulc(exp=>addr)\n");
return;
$var(transport) = $(ulc(exp=>received){uri.transport});
@ -623,9 +623,9 @@ event_route[usrloc:contact-expired]
$var(amqp_payload_request) = $_s({"Event-Category" : "directory", "Event-Name" : "reg_success", "Status" : "Unregistered", "Event-Timestamp" : $TS, "Expires" : 0, "First-Registration" : false, "Contact" : "$(ulc(exp=>addr){s.escape.common}{s.replace,\','}{s.replace,$$,})", "Call-ID" : "$ulc(exp=>callid)", "Realm" : "$var(domain)", "Username" : "$var(username)", "From-User" : "$var(username)", "From-Host" : "$var(domain)", "To-User" : "$var(username)", "To-Host" : "$var(domain)", "Proxy-Path" : "$ulc(exp=>socket)", "User-Agent" : "$(ulc(exp=>user_agent){s.escape.common}{s.replace,\','}{s.replace,$$,})"});
$var(amqp_routing_key) = "registration.success." + $(var(domain){kz.encode}) + "." + $(var(username){kz.encode});
kazoo_publish("registrar", $var(amqp_routing_key), $var(amqp_payload_request));
xlog("L_INFO", "$ulc(exp=>callid)|expired|notified registration removal with contact : $ulc(exp=>addr)\n");
xlog("L_INFO", "event|registrar|$ulc(exp=>callid) notified registration removal with contact : $ulc(exp=>addr)\n");
}
xlog("L_INFO", "$ulc(exp=>callid)|expired|removed registration for $ulc(exp=>aor) with contact : $ulc(exp=>addr)\n");
xlog("L_INFO", "event|registrar|$ulc(exp=>callid) removed registration for $ulc(exp=>aor) with contact : $ulc(exp=>addr)\n");
}
#!ifdef REGISTRAR_SYNC_ROLE


+ 3
- 3
kamailio/registrar-sync-role.cfg View File

@ -1,9 +1,9 @@
######## Presence sync server module ########
######## REgistrar sync server module ########
event_route[kazoo:consumer-event-directory-reg-sync]
{
$var(Server) = $(kzE{kz.json,Server-ID});
xlog("L_INFO", "received registrar sync from $var(Server) : $kzE\n");
xlog("L_INFO", "event|registrar_sync|received registrar sync from $var(Server) : $kzE\n");
if (sql_xquery("cb", "select * from location", "ra") == 1)
{
@ -11,7 +11,7 @@ event_route[kazoo:consumer-event-directory-reg-sync]
$var(runloop) = 1;
while($xavp(ra) != $null && $var(runloop) < MAX_WHILE_LOOPS ) {
if(registered("location", "sip:$xavp(ra=>username)@$xavp(ra=>domain)", 0, 1)) {
xlog("L_INFO", "[id, username, domain] = [$xavp(ra=>id), $xavp(ra=>username), $xavp(ra=>domain)]\n");
xlog("L_INFO", "event|regisrar_sync|[id, username, domain] = [$xavp(ra=>id), $xavp(ra=>username), $xavp(ra=>domain)]\n");
$var(Expires) = $xavp(ra=>expires) - $TS;
$var(amqp_payload_request) = '{"Event-Category" : "directory", "Event-Name" : "reg_success", "Status" : "Success", "Event-Timestamp" : $TS, "Expires" : $(var(Expires){s.int}), "First-Registration" : false, "Contact" : "$(xavp(ra=>contact){s.escape.common})", "Call-ID" : "$xavp(ra=>callid)", "Realm" : "$xavp(ra=>domain)", "Username" : "$xavp(ra=>username)", "From-User" : "$xavp(ra=>username)", "From-Host" : "$xavp(ra=>domain)", "To-User" : "$xavp(ra=>username)", "To-Host" : "$xavp(ra=>domain)", "User-Agent" : "$(xavp(ra=>user_agent){s.escape.common})" , "Custom-Channel-Vars" : $xavp(ulattrs=>custom_channel_vars), "Proxy-Path" : "sip:$(xavp(ra=>socket){s.substr,4,0})" }';
kazoo_publish("targeted", "$var(Server)", $var(amqp_payload_request));


+ 1
- 1
kamailio/sanity.cfg View File

@ -24,7 +24,7 @@ route[SANITY_CHECK]
{
## CVE-2018-14767
if($(hdr(To)[1]) != $null) {
xlog("second To header not null - dropping message");
xlog("L_INFO", "$ci|sanity|second To header not null - dropping message");
drop;
}


+ 8
- 8
kamailio/trusted.cfg View File

@ -19,21 +19,21 @@ route[TRUSTED_LOAD]
$var(amqp_payload_request) = $_s({"Event-Category" : "trusted" , "Event-Name" : "query"});
$var(amqp_routing_key) = "trusted.query";
xlog("L_DEBUG", "$ci|amqp|publishing to acl => $var(amqp_routing_key) : $var(amqp_payload_request)\n");
xlog("L_DEBUG", "event|trusted|publishing to acl => $var(amqp_routing_key) : $var(amqp_payload_request)\n");
if(kazoo_query("trusted", $var(amqp_routing_key), $var(amqp_payload_request), "$def(TRUSTED_AMQP_FLAGS)") != 1) {
if($(kzR{kz.json,Event-Name}) == "message_returned" ) {
xlog("L_WARNING", "trusted|query|message was returned by broker $(kzR{kz.json,Error-Code}) $(kzR{kz.json,Error-Reason})\n");
xlog("L_WARNING", "event|trusted|message was returned by broker $(kzR{kz.json,Error-Code}) $(kzR{kz.json,Error-Reason})\n");
} else {
xlog("L_WARNING", "trusted|query|failed $kzR\n");
xlog("L_WARNING", "event|trusted|query failed $kzR\n");
}
$shv(trusted_query) = 1;
return;
}
xlog("L_DEBUG", "trusted|query|got reply $kzR\n");
xlog("L_DEBUG", "event|trusted|query got reply $kzR\n");
avp_delete("$avp(TrustedKeys)/g");
if(kazoo_json_keys($kzR, "Trusted", "$avp(TrustedKeys)") != 1) {
xlog("L_WARNING", "trusted|reply|no keys for Trusted\n");
xlog("L_WARNING", "event|trusted|no keys for Trusted\n");
return;
}
sql_query("exec", "delete from address");
@ -79,7 +79,7 @@ route[TRUSTED_LOAD]
$var(Idx) = $var(Idx) + 1;
}
xlog("L_NOTICE", "trusted|query|loaded $var(total) entries into address table\n");
xlog("L_NOTICE", "event|trusted|loaded $var(total) entries into address table\n");
$shv(trusted_reload) = 1;
}
@ -87,7 +87,7 @@ route[TRUSTED_LOAD]
route[RELOAD_TRUSTED]
{
jsonrpc_exec('{"jsonrpc": "2.0", "method": "permissions.addressReload"}');
xlog("L_NOTICE", "trusted|reload|$(jsonrpl(body){kz.json,result})\n");
xlog("L_NOTICE", "event|trusted|reload $(jsonrpl(body){kz.json,result})\n");
}
route[TRUSTED_RELOAD]
@ -120,6 +120,6 @@ route[TRUSTED_BINDINGS]
event_route[kazoo:consumer-event-trusted-reload]
{
xlog("L_NOTICE", "received trusted reload\n");
xlog("L_NOTICE", "event|trusted|received trusted reload\n");
$shv(trusted_query) = 1;
}

+ 15
- 15
kamailio/websockets-role.cfg View File

@ -52,25 +52,25 @@ event_route[xhttp:request]
set_reply_no_connect();
if (!($rm =~ "GET")) {
xlog("L_INFO", "websocket|log|rejecting HTTP request $rm from $si:$sp\n");
xlog("L_INFO", "http|websocket|rejecting HTTP request $rm from $si:$sp\n");
xhttp_reply("405", "Method Not Allowed", "", "");
exit;
}
if (!($hdr(Connection) =~ "Upgrade")) {
xlog("L_INFO", "websocket|log|rejecting HTTP connection $hdr(Connection) request from $si:$sp\n");
xlog("L_INFO", "http|websocket|rejecting HTTP connection $hdr(Connection) request from $si:$sp\n");
xhttp_reply("400", "Bad Request", "", "");
exit;
}
if (!($hdr(Upgrade) =~ "websocket")) {
xlog("L_INFO", "websocket|log|rejecting HTTP upgrade $hdr(Upgrade) request from $si:$sp\n");
xlog("L_INFO", "http|websocket|rejecting HTTP upgrade $hdr(Upgrade) request from $si:$sp\n");
xhttp_reply("400", "Bad Request", "", "");
exit;
}
if (!($hdr(Sec-WebSocket-Protocol) =~ "sip")) {
xlog("L_INFO", "websocket|log|rejecting request for websocket protocol $hdr(Sec-WebSocket-Protocol) from $si:$sp\n");
xlog("L_INFO", "http|websocket|rejecting request for websocket protocol $hdr(Sec-WebSocket-Protocol) from $si:$sp\n");
xhttp_reply("400", "Bad Request", "", "");
exit;
}
@ -78,7 +78,7 @@ event_route[xhttp:request]
#!ifdef MY_WEBSOCKET_DOMAIN
if($sel(cfg_get.kazoo.ws_connections_restrict_origin) == 1) {
if (!($hdr(Origin) =~ "MY_WEBSOCKET_DOMAIN")) {
xlog("L_INFO", "websocket|log|rejecting HTTP request with unauthorized origin $hdr(Origin) from $si:$sp, allowed origin is MY_WEBSOCKET_DOMAIN\n");
xlog("L_INFO", "http|websocket|rejecting HTTP request with unauthorized origin $hdr(Origin) from $si:$sp, allowed origin is MY_WEBSOCKET_DOMAIN\n");
xhttp_reply("400", "Bad Request", "", "");
exit;
}
@ -87,33 +87,33 @@ event_route[xhttp:request]
if ($hdr(X-Forwarded-For) == $null) {
if($sel(cfg_get.kazoo.ws_connections_via_proxy_only) == 1) {
xlog("L_INFO", "websocket|log|request from $si without X-Forwarded-For Header and only allowed connections are via proxy\n");
xlog("L_INFO", "http|websocket|request from $si without X-Forwarded-For Header and only allowed connections are via proxy\n");
xhttp_reply("403", "Forbidden", "", "");
exit;
} else {
$var(ws_orig_ip) = $si;
}
} else {
xlog("L_INFO", "websocket|log|request X-Forwarded-For $hdr(X-Forwarded-For) from $si\n");
xlog("L_INFO", "http|websocket|request X-Forwarded-For $hdr(X-Forwarded-For) from $si\n");
$var(ws_orig_ip) = $hdr(X-Forwarded-For);
}
if($si != $var(ws_orig_ip)) {
if(!is_in_subnet($si, $sel(cfg_get.kazoo.ws_allowed_proxies))) {
xlog("L_WARNING", "websocket|log|request X-Forwarded-For $hdr(X-Forwarded-For) from invalid ip $si - allowed $sel(cfg_get.kazoo.ws_allowed_proxies)\n");
xlog("L_WARNING", "http|websocket|request X-Forwarded-For $hdr(X-Forwarded-For) from invalid ip $si - allowed $sel(cfg_get.kazoo.ws_allowed_proxies)\n");
xhttp_reply("403", "Forbidden", "", "");
exit;
}
if($sel(cfg_get.kazoo.ws_max_connection_per_proxy) > 0 && $sht(websockets=>$si::count) > $sel(cfg_get.kazoo.ws_max_connection_per_proxy)) {
xlog("L_WARN", "websocket|log|$si is at the maximum $sel(cfg_get.kazoo.ws_max_connection_per_proxy) allowable sockets per PROXY IP, rejecting request for another websocket\n");
xlog("L_WARN", "http|websocket|$si is at the maximum $sel(cfg_get.kazoo.ws_max_connection_per_proxy) allowable sockets per PROXY IP, rejecting request for another websocket\n");
xhttp_reply("403", "Forbidden", "", "");
exit;
}
}
if($sel(cfg_get.kazoo.ws_max_connection_per_ip) > 0 && $sht(websockets=>$var(ws_orig_ip)::count) > $sel(cfg_get.kazoo.ws_max_connection_per_ip)) {
xlog("L_WARN", "websocket|log|$var(ws_orig_ip) is at the maximum $sel(cfg_get.kazoo.ws_max_connection_per_ip) allowable sockets per IP, rejecting request for another websocket\n");
xlog("L_WARN", "http|websocket|$var(ws_orig_ip) is at the maximum $sel(cfg_get.kazoo.ws_max_connection_per_ip) allowable sockets per IP, rejecting request for another websocket\n");
xhttp_reply("403", "Forbidden", "", "");
exit;
}
@ -125,15 +125,15 @@ event_route[xhttp:request]
$sht(websockets=>$ws_conid::ws_orig_ip) = $var(ws_orig_ip);
if($si != $var(ws_orig_ip)) {
$var(proxy_count) = $shtinc(websockets=>$si::count);
xlog("L_INFO", "websocket|log|opened proxied websocket $ws_conid from $si for $var(ws_orig_ip):$sp\n");
xlog("L_INFO", "http|websocket|opened proxied websocket $ws_conid from $si for $var(ws_orig_ip):$sp\n");
} else {
xlog("L_INFO", "websocket|log|opened websocket $ws_conid from $var(ws_orig_ip):$sp\n");
xlog("L_INFO", "http|websocket|opened websocket $ws_conid from $var(ws_orig_ip):$sp\n");
}
route_if_exists("WS_ON_SUCCESSFULL_HANSHAKE");
exit;
}
xlog("L_INFO", "websocket|log|unhandled HTTP request $rm from $si:$sp\n");
xlog("L_INFO", "http|websocket|unhandled HTTP request $rm from $si:$sp\n");
xhttp_reply("404", "Not Found", "", "");
}
@ -145,10 +145,10 @@ event_route[websocket:closed]
$var(count) = $shtdec(websockets=>$si::count);
if($var(ws_orig_ip) != $null && $si != $var(ws_orig_ip)) {
$var(countip) = $shtdec(websockets=>$var(ws_orig_ip)::count);
xlog("L_INFO", "websocket|log|$si closed proxied websocket $ws_conid for $var(ws_orig_ip):$sp\n");
xlog("L_INFO", "http|websocket|$si closed proxied websocket $ws_conid for $var(ws_orig_ip):$sp\n");
if ($var(countip) < 1) $sht(websockets=>$var(ws_orig_ip)::count) = $null;
} else {
xlog("L_INFO", "websocket|log|closed websocket $ws_conid from $var(ws_orig_ip):$sp\n");
xlog("L_INFO", "http|websocket|closed websocket $ws_conid from $var(ws_orig_ip):$sp\n");
}
if ($var(count) < 1) $sht(websockets=>$si::count) = $null;
route_if_exists("WS_ON_CLOSE");


Loading…
Cancel
Save