Browse Source

check for media servers reconnection

(cherry picked from commit 21c7772c71)
5.0 5.0.11
lazedo 5 years ago
parent
commit
8792663db2
1 changed files with 29 additions and 4 deletions
  1. +29
    -4
      kamailio/nodes-role.cfg

+ 29
- 4
kamailio/nodes-role.cfg View File

@ -118,6 +118,7 @@ route[CHECK_MEDIA_SERVERS]
return;
}
$var(Msg-ID) = $(var(Payload){kz.json,Msg-ID});
$var(Media) = $(var(Payload){kz.json,Media-Servers});
$var(Zone) = $(var(Payload){kz.json,AMQP-Broker-Zone});
@ -131,6 +132,17 @@ route[CHECK_MEDIA_SERVERS]
$var(MediaName) = $(avp(MediaKeys)[$var(Idx)]);
$var(MediaKey) = $(var(MediaName){s.replace,$var(Dot),$var(Perc)});
avp_delete("$avp(ProfileKeys)/g");
$var(MediaReconnected) = 0;
$var(MediaConnected) = $(var(Payload){kz.json,Media-Servers.$var(MediaKey).Startup});
$var(ExistingMediaConnected) = $sht(media=>$var(MediaKey)::connected::$var(Node));
xlog("L_DEBUG", "$var(Msg-ID)|nodes|$var(MediaKey) from $var(Node) => $var(MediaConnected) vs $var(ExistingMediaConnected)\n");
if($var(ExistingMediaConnected) != $null && $var(MediaConnected) > $var(ExistingMediaConnected)) {
$var(MediaReconnected) = 1;
}
$sht(media=>$var(MediaKey)::connected::$var(Node)) = $var(MediaConnected);
$shtex(media=>$var(MediaKey)::connected::$var(Node)) = 0;
if(kazoo_json_keys($var(Payload), "Media-Servers.$var(MediaKey).Interfaces", "$avp(ProfileKeys)") == 1) {
$var(ProfileCount) = $cnt($avp(ProfileKeys));
$var(ProfileIdx) = 0;
@ -157,9 +169,11 @@ route[CHECK_MEDIA_SERVERS]
$shtex(media=>$var(MediaUrl)::uuid) = 0;
$var(Zone) = $sht(media=>$var(MediaUrl)::zone);
route(MEDIA_SERVER_RESTART);
} else if($var(MediaReconnected) == 1) {
route(MEDIA_SERVER_RECONNECTED);
};
$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");
xlog("L_DEBUG", "$var(Msg-ID)|nodes|$var(Node) media expiration $var(MediaExpire) for $var(MediaUrl)\n");
$shtex(media=>$var(MediaUrl)::count) = $var(MediaExpire);
$var(ProfileIdx) = $var(ProfileIdx) + 1;
}
@ -178,7 +192,7 @@ event_route[htable:expired:media]
route[MEDIA_SERVER_UP]
{
xlog("L_NOTICE", "nodes|media|$var(Node) reported new media server $var(MediaUrl) in zone $var(Zone)\n");
xlog("L_NOTICE", "$var(Msg-ID)|nodes|$var(Node) reported new media server $var(MediaUrl) in zone $var(Zone)\n");
#!ifdef DISPATCHER_ROLE
route(DISPATCHER_CHECK_MEDIA_SERVER);
@ -186,13 +200,14 @@ route[MEDIA_SERVER_UP]
#!ifdef PRESENCE_ROLE
route(PRESENCE_FAST_PICKUP_START);
route(RESET_PUBLISHER);
#!endif
}
route[MEDIA_SERVER_DOWN]
{
xlog("L_WARNING", "htable|media|heartbeat expired for media server $var(MediaUrl) in zone $var(Zone)\n");
xlog("L_WARNING", "expired|nodes|heartbeat expired for media server $var(MediaUrl) in zone $var(Zone)\n");
#!ifdef PRESENCE_ROLE
route(RESET_PUBLISHER);
@ -202,7 +217,17 @@ route[MEDIA_SERVER_DOWN]
route[MEDIA_SERVER_RESTART]
{
xlog("L_NOTICE", "htable|media|media server $var(MediaUrl) restarted in zone $var(Zone)\n");
xlog("L_NOTICE", "$var(Msg-ID)|nodes|media server $var(MediaUrl) restarted in zone $var(Zone)\n");
#!ifdef PRESENCE_ROLE
route(RESET_PUBLISHER);
#!endif
}
route[MEDIA_SERVER_RECONNECTED]
{
xlog("L_NOTICE", "$var(Msg-ID)|nodes|media server $var(MediaUrl) reconnected to $var(Node) in zone $var(Zone)\n");
#!ifdef PRESENCE_ROLE
route(RESET_PUBLISHER);


Loading…
Cancel
Save