Affichage des résultats 1 à 9 sur 9

Discussion: Action HTTP sur appel

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

    Action HTTP sur appel

    Bonjour a tous !
    Je suis nouveau sur le forum et heureux de l''avoir trouvé !
    je viens d'installer un Rasberry avec RASPBX + interface graphique freepbx, c'est génial.
    Mon installation se compose physiquement de 5 CISCO 504G + SPA3102 + 3 softphones (tablettes)

    Apres quelques heures de bidouille, tout fonctionne a merveille (filtrage, renvois etc..)
    Passionné de domotique je me demandais s'il était possible d'envoyer une requête HTTP en appelant un poste.
    Pour exemple mon système domotique réagit a l'appel d'une page WEB.

    Exemple : http://192.168.1.100/Prise1=ON
    Depuis n'importe quel navigateur, la prise s'allume.

    Mon , rêve de geek serait de pouvoir composer le 400 par exemple et raccrocher , ce qui lancerait ma commande HTML.
    Croyez vous que c'est possible?
    Si oui comment?

  2. #2
    Membre Association Avatar de quintana
    Date d'inscription
    août 2010
    Localisation
    Québec
    Messages
    1 084
    Downloads
    0
    Uploads
    0
    Oui c'est possible, tu peux regarder du côté des AGI par exemple que tu utiliseras dans un bout de dialplan. Tu peux aussi utiliser directement CURL depuis le dialplan si tu as le module aussi.
    Découvrez Wazo sous licence GPLv3 et accessible pour tous : http://www.wazo.community
    Blog Wazo : http://blog.wazo.community
    Wazo est un fork de XiVO.
    Suivez moi sur Twitter !

  3. #3
    Membre Senior
    Date d'inscription
    janvier 2011
    Localisation
    Villejuif 94
    Messages
    337
    Downloads
    0
    Uploads
    0
    ou utiliser features.conf. Je m'en sers pour des ouvertures de portes.

  4. #4
    Membre Junior
    Date d'inscription
    août 2014
    Messages
    4
    Downloads
    0
    Uploads
    0
    Bhaa dit donc ! ça c'est de la réponse rapide !!
    Cela dit vu mon niveau en Téléphonie IP je ne sais pas ni comment ni par où commencer…

    Je n'ai pas le module dont tu parles et les AGI… bhaaa.. c'est quoi?

    Pouvez vous m'aider SVP?

    (Désolé d'encombrer le forum avec ça, mais même avec l'outil recherche ou google je ne trouve pas de réponse)

    D'avance merci

  5. #5
    Membre Senior
    Date d'inscription
    janvier 2011
    Localisation
    Villejuif 94
    Messages
    337
    Downloads
    0
    Uploads
    0
    Les agi sont des appels à des programmes externes par Asterisk, comme les CGI sur un serveur Web. Tu peux les appeler depuis le dialplan :
    en ael
    context porte {
    2233 => {
    Agi(porte.py,${CALLERID(num)});
    WaitExten(1);
    Hangup();
    }
    dans cet exemple : appel d'un programme en Python en lui passant le numéro appelant en paramètre.

    ou en cours de communication utiliser une "feature" = un code dtmf, regarde les exemples dans features.conf

    [applicationmap]
    ; Note that the DYNAMIC_FEATURES channel variable must be set to use the features
    ; defined here. The value of DYNAMIC_FEATURES should be the names of the features
    ; to allow the channel to use separated by '#'. For example:
    ; Set(DYNAMIC_FEATURES=myfeature1#myfeature2#myfeatu re3)
    ;
    ;testfeature => #9,callee,Playback,tt-monkeys ;Play tt-monkeys to
    ;callee if #9 was pressed
    porte => *5,self/callee,Agi,porteB

  6. #6
    Asterisk Fan Avatar de fastm3
    Date d'inscription
    août 2010
    Localisation
    Corbeil Essonnes (91)
    Messages
    1 302
    Downloads
    1
    Uploads
    1
    Comme suggéré par quintana, si c'est juste une url a fetcher, il peut etre plus simple d'utiliser curl.
    Code:
    exten => _X.,1,curl(http://192.168.1.100/test.php?Prise1=ON)
    Il faut que la lib curl soit installée et avec un petit configure, on valide que func_curl est selectionnée avant la recompil d'asterisk.
    Cheers !
    Fastm3.

  7. #7
    Membre Junior
    Date d'inscription
    août 2014
    Messages
    4
    Downloads
    0
    Uploads
    0
    Merci!
    mais…
    fastm3=> je ne sais pas si j'ai bien cURL, j'ai regardé dans les module mais sans succès,
    cette méthode m'irait bien je ne sais pas ou aller !!


    olppp=> La c'est pareil, a vrai dire je ne sais même pas ou se trouve la requête Http dans ton code.
    Pour rappel je suis cour RASPBX que je gère via FREEPBX.

    Je suis largué, pourtant j'ai cherché sur google avant de poster, ça m'énerve de rien comprendre.

    De plus je n'y connais rien ni en Python , Ni en PHP…

    c'est pas gagné...

  8. #8
    Asterisk Fan Avatar de fastm3
    Date d'inscription
    août 2010
    Localisation
    Corbeil Essonnes (91)
    Messages
    1 302
    Downloads
    1
    Uploads
    1
    Citation Envoyé par nykolium Voir le message
    Merci!
    mais…
    fastm3=> je ne sais pas si j'ai bien cURL, j'ai regardé dans les module mais sans succès,
    cette méthode m'irait bien je ne sais pas ou aller !!
    Test si function curl installée

    Sous asterisk cli ( lancer asterisk -r a la console )

    Code:
    core show function  CURL
    Tu dois avoir un resultat comme cela si la fonction a été correctement compilée dans ta version:

    Code:
    telisk*CLI> core show function  CURL
    
      -= Info about function 'CURL' =-
    
    [Synopsis]
    Retrieves the contents of a URL
    
    [Description]
      url       - URL to retrieve
      post-data - Optional data to send as a POST (GET is default action)
    
    
    [Syntax]
    CURL(url[,post-data])
    
    [Arguments]
    Not available
    
    [See Also]
    Not available
    telisk*CLI>


    Si la fonction est installée, tu peux juste pour commencer à tester , utilise le contexte from-internal-custom ( dans /etc/asterisk/extensions_custom.conf )

    Pour faire un test rapide, tu mets ce genre de bout de code dedans:
    Code:
    exten => 9000,1,answer()
    exten => 9000,n,Set(result=${CURL(http://localhost/domotique/domotique.php?num=${EXTEN})})
    exten => 9000,n,NoOp(Results: ${result})
    exten => 9000,n,GotoIf($["${result}" = "ON"]?ON)
    exten => 9000,n,GotoIf($["${result}" = "OFF"]?OFF)
    exten => 9000,n,Playback(domotique/erreurinconnue)
    exten => 9000,n,Hangup()
    exten => 9000,n(ON),Playback(domotique/operationON)
    exten => 9000,n,Hangup()
    exten => 9000,n(OFF),Playback(domotique/operationOFF)
    exten => 9000,n,Hangup()
    C'est le principe pour un exemple tres simple qui en l'etat ne marchera pas sans les fichiers audios , ni le script php. En gros , si tu composes le 9000, tu appelles ton script PHP, par simplification, en resultat , on fera juste un echo ON ou OFF en sortie. Le diaplan teste et renvoie un message de l'etat ou de la bonne execution.
    Ca n'est pas compliqué mais ca demande un minimum de petites competences. Un peu de php, savoir editer un fichier, connaitre un minimum le dialplan...
    Isole les pbs 1 par 1. Crée deja un script en php faisant ce que tu veux et retournant un statut simple a traiter pour le dialplan.

    Tu peux regarder ce qui se passe sur la console: asterisk -r pendant que tu fais le 9000
    Francois.

  9. #9
    Membre Junior
    Date d'inscription
    août 2014
    Messages
    4
    Downloads
    0
    Uploads
    0
    Merci pour l'info !
    Je vais essayer ça
    Pour le PHP hummm... comment dire... je ne maitrise pas.

    Pour être honnête j'ai passé au de 50heures a essayer de faire tourner un simple script pour piloter mon PC.
    J'ai essayé avec easy php ou camp server, meme avec le server actif (Pastille verte) mon PC n'a jamais voulu lancer mon .bat…
    l'appel se fait bien et la réponse ECHO correcte mais aucune action coté serveur…

    bref c'est du Vindoz Seven …Mais que de mauvais souvenir ce PHP…
    Au moins j'ai gardé les notions.

    - je vais voir si j'ai cURL, si oui je testerai mon script PHP depuis une autre machine pour voir.
    Merci pour tout , je part en vacance mais vous ne vous débarrasserez pas de moi comme ça !
    I'll be back..

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
  •