[AsteriskBrasil] Executando Comandos Asterisk [Socket]

Rodrigo Vian listas em porttaltecnologia.com.br
Quarta Novembro 18 09:17:39 BRST 2009


Bom dia Bruno, creio que seja possível sim... :)

Marquei em negrito (e comentei rs) no código algumas coisas que percebi...

Espero que te ajude...

Abs

brunoantognolli em email.com escreveu:
> Pessoal, bom dia!
>  
> Há algum tempo, perguntei na lista como fazer o asterisk executar um 
> comando pelo java.
> Com a ajuda de vcs, principalmente do Éder consegui fazer o código e 
> postei ele aqui no fórum.
>  
> Porém surgiu uma outra pergunta/dúvida, seria possível eu executar 
> comandos do asterisk através de Socket?
>  
> Eu sei que através de Socket consigo conectar no servidor e executar 
> comandos, a dúvida é se eu consigo conectar no servidor, acessar o 
> "rasterisk" e enviar o comando necessário.
>  
> Sería necessário conectar no Manager para executar comandos ou somente 
> pelo socket consigo enviar comandos dentro do rasterisk?
>  
> Abaixo tenho uma classe que um amigo desenvolveu em .NET que está 
> tentando fazer isso, (se não for possível, já me avisem, por favor)
>  
>  
>  
> public class SendMessage
>     {
>         public static void Enviar(string codigoArea, string celular, 
> string mensagem)
>         {
>             // Connect to the asterisk server.
>             Socket clientSocket = new 
> Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

> *            IPEndPoint serverEndPoint = new 
> IPEndPoint(IPAddress.Parse("192.168.xx.xx"), 22);  Nesta Linha. pelo 
> que entendi, ele tenta conectar na porta 22 (SSH). Não poderia ser na 
> 5038??*

>             clientSocket.Connect(serverEndPoint);
>             // Login to the server; manager.conf needs to be setup 
> with matching credentials.

> *            clientSocket.Send(Encoding.ASCII.GetBytes("Action: 
> Login\r\nUsername: root\r\nSecret: senha\r\nActionID: 1\r\n\r\n")); Se 
> for por ssh, esta linha de autenticação está errada, pois este tipo 
> seria para conexão via ami na porta 5038.
> *

>             // Enviar mensagem
>             //clientSocket.Send(Encoding.ASCII.GetBytes("dgv send sms 
> 1496832521 'teste'"));
>             int bytesRead = 0;
>             do
>             {
>                 byte[] buffer = new byte[1024];
>                 bytesRead = clientSocket.Receive(buffer);
>                 //Console.WriteLine(bytesRead + " bytes from asterisk 
> server.");
>                
>                 string response = Encoding.ASCII.GetString(buffer, 0, 
> bytesRead);
>                 Console.WriteLine(response);
>                 if (Regex.Match(response, "Message: Authentication 
> accepted", RegexOptions.IgnoreCase).Success)
>                 {
>                     // Send a ping request the asterisk server will 
> send back a pong response.
>                     clientSocket.Send(Encoding.ASCII.GetBytes("Action: 
> Ping\r\nActionID: 2\r\n\r\n"));
>                 }
>             } while (bytesRead != 0);
>             Console.WriteLine("Connection to server lost.");
>             Console.ReadLine();
>         }
>     }
>  
> Att,
> Bruno
> ------------------------------------------------------------------------
>
> _______________________________________________
>          http://www.voipmania.com.br
> Telefone IP sem fio Gigaset A580IP por 6 x R$59,90. 
>          Promoção por tempo limitado!
> _______________________________________________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil



Rodrigo S. Vian
Analista TI
Porttal Tecnologia
Soluções em TI & Telecom
http://www.porttaltecnologia.com.br
phone:55+19+3542-9667

|-- Antes de Imprimir, pense em sua responsabilidade com o Meio Ambiente --|
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20091118/9d8e9a37/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil