From 275f8bcdb1fc9c698daab0ad86aa724b0a6cf72e Mon Sep 17 00:00:00 2001 From: herlesupreeth Date: Sat, 9 Jan 2021 09:21:00 +0100 Subject: [PATCH] Handle In-Dialog requests --- pcscf/route/mo.cfg | 3 ++- pcscf/route/mt.cfg | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pcscf/route/mo.cfg b/pcscf/route/mo.cfg index 7655bf9..acff204 100644 --- a/pcscf/route/mo.cfg +++ b/pcscf/route/mo.cfg @@ -166,7 +166,8 @@ route[MO_indialog] { # Remove sips: and sip: from destination URI for comparision $var(destination) = $(du{re.subst,/sips://g}); $var(destination) = $(var(destination){re.subst,/sip://g}); - if (is_request() && $ru =~ ".*" + $var(destination) + ".*") { + $var(destination_alias) = $(var(destination){re.subst,/:/~/g}); + if (is_request() && $dp != 5060 && ($ru =~ ".*" + $var(destination) + ".*" || $ru =~ ".*" + $var(destination_alias) + ".*")) { ipsec_forward("location"); } } diff --git a/pcscf/route/mt.cfg b/pcscf/route/mt.cfg index 244e69e..b3f80a1 100644 --- a/pcscf/route/mt.cfg +++ b/pcscf/route/mt.cfg @@ -91,8 +91,11 @@ route[MT_indialog] { # Remove sips: and sip: from destination URI for comparision $var(destination) = $(du{re.subst,/sips://g}); $var(destination) = $(var(destination){re.subst,/sip://g}); - if (is_request() && $rP == "tcp" && $ru =~ ".*" + $var(destination) + ".*") { + $var(destination_alias) = $(var(destination){re.subst,/:/~/g}); + $var(alias_proto) = $(ru{re.subst,/^(.*);alias=.*~[0-9]*~//g}); + if (is_request() && $var(alias_proto) == 2 && ($ru =~ ".*" + $var(destination) + ".*" || $ru =~ ".*" + $var(destination_alias) + ".*")) { $du = $du+";transport=tcp"; + $fs = $(fs{re.subst,/udp/tcp/g}); } } }