Recuperer données de l'invité de commande

Fermé
garlic - 14 mai 2009 à 13:38
 garlic - 20 mai 2009 à 09:15
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.
A voir également:

3 réponses

Mins Messages postés 43 Date d'inscription mardi 31 juillet 2001 Statut Membre Dernière intervention 28 mai 2009 9
14 mai 2009 à 13:42
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
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
Mins Messages postés 43 Date d'inscription mardi 31 juillet 2001 Statut Membre Dernière intervention 28 mai 2009 9
18 mai 2009 à 19:07
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
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
garlic > garlic
19 mai 2009 à 11:26
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
Mins Messages postés 43 Date d'inscription mardi 31 juillet 2001 Statut Membre Dernière intervention 28 mai 2009 9
19 mai 2009 à 15:48
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
c'est parfais tout marche comme je le voulais

Je te remercie grandement


encore une fois merci

a la prochaine ;-)
0