[AsteriskBrasil] Manager Asterisk

Alejandro Flores alejandrorflores em gmail.com
Segunda Fevereiro 14 16:01:03 BRST 2011


Wendell,

Acho que você está misturando códigos espalhados por diversos sites.
Por exemplo, esse código que você mostrou abaixo, é do site
voip-info.org, um exemplo de classe para conectar ao manager. Perceba
que ele não tem essa função sendCommand que você está chamando.
Procurei em outros exemplos pelos sites e não encontrei essa função.
Parecido com o que você mostrou ai, tem a função send_request da
biblioteca PHPAGI ( http://phpagi.sourceforge.net/ ).

Na classe que você postou, tem a função Query que você poderia utilizar assim:

$astman->Query("sip show peers\n");


Abraços,

2011/2/14 Wendell Silva <wendbandeira em gmail.com>:
> 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
>
>
> _______________________________________________
> 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
>



-- 

Alejandro Flores
http://www.triforsec.com.br/


Mais detalhes sobre a lista de discussão AsteriskBrasil