#!/usr/bin/env bash # ============================================================================== # NexusPBX HA - Notification Keepalived : Transition vers l'état BACKUP / STANDBY # ============================================================================== set -euo pipefail export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH" LOG_FILE="/var/log/nexus_cluster.log" TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') echo "[$TIMESTAMP] [CLUSTER] <<< Transition vers l'état BACKUP / STANDBY (En veille) >>>" >> "$LOG_FILE" # 1. Mise à jour de l'état en base locale DB_PATH="/var/www/nexus-pbx/storage/database.sqlite" if [ -f "$DB_PATH" ]; then sqlite3 "$DB_PATH" "UPDATE cluster_settings SET last_sync_status='standby_idle', updated_at=CURRENT_TIMESTAMP WHERE id=1;" 2>/dev/null || true fi # 2. Désenregistrement des Trunks PJSIP pour éviter les conflits d'appels entrants avec le Master if pidof asterisk >/dev/null 2>&1; then /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 fi echo "[$TIMESTAMP] [CLUSTER] Mode Standby actif. En écoute des battements de cœur VRRP." >> "$LOG_FILE" exit 0