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