Voir la version complète : Comment faire réagir asterisk en fonction de la rèponse à la question.
xunil2003
07/01/2014, 15h49
Bonjour,
Tout est dans le titre.
Exemple avec "extensions.conf :
exten => 2301,1,Answer()
exten => 2301,n,Playtones(ring)
exten => 2301,n,wait(10)
exten => 2301,n,Playback(/lib/asterisk/sounds/custom/bonjour)
exten => 2301,n,Playback(/lib/asterisk/sounds/custom/bienvenue)
exten => 2301,n,Playback(/lib/asterisk/sounds/custom/Question_que_voulez_vous_faire)
Mais comment faire pour qu'asterisk sache lorsque l'utilisateur tape
1 fait ça !
2 faits cela !
3 ou ceci !
4 ou encore ça !
etc...
J'ai pensé faire un switch, des cases mais je sais pas comment faire avec asterisk ?
Pouvez-vous m'aiguiller ?
Merci.
tu as soit la commande background qui te branchera sur l'extension tapée par l'utilisateur, soit read puis gotoif
j.
xunil2003
07/01/2014, 21h28
Bonjour,
Je n'ai pas compris
Pouvez vous me donner un exemple
merci.
http://www.voip-info.org/wiki/view/Asterisk+cmd+BackGround
http://www.voip-info.org/wiki/view/Asterisk+cmd+Read
y'a des exemples tout fait
xunil2003
08/01/2014, 04h46
Bonjour,
C'est bien ce que j'ai vu en effectuant une recherche sur le net.
Utilisons l'exemple avec blackground
http://www.voip-info.org/wiki/view/A...cmd+BackGround
Désolé je ne comprend pas ou dois je mettre ceci :
exten => s,1,Answer
exten => s,2,Background(thanks) ; "Thanks for calling. Press 1 for sales, 2 for support, ..."
exten => 1,1,Goto(submenu,s,1)
exten => 2,1,Hangup
Faut il le mettre dans un context particulier dans le fichier /etc/asterisk/extensions.con ?
Ou faut il y placer dessous ceci :
exten => 2301,1,Answer()
exten => 2301,n,Playtones(ring)
exten => 2301,n,wait(10)
exten => 2301,n,Playback(/lib/asterisk/sounds/custom/bonjour)
exten => 2301,n,Playback(/lib/asterisk/sounds/custom/bienvenue)
exten => 2301,n,Playback(/lib/asterisk/sounds/custom/Question_que_voulez_vous_faire)
exten => 2301,n,Read(N0,,1)
exten => 2301,n,SayNumber(${N0})
.......
Pouvez-vous m'en dire plus ?
Merci.
Bonjour,
Je ferai qqchose comme ceci.
exten => 2301,n,Playback(/lib/asterisk/sounds/custom/bonjour)
exten => 2301,n,Playback(/lib/asterisk/sounds/custom/bienvenue)
exten => 2301,n,Background(/lib/asterisk/sounds/custom/Question_que_voulez_vous_faire)
;;;;;;;;;;;;;;;exten => 2301,n,Playback(/lib/asterisk/sounds/custom/Question_que_voulez_vous_faire)
exten => 2301,n,Read(N0,,1,,,2) ;;;;;;;;;;Read(N0,,1)
exten => 2301,n,SayNumber(${N0})
A+
exten => s,1,Answer
exten => s,2,Background(thanks) ; "Thanks for calling. Press 1 for sales, 2 for support, ..."
exten => 1,1,Goto(submenu,s,1)
exten => 2,1,Hangup
quand tu fais ca, bckground joue le message, et asterisk continue sur l'extension que l'utilisateur a tapée. par exemple dans ce cas, il se branche sur un sous menu (non fourni dans l'exemple) si on presse 1, et raccroche si on presse 2
=> ca correspond à ta demande initiale ( 1=> fais ci, etc...)
exten => 2301,1,Answer()
exten => 2301,n,Playtones(ring)
exten => 2301,n,wait(10)
exten => 2301,n,Playback(/lib/asterisk/sounds/custom/bonjour)
exten => 2301,n,Playback(/lib/asterisk/sounds/custom/bienvenue)
exten => 2301,n,Playback(/lib/asterisk/sounds/custom/Question_que_voulez_vous_faire)
exten => 2301,n,Read(N0,,1)
exten => 2301,n,SayNumber(${N0})
.......
la, c'est plus artisinal, apres le SayNumber, tu peux faire un
exten => 2301,n,GotoIf($["${N0}" == "1"]?menu1)
et asterisk ira trouver la prio menu1 dans l'extension courante - ou tu fais ce que tu veux
xunil2003
08/01/2014, 20h57
bonjour,
He ben voilà tout fonctionne, Merci pour votre aide.
j'ai fait ceci :
Dans mon fichier "/etc/asterisk/extensions.conf" à mon context [maison], j'ai ajouté :
; Domotique Z-wave : Que voulez vous faire ?
; Fichier : /var/lib/asterisk/agi-bin/domotique_z-wave_choix1.agi
exten => 2301,1,Answer()
exten => 2301,n,Playtones(ring)
exten => 2301,n,wait(10)
exten => 2301,n,Playback(/lib/asterisk/sounds/custom/bonjour)
exten => 2301,n,Playback(/lib/asterisk/sounds/custom/domotique_z-wave_bienvenue)
exten => 2301,n,Background(/lib/asterisk/sounds/custom/domotique_z-wave_Que_voulez_vous_faire)
exten => 2301,n,Background(/lib/asterisk/sounds/custom/c-est-a-vous)
exten => 2301,n,Read(N0,,1,,,2)
exten => 2301,n,SayNumber(${N0})
exten => 2301,n,Goto(choix${N0},1, 2)
Puis j'ai créer un context choix1 pour y mettre ceci :
[choix1]
exten => 1,1,Answer()
exten => 1,n,Background(/lib/asterisk/sounds/custom/domotique-z-wave-Allumer-eteindre-lumiere)
exten => 1,n,Background(/lib/asterisk/sounds/custom/c-est-a-vous)
exten => 1,n,Read(CHOIX1_1,,1)
exten => 1,n,SayNumber(${CHOIX1_1})
exten => 1,n,Background(/lib/asterisk/sounds/custom/domotique_z-wave_commutateur)
exten => 1,n,Read(CHOIX1_2,,1)
exten => 1,n,SayNumber(${CHOIX1_2})
exten => 1,n,AGI(domotique-zwave-choix1.agi,${CHOIX1_1},${CHOIX1_2})
exten => 1,n,Playback(/lib/asterisk/sounds/custom/domotique_appel_domotique_z-wave_aurevoir)
exten => 1,n,HangUp() ; racroche
Ensuite j'ai créer un nouveau context choix2 pour y mettre ceci :
; extention
; ---> /var/lib/asterisk/agi-bin/domotique-zwave-choix2.agi
[choix2]
exten => 1,1,Answer()
exten => 1,n,Background(/lib/asterisk/sounds/custom/domotique-z-wave-Allumer-eteindre-lumiere)
exten => 1,n,Background(/lib/asterisk/sounds/custom/c-est-a-vous)
exten => 1,n,Read(CHOIX1_1,,1)
exten => 1,n,SayNumber(${CHOIX1_1})
exten => 1,n,Background(/lib/asterisk/sounds/custom/domotique-z-wave-variateur-lumiere)
exten => 1,n,Background(/lib/asterisk/sounds/custom/c-est-a-vous)
exten => 1,n,Read(CHOIX1_2,,3)
exten => 1,n,SayNumber(${CHOIX1_2})
exten => 1,n,AGI(domotique-zwave-choix2.agi,${CHOIX1_1},${CHOIX1_2})
exten => 1,n,Playback(/lib/asterisk/sounds/custom/domotique_appel_domotique_z-wave_aurevoir)
exten => 1,n,HangUp() ; racroche
Et dans le dossier /var/lib/asterisk/agi-bin/ j'ai créer deux fichiers "domotique-zwave-choix1.agi" et "domotique-zwave-choix2.agi" avec avec le contenu suivant :
Fichier /var/lib/asterisk/agi-bin/domotique-zwave-choix1.agi
#!/bin/bash
# Choix1 domotique Z-wave
CHOIX1=$1
CHOIX2=$2
case $CHOIX1 in
01 | 1) ID=99 ;; # Lampe variable bureau serveur
02 | 2) ID=89 ;; # Lumière du couloir du r.d.c
03 | 3) ID=11 ;; # Lampadaire du salon
*) ;;
esac
case $CHOIX2 in
00 | 0) ACTIONNEUR=0 ;; # Eteindre la lumière
01 | 1) ACTIONNEUR=1 ;; # Allumer la lumière
*) ;;
esac
#------- CONFIGURATION -------------
IP_VERA="192.168.0.5"
PORT_VERA="3480"
curl 'http://'$IP_VERA':'$PORT_VERA'/data_request?id=action&output_format=xml&DeviceNum='$ID'&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue='$ACTIONNEUR' '
exit 0
Fichier /var/lib/asterisk/agi-bin/domotique-zwave-choix1.agi
#!/bin/bash
# Choix2 domotique Z-wave
CHOIX1=$1
CHOIX2=$2
#VARIATION=$2
case $CHOIX1 in
01 | 1) ID=99 ;; # Lampe variable bureau serveur
02 | 2) ID=89 ;; # Lumière du couloir du r.d.c
03 | 3) ID=11 ;; # Lampadaire du salon
*) ;;
esac
case $CHOIX2 in
000 | 00 | 0) VARIATION=000 ;;
001 | 01 | 1) VARIATION=001 ;;
002 | 02 | 2) VARIATION=002 ;;
003 | 03 | 3) VARIATION=003 ;;
004 | 04 | 4) VARIATION=004 ;;
005 | 05 | 5) VARIATION=005 ;;
006 | 06 | 6) VARIATION=006 ;;
007 | 07 | 7) VARIATION=007 ;;
008 | 08 | 8) VARIATION=008 ;;
009 | 09 | 9) VARIATION=009 ;;
010 | 10 ) VARIATION=010 ;;
011 | 11 ) VARIATION=011 ;;
012 | 12 ) VARIATION=012 ;;
013 | 13 ) VARIATION=013 ;;
014 | 14 ) VARIATION=014 ;;
015 | 15 ) VARIATION=015 ;;
016 | 16 ) VARIATION=016 ;;
017 | 17 ) VARIATION=017 ;;
018 | 18 ) VARIATION=018 ;;
019 | 19 ) VARIATION=019 ;;
020 | 20 ) VARIATION=020 ;;
021 | 21 ) VARIATION=021 ;;
022 | 22 ) VARIATION=022 ;;
023 | 23 ) VARIATION=023 ;;
024 | 24 ) VARIATION=024 ;;
025 | 25 ) VARIATION=025 ;;
026 | 26 ) VARIATION=026 ;;
027 | 27 ) VARIATION=027 ;;
028 | 28 ) VARIATION=028 ;;
029 | 29 ) VARIATION=029 ;;
030 | 30 ) VARIATION=030 ;;
031 | 31 ) VARIATION=031 ;;
032 | 32 ) VARIATION=032 ;;
033 | 33 ) VARIATION=033 ;;
034 | 34 ) VARIATION=034 ;;
035 | 35 ) VARIATION=035 ;;
036 | 36 ) VARIATION=036 ;;
037 | 37 ) VARIATION=037 ;;
038 | 38 ) VARIATION=038 ;;
039 | 39 ) VARIATION=039 ;;
040 | 40 ) VARIATION=040 ;;
041 | 41 ) VARIATION=041 ;;
042 | 42 ) VARIATION=042 ;;
043 | 43 ) VARIATION=043 ;;
044 | 44 ) VARIATION=044 ;;
045 | 45 ) VARIATION=045 ;;
046 | 46 ) VARIATION=046 ;;
047 | 47 ) VARIATION=047 ;;
048 | 48 ) VARIATION=048 ;;
049 | 49 ) VARIATION=049 ;;
050 | 50 ) VARIATION=050 ;;
051 | 51 ) VARIATION=051 ;;
052 | 52 ) VARIATION=052 ;;
053 | 53 ) VARIATION=053 ;;
054 | 54 ) VARIATION=054 ;;
055 | 55 ) VARIATION=055 ;;
056 | 56 ) VARIATION=056 ;;
057 | 57 ) VARIATION=057 ;;
058 | 58 ) VARIATION=058 ;;
059 | 59 ) VARIATION=059 ;;
060 | 60 ) VARIATION=060 ;;
061 | 61 ) VARIATION=061 ;;
062 | 62 ) VARIATION=062 ;;
063 | 63 ) VARIATION=063 ;;
064 | 64 ) VARIATION=064 ;;
065 | 65 ) VARIATION=065 ;;
066 | 66 ) VARIATION=066 ;;
067 | 67 ) VARIATION=067 ;;
068 | 68 ) VARIATION=068 ;;
069 | 69 ) VARIATION=069 ;;
070 | 70 ) VARIATION=070 ;;
071 | 71 ) VARIATION=071 ;;
072 | 72 ) VARIATION=072 ;;
073 | 73 ) VARIATION=073 ;;
074 | 74 ) VARIATION=074 ;;
075 | 75 ) VARIATION=075 ;;
076 | 76 ) VARIATION=076 ;;
077 | 77 ) VARIATION=077 ;;
078 | 78 ) VARIATION=078 ;;
079 | 79 ) VARIATION=079 ;;
080 | 80 ) VARIATION=080 ;;
081 | 81 ) VARIATION=081 ;;
082 | 82 ) VARIATION=082 ;;
083 | 83 ) VARIATION=083 ;;
084 | 84 ) VARIATION=084 ;;
085 | 85 ) VARIATION=085 ;;
086 | 86 ) VARIATION=086 ;
087 | 87 ) VARIATION=087 ;;
088 | 88 ) VARIATION=088 ;;
089 | 89 ) VARIATION=089 ;;
090 | 90 ) VARIATION=090 ;;
091 | 91 ) VARIATION=091 ;;
092 | 92 ) VARIATION=092 ;;
093 | 93 ) VARIATION=093 ;;
094 | 94 ) VARIATION=094 ;;
095 | 95 ) VARIATION=095 ;;
096 | 96 ) VARIATION=096 ;;
097 | 97 ) VARIATION=097 ;;
098 | 98 ) VARIATION=098 ;;
099 | 99 ) VARIATION=099 ;;
100) VARIATION=100 ;;
*) ;;
esac
#------- CONFIGURATION -------------
IP_VERA="192.168.0.5"
PORT_VERA="3480"
curl 'http://'$IP_VERA':'$PORT_VERA'/data_request?id=action&output_format=xml&DeviceNum='$ID'&serviceId=urn:upnp-org:serviceId:Dimming1&action=SetLoadLevelTarget&newLoadlevelTarget='$VARIATION' '
exit 0
Puis j'ai redémarrer Asterisk
sudo service asterisk restart
Puis j'ai fait un essai depuis mon smartphone, ça marche.
Le seul défaut est qu'il faut être rapide pour composer les chiffres au question de Asterisk, sinon ça raccroche automatiquement, je n'ai pas trouvé la solution pour rallonger le temps d'attente de la frappe.
Voilà je vais continuer la suite.
Encore une fois merci pour votre aide.
c'est le dernier paramètre (je pense) du read le ,,3 en l'augmentant, ca doit être bon, sinon regarder le manuel de read ;-)
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. Tous droits réservés