Skip to main content

05 - Script

1) Script d'administration Bash

Ce script centralise les opérations courantes d'administration de l'infrastructure VoIP.

 	##############################################################
# Auteur : mkermorvant                                       #
# Date de modification : 20260511                            #
#                                                            #
# Description : Management Asterisk                          #
#                                                            #
##############################################################
#! /bin/bash                                                 #
#                                                            #
##############################################################
# Variables :
echo ""
ASTERISK="192.168.99.9"
TEL_1000="192.168.10.67"
TEL_1001="192.168.10.66"

#Code couleur ANSI pour l'affichage terminal
VERT='\033[0;32m'
ROUGE='\033[0;31m'
JAUNE='\033[0;33m'
NEUTRE='\033[0m'
BLEU='\033[0;36m'

PS3="Qu'elle action souhaiter vous exécuter : "
OPTIONS=( "Statut Serveur Asterisk" "Ping" "Contacts" "Appels en cours" "Redémarrage Serveur Assterisk" "Rechargement Config" "Quitter" )

##############################################################
#Boucle principale : réaffiche le menu après chaque action
while true; do
	clear
	echo -e "${BLEU}###############################################################"
	echo "#                                                             #"
	echo "#                      Admin Asterisk                         #"
	echo "#                                                             #"
	echo "###############################################################"
	echo "#                                                             #"
	echo "#		Liste Options :                               #"
	echo "#                                                             #"
	echo "#		1) Statut Serveur                             #"
	echo "#		2) Ping Téléphones                            #"
	echo "#		3) Liste Contacts                             #"
	echo "#		4) Liste Appel                                #"
	echo "#		5) Redémarage Asterisk                        #"
	echo "#		6) Rechargement Config                        #"
	echo "#		7) Quitter                                    #"
	echo "#                                                             #"
	echo -e "###############################################################${NEUTRE}"

##############################################################

	#Lecture du choix
	echo -ne " Votre choix : "
	read REPLY

	#Traitement du choix via case
	case $REPLY in
		1)
			echo -e "${VERT}=== Statut du Serveur Asterisk ===${NEUTRE}"
			sudo systemctl status asterisk.service	#Affiche l'état du service systemd
			echo ""
			;;
		2)
			echo -e "${VERT}=== Ping Asterisk vers Téléphones ===${NEUTRE}"
			# 3 paquets ICMP envoyés, résultat coloré selon le succès ou l'échec
			ping -c 3 $TEL_1000 && echo -e "${VERT}1000 OK${NEUTRE}" || echo -e "${VERT}1000 KO${NEUTRE}"
			echo ""
			ping -c 3 $TEL_1001 && echo -e "${VERT}1001 OK${NEUTRE}" || echo -e "${ROUGE}1001 KO${NEUTRE}"
			echo ""
			;;
		3)
			echo -e "${VERT}=== Liste contacts Asterisk ===${NEUTRE}"
			sudo asterisk -rx "pjsip show contacts"	#Commande exécuté dans la CLI asterisk
			echo""
			;;
		4)
			echo -e "${VERT}=== Liste d'appel en cours ===${NEUTRE}"
			sudo asterisk -rx "core show channels"	#Liste les canaux actifs
			echo ""
			;;
		5)
			echo -e "${VERT}=== Redémarage du Serveur Asterisk ===${NEUTRE}"
			sudo systemctl restart asterisk.service	#Redemmarre le service
			echo ""
			;;
		6)
			echo -e "${VERT}=== Rechargement de la Configuration ===${NEUTRE}"
			sudo asterisk -rx "module reload res_pjsip.so"	#Recharge le module PJSIP
			sudo asterisk -rx "dialplan reload"		#Recharge le plan de numérotation
			echo ""
			;;
		7)
			echo -e "${JAUNE}=== Quitter ===${NEUTRE}"
			break	#Sort de la boucle While
			echo ""
			;;
		*)
			#Toute saisie non reconnue
			echo -e "${ROUGE}=== Option invalide, veuillez réessayer ===${NEUTRE}"
			echo ""
			;;
	esac

	#Pause avant de réafficher le menu
	echo -ne "Appuie sur Entrée..."
	read
done