[AsteriskBrasil] Executando Comandos Asterisk [Socket

brunoantognolli em email.com brunoantognolli em email.com
Quarta Novembro 18 09:28:53 BRST 2009


Ok, obrigado pelas correções.

Mas como ficaria o manager.conf? Ele existe e "normalmente" percisa ser configurado, mas através do socket seria msma coisa  se ele não existisse, se sim, e o quesito segurança, ficaria "quebradro" ?

Att
Bruno


-----Original Message-----
From: Rodrigo Vian <listas em porttaltecnologia.com.br>
To: asteriskbrasil em listas.asteriskbrasil.org
Sent: Wed, Nov 18, 2009 9:17 am
Subject: Re: [AsteriskBrasil] Executando Comandos Asterisk [Socket]


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
elefone IP sem fio Gigaset A580IP por 6 x R$59,90. 
        Promoção por tempo limitado!
______________________________________________
ista de discussões AsteriskBrasil.org
steriskBrasil em listas.asteriskbrasil.org
ttp://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil


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

|-- Antes de Imprimir, pense em sua responsabilidade com o Meio Ambiente --|


_______________________________________________
        http://www.voipmania.com.br
elefone IP sem fio Gigaset A580IP por 6 x R$59,90. 
        Promoção por tempo limitado!
______________________________________________
ista de discussões AsteriskBrasil.org
steriskBrasil em listas.asteriskbrasil.org
ttp://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20091118/4b955abd/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil