PDA

Voir la version complète : Manager commande Status sur php



mgone
21/07/2011, 22h18
Bonjour
j’utilise Asterisk 1.4 sur un serveur distant Centos 5.5 X64 (Core2Quad Q9300 8DDR2)
je n'utilise aucune interface graphique mais j'ai développé la mienne avec php et j'arrive a contrôler totalement Asterisk depuis cette interface avec (php exec() , manager ...) sauf une seule fonction que j'arrive pas a trouver une solution, c'est de superviser et visualiser les appels en cours en temps réel, j’utilise pour ça cette fonction :


function astconnect($action, $command, $host, $port, $user, $pass){
$socket = fsockopen($host, $port);
fputs($socket, "Action: Login\r\n");
fputs($socket, "UserName: $user\r\n");
fputs($socket, "Secret: $pass\r\n\r\n");
fputs($socket, "Action: $action\r\n");
if (isset($command))
fputs($socket, "Command: $command\r\n\r\n");
fputs($socket, "Action: Logoff\r\n\r\n");
while (!feof($socket))
$wrets .= fread($socket, 8192);
fclose($socket);
return $wrets;
}
$resultat = astconnect('Status', '', $host, $port, $user, $pass);
.
.
.
....... ect


puis avec quelques autre fonctions en php j'arrive a afficher les appels entrant et sortant bien organisé, jusque la tout va bien c'est le résultat que je veut, sauf que pour visualiser en temps réel ça j'exécute cette page chaque 3 ou 4 seconde en l'appelant avec ajax JavaScript donc chaque 3 secondes j'ai dans le CLI ça :


== Parsing '/etc/asterisk/manager.conf': Found
== Manager 'adminmanager' logged on from 127.0.0.1
== Manager 'adminmanager' logged off from 127.0.0.1

jusque l'a aussi tout est normal mais j'ai remarqué que la connexion et déconnexion excessive sur le manager touche la qualité des appels et on a des coupures surtout lorsqu'on est 3 ou 4 connecté sur la page de supervision

je ne suis pas sure mais esque la dégradation de la qualité d'appel vient de ça ou non surtout que mon serveur est puissant mais juste il ya quelques sites hébergés en parallèle. je pense a faire un script .sh qui tourne en continue se connecte au manager chaque seconde et enregistre les donnée sue une base Mysql puis même lorsqu'on es plusieurs a ouvrir le page de supervision le script en ajax demande les données de la base et pas du manager, c'est la seule solution que j'ai trouvé mnt que je ne suis pas sure quelle va résoudre le problème de la dégradation de la qualité d'appel, esque vous avez une solution pour ça ou vous connaissez une autre méthode pour superviser le appels en temps réel? Merci