[AsteriskBrasil] Manager Asterisk
Wendell Silva
wendbandeira em gmail.com
Segunda Fevereiro 14 15:22:48 BRST 2011
Estou usando AstMan.php e não gera erro nenhum nos logs
<?php
class AstMan {
var $socket;
var $error;
function AstMan()
{
$this->socket = FALSE;
$this->error = "";
}
function Login($host="localhost", $username="admin", $password="amp111"){
$this->socket = @fsockopen("127.0.0.1","5038", $errno, $errstr, 1);
if (!$this->socket) {
$this->error = "Could not connect - $errstr ($errno)";
return FALSE;
}else{
stream_set_timeout($this->socket, 1);
$wrets = $this->Query("Action: Login\r\nUserName: $username\r\nSecret:
$password\r\nEvents: off\r\n\r\n");
if (strpos($wrets, "Message: Authentication accepted") != FALSE){
return true;
}else{
$this->error = "Could not login - Authentication failed";
fclose($this->socket);
$this->socket = FALSE;
return FALSE;
}
}
$wrets .= fread($this->socket, 8192);
}
fclose($this->socket);
$this->socket = "FALSE";
}
return;
}
function Query($query){
$wrets = "";
if ($this->socket === FALSE)
return FALSE;
fputs($this->socket, $query);
do
{
$line = fgets($this->socket, 4096);
$wrets .= $line;
$info = stream_get_meta_data($this->socket);
}while ($line != "\r\n" && $infotimed_out>'timed_out' == false );
return $wrets;
}
function GetError(){
return $this->error;
}
function GetDB($family, $key){
$value = "";
$wrets = $this->Query("Action: Command\r\nCommand: database get $family
$key\r\n\r\n");
if ($wrets){
$value_start = strpos($wrets, "Value: ") + 7;
$value_stop = strpos($wrets, "\n", $value_start);
if ($value_start > 8){
$value = substr($wrets, $value_start, $value_stop - $value_start);
}
}
return $value;
}
function PutDB($family, $key, $value){
$wrets = $this->Query("Action: Command\r\nCommand: database put $family
$key $value\r\n\r\n");
if (strpos($wrets, "Updated database successfully") != FALSE){
return TRUE;
}
$this->error = "Could not updated database";
return FALSE;
}
function DelDB($family, $key){
$wrets = $this->Query("Action: Command\r\nCommand: database del $family
$key\r\n\r\n");
if (strpos($wrets, "Database entry removed.") != FALSE){
return TRUE;
}
$this->error = "Database entry does not exist";
return FALSE;
}
function GetFamilyDB($family){
$wrets = $this->Query("Action: Command\r\nCommand: database show
$family\r\n\r\n");
if ($wrets){
$value_start = strpos($wrets, "Response: Follows\r\n") + 19;
$value_stop = strpos($wrets, "--END COMMAND--\r\n", $value_start);
if ($value_start > 18){
$wrets = substr($wrets, $value_start, $value_stop - $value_start);
}
$lines = explode("\n", $wrets);
foreach($lines as $line){
if (strlen($line) > 4){
$value_start = strpos($line, ": ") + 2;
$value_stop = strpos($line, " ", $value_start);
$key = trim(substr($line, strlen($family) + 2, strpos($line, " ") -
strlen($family) + 2));
// $value$key = trim(substr($line, $value_start));
}
}
return $value;
}
return FALSE;
}
}
?>
Em 11 de fevereiro de 2011 18:38, Alejandro Flores <
alejandrorflores em gmail.com> escreveu:
> Wendell,
>
> Qual a biblioteca PHP e versão que você está utilizando?
> A página fica em branco? verifique os logs do apache:
> /var/log/httpd/error_log e procure por erros no script php.
>
> > Estou tentando fazer um painel amador, o codigo abaixo conecta no
> asterisk
> > mais não me retorna nada na tela do browser
> >
> > meu manager
> > [panel]
> > secret = senha
> > deny=0.0.0.0/0.0.0.0
> > permit=127.0.0.1/255.255.255.0
> > read = system,call,log,verbose,command,agent,user
> > write = system,call,log,verbose,command,agent,user
> >
> >
> > <?php
> > include "AstMan.php";
> > $ast = new AstMan();
> > $ast->Login( "localhost", "panel", "senha" );
> > echo "<pre>";
> > echo $ast->sendCommand("SIPshowpeer", array("Peer" =>
> "8822"));
> > echo "</pre>";
> >
> > ?>
>
> --
> Abraço!
> Alejandro Flores
> http://www.triforsec.com.br/
> _______________________________________________
> KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk.
> - Hardware com alta disponibilidade de recursos e qualidade KHOMP
> - Suporte técnico local qualificado e gratuito
> Conheça a linha completa de produtos KHOMP em www.khomp.com.br
> _______________________________________________
> Headsets Plantronics com o melhor preço do Brasil.
> Acesse agora www.voipmania.com.br
> VOIPMANIA STORE
> ________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
> ______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>
--
Wendell Silva Bandeira
Analista de TI
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20110214/3d53d337/attachment.htm
Mais detalhes sobre a lista de discussão AsteriskBrasil