From 8ed11dc5c747a0f55c5a91903b69163212a91387 Mon Sep 17 00:00:00 2001 From: lazedo Date: Sun, 22 Sep 2019 21:13:49 +0000 Subject: [PATCH] only add k-cid header if it doesn't exist already * initiators can provide k-cid --- kamailio/presence-fast-pickup.cfg | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/kamailio/presence-fast-pickup.cfg b/kamailio/presence-fast-pickup.cfg index 11813b7..3c412b7 100644 --- a/kamailio/presence-fast-pickup.cfg +++ b/kamailio/presence-fast-pickup.cfg @@ -60,7 +60,9 @@ route[PRESENCE_FAST_PICKUP_ATTEMPT] route(PRESENCE_FAST_PICKUP_OPTION); $du = $sht(fp=>$var(md5)); append_hf("Replaces: $var(replaced_call_id)$var(Pickup)\r\n"); - append_hf("k-cid: $var(replaced_call_id)\r\n"); + 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"); route(RELAY); exit(); @@ -88,7 +90,9 @@ route[PRESENCE_FAST_PICKUP_ATTEMPT] } remove_hf_re("^Replaces"); append_hf("Replaces: $var(rep)\r\n"); - append_hf("k-cid: $var(replaced_call_id)\r\n"); + 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"); route(RELAY); exit(); @@ -109,7 +113,9 @@ route[PRESENCE_FAST_PICKUP_ATTEMPT] $var(park) = $_s(*3$(ru{uri.user}{s.substr,2,0})@$(ru{uri.domain})); if($sht(park=>$var(park)) != $null) { $du = $sht(park=>$var(park)); - append_hf("k-cid: $sht(park=>$var(park)::callid)\r\n"); + 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"); route(RELAY); exit(); @@ -119,7 +125,9 @@ route[PRESENCE_FAST_PICKUP_ATTEMPT] if($sht(park=>$(ru{uri.user})@$(ru{uri.domain})) != $null) { $du = $sht(park=>$(ru{uri.user})@$(ruri{uri.domain})); - append_hf("k-cid: $sht(park=>$(ru{uri.user})@$(ruri{uri.domain})::callid)\r\n"); + 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"); route(RELAY); exit(); @@ -138,7 +146,9 @@ route[PRESENCE_FAST_PICKUP_ATTEMPT] $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"); - append_hf("k-cid: $(kzR{kz.json,Channels[0].call_id})\r\n"); + if(!is_present_hf("k-cid")) { + append_hf("k-cid: $(kzR{kz.json,Channels[0].call_id})\r\n"); + } route(RELAY); exit(); }