<font color='black' size='2' face='arial'>
<div>Legal saber que dá para enviar pelo socket.</div>


<div>&nbsp;</div>


<div>Desenvolvi uma API Java-Asterisk para executar comandos do asterisk e está funcionando.</div>


<div>&nbsp;</div>


<div>Qual é melhor enviar comandos por AGI ou pelo Socket?</div>


<div>&nbsp;</div>


<div>&nbsp;</div>


<div>(Esclarecendo minha pergunta do email anterior)</div>


<div>Se é possível enviar comandos pelo socket, pra que existe o manager.conf? ^^</div>


<div>&nbsp;</div>


<div>Att<br>
Bruno<br>
<br>
<br>
-----Original Message-----<br>
From: Eder Souza &lt;eder.souza@bsd.com.br&gt;<br>
To: asteriskbrasil@listas.asteriskbrasil.org<br>
Sent: Wed, Nov 18, 2009 9:29 am<br>
Subject: Re: [AsteriskBrasil] Executando Comandos Asterisk [Socket]<br>
<br>
</div>


<div id=AOLMsgPart_3_a3e1f441-94a1-4a60-915c-478e7e3d4350>

<div>Sua pergunta ficou confusa.</div>


<div>&nbsp;</div>


<div>Mas o Manager porta 5038 ela abre o socket para vc, uma vez lá dentro conectado vc pode executar qualquer comando disponivel pela CLI&gt; !!</div>


<div>&nbsp;</div>


<div>Olha só o que seu amigo fez mandou um socket para o ip do manager na porta 5038 e depois mandou Action: Login\r\nUsername: root\r\nSecret: senha\r\nActionID: 1\r\n\r\n</div>


<div>&nbsp;</div>


<div>Repare no \r\n no fim de cada parametro isso nada mais é do q o "Enter" por&nbsp;final ele da dois "Enters"&nbsp;\r\n\r\n e pronto vc esta logado no manager via socket nao teria como ser de outra maneira !!!</div>


<div>&nbsp;</div>


<div>uma vez conectado vc pode enviar comandos qualquer comando exemplos que eu tenho feito aqui olha !!</div>


<div>&nbsp;</div>


<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.socket.send('Action: Command\r\n')<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.socket.send('Command: sip show peer 668\r\n\r\n')<br>
</div>


<div>Exemplo feito em Pythom repare na vc envoca o Action: Command depois dele é só vc dar o comando q vc quiser dando um "Command:" !!!</div>


<div>&nbsp;</div>


<div>exemplo em Perl q também fiz aqui</div>


<div>&nbsp;</div>


<div><SPAN lang=PT-BR>

<div>$tn-&gt;print("Action: Command\n\n");</div>


<div>$tn-&gt;print("Command: sip show peer 668\r\n\r\n");</div>


<div>&nbsp;</div>


<div>&nbsp;</div>


<div>Tudo tem a mesma lógica em C, Delphi ou java !!</div>


<div>&nbsp;</div>


<div>Att,</div>


<div>&nbsp;</div>


<div>Eng Eder de Souza</div>
</SPAN></div>


<div>&nbsp;</div>


<div>&nbsp;</div>


<div><br>
&nbsp;</div>


<div class=gmail_quote>2009/11/18 <SPAN dir=ltr>&lt;<A href="mailto:brunoantognolli@email.com">brunoantognolli@email.com</A>&gt;</SPAN><br>

<BLOCKQUOTE style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class=gmail_quote><FONT color=black size=2 face=arial>

<div>Pessoal, bom dia!</div>


<div>&nbsp;</div>


<div>Há algum tempo, perguntei na lista como fazer o asterisk executar um comando pelo java.</div>


<div>Com a ajuda de vcs, principalmente do Éder consegui fazer o código e postei ele aqui no fórum.</div>


<div>&nbsp;</div>


<div>Porém surgiu uma outra pergunta/dúvida, seria possível eu executar comandos do asterisk através de Socket?</div>


<div>&nbsp;</div>


<div>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.</div>


<div>&nbsp;</div>


<div>Sería necessário conectar no Manager para executar comandos ou somente pelo socket consigo enviar comandos dentro do rasterisk? </div>


<div>&nbsp;</div>


<div>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) </div>


<div>&nbsp;</div>


<div>&nbsp;</div>


<div>&nbsp;</div>


<div>public class SendMessage<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void Enviar(string codigoArea, string celular, string mensagem)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Connect to the asterisk server. <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("192.168.xx.xx"), 22);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clientSocket.Connect(serverEndPoint);</div>


<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Login to the server; manager.conf needs to be setup with matching credentials. <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clientSocket.Send(Encoding.ASCII.GetBytes("Action: Login\r\nUsername: root\r\nSecret: senha\r\nActionID: 1\r\n\r\n"));</div>


<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Enviar mensagem<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //clientSocket.Send(Encoding.ASCII.GetBytes("dgv send sms 1496832521 'teste'"));</div>


<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int bytesRead = 0;</div>


<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] buffer = new byte[1024];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bytesRead = clientSocket.Receive(buffer);</div>


<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Console.WriteLine(bytesRead + " bytes from asterisk server."); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string response = Encoding.ASCII.GetString(buffer, 0, bytesRead);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(response);</div>


<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (Regex.Match(response, "Message: Authentication accepted", RegexOptions.IgnoreCase).Success)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Send a ping request the asterisk server will send back a pong response. <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clientSocket.Send(Encoding.ASCII.GetBytes("Action: Ping\r\nActionID: 2\r\n\r\n"));<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } while (bytesRead != 0);</div>


<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Connection to server lost.");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.ReadLine();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }</div>


<div>&nbsp;</div>


<div>Att,<br>
Bruno</div>
</FONT><br>
_______________________________________________<br>
&nbsp; &nbsp; &nbsp; &nbsp; <A href="http://www.voipmania.com.br/" target=_blank>http://www.voipmania.com.br</A><br>
Telefone IP sem fio Gigaset A580IP por 6 x R$59,90.<br>
&nbsp; &nbsp; &nbsp; &nbsp; Promoção por tempo limitado!<br>
_______________________________________________<br>
Lista de discussões AsteriskBrasil.org<br>
<A href="mailto:AsteriskBrasil@listas.asteriskbrasil.org">AsteriskBrasil@listas.asteriskbrasil.org</A><br>
<A href="http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil" target=_blank>http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</A><br>
</BLOCKQUOTE></div>
<br>
</div>
<!-- end of AOLMsgPart_3_a3e1f441-94a1-4a60-915c-478e7e3d4350 -->

<div style="BACKGROUND-COLOR: #fff; MARGIN: 0px; FONT-FAMILY: Tahoma, Verdana, Arial, Sans-Serif; COLOR: #000; FONT-SIZE: 12px" id=AOLMsgPart_4_a3e1f441-94a1-4a60-915c-478e7e3d4350><PRE style="FONT-SIZE: 9pt"><TT>_______________________________________________
         <A href="http://www.voipmania.com.br/" target=_blank>http://www.voipmania.com.br</A>
Telefone IP sem fio Gigaset A580IP por 6 x R$59,90. 
         Promoção por tempo limitado!
_______________________________________________
Lista de discussões AsteriskBrasil.org
<A href="mailto:AsteriskBrasil@listas.asteriskbrasil.org">AsteriskBrasil@listas.asteriskbrasil.org</A>
<A href="http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil" target=_blank>http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</A>
</TT></PRE></div>
<!-- end of AOLMsgPart_4_a3e1f441-94a1-4a60-915c-478e7e3d4350 --></font>