Affichage des résultats 1 à 9 sur 9

Discussion: Comment faire réagir asterisk en fonction de la rèponse à la question.

  1. #1
    Membre
    Date d'inscription
    avril 2012
    Localisation
    83170 Tourves (Var)
    Messages
    46
    Downloads
    0
    Uploads
    0

    Comment faire réagir asterisk en fonction de la rèponse à la question.

    Bonjour,

    Tout est dans le titre.

    Exemple avec "extensions.conf :
    Code:
    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.

  2. #2
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    tu as soit la commande background qui te branchera sur l'extension tapée par l'utilisateur, soit read puis gotoif

    j.

  3. #3
    Membre
    Date d'inscription
    avril 2012
    Localisation
    83170 Tourves (Var)
    Messages
    46
    Downloads
    0
    Uploads
    0
    Bonjour,

    Je n'ai pas compris
    Pouvez vous me donner un exemple

    merci.

  4. #4
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0

  5. #5
    Membre
    Date d'inscription
    avril 2012
    Localisation
    83170 Tourves (Var)
    Messages
    46
    Downloads
    0
    Uploads
    0
    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 :
    Code:
    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 :
    Code:
    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.

  6. #6
    Membre Senior
    Date d'inscription
    février 2011
    Localisation
    Garges Les Gonesse
    Messages
    152
    Downloads
    0
    Uploads
    0
    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+

  7. #7
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    Code:
    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...)

    Code:
    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

  8. #8
    Membre
    Date d'inscription
    avril 2012
    Localisation
    83170 Tourves (Var)
    Messages
    46
    Downloads
    0
    Uploads
    0
    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é :
    Code:
    ; 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 :
    Code:
    [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 :
    Code:
    ; 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
    Code:
    #!/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
    Code:
    #!/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
    Code:
    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.

  9. #9
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    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 ;-)

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •