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.
A voir également:

3 réponses

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
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
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
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
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
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
garlic
 
c'est parfais tout marche comme je le voulais

Je te remercie grandement


encore une fois merci

a la prochaine ;-)
0