Page 1 sur 2 12 DernièreDernière
Affichage des résultats 1 à 10 sur 12

Discussion: Commande SYSTEM

  1. #1
    Membre Junior
    Date d'inscription
    août 2011
    Messages
    12
    Downloads
    0
    Uploads
    0

    Commande SYSTEM

    Bonjour,

    Je suis en train de mettre un système de réveil sur Asterisk. Pour cela j'utilise les fichiers .call.

    Dans mon Extensions.conf, j'ai mis :

    Code:
    [reveil]
            exten => _*77*XXXXXXXXXXXX,1,Answer()
            exten => _*77*XXXXXXXXXXXX,n,Set(year=${EXTEN:4:4})
            exten => _*77*XXXXXXXXXXXX,n,Set(month=${EXTEN:8:2})
            exten => _*77*XXXXXXXXXXXX,n,Set(day=${EXTEN:10:2})
            exten => _*77*XXXXXXXXXXXX,n,Set(hours=${EXTEN:12:2})
            exten => _*77*XXXXXXXXXXXX,n,Set(minutes=${EXTEN:14:2})
            exten => _*77*XXXXXXXXXXXX,n,NoOp(Wake-up call scheduled for ${CALLERID(num)} at ${hours}:${minutes} on ${day}.${month}.${year}.)
            exten => _*77*XXXXXXXXXXXX,n,System(echo -e "Channel: SIP/${CALLERID(num)}\\nContext: wake-up\\nExtension: 23" > /tmp/${UNIQUEID}.call)
            exten => _*77*XXXXXXXXXXXX,n,System(touch -t ${year}${month}${day}${hours}${minutes} /tmp/${UNIQUEID}.call)
            exten => _*77*XXXXXXXXXXXX,n,System(mv /tmp/${UNIQUEID}.call /var/spool/asterisk/outgoing/)
            exten => _*77*XXXXXXXXXXXX,n,Playback(rqsted-wakeup-for)
            exten => _*77*XXXXXXXXXXXX,n,SayNumber(${hours})
            exten => _*77*XXXXXXXXXXXX,n,SayNumber(${minutes})
            exten => _*77*XXXXXXXXXXXX,n,Hangup()
    
    [wake-up]
            exten => 23,1,Answer()
            exten => 23,n,Wait(1)
            exten => 23,n,Playback(this-is-yr-wakeup-call)
            exten => 23,n,Wait(1)
            exten => 23,n,Hangup()
    Lorsque je défini un réveil sur mon téléphone, j'ai bien la création de mon fichier .call. Le soucis vient de la commande SYSTEM :

    Code:
    exten => _*77*XXXXXXXXXXXX,n,System(echo -e "Channel: SIP/${CALLERID(num)}\\nContext: wake-up\\nExtension: 23" > /tmp/${UNIQUEID}.call)
    Le écho -e est mal interprété et me donne cela :

    Code:
    Channel: SIP/captainnContext: wake-upnExtension: 23
    au lieu de :

    Code:
    Channel: SIP/captain
    Context: wake-up
    Extension: 23
    Lorsque j'exécute la commande echo -e dans un terminal, cela se fait bien comme il faut.

    Une idée?

    Yann

  2. #2
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    ci joint un copier coller de chez moi qui marche

    exten => h,n(NoCall),System(echo -e -n "\n${STRFTIME(${EPOCH},GMT+4,%C%y-%m-%d %H:%M:%S)}, Tentative appel ${CDR(dst)} " >> /var/www/html/machin.log)

  3. #3
    Membre Association Avatar de cedricscha
    Date d'inscription
    août 2010
    Localisation
    Geneve/Suisse
    Messages
    578
    Downloads
    1
    Uploads
    0
    Cédric
    ---------------------------------------------------------------
    Rejoignez l'Association Asterisk France : http://www.asterisk-france.org

    Envie de mettre des étoiles dans les yeux de vos clients : EasyPyro.ch

    On a pas inventé l'électricité en cherchant à améliorer la bougie...
    ---------------------------------------------------------------

  4. #4
    Membre Junior
    Date d'inscription
    août 2011
    Messages
    12
    Downloads
    0
    Uploads
    0
    @Jean : J'ai le même soucis avec ta syntaxe.

    @Cédric : J'ai bien vu ce tuto, mais le projet me demande de faire ça en fichier .call, dommage d'ailleurs

  5. #5
    Membre Association Avatar de cedricscha
    Date d'inscription
    août 2010
    Localisation
    Geneve/Suisse
    Messages
    578
    Downloads
    1
    Uploads
    0
    Euh, le tuto, c'est sur la base d'un .call :

    Code:
    .... oici donc le code de l'AGI et le bout de dialplan :
    
    A coller dans le fichier /var/lib/asterisk/agi-bin/reveil.agi :
    Code:
    
    #!/bin/bash
    
    # Numéro à rappeler pour le réveil
    NUMERO=$1
    
    # Jour configuré pour le réveil
    JOUR=$2
    
    # Mois configuré pour le réveil
    MOIS=$3
    
    # Annee configurée pour le réveil
    ANNEE=$4
    
    # Heure configurée pour le réveil
    HEURE=$5
    
    # Minute configurée pour le réveil
    MINUTE=$6
    
    TIMESTAMP=$ANNEE$MOIS$JOUR$HEURE$MINUTE
    
    FICHIER=$NUMERO$TIMESTAMP.call
    
    #echo "Channel: SIP/$NUMERO \nAccount: $NUMERO \nMaxRetries: 3\nRetryTime: 10\nWaitTime: 10\nContext: reveil\nExtension: reveil" >> /var/spool/asterisk/tmp/test.call
    echo "Channel: SIP/$NUMERO" >> /var/spool/asterisk/tmp/$FICHIER
    echo "Account: $NUMERO" >> /var/spool/asterisk/tmp/$FICHIER
    echo "CallerID: Reveil <955>" >> /var/spool/asterisk/tmp/$FICHIER
    echo "MaxRetries: 3" >> /var/spool/asterisk/tmp/$FICHIER
    echo "RetryTime: 10" >> /var/spool/asterisk/tmp/$FICHIER
    echo "WaitTime: 10" >> /var/spool/asterisk/tmp/$FICHIER
    echo "Context: reveil" >> /var/spool/asterisk/tmp/$FICHIER
    echo "Extension: reveil" >> /var/spool/asterisk/tmp/$FICHIER.....
    Cédric
    ---------------------------------------------------------------
    Rejoignez l'Association Asterisk France : http://www.asterisk-france.org

    Envie de mettre des étoiles dans les yeux de vos clients : EasyPyro.ch

    On a pas inventé l'électricité en cherchant à améliorer la bougie...
    ---------------------------------------------------------------

  6. #6
    Membre Junior
    Date d'inscription
    août 2011
    Messages
    12
    Downloads
    0
    Uploads
    0
    En effet, Lundi

    Et bien je vais tester tout ça et vous redis!

    Merci

  7. #7
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    Citation Envoyé par Ptityan Voir le message
    @Jean : J'ai le même soucis avec ta syntaxe.
    tu me vois perplexe - ca marche sur 1.6 et 1.8

    attention, simple \ et double quotes

  8. #8
    Membre Junior
    Date d'inscription
    août 2011
    Messages
    12
    Downloads
    0
    Uploads
    0
    Je suis sur un IPBX, comportant une 1.4.

    http://www.rowetel.com/blog/?page_id=440

    Et réponse suite à la demande de passer en 1.6 du constructeur :

    I don't have an Asterisk 1.6 ipkg, although it's possible some of the
    other distributions for the IP0X (switchfin etc) may support it.
    La distrib' est µClinux Blackfin.

    Et bien fait attention au simple \ et doubles quotes.

    La je suis parti sur la version de Cédric, je génère bien le .call, mais je ne récupère pas le numéro à rappeler. Donc je regarde d'ou ça peut venir.

  9. #9
    Membre Association Avatar de cedricscha
    Date d'inscription
    août 2010
    Localisation
    Geneve/Suisse
    Messages
    578
    Downloads
    1
    Uploads
    0
    Tu peux controler via l'ajout de la ligne suivante dans ton extensions.conf :

    Code:
    [reveil]
    exten => _977XXXXXXXXXXXX,1,Answer()
    exten => _977XXXXXXXXXXXX,n,NoOp(${CDR(accountcode)})
    exten => _977XXXXXXXXXXXX,n,Set(ACCOUNTCDE=${CDR(accountcode)})
    exten => _977XXXXXXXXXXXX,n,Wait(1)
    exten => _977XXXXXXXXXXXX,n,Playback(hello-world)
    exten => _977XXXXXXXXXXXX,n,Playback(date)
    exten => _977XXXXXXXXXXXX,n,Saynumber(${EXTEN:3:2})
    exten => _977XXXXXXXXXXXX,n,Playback(dot)
    exten => _977XXXXXXXXXXXX,n,Saynumber(${EXTEN:5:2})
    exten => _977XXXXXXXXXXXX,n,Playback(dot)
    exten => _977XXXXXXXXXXXX,n,Saynumber(${EXTEN:7:4})
    exten => _977XXXXXXXXXXXX,n,Wait(1)
    exten => _977XXXXXXXXXXXX,n,Saynumber(${EXTEN:11:2})
    exten => _977XXXXXXXXXXXX,n,Playback(hours)
    exten => _977XXXXXXXXXXXX,n,Playback(and)
    exten => _977XXXXXXXXXXXX,n,Saynumber(${EXTEN:13:2})
    exten => _977XXXXXXXXXXXX,n,Playback(minutes)
    exten => _977XXXXXXXXXXXX,n,AGI(reveil.agi,${ACCOUNTCDE},${EXTEN:3:2},${EXTEN:5:2},${EXTEN:7:4},${EXTEN:11:2},${EXTEN:13:2})
    exten => _977XXXXXXXXXXXX,n,Hangup()
    
    
    exten => reveil,1,Answer()
    exten => reveil,n,Wait(1)
    exten => reveil,n,PlayBack(hello-world)
    exten => reveil,n,Wait(1)
    exten => reveil,n,SayUnixTime(,CET,kMbdY)
    exten => reveil,n,Hangup()
    Tu auras ainsi une ligne dans ta cli durant un appel qui t'indique l'accountcode recupéré.
    Cédric
    ---------------------------------------------------------------
    Rejoignez l'Association Asterisk France : http://www.asterisk-france.org

    Envie de mettre des étoiles dans les yeux de vos clients : EasyPyro.ch

    On a pas inventé l'électricité en cherchant à améliorer la bougie...
    ---------------------------------------------------------------

  10. #10
    Membre Junior
    Date d'inscription
    août 2011
    Messages
    12
    Downloads
    0
    Uploads
    0
    Yes c'est ça que j'ai changé, du coup je récupère bien tout. Je l'ai passe ce {CDR(accountcode)} à {CALLERID(num)}.

    Voilà ma fonctionnalité de réveil fonctionne.

    Merci à vous pour vos réponses

    Bonne journée,
    Yann

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
  •