[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