Recuperer données de l'invité de commande
garlic
-
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.
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
-
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.-
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 ?
-
-
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é ? -
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 :)