<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Bom dia Bruno, creio que seja possÃvel sim... :)<br>
<br>
Marquei em negrito (e comentei rs) no código algumas coisas que
percebi... <br>
<br>
Espero que te ajude...<br>
<br>
Abs<br>
<br>
<a class="moz-txt-link-abbreviated" href="mailto:brunoantognolli@email.com">brunoantognolli@email.com</a> escreveu:
<blockquote
cite="mid:8CC3655A48DB5F3-95C-1C1E@web-mmc-m10.sysops.aol.com"
type="cite"><font color="black" face="arial" size="2">
<div>Pessoal, bom dia!</div>
<div>Â </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>Â </div>
<div>Porém surgiu uma outra pergunta/dúvida, seria possÃvel eu
executar comandos do asterisk através de Socket?</div>
<div>Â </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>Â </div>
<div>SerÃa necessário conectar no Manager para executar comandos ou
somente pelo socket consigo enviar comandos dentro do rasterisk? </div>
<div>Â </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>Â </div>
<div>Â </div>
<div>Â </div>
<div>public class SendMessage<br>
   {<br>
       public static void Enviar(string codigoArea, string celular,
string mensagem)<br>
       {<br>
           // Connect to the asterisk server. <br>
           Socket clientSocket = new
Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);<br>
</div>
</font></blockquote>
<br>
<blockquote
cite="mid:8CC3655A48DB5F3-95C-1C1E@web-mmc-m10.sysops.aol.com"
type="cite"><font color="black" face="arial" size="2">
<div><b>Â Â Â Â Â Â Â Â Â Â Â IPEndPoint serverEndPoint = new
IPEndPoint(IPAddress.Parse("192.168.xx.xx"), <font color="#ff0000">22</font>);Â
Nesta Linha. pelo que entendi, ele tenta conectar na porta 22 (SSH).
Não poderia ser na 5038??</b><br>
</div>
</font></blockquote>
<br>
<blockquote
cite="mid:8CC3655A48DB5F3-95C-1C1E@web-mmc-m10.sysops.aol.com"
type="cite"><font color="black" face="arial" size="2">
<div>Â Â Â Â Â Â Â Â Â Â Â clientSocket.Connect(serverEndPoint);</div>
<div>Â Â Â Â Â Â Â Â Â Â Â // Login to the server; manager.conf needs to be
setup with matching credentials. <br>
</div>
</font></blockquote>
<br>
<blockquote
cite="mid:8CC3655A48DB5F3-95C-1C1E@web-mmc-m10.sysops.aol.com"
type="cite"><font color="black" face="arial" size="2">
<div><b>Â Â Â Â Â Â Â Â Â Â Â
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.<br>
</b></div>
</font></blockquote>
<br>
<blockquote
cite="mid:8CC3655A48DB5F3-95C-1C1E@web-mmc-m10.sysops.aol.com"
type="cite"><font color="black" face="arial" size="2">
<div>Â Â Â Â Â Â Â Â Â Â Â // Enviar mensagem<br>
           //clientSocket.Send(Encoding.ASCII.GetBytes("dgv send sms
1496832521 'teste'"));</div>
<div>Â Â Â Â Â Â Â Â Â Â Â int bytesRead = 0;</div>
<div>Â Â Â Â Â Â Â Â Â Â Â do<br>
           {<br>
               byte[] buffer = new byte[1024];<br>
               bytesRead = clientSocket.Receive(buffer);</div>
<div>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â //Console.WriteLine(bytesRead + " bytes from
asterisk server."); <br>
               <br>
               string response = Encoding.ASCII.GetString(buffer, 0,
bytesRead);<br>
               Console.WriteLine(response);</div>
<div>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (Regex.Match(response, "Message:
Authentication accepted", RegexOptions.IgnoreCase).Success)<br>
               {<br>
                   // Send a ping request the asterisk server will
send back a pong response. <br>
                   clientSocket.Send(Encoding.ASCII.GetBytes("Action:
Ping\r\nActionID: 2\r\n\r\n"));<br>
               }<br>
           } while (bytesRead != 0);</div>
<div>Â Â Â Â Â Â Â Â Â Â Â Console.WriteLine("Connection to server lost.");<br>
           Console.ReadLine();<br>
       }<br>
   }</div>
<div>Â </div>
<div>Att,<br>
Bruno</div>
</font>
<pre wrap="">
<hr size="4" width="90%">
_______________________________________________
<a class="moz-txt-link-freetext" href="http://www.voipmania.com.br">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 class="moz-txt-link-abbreviated" href="mailto:AsteriskBrasil@listas.asteriskbrasil.org">AsteriskBrasil@listas.asteriskbrasil.org</a>
<a class="moz-txt-link-freetext" href="http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil">http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</a></pre>
</blockquote>
<br>
</body>
</html>
Rodrigo S. Vian<BR>Analista TI<BR>Porttal Tecnologia<BR>Soluções em TI & Telecom<BR>http://www.porttaltecnologia.com.br<BR>phone:55+19+3542-9667<BR><BR>|-- Antes de Imprimir, pense em sua responsabilidade com o Meio Ambiente --|<BR>