|
|
|
@ -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); |
|
|
|
|