Bonjour
Je posséde un Rapberry PI 3 avec asterisk d'installé.
Hier soir, il y avez de l'orage, et je n'est pas pu arrêter mon serveur à distance avec asterisk.
J'ai donc réaliser un script agi pour l'arrêter à distance quand il y a de la foudre et que je suis pas chez moi mais au resto.

Fichier : arret-serveur.agi
Code:
#!/bin/bash
#Emplacement fichier : /var/lib/asterisk/agi-bin/reboot-serveur.agi
#Arrêt du Serveur

a=$1
b="1234" # Mot de passe a comparer avec la variable  $1 des touches clavier de asterisk 

if [ "$a" = "$b" ]
then
  echo "Le mot de passe est correct."
  sleep 30 # Marque un temps d’arrêt 30 secondes pour que asterisk est le temps de raccrocher.
  sudo poweroff
else
  echo "Le mot de passe $a est faux."
fi

echo
exit 0

Fichier : extensions.conf
Code:
;# arrêter le serveur
; Fichier : /var/lib/asterisk/agi-bin/arret-serveur.agi
exten => 563,1,Answer()
exten => 563,n,Playtones(ring)
exten => 563,n,wait(10)
exten => 563,n,Playback(/var/lib/asterisk/sounds/custom/bonjour)
exten => 563,n,Playback(/var/lib/asterisk/sounds/custom/message-bienvenue-arret-serveur)
exten => 563,n,Playback(/var/lib/asterisk/sounds/custom/message-mdp-4x-chiffres)
exten => 563,n,Playback(/var/lib/asterisk/sounds/custom/message_c-est-a-vous)
exten => 563,n,Read(MDP,,4)  
exten => 563,n,SayNumber(${MDP}
exten => 563,n,Playback(/var/lib/asterisk/sounds/custom/message-arret-serveur-poweroff)
exten => 563,n,agi(/var/lib/asterisk/agi-bin/arret-serveur.agi,${MDP})
exten => 563,n,Playback(/var/lib/asterisk/sounds/custom/aurevoir)
exten => 563,n,HangUp() ; racroche
Le console de asterisk CLI me dit :
Code:
serveur@raspberrypi:~ $ sudo asterisk -rvvv
Asterisk 13.14.1~dfsg-2+deb9u3, Copyright (C) 1999 - 2014, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 13.14.1~dfsg-2+deb9u3 currently running on raspberrypi (pid = 26486)
  == Using SIP RTP CoS mark 5
    -- Executing [563@maison:1] Answer("SIP/11-00000001", "") in new stack
    -- Executing [563@maison:2] PlayTones("SIP/11-00000001", "ring") in new stack
    -- Executing [563@maison:3] Wait("SIP/11-00000001", "10") in new stack
    -- Executing [563@maison:4] Playback("SIP/11-00000001", "/var/lib/asterisk/sounds/custom/bonjour") in new stack
    -- <SIP/11-00000001> Playing '/var/lib/asterisk/sounds/custom/bonjour.slin' (language 'fr')
    -- Executing [563@maison:5] Playback("SIP/11-00000001", "/var/lib/asterisk/sounds/custom/message-bienvenue-arret-serveur") in new stack
    -- <SIP/11-00000001> Playing '/var/lib/asterisk/sounds/custom/message-bienvenue-arret-serveur.slin' (language 'fr')
    -- Executing [563@maison:6] Playback("SIP/11-00000001", "/var/lib/asterisk/sounds/custom/message-mdp-4x-chiffres") in new stack
    -- <SIP/11-00000001> Playing '/var/lib/asterisk/sounds/custom/message-mdp-4x-chiffres.slin' (language 'fr')
    -- Executing [563@maison:7] Playback("SIP/11-00000001", "/var/lib/asterisk/sounds/custom/message_c-est-a-vous") in new stack
    -- <SIP/11-00000001> Playing '/var/lib/asterisk/sounds/custom/message_c-est-a-vous.slin' (language 'fr')
    -- Executing [563@maison:8] Read("SIP/11-00000001", "MDP,,4") in new stack
    -- Accepting a maximum of 4 digits.
    -- User entered '1234'
    -- Executing [563@maison:9] SayNumber("SIP/11-00000001", "1234") in new stack
    -- <SIP/11-00000001> Playing 'digits/thousand.slin' (language 'fr')
    -- <SIP/11-00000001> Playing 'digits/2.slin' (language 'fr')
    -- <SIP/11-00000001> Playing 'digits/hundred.slin' (language 'fr')
    -- <SIP/11-00000001> Playing 'digits/30.slin' (language 'fr')
    -- <SIP/11-00000001> Playing 'digits/4.slin' (language 'fr')
    -- Executing [563@maison:10] Playback("SIP/11-00000001", "/var/lib/asterisk/sounds/custom/message-arret-serveur-poweroff") in new stack
   -- <SIP/11-00000001> Playing '/var/lib/asterisk/sounds/custom/message-arret-serveur-poweroff.slin' (language 'fr')
   -- Executing [563@maison:11] AGI("SIP/11-00000001", "/var/lib/asterisk/agi-bin/arret-serveur.agi,1234") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/arret-serveur.agi
    -- <SIP/11-00000001>AGI Script /var/lib/asterisk/agi-bin/arret-serveur.agi completed, returning 0
    -- Executing [563@maison:12] Playback("SIP/11-00000001", "/var/lib/asterisk/sounds/custom/aurevoir") in new stack
    -- <SIP/11-00000001> Playing '/var/lib/asterisk/sounds/custom/aurevoir.slin' (language 'fr')
    -- Executing [563@maison:13] Hangup("SIP/11-00000001", "") in new stack
  == Spawn extension (maison, 563, 13) exited non-zero on 'SIP/11-00000001'
[Jul 23 18:59:03] NOTICE[26551]: chan_sip.c:29976 sip_poke_noanswer: Peer '11' is now UNREACHABLE!  Last qualify: 68
[Jul 23 18:59:55] NOTICE[26551]: chan_sip.c:24457 handle_response_peerpoke: Peer '11' is now Reachable. (545ms / 2000ms)
[Jul 23 19:00:59] NOTICE[26551]: chan_sip.c:29976 sip_poke_noanswer: Peer '11' is now UNREACHABLE!  Last qualify: 545
[Jul 23 19:02:20] NOTICE[26551]: chan_sip.c:29976 sip_poke_noanswer: Peer '11' is now UNREACHABLE!  Last qualify: 3174
[Jul 23 19:02:30] NOTICE[26551]: chan_sip.c:24457 handle_response_peerpoke: Peer '11' is now Reachable. (6ms / 2000ms)
[Jul 23 19:04:34] NOTICE[26551]: chan_sip.c:29976 sip_poke_noanswer: Peer '11' is now UNREACHABLE!  Last qualify: 7
[Jul 23 19:04:45] NOTICE[26551]: chan_sip.c:24457 handle_response_peerpoke: Peer '11' is now Reachable. (1764ms / 2000ms)
[Jul 23 19:07:50] NOTICE[26551]: chan_sip.c:29976 sip_poke_noanswer: Peer '11' is now UNREACHABLE!  Last qualify: 165
[Jul 23 19:08:01] NOTICE[26551]: chan_sip.c:24457 handle_response_peerpoke: Peer '11' is now Reachable. (663ms / 2000ms)
[Jul 23 19:09:05] NOTICE[26551]: chan_sip.c:29976 sip_poke_noanswer: Peer '11' is now UNREACHABLE!  Last qualify: 663
[Jul 23 19:09:16] NOTICE[26551]: chan_sip.c:24457 handle_response_peerpoke: Peer '11' is now Reachable. (1558ms / 2000ms)
[Jul 23 19:10:20] NOTICE[26551]: chan_sip.c:29976 sip_poke_noanswer: Peer '11' is now UNREACHABLE!  Last qualify: 1558
[Jul 23 19:10:30] NOTICE[26551]: chan_sip.c:24457 handle_response_peerpoke: Peer '11' is now Reachable. (289ms / 2000ms)
[Jul 23 19:11:34] NOTICE[26551]: chan_sip.c:29976 sip_poke_noanswer: Peer '11' is now UNREACHABLE!  Last qualify: 289
[Jul 23 19:11:54] NOTICE[26551]: chan_sip.c:24457 handle_response_peerpoke: Peer '11' is now Reachable. (15ms / 2000ms)
Donne les drois au fichier
Code:
$ sudo chown asterisk:asterisk /var/lib/asterisk/agi-bin/arret-serveur.agi
Code:
sudo chmod +x /var/lib/asterisk/agi-bin/arret-serveur.agi
Droit du fichier
Code:
serveur@raspberrypi:~ $ ls -alh  /var/lib/asterisk/agi-bin/arret-serveur.agi
-rwxr-xr-x 1 asterisk asterisk 674 juil. 23 19:37 /var/lib/asterisk/agi-bin/arret-serveur.agi
serveur@raspberrypi:~ $
Le problème est que le script ne s'execute pas depuis Asterisk ou la variable de asterisk des touches clavier n'est pas transmis au script agi via $1 ?
Pouvez-vous m'aider ?
Merci.