Bonjour
Pour vérifier si asterisk passe la variable vers le fichier agi et si le fichier est bien executer par asterisk, j'ai créer un fichier test.agi.
Que le code soit faux ou vrai un fichier test.txt doit être créé dans /home/serveur afin de vérifier que le fichier agi est bien exécuté par Asterisk.
/var/lib/asterisk/agi-bin/test.agi
Code:
#!/bin/bash
#Emplacement fichier : /var/lib/asterisk/agi-bin/test.agi
#Permet de verifierr si asterisk passe la variable vers fichier agi et si le fichier est executer par asterisk
MDP_ASTERISK=$1
MDP_IDENTIQUE="1234" # Mot de passe a comparer
#MDP_IDENTIQUE="1234"
if [ "$MDP_ASTERISK" = "$MDP_IDENTIQUE" ]
then
echo "Le mot de passe est correct."
echo "MDP_ASTERISK : $MDP_ASTERISK"
touch /home/serveur/test.txt
echo "Le mot de passe saissi au clavier est : $MDP_ASTERISK" > /home/serveur/test.txt
echo "Le code est vrai ---> fichier : /var/lib/asterisk/agi-bin/test.agi" >> /home/serveur/test.txt
sudo touch /home/serveur/test.txt
sudo bash -c 'echo "(sudo) Le mot de passe saissi sur le clavier de asterisk est : $MDP_ASTERISK" >> /home/serveur/test.txt'
sudo bash -c 'echo "(sudo) Le code est vrai ---> fichier : /var/lib/asterisk/agi-bin/test.agi" >> /home/serveur/test.txt'
else
echo "Le mot de passe est faux."
echo "MDP_ASTERISK : $MDP_ASTERISK"
touch /home/serveur/test.txt
echo "Le mot de passe saissi au clavier de asterisk est : $MDP_ASTERISK" > /home/serveur/test.txt
echo "Le code est faux ---> fichier : /var/lib/asterisk/agi-bin/test.agi" >> /home/serveur/test.txt
sudo touch /home/serveur/test.txt
sudo bash -c 'echo "(sudo) Le mot de passe saissi au clavier de asterisk est : $MDP_ASTERISK" >> /home/serveur/test.txt'
sudo bash -c 'echo "(sudo) Le code est faux ---> fichier : /var/lib/asterisk/agi-bin/test.agi" >> /home/serveur/test.txt'
fi
echo
exit 0
/etc/asterisk/extensions.conf
Code:
; Pour effectuer des tests
exten => 551,1,Answer()
exten => 551,n,Playtones(ring)
exten => 551,n,wait(10)
exten => 551,n,Playback(/var/lib/asterisk/sounds/custom/bonjour)
exten => 551,n,Playback(/var/lib/asterisk/sounds/custom/message_c-est-a-vous)
exten => 551,n,Read(TOUCHE,,4)
exten => 551,n,SayNumber(${TOUCHE})
exten => 551,n,AGI(/var/lib/asterisk/agi-bin/test.agi,${TOUCHE})
exten => 551,n,wait(1)
exten => 551,n,HangUp()
Donne les droits au fichier
Code:
sudo chown asterisk:asterisk /var/lib/asterisk/agi-bin/test.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/test.agi
-rwxr-xr-x 1 asterisk asterisk 1,5K juil. 24 20:01 /var/lib/asterisk/agi-bin/test.agi
serveur@raspberrypi:~ $
Puis je compose le 551 et je vérifie si le fichier test.txt est créé. Rien .
Code:
serveur@raspberrypi:~ $ ls
Bureau Documents Images Langages Modèles Musique Public Téléchargements Vidéos
serveur@raspberrypi:~ $
La console CLI de Asterisk
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 = 30309)
== Using SIP RTP CoS mark 5
-- Executing [551@maison:1] Answer("SIP/11-00000000", "") in new stack
-- Executing [551@maison:2] PlayTones("SIP/11-00000000", "ring") in new stack
-- Executing [551@maison:3] Wait("SIP/11-00000000", "10") in new stack
-- Executing [551@maison:4] Playback("SIP/11-00000000", "/var/lib/asterisk/sounds/custom/bonjour") in new stack
-- <SIP/11-00000000> Playing '/var/lib/asterisk/sounds/custom/bonjour.slin' (language 'fr')
-- Executing [551@maison:5] Playback("SIP/11-00000000", "/var/lib/asterisk/sounds/custom/message_c-est-a-vous") in new stack
-- <SIP/11-00000000> Playing '/var/lib/asterisk/sounds/custom/message_c-est-a-vous.slin' (language 'fr')
-- Executing [551@maison:6] Read("SIP/11-00000000", "TOUCHE,,4") in new stack
-- Accepting a maximum of 4 digits.
-- User entered '1234'
-- Executing [551@maison:7] SayNumber("SIP/11-00000000", "1234") in new stack
-- <SIP/11-00000000> Playing 'digits/thousand.slin' (language 'fr')
-- <SIP/11-00000000> Playing 'digits/2.slin' (language 'fr')
-- <SIP/11-00000000> Playing 'digits/hundred.slin' (language 'fr')
-- <SIP/11-00000000> Playing 'digits/30.slin' (language 'fr')
-- <SIP/11-00000000> Playing 'digits/4.slin' (language 'fr')
-- Executing [551@maison:8] AGI("SIP/11-00000000", "/var/lib/asterisk/agi-bin/test.agi,1234") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/test.agi
-- <SIP/11-00000000>AGI Script /var/lib/asterisk/agi-bin/test.agi completed, returning 0
-- Executing [551@maison:9] Wait("SIP/11-00000000", "1") in new stack
-- Executing [551@maison:10] Hangup("SIP/11-00000000", "") in new stack
== Spawn extension (maison, 551, 10) exited non-zero on 'SIP/11-00000000'
raspberrypi*CLI>
Quand j’exécute le fichier en console ça marche, le fichier est créé.
Code:
serveur@raspberrypi:~ $ bash /var/lib/asterisk/agi-bin/test.agi
Le mot de passe est faux.
MDP_ASTERISK :
serveur@raspberrypi:~ $
Liste des fichiers
Code:
serveur@raspberrypi:~ $ ls
Bureau Documents Images Langages Modèles Musique Public Téléchargements test.txt Vidéos
serveur@raspberrypi:~ $
Contenue du fichier /home/serveur/test.txt
Code:
serveur@raspberrypi:~ $ cat test.txt
Le mot de passe saissi sur sur le clavier de asterisk est :
Le code est faux ---> fichier : /var/lib/asterisk/agi-bin/test.agi
(sudo) Le mot de passe saissi sur sur le clavier de asterisk est :
(sudo) Le code est faux ---> fichier : /var/lib/asterisk/agi-bin/test.agi
serveur@raspberrypi:~ $
Quand j'exexute le fichier comme ceci
Code:
serveur@raspberrypi:~ $ sudo bash /var/lib/asterisk/agi-bin/test.agi 1234
Le mot de passe est correct.
MDP_ASTERISK : 1234
serveur@raspberrypi:~ $
Le fichier est créé
Code:
serveur@raspberrypi:~ $ ls -alh test.txt
-rw-r--r-- 1 root root 254 juil. 25 14:28 test.txt
serveur@raspberrypi:~ $
le fichier contient bien le contenue du test, sauf qu'avec la partie sudo la variable ne se marque pas.
Code:
serveur@raspberrypi:~ $ cat test.txt
Le mot de passe saissi sur lr clavier est : 1234
Le code est vrai ---> fichier : /var/lib/asterisk/agi-bin/test.agi
(sudo) Le mot de passe saissi sur le clavier de asterisk est :
(sudo) Le code est vrai ---> fichier : /var/lib/asterisk/agi-bin/test.agi
serveur@raspberrypi:~ $
Lors de l'installation de asterisk j'ai juste fait ceci :
Code:
sudo apt-get install asterisk-core-sounds-fr
sudo apt install asterisk-mp3
sudo apt install asterisk-espeak
Puis j'ai configurer le fichier extensions.conf et sip.conf.
Et j'ai redémarré Asterisk
Code:
sudo /etc/init.d/asterisk restart
Y a t'il un problème de droit au fichier agi ?
Y a t'il autre chose à installer pour Asterisk ?
Y a t'il autre chose à configurer pour Asterisk ?
Pouvez vous m'aider a résoudre le problème ?
Merci.