@ -183,64 +183,64 @@ modparam("kazoo", "amqp_consumer_workers", 16);
modparam("kazoo", "amqp_heartbeats", 5);
####### Role Configurations ##########
#!ifdef DISPATCHER- ROLE
#!ifdef DISPATCHER_ ROLE
include_file "dispatcher-role.cfg"
#!endif
#!ifdef REGISTRAR- ROLE
#!ifdef REGISTRAR_ ROLE
include_file "registrar-role.cfg"
#!endif
#!ifdef PRESENCE- ROLE
#!ifdef PRESENCE_ ROLE
include_file "presence-role.cfg"
#!endif
#!ifdef MESSAGE- ROLE
#!ifdef MESSAGE_ ROLE
include_file "message-role.cfg"
#!endif
#!ifdef NAT-TRAVERSAL- ROLE
#!ifdef NAT_TRAVERSAL_ ROLE
include_file "nat-traversal-role.cfg"
#!endif
#!ifdef WEBSOCKETS- ROLE
#!ifdef WEBSOCKETS_ ROLE
include_file "websockets-role.cfg"
#!endif
#!ifdef TLS- ROLE
#!ifdef TLS_ ROLE
include_file "tls-role.cfg"
#!endif
#!ifdef ACCOUNTING- ROLE
#!ifdef ACCOUNTING_ ROLE
include_file "accounting-role.cfg"
#!endif
#!ifdef ANTIFLOOD- ROLE
#!ifdef ANTIFLOOD_ ROLE
include_file "antiflood-role.cfg"
#!endif
#!ifdef TRAFFIC_FILTER- ROLE
#!ifdef TRAFFIC_FILTER_ ROLE
include_file "traffic-filter-role.cfg"
#!endif
#!ifdef ACL- ROLE
#!ifdef ACL_ ROLE
include_file "acl-role.cfg"
#!endif
#!ifdef RATE_LIMITER- ROLE
#!ifdef RATE_LIMITER_ ROLE
include_file "rate-limiter-role.cfg"
#!endif
#!ifdef PUSHER- ROLE
#!ifdef PUSHER_ ROLE
include_file "pusher-role.cfg"
#!endif
#!ifdef RESPONDER- ROLE
#!ifdef RESPONDER_ ROLE
include_file "responder-role.cfg"
#!endif
#!ifdef NODES- ROLE
#!ifdef NODES_ ROLE
include_file "nodes-role.cfg"
#!endif
#!ifdef REGISTRAR_SYNC- ROLE
#!ifdef REGISTRAR_SYNC_ ROLE
include_file "registrar-sync-role.cfg"
#!endif
#!ifdef FAST_PICKUP- ROLE
#!ifdef FAST_PICKUP_ ROLE
include_file "fast-pickup-role.cfg"
#!endif
#!ifdef PRESENCE_SYNC- ROLE
#!ifdef PRESENCE_SYNC_ ROLE
include_file "presence_sync-role.cfg"
#!endif
#!ifdef PRESENCE_QUERY- ROLE
#!ifdef PRESENCE_QUERY_ ROLE
include_file "presence_query-role.cfg"
#!endif
#!ifdef PRESENCE_NOTIFY_SYNC- ROLE
#!ifdef PRESENCE_NOTIFY_SYNC_ ROLE
include_file "presence_notify_sync-role.cfg"
#!endif
@ -265,24 +265,24 @@ route
route(CLASSIFY_SOURCE);
#!ifdef ANTIFLOOD- ROLE
#!ifdef ANTIFLOOD_ ROLE
route(ANTIFLOOD_RATE_LIMIT);
route(ANITFLOOD_AUTH_LIMIT);
#!endif
#!ifdef TRAFFIC_FILTER- ROLE
#!ifdef TRAFFIC_FILTER_ ROLE
route(FILTER_REQUEST);
#!endif
#!ifdef ACL- ROLE
#!ifdef ACL_ ROLE
route(ACL_CHECK);
#!endif
#!ifdef RATE_LIMITER- ROLE
#!ifdef RATE_LIMITER_ ROLE
route(DOS_PREVENTION);
#!endif
#!ifdef WEBSOCKETS- ROLE
#!ifdef WEBSOCKETS_ ROLE
route(HANDLE_WEBSOCKETS);
#!endif
@ -290,18 +290,18 @@ route
route(HANDLE_NOTIFY);
#!ifdef AUTHORIZATION- ROLE
#!ifdef AUTHORIZATION_ ROLE
route(AUTHORIZATION_CHECK);
#!endif
route(HANDLE_MESSAGE);
#!ifdef PRESENCE- ROLE
#!ifdef PRESENCE_ ROLE
route(HANDLE_SUBSCRIBE);
route(HANDLE_PUBLISH);
#!endif
#!ifdef REGISTRAR- ROLE
#!ifdef REGISTRAR_ ROLE
route(HANDLE_REGISTER);
#!endif
@ -309,19 +309,19 @@ route
route(PREPARE_INITIAL_REQUESTS);
#!ifdef PUSHER- ROLE
#!ifdef PUSHER_ ROLE
route(PUSHER_ROUTE);
#!endif
if (isflagset(FLAG_INTERNALLY_SOURCED)) {
#!ifdef RESPONDER- ROLE
#!ifdef RESPONDER_ ROLE
route(HANDLE_RESPOND);
#!endif
route(INTERNAL_TO_EXTERNAL_RELAY);
exit();
}
#!ifdef DISPATCHER- ROLE
#!ifdef DISPATCHER_ ROLE
route(DISPATCHER_FIND_ROUTES);
#!endif
@ -365,7 +365,7 @@ route[CLASSIFY_SOURCE]
setflag(FLAG_TRUSTED_SOURCE);
}
#!ifdef DISPATCHER- ROLE
#!ifdef DISPATCHER_ ROLE
route(DISPATCHER_CLASSIFY_SOURCE);
#!endif
}
@ -376,11 +376,11 @@ route[HANDLE_OPTIONS]
if (isflagset(FLAG_INTERNALLY_SOURCED)) {
route(INTERNAL_TO_EXTERNAL_RELAY);
} else {
#!ifdef TRAFFIC_FILTER- ROLE
#!ifdef TRAFFIC_FILTER_ ROLE
route(FILTER_REQUEST_DOMAIN);
#!endif
#!ifdef NAT-TRAVERSAL- ROLE
#!ifdef NAT_TRAVERSAL_ ROLE
route(NAT_TEST_AND_CORRECT);
#!endif
@ -404,15 +404,15 @@ route[HANDLE_NOTIFY]
}
route(INTERNAL_TO_EXTERNAL_RELAY);
} else {
#!ifdef TRAFFIC_FILTER- ROLE
#!ifdef TRAFFIC_FILTER_ ROLE
route(FILTER_REQUEST_DOMAIN);
#!endif
#!ifdef WEBSOCKETS- ROLE
#!ifdef WEBSOCKETS_ ROLE
route(NAT_WEBSOCKETS_CORRECT);
#!endif
#!ifdef NAT-TRAVERSAL- ROLE
#!ifdef NAT_TRAVERSAL_ ROLE
route(NAT_TEST_AND_CORRECT);
#!endif
@ -430,7 +430,7 @@ route[HANDLE_NOTIFY]
route[HANDLE_MESSAGE]
{
#!ifdef MESSAGE- ROLE
#!ifdef MESSAGE_ ROLE
if (is_method("MESSAGE")) {
xlog("L_INFO", "$ci|MESSAGE from $fu to $tu\n");
if (isflagset(FLAG_INTERNALLY_SOURCED) || src_ip = = myself) {
@ -440,7 +440,7 @@ route[HANDLE_MESSAGE]
xlog("L_INFO", "$ci|log|routing to $ruid\n");
}
route(INTERNAL_TO_EXTERNAL_RELAY);
#!ifdef TRAFFIC_FILTER- ROLE
#!ifdef TRAFFIC_FILTER_ ROLE
} else if (!isflagset(FLAG_TRUSTED_SOURCE)
&& $rd = ~ "[0-9]{1,3}\.[0-9]{1,3}.[0-9]{1,3}\.[0-9]{1,3}") {
xlog("L_WARN", "$ci|end|dropping MESSAGE request with IP domain\n");
@ -479,7 +479,7 @@ route[HANDLE_IN_DIALOG_REQUESTS]
}
if (loose_route()) {
#!ifdef ACCOUNTING- ROLE
#!ifdef ACCOUNTING_ ROLE
if (is_method("BYE")) {
setflag(FLAG_ACC);
setflag(FLAG_ACCFAILED);
@ -575,7 +575,7 @@ route[RELAY]
route[INTERNAL_TO_EXTERNAL_RELAY]
{
#!ifdef ACCOUNTING- ROLE
#!ifdef ACCOUNTING_ ROLE
if (is_method("INVITE")) {
setflag(FLAG_ACC);
setflag(FLAG_ACCFAILED);
@ -600,20 +600,20 @@ route[INTERNAL_TO_EXTERNAL_RELAY]
route[EXTERNAL_TO_INTERNAL_RELAY]
{
#!ifdef ACCOUNTING- ROLE
#!ifdef ACCOUNTING_ ROLE
if (is_method("INVITE") && is_present_hf("Proxy-Authorization")) {
setflag(FLAG_ACC);
setflag(FLAG_ACCFAILED);
}
#!endif
#!ifdef NAT-TRAVERSAL- ROLE
#!ifdef NAT_TRAVERSAL_ ROLE
if (!isflagset(FLAG_INTERNALLY_SOURCED)) {
route(NAT_TEST_AND_CORRECT);
}
#!endif
#!ifdef FAST_PICKUP- ROLE
#!ifdef FAST_PICKUP_ ROLE
route(FAST_PICKUP_REFER);
#!endif
@ -635,25 +635,25 @@ onreply_route[EXTERNAL_REPLY]
{
xlog("L_INFO", "$ci|log|external reply $T_reply_code\n");
#!ifdef WEBSOCKETS- ROLE
#!ifdef WEBSOCKETS_ ROLE
route(NAT_WEBSOCKETS_CORRECT);
#!endif
#!ifdef NAT-TRAVERSAL- ROLE
#!ifdef NAT_TRAVERSAL_ ROLE
route(NAT_TEST_AND_CORRECT);
#!endif
#!ifdef ACL- ROLE
#!ifdef ACL_ ROLE
setflag(FLAG_IS_REPLY);
route(ACL_CHECK);
#!endif
#!ifdef RATE_LIMITER- ROLE
#!ifdef RATE_LIMITER_ ROLE
setflag(FLAG_IS_REPLY);
route(DOS_PREVENTION);
#!endif
#!ifdef MESSAGE- ROLE
#!ifdef MESSAGE_ ROLE
if (is_method("MESSAGE")) {
route(MESSAGE_REPLY);
}
@ -666,21 +666,21 @@ onreply_route[INTERNAL_REPLY]
xlog("L_INFO", "$ci|start|received internal reply $T_reply_code $rr\n");
xlog("L_INFO", "$ci|log|source $si:$sp\n");
#!ifdef WEBSOCKETS- ROLE
#!ifdef WEBSOCKETS_ ROLE
route(NAT_WEBSOCKETS_CORRECT);
#!endif
#!ifdef ACL- ROLE
#!ifdef ACL_ ROLE
setflag(FLAG_IS_REPLY);
route(ACL_CHECK);
#!endif
#!ifdef RATE_LIMITER- ROLE
#!ifdef RATE_LIMITER_ ROLE
setflag(FLAG_IS_REPLY);
route(DOS_PREVENTION);
#!endif
#!ifdef FAST_PICKUP- ROLE
#!ifdef FAST_PICKUP_ ROLE
route(FAST_PICKUP_REPLY);
#!endif
@ -756,7 +756,7 @@ failure_route[INTERNAL_FAULT]
} else if (t_check_status("(4[0-9][0-9])|(5[0-9][0-9])")) {
xlog("L_INFO", "$ci|start|received failure reply $T_reply_code $rr\n");
#!ifdef DISPATCHER- ROLE
#!ifdef DISPATCHER_ ROLE
route(DISPATCHER_NEXT_ROUTE);
#!endif
@ -779,7 +779,7 @@ onsend_route {
event_route[kazoo:mod-init]
{
#!ifdef PRESENCE- ROLE
#!ifdef PRESENCE_ ROLE
### use this simple form of binding a listener
### kazoo_subscribe("dialoginfo", "direct", "BLF-QUEUE-MY_HOSTNAME", "BLF-MY_HOSTNAME");
@ -803,7 +803,7 @@ event_route[kazoo:mod-init]
#!endif
#!ifdef MESSAGE- ROLE
#!ifdef MESSAGE_ ROLE
$var(key) = "kamailio@MY_HOSTNAME";
$var(payload) = '{ "exchange" : "sms" , "type" : "topic", "queue" : "MSG-QUEUE-MY_HOSTNAME", "routing" : "message.route.' + $(var(key){kz.encode}) + '.*", "auto_delete" : 1, "durable" : 0, "no_ack" : 0, "wait_for_consumer_ack" : 1 }';
@ -811,35 +811,35 @@ event_route[kazoo:mod-init]
#!endif
#!ifdef DISPATCHER- ROLE
#!ifdef DISPATCHER_ ROLE
$var(payload) = "{ 'exchange' : 'registrar' , 'type' : 'topic', 'queue' : 'MSG-FLUSH-MY_HOSTNAME', 'routing' : 'registration.flush.*', 'auto_delete' : 1, 'durable' : 0, 'no_ack' : 1, 'wait_for_consumer_ack' : 0 }";
kazoo_subscribe("$var(payload)");
#!endif
#!ifdef REGISTRAR_SYNC- ROLE
#!ifdef REGISTRAR_SYNC_ ROLE
$var(payload) = "{ 'exchange' : 'registrar' , 'type' : 'topic', 'queue' : 'REGISTRAR-SYNC-QUEUE-MY_HOSTNAME', 'routing' : 'registration.sync', 'auto_delete' : 1, 'durable' : 0, 'no_ack' : 1, 'wait_for_consumer_ack' : 0 }";
kazoo_subscribe("$var(payload)");
#!endif
#!ifdef PRESENCE_SYNC- ROLE
#!ifdef PRESENCE_SYNC_ ROLE
$var(payload) = "{ 'exchange' : 'presence' , 'type' : 'topic', 'queue' : 'PRESENCE-QUEUE-MY_HOSTNAME', 'routing' : 'sync', 'auto_delete' : 1, 'durable' : 0, 'no_ack' : 1, 'wait_for_consumer_ack' : 0 }";
kazoo_subscribe("$var(payload)");
#!endif
#!ifdef PRESENCE_QUERY- ROLE
#!ifdef PRESENCE_QUERY_ ROLE
$var(payload) = "{ 'exchange' : 'omnipresence' , 'type' : 'topic', 'routing' : 'presence.search_req.*', 'federate' : 1 }";
kazoo_subscribe("$var(payload)");
#!endif
#!ifdef NODES_SYNC- ROLE
#!ifdef NODES_SYNC_ ROLE
$var(payload) = "{ 'exchange' : 'nodes' , 'type' : 'fanout', 'queue' : 'NODES-MY_HOSTNAME', 'federate' : 1}";
kazoo_subscribe("$var(payload)");
@ -900,7 +900,7 @@ route[ADD_AUTHORIZATION_HEADERS]
}
}
#!ifdef PRESENCE_NOTIFY_SYNC- ROLE
#!ifdef PRESENCE_NOTIFY_SYNC_ ROLE
event_route[tm:local-request]
{
route(PRESENCE_LOCAL_NOTIFY);