fix(ha): auto-purge zombie channels on HA transition and enforce PJSIP rtp_timeout to fix stuck BLF keys

This commit is contained in:
sorcier committed 2026-11-06 00:23:35 +01:00
1 parent 2db19ed2dd
commit 1d2d6b1911
3 files changed
+25 -2

No files matched your search

+4 -1
View File
@@ -18,12 +18,15 @@ if [ -f "$DB_PATH" ]; then
chmod 660 "$DB_PATH" "${DB_PATH}-wal" "${DB_PATH}-shm" 2>/dev/null || true
fi
# 2. Désenregistrement des Trunks PJSIP pour éviter les conflits d'appels entrants avec le Master
# 2. Raccrochage immédiat des canaux orphelins et désenregistrement des Trunks PJSIP
# Un nœud en Standby / Backup ne doit avoir aucun canal actif afin de libérer les BLF et éviter les conflits
if pidof asterisk >/dev/null 2>&1; then
/usr/sbin/asterisk -rx "channel request hangup all" >> "$LOG_FILE" 2>&1 || true
/usr/sbin/asterisk -rx "pjsip send unregister *" >> "$LOG_FILE" 2>&1 || true
for reg in $(/usr/sbin/asterisk -rx "pjsip show registrations" 2>/dev/null | grep -o '[a-zA-Z0-9_\-]*-reg' | sort -u); do
/usr/sbin/asterisk -rx "pjsip send unregister $reg" >> "$LOG_FILE" 2>&1 || true
done
/usr/sbin/asterisk -rx "dialplan reload" >> "$LOG_FILE" 2>&1 || true
fi
echo "[$TIMESTAMP] [CLUSTER] Mode Standby actif. En écoute des battements de cœur VRRP." >> "$LOG_FILE"
+4 -1
View File
@@ -33,8 +33,11 @@ if [ -f "$ASTDB_PATH" ]; then
fi
fi
# 3. Réactivation des enregistrements Trunks PJSIP et rechargement de la config
# 3. Purge préventive des canaux résiduels / fantômes et rechargement PJSIP/Dialplan
# Si le nœud a été mis en pause ou déconnecté, les canaux antérieurs sont morts.
# Leur raccrochage réinitialise immédiatement les hints à l'état Idle et éteint les BLF.
if pidof asterisk >/dev/null 2>&1; then
/usr/sbin/asterisk -rx "channel request hangup all" >> "$LOG_FILE" 2>&1 || true
/usr/sbin/asterisk -rx "pjsip reload" >> "$LOG_FILE" 2>&1 || true
/usr/sbin/asterisk -rx "pjsip send register *" >> "$LOG_FILE" 2>&1 || true
for reg in $(/usr/sbin/asterisk -rx "pjsip show registrations" 2>/dev/null | grep -o '[a-zA-Z0-9_\-]*-reg' | sort -u); do