From 831dc2e7de6904da01fb7cc5251c08db0296fd09 Mon Sep 17 00:00:00 2001 From: lazedo Date: Thu, 29 Nov 2018 15:35:53 +0000 Subject: [PATCH] track media instance-id --- kamailio/nodes-role.cfg | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/kamailio/nodes-role.cfg b/kamailio/nodes-role.cfg index 1976773..54cf6d0 100644 --- a/kamailio/nodes-role.cfg +++ b/kamailio/nodes-role.cfg @@ -138,10 +138,18 @@ route[CHECK_MEDIA_SERVERS] $var(MediaProfile) = $(avp(ProfileKeys)[$var(ProfileIdx)]); $var(MediaRawUrl) = $(var(Payload){kz.json,Media-Servers.$var(MediaKey).Interfaces.$var(MediaProfile).URL}); $var(MediaUrl) = $(var(MediaRawUrl){re.subst,/^sip:(.*)@(.*)/sip:\2/}); + $var(MediaInstanceUUID) = $(var(Payload){kz.json,Media-Servers.$var(MediaKey).Instance-UUID}); if($shtinc(media=>$var(MediaUrl)::count) == 1) { $sht(media=>$var(MediaUrl)::zone) = $var(Zone); $shtex(media=>$var(MediaUrl)::zone) = 0; + $sht(media=>$var(MediaUrl)::uuid) = $var(MediaInstanceUUID); + $shtex(media=>$var(MediaUrl)::uuid) = 0; route(MEDIA_SERVER_UP); + } else if($sht(media=>$var(MediaUrl)::uuid) != $var(MediaInstanceUUID)) { + $sht(media=>$var(MediaUrl)::uuid) = $var(MediaInstanceUUID); + $shtex(media=>$var(MediaUrl)::uuid) = 0; + $var(Zone) = $sht(media=>$var(MediaUrl)::zone); + route(MEDIA_SERVER_RESTART); }; $var(MediaExpire) = ($(var(Payload){kz.json,Expires}{s.int}) / 1000) + NODES_FUDGE_EXPIRE; xlog("L_DEBUG", "nodes|media|$var(Node) media expiration $var(MediaExpire) for $var(MediaUrl)\n"); @@ -185,6 +193,16 @@ route[MEDIA_SERVER_DOWN] } +route[MEDIA_SERVER_RESTART] +{ + xlog("L_WARNING", "htable|media|media server $var(MediaUrl) restarted in zone $var(Zone)\n"); + +#!ifdef PRESENCE_ROLE + route(RESET_PUBLISHER); +#!endif + +} + #!ifndef NODES_CUSTOM_BINDINGS route[NODES_BINDINGS] {