|
|
|
@ -8,7 +8,8 @@ flags |
|
|
|
FLAG_ASSOCIATE_USER: 4, |
|
|
|
FLAG_TRUSTED_SOURCE: 5, |
|
|
|
FLAG_SESSION_PROGRESS: 6, |
|
|
|
FLAG_IS_REPLY: 7; |
|
|
|
FLAG_IS_REPLY: 7, |
|
|
|
FLAG_SIP_TRACE: 8; |
|
|
|
|
|
|
|
####### Global Parameters ######### |
|
|
|
fork = yes |
|
|
|
@ -273,6 +274,9 @@ include_file "responder-role.cfg" |
|
|
|
#!ifdef NODES_ROLE |
|
|
|
include_file "nodes-role.cfg" |
|
|
|
#!endif |
|
|
|
#!ifdef SIP_TRACE_ROLE |
|
|
|
include_file "sip_trace-role.cfg" |
|
|
|
#!endif |
|
|
|
|
|
|
|
|
|
|
|
####### Permissions module ########## |
|
|
|
@ -349,19 +353,19 @@ route |
|
|
|
route(PUSHER_ROUTE); |
|
|
|
#!endif |
|
|
|
|
|
|
|
#!ifdef RESPONDER_ROLE |
|
|
|
if (isflagset(FLAG_INTERNALLY_SOURCED)) { |
|
|
|
#!ifdef RESPONDER_ROLE |
|
|
|
route(HANDLE_RESPOND); |
|
|
|
#!endif |
|
|
|
route(INTERNAL_TO_EXTERNAL_RELAY); |
|
|
|
exit(); |
|
|
|
} |
|
|
|
#!endif |
|
|
|
|
|
|
|
#!ifdef DISPATCHER_ROLE |
|
|
|
route(DISPATCHER_FIND_ROUTES); |
|
|
|
if (!isflagset(FLAG_INTERNALLY_SOURCED)) { |
|
|
|
route(DISPATCHER_FIND_ROUTES); |
|
|
|
} |
|
|
|
#!endif |
|
|
|
|
|
|
|
route(EXTERNAL_TO_INTERNAL_RELAY); |
|
|
|
route(RELAY); |
|
|
|
} |
|
|
|
|
|
|
|
route[CHECK_RETRANS] |
|
|
|
@ -490,11 +494,11 @@ route[HANDLE_MESSAGE] |
|
|
|
lookup("location"); |
|
|
|
xlog("L_INFO", "$ci|log|routing to $ruid\n"); |
|
|
|
} |
|
|
|
route(INTERNAL_TO_EXTERNAL_RELAY); |
|
|
|
#!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"); |
|
|
|
exit(); |
|
|
|
#!endif |
|
|
|
} else { |
|
|
|
xlog("L_WARN", "$ci|end|MESSAGE $(hdr(Content-Type))\n"); |
|
|
|
@ -506,19 +510,17 @@ route[HANDLE_MESSAGE] |
|
|
|
sl_send_reply("202", "Accepted"); |
|
|
|
} else { |
|
|
|
route(DISPATCHER_FIND_ROUTES); |
|
|
|
route(EXTERNAL_TO_INTERNAL_RELAY); |
|
|
|
} |
|
|
|
} |
|
|
|
exit(); |
|
|
|
route(RELAY); |
|
|
|
} |
|
|
|
#!else |
|
|
|
if (is_method("MESSAGE")) { |
|
|
|
if (isflagset(FLAG_INTERNALLY_SOURCED)) { |
|
|
|
route(INTERNAL_TO_EXTERNAL_RELAY); |
|
|
|
} else { |
|
|
|
if (!isflagset(FLAG_INTERNALLY_SOURCED)) { |
|
|
|
sl_send_reply("202", "delivered to /dev/null"); |
|
|
|
exit(); |
|
|
|
} |
|
|
|
route(RELAY); |
|
|
|
} |
|
|
|
#!endif |
|
|
|
} |
|
|
|
@ -621,8 +623,16 @@ route[PREPARE_INITIAL_REQUESTS] |
|
|
|
|
|
|
|
route[RELAY] |
|
|
|
{ |
|
|
|
#!ifdef SIP_TRACE_ROLE |
|
|
|
route(SEND_SIP_TRACE); |
|
|
|
#!endif |
|
|
|
|
|
|
|
if (isflagset(FLAG_INTERNALLY_SOURCED)) { |
|
|
|
route(INTERNAL_TO_EXTERNAL_RELAY); |
|
|
|
#!ifdef MESSAGE_ROLE |
|
|
|
} else if (is_method("MESSAGE") && src_ip == myself) { |
|
|
|
route(INTERNAL_TO_EXTERNAL_RELAY); |
|
|
|
#!endif |
|
|
|
} else { |
|
|
|
route(EXTERNAL_TO_INTERNAL_RELAY); |
|
|
|
} |
|
|
|
@ -697,9 +707,10 @@ route[EXTERNAL_TO_INTERNAL_RELAY] |
|
|
|
#!endif |
|
|
|
|
|
|
|
remove_hf_re("^X-.*"); |
|
|
|
|
|
|
|
append_hf("X-AUTH-IP: $si\r\n"); |
|
|
|
append_hf("X-AUTH-PORT: $sp\r\n"); |
|
|
|
|
|
|
|
|
|
|
|
#!ifdef REGISTRAR_ROLE |
|
|
|
route(ADD_AUTHORIZATION_HEADERS); |
|
|
|
#!endif |
|
|
|
|