[AsteriskBrasil] Executando Comandos Asterisk [Socket]
Eder Souza
eder.souza em bsd.com.br
Quarta Novembro 18 09:29:41 BRST 2009
Sua pergunta ficou confusa.
Mas o Manager porta 5038 ela abre o socket para vc, uma vez lá dentro
conectado vc pode executar qualquer comando disponivel pela CLI> !!
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
Repare no \r\n no fim de cada parametro isso nada mais é do q o "Enter"
por final ele da dois "Enters" \r\n\r\n e pronto vc esta logado no manager
via socket nao teria como ser de outra maneira !!!
uma vez conectado vc pode enviar comandos qualquer comando exemplos que eu
tenho feito aqui olha !!
self.socket.send('Action: Command\r\n')
self.socket.send('Command: sip show peer 668\r\n\r\n')
Exemplo feito em Pythom repare na vc envoca o Action: Command depois dele é
só vc dar o comando q vc quiser dando um "Command:" !!!
exemplo em Perl q também fiz aqui
$tn->print("Action: Command\n\n");
$tn->print("Command: sip show peer 668\r\n\r\n");
Tudo tem a mesma lógica em C, Delphi ou java !!
Att,
Eng Eder de Souza
2009/11/18 <brunoantognolli em email.com>
> 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);
> 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"));
> // 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
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20091118/3f1860b8/attachment.htm
Mais detalhes sobre a lista de discussão AsteriskBrasil