Recuperer données de l'invité de commande

garlic -  
 garlic -
Bonjour à tous,

je ne sais pas si je suis dans la bonne partie pour mon problème, désolé si c'est le cas.
Voici mon problème :

Je me connecte via telnet au manager d'Asterisk. Jusque la tout va bien.
J'arrive aussi à exécuter des commandes via php pour le manager.
Ce que je n'arrive pas à faire, c'est récupérer ce que le Manager d'Asterisk affiche dans la console.

Est ce que quelqu'un pourrait m'éclaircir de ces lumieres.

Merci d'avance.
Configuration: Windows XP
Firefox 3.0.8

3 réponses

  1. Mins Messages postés 45 Statut Membre 9
     
    J'imagine que tu utilises donc exec.

    La page de manuel (https://www.php.net/manual/fr/function.exec.php dit ceci :

    string exec ( string $command [, array &$output [, int &$return_var ]] )

    Si l'argument output est présent, alors ce tableau sera rempli par les lignes retournées par la commande. Les espaces de début et de fin de chaîne, comme \n, ne seront pas inclus dans ce tableau. Il faut noter que si ce tableau contient des éléments, exec() ajoutera les nouvelles lignes à la fin du tableau. Si vous ne voulez pas que les nouveaux éléments soient concaténés, utilisez la fonction unset() avec ce tableau avant de le passer à exec().

    Si ça peut aider. Sinon laisse un morceau de code, sans lequel ça va être compliqué de t'aider.
    0
    1. garlic
       
      tout d'abord merci pour la rapidité de ta réponse

      je me connecte au manager d'Asterisk via les sockets

      Voici un bout de mon code, c'est comme cela que je me connecte au manager et jusque la, aucun probleme:
         $socket = fsockopen("192.168.101.192","5038", $errno, $errstr);
          fputs($socket, "Action: Login\r\n");
          fputs($socket, "Username: name\r\n");
          fputs($socket, "Secret: passwd\r\n\r\n");
      


      ensuite je veux voir tous les utilisateurs connectés à Asterisk :
      	action: Command
      	Command: sip show users
      


      et c'est la où je bloque, j'aimerai pouvoir récupérer ce que retourne ce code pour ensuite pouvoir traiter les données qu'il me renvoit.

      est ce plus clair maintenant ?
      0
  2. Mins Messages postés 45 Statut Membre 9
     
    Ah euh...

    Là par contre, j'y connais rien en socket, mais alors là, rien du tout.

    Par contre le manuel m'indique ceci :

    while (!feof($fp)) {
        echo fgets($fp, 128);
    }


    As tu déjà essayé ?
    0
    1. garlic
       
      je vais essayer cela tout de suite


      je te remercie de ton aide

      je posterai un message pour indiquer le résultat que j'obtient


      Merci
      0
      1. garlic > garlic
         
        C'est bien ce que je voulais
        Merci


        Maintenant j'ai un autre petit soucis : j'aimerais enregistrer chaque ligne dans un tableau et récupérer la dernière ligne pour pouvoir faire mes traitement dessus.


        Pourrais tu m'indiquer comment m'y prendre ??
        0
  3. Mins Messages postés 45 Statut Membre 9
     
    Re.

    Pour sauver dans un tableau :

    while (!feof($fp)) {
        $tab[]=fgets($fp, 128);
    }


    puis pour récupérer la dernière ligne

    $nbre = count($tab);
    $ligne = $tab [$nbre - 1];


    En théorie $ligne devrait contenir ta dernière ligne retournée.

    Je dis ça au vol, donc c'est possible que ça déconne, mais dis moi quoi. :)

    Bonne prog :)
    0
    1. garlic
       
      c'est parfais tout marche comme je le voulais

      Je te remercie grandement


      encore une fois merci

      a la prochaine ;-)
      0