diff --git a/kamailio/default.cfg b/kamailio/default.cfg index 22b2f47..72b12a7 100644 --- a/kamailio/default.cfg +++ b/kamailio/default.cfg @@ -344,6 +344,8 @@ route route(HANDLE_REGISTER); #!endif + route(HANDLE_REFER); + route(HANDLE_IN_DIALOG_REQUESTS); route(PREPARE_INITIAL_REQUESTS); @@ -526,6 +528,26 @@ route[HANDLE_MESSAGE] #!endif } +route[HANDLE_REFER] +{ + if (!is_method("REFER")) { + return; + } + + if(is_present_hf("Referred-By")) { + $var(referred_by) = $hdr(Referred-By); + } else { + $var(referred_by) = $_s(;created=true); + } + $xavp(regcfg=>match_received) = $su; + if(registered("location", "$rz:$Au", 2, 1) == 1) { + $var(referred_by) = $_s($var(referred_by);endpoint_id=$(xavp(ulattrs=>token){re.subst,/(.*)@(.*)/\1/});account_id=$(xavp(ulattrs=>token){re.subst,/(.*)@(.*)/\2/})); + } + + remove_hf_re("^Referred-By"); + append_hf("Referred-By: $var(referred_by)\r\n"); + +} route[HANDLE_IN_DIALOG_REQUESTS] {