7940 & show channels

rasselbande

Neuer User
Mitglied seit
10 Feb 2006
Beiträge
47
Punkte für Reaktionen
0
Punkte
0
Hallo,
ich versuch grad mir auf einfache Art und Weise die activen Channel meins * am 7940 anzeigen zulassen.
Ich hab dafür über die ServicesTaste folgendes Script aufgerufen:

PHP:
<?php
header("Content-type: text/xml");
header("Connection: close");
header("Refresh: 300");

$shellcmd = exec('/usr/bin/asterisk -rx "core show channels"');

print "<CiscoIPPhoneText>";
print "<Text>$shellcmd</Text>\n";
print "</CiscoIPPhoneText>";
?>

nur leider zeigt mein Telefon mir mit
"Unable to connect to remote asterisk (does /var/run/asterisk.ctl exist?)"
das ich als Script ausführender User (www-data) ungenügende Rechte für den asterisk Aufruf habe.
Hat jemand ne Idee wie ich auf einfache Weise an mein Ziel kommen kann ?
 
Zuletzt bearbeitet:
du kannst mal versuchen, dem User www-data mittels sudo entsprechende Rechte für die Ausführung des Befehles zuzuweisen.

Achja und ändere doch mal bitte den Buchstabendreher

Code:
aster[COLOR="Red"]si[/COLOR]k

in Deinem obigen Code-Beispiel.
 
@rasselbande

du kannst es auch übers manager-interface probieren.
Es gab da auch mal am-web - das konnte das schon. Ich kann ja mal suchen ob ich es noch habe.
 
So nun hab ich eine andere Lösung, basierend auf dem ManagerInterface und dem Code von http://bestof.nerdvittles.com/applications/phonegenie/.

Dies einwenig zusammen geschrumpft sieht denn so aus:

PHP:
//Teilauszug aus dem Code von:
//Phone Genie for Asterisk (version 2.0), Copyright 2007, Ward Mundy. All //Rights Reserved. Licensed pursuant to GPL v.2: //http://www.gnu.org/licenses/gpl.html
//Original liegt auf : http://bestof.nerdvittles.com/applications/phonegenie/
<?php

header("Content-type: text/xml");
header("Connection: close");
header("Refresh: 15");




$username="admin" ; //Mangerpasswort vom *
$password="XXXX" ; // Passwort vom Manager


$command="show channels"; //Commando 
$action="cli";                    //      -"-
$family=$_REQUEST['family'];
if (empty($family)) :
  $family=$command ;
  endif ;


 global $username, $password ;
 $token = md5 (uniqid (rand()));
 $errno=0 ;
 $errstr=0 ;
 $fp = fsockopen ("localhost", 5038, &$errno, &$errstr, 20);
 if (!$fp) {
   echo "$errstr ($errno)<br>\n";
 } else {
   fputs ($fp, "Action: login\r\n");
   fputs ($fp, "Username: $username\r\n");
   fputs ($fp, "Secret: $password\r\n");
   fputs ($fp, "Events: off\r\n\r\n");
   sleep(1) ;
   fputs ($fp, "Action: COMMAND\r\n");
   fputs ($fp, "command: $family\r\n");
   fputs ($fp, "ActionID: $token\r\n\r\n");
   sleep(2) ;

   $contents = fread ($fp, 38000);
   while (strpos($contents,"--END COMMAND--")==0) :
    $contents .= fread ($fp, 38000);
   endwhile ;
fclose ($fp);

  $needle="ActionID: ".$token ;
  $l=strlen($needle)+12;
  $result=strpos($contents,$needle) ;
  $contents=substr($contents,$needle+$l);
  if ($result>0) :
         $contents = str_replace( "--END COMMAND--", " ", $contents );
        $contents="CLI Results".substr($contents,$result) ;
        $contents=" ".substr($contents,$result) ;
 endif ;
 }

print "<CiscoIPPhoneText>";
print "<Title>Asterisk show channels</Title>";
print "<Text>$contents</Text>";
print "</CiscoIPPhoneText>";


?>
 
Kostenlos!

Statistik des Forums

Themen
248,975
Beiträge
2,307,464
Mitglieder
378,748
Neuestes Mitglied
Lishheshuyg