Re: [AsteriskBrasil] Integração com Delphi

2012-08-15 Por tôpico Hudson Cardoso

se fizer, tambem vou querer, meu delphi anda meio enferrujado


Hudson 
048 8413 7000
Para quem nao cre, nenhuma prova converte,Para aquele que cre, nenhuma prova 
precisa.

Date: Tue, 14 Aug 2012 14:32:14 -0300
From: rickba...@gmail.com
To: asteriskbrasil@listas.asteriskbrasil.org
Subject: Re: [AsteriskBrasil] Integração com Delphi

Vou tentar transformar isso em delphi...Em java a questão ficaria 
diferente...mas se puder me enviar...manda para o meu email
Ricardo mendesrickba...@gmail.com


Em 14 de agosto de 2012 14:25, Ronaldo Sacco cont...@ronaldosacco.com.br 
escreveu:

De acordo com a tabela ascii está correto o 13 (nova linha) e o 10 (nova 
linha). Mas agora não sei te dizer se teu código em Delphi está OK.. 
Tenta substituir o #13 e #10 por '\r' e '\n'.

Um exemplo simples de reload em PHP, ficaria:


?php

$socket = fsockopen(localhost,5038, $errno, $errstr, 100);
fputs($socket, Action: Login\r\n);
fputs($socket, ActionID: 1\r\n);

fputs($socket, UserName: USUARIO\r\n);

fputs($socket, Secret: SENHA\r\n\r\n);
fputs($socket, Action: Command\r\n);
fputs($socket, Command: reload\r\n\r\n);

?

Tenta utilizar este comando acima, transforma na linguagem Delphi.. O script 
apenas dá um reload no asterisk, não recebendo nenhum retorno. Se funcionar, 
você vai saber que pelo menos a comunicação com o asterisk está OK.



Já se eu preciso receber algum retorno, eu utilizo o seguinte comando:
$get=fgets($socket,128);

Tenho um exemplo em Java também. Se quiser me avisa..

[]'s

Em 14 de agosto de 2012 14:10, Ricardo Mendes rickba...@gmail.com escreveu:


Ronaldo...mas nesse trecho aqui  tmpComando := trim(edtComando.Text) + 
ifthen((groupTerminador.ItemIndex = 0), Acao, Execucao); 



eu determino se o terminado vai ser o de Ação ou Execução que correspondem a 
Acao = #13 + #10;Execucao = #13 + #10 + #13 + #10;
Será que é errado isso?



Ricardo Mendes
Em 14 de agosto de 2012 14:05, Ronaldo Sacco cont...@ronaldosacco.com.br 
escreveu:



Ricardo, talvez este script PHP te ajude:

$socket = fsockopen(localhost,5038, $errno, $errstr, 100);



fputs($socket, Action: Login\r\n);
fputs($socket, ActionID: 1\r\n);

fputs($socket, UserName: $user\r\n);
fputs($socket, Secret: $pswd\r\n\r\n);
[...]


O segredo deste script está no \r\n (retorno de carro e quebra de linha). Sem 
isso não da retorno. Talvez seja o teu problema.






Em 14 de agosto de 2012 13:58, Ricardo Mendes rickba...@gmail.com escreveu:




Boa Tarde Galera...Ja perguntei aqui na lista mas vamos tentar 
novamente...Seguindo os conselhos...ja habilei o mananger do asterisk.Tentei 
utilizar socket com delphi para ver se da resultado, abaixo segue os retornos 
que tive...





primeiro eu tentei me conectar...-- Tentativa de Conexão ás 14/08/2012 
12:38:51 Asterisk Call Manager/1.1
depois tentei enviar os comandos abaixo separadamente.




-- Comando enviado: Action: Login ás 14/08/2012 12:41:21 Fim do retorno 
ás 14/08/2012 12:41:36
-- Comando enviado: UserName: teste ás 14/08/2012 12:42:56




 Fim do retorno ás 14/08/2012 12:43:16
-- Comando enviado: Secret: abc123 ás 14/08/2012 12:43:50 Fim do retorno 
ás 14/08/2012 12:44:43
-- Comando enviado: Action: Command ás 14/08/2012 12:45:02




 Fim do retorno ás 14/08/2012 12:45:55
-- Comando enviado: Command: sip show peers ás 14/08/2012 12:46:17 Fim do 
retorno ás 14/08/2012 12:47:07





A principio nenhum comando me trouxe retorno...e ja não sei mais o que mexer 
para tentar fazer essa integração com delphi funcionar.
Vou postar trecho do codigo que fiz.






procedure Tfrm_Principal.btnEnviarComandoClick(Sender: TObject);var  
tmpComando: string;begin  if (trim(edtComando.Text)  '') then




  begintmpComando := trim(edtComando.Text) + 
ifthen((groupTerminador.ItemIndex = 0), Acao, Execucao);
ListaComando.Lines.Add('Comando enviado: ' + trim(edtComando.Text) + ' ás ' + 
FormatDateTime('DD/MM/ HH:MM:SS', now));




EnviaComando(tmpComando);  end;
end;
procedure Tfrm_Principal.EnviaComando(pComando: string);var  tmpRetorno: string;




begin
  ConectaSocket.SendString(pComando);
  repeattmpRetorno := ConectaSocket.RecvPacket(StrToIntDef(edtTimeOut.text, 
2000));memoRetorno.Lines.Add(trim(tmpRetorno));




  until tmpRetorno = '';
  memoRetorno.Lines.Add('Fim do retorno ás ' + FormatDateTime('DD/MM/ 
HH:MM:SS', now));  memoRetorno.Lines.Add(StringOfChar('-', 50));





  edtComando.Clear;  groupTerminador.ItemIndex := 0;end;

Se alguem puder me ajudar a tentar fazer um simples exemplo dessa conexão eu 
agradeço.





Saudações.
Ricardo Mendes


___

KHOMP Inovação: External Board Series

Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e 
FreeSWITCH.

Tenha a External Series Experience na sua aplicação. Visite www.khomp.com

___

DIGIVOICE  Fabricante de Placas de Voz e Channel Bank

20 anos de experiência com E1(R2/ISDN), FXS, FXO e

Re: [AsteriskBrasil] Integração com Delphi

2012-08-15 Por tôpico Ricardo Mendes
Assim que conseguir alguma integração inicial eu mando o projeto.

Ricardo Mendes

Em 15 de agosto de 2012 13:53, Hudson Cardoso
hudsoncard...@hotmail.comescreveu:


 se fizer, tambem vou querer, meu delphi anda meio enferrujado


 Hudson
 048 8413 7000

 Para quem nao cre, nenhuma prova converte,
 Para aquele que cre, nenhuma prova precisa.


 --
 Date: Tue, 14 Aug 2012 14:32:14 -0300
 From: rickba...@gmail.com
 To: asteriskbrasil@listas.asteriskbrasil.org
 Subject: Re: [AsteriskBrasil] Integração com Delphi


 Vou tentar transformar isso em delphi...
 Em java a questão ficaria diferente...mas se puder me enviar...manda para
 o meu email

 Ricardo Mendes
 rickba...@gmail.com

 Em 14 de agosto de 2012 14:25, Ronaldo Sacco 
 cont...@ronaldosacco.com.brescreveu:

 De acordo com a tabela ascii está correto o 13 (nova linha) e o 10 (nova
 linha). Mas agora não sei te dizer se teu código em Delphi está OK..
 Tenta substituir o #13 e #10 por '\r' e '\n'.

 Um exemplo simples de reload em PHP, ficaria:
 ?php


 $socket = fsockopen(localhost,5038, $errno, $errstr, 100);
 fputs($socket, Action: Login\r\n);
 fputs($socket, ActionID: 1\r\n);
 fputs($socket, UserName: USUARIO\r\n);
 fputs($socket, Secret: SENHA\r\n\r\n);
 fputs($socket, Action: Command\r\n);
 fputs($socket, Command: reload\r\n\r\n);

 ?

 Tenta utilizar este comando acima, transforma na linguagem Delphi.. O
 script apenas dá um reload no asterisk, não recebendo nenhum retorno. Se
 funcionar, você vai saber que pelo menos a comunicação com o asterisk está
 OK.

 Já se eu preciso receber algum retorno, eu utilizo o seguinte comando:
 $get=fgets($socket,128);

 Tenho um exemplo em Java também. Se quiser me avisa..

 []'s

 Em 14 de agosto de 2012 14:10, Ricardo Mendes rickba...@gmail.comescreveu:

 Ronaldo...mas nesse trecho aqui
  tmpComando := trim(edtComando.Text) + ifthen((groupTerminador.ItemIndex
 = 0), Acao, Execucao);

 eu determino se o terminado vai ser o de Ação ou Execução que correspondem
 a
 Acao = #13 + #10;
 Execucao = #13 + #10 + #13 + #10;

 Será que é errado isso?

 Ricardo Mendes

 Em 14 de agosto de 2012 14:05, Ronaldo Sacco 
 cont...@ronaldosacco.com.brescreveu:

 Ricardo, talvez este script PHP te ajude:

 $socket = fsockopen(localhost,5038, $errno, $errstr, 100);
 fputs($socket, Action: Login\r\n);
 fputs($socket, ActionID: 1\r\n);
 fputs($socket, UserName: $user\r\n);
 fputs($socket, Secret: $pswd\r\n\r\n);
 [...]


 O segredo deste script está no \r\n (retorno de carro e quebra de
 linha). Sem isso não da retorno. Talvez seja o teu problema.


 Em 14 de agosto de 2012 13:58, Ricardo Mendes rickba...@gmail.comescreveu:

  Boa Tarde Galera...
 Ja perguntei aqui na lista mas vamos tentar novamente...
 Seguindo os conselhos...ja habilei o mananger do asterisk.
 Tentei utilizar socket com delphi para ver se da resultado, abaixo segue
 os retornos que tive...

 primeiro eu tentei me conectar...
 -- Tentativa de Conexão ás 14/08/2012 12:38:51
  Asterisk Call Manager/1.1

 depois tentei enviar os comandos abaixo separadamente.
 -- Comando enviado: Action: Login ás 14/08/2012 12:41:21
  Fim do retorno ás 14/08/2012 12:41:36

 -- Comando enviado: UserName: teste ás 14/08/2012 12:42:56
  Fim do retorno ás 14/08/2012 12:43:16

 -- Comando enviado: Secret: abc123 ás 14/08/2012 12:43:50
  Fim do retorno ás 14/08/2012 12:44:43

 -- Comando enviado: Action: Command ás 14/08/2012 12:45:02
  Fim do retorno ás 14/08/2012 12:45:55

 -- Comando enviado: Command: sip show peers ás 14/08/2012 12:46:17
  Fim do retorno ás 14/08/2012 12:47:07

 A principio nenhum comando me trouxe retorno...e ja não sei mais o que
 mexer para tentar fazer essa integração com delphi funcionar.

 Vou postar trecho do codigo que fiz.


 procedure Tfrm_Principal.btnEnviarComandoClick(Sender: TObject);
 var
   tmpComando: string;
 begin
   if (trim(edtComando.Text)  '') then
   begin
 tmpComando := trim(edtComando.Text) +
 ifthen((groupTerminador.ItemIndex = 0), Acao, Execucao);
 ListaComando.Lines.Add('Comando enviado: ' + trim(edtComando.Text) + '
 ás ' + FormatDateTime('DD/MM/ HH:MM:SS', now));
 EnviaComando(tmpComando);
   end;

 end;

 procedure Tfrm_Principal.EnviaComando(pComando: string);
 var
   tmpRetorno: string;
 begin

   ConectaSocket.SendString(pComando);

   repeat
 tmpRetorno := ConectaSocket.RecvPacket(StrToIntDef(edtTimeOut.text,
 2000));
 memoRetorno.Lines.Add(trim(tmpRetorno));
   until tmpRetorno = '';

   memoRetorno.Lines.Add('Fim do retorno ás ' + FormatDateTime('DD/MM/
 HH:MM:SS', now));
   memoRetorno.Lines.Add(StringOfChar('-', 50));

   edtComando.Clear;
   groupTerminador.ItemIndex := 0;
 end;


 Se alguem puder me ajudar a tentar fazer um simples exemplo dessa conexão
 eu agradeço.

 Saudações.

 Ricardo Mendes


 ___
 KHOMP Inovação: External Board Series
 Módulos de 1/2 rack e 1U para todas as interfaces e soluções

Re: [AsteriskBrasil] Integração com Delphi

2012-08-14 Por tôpico Ronaldo Sacco
Ricardo, talvez este script PHP te ajude:

$socket = fsockopen(localhost,5038, $errno, $errstr, 100);
fputs($socket, Action: Login\r\n);
fputs($socket, ActionID: 1\r\n);
fputs($socket, UserName: $user\r\n);
fputs($socket, Secret: $pswd\r\n\r\n);
[...]


O segredo deste script está no \r\n (retorno de carro e quebra de linha).
Sem isso não da retorno. Talvez seja o teu problema.


Em 14 de agosto de 2012 13:58, Ricardo Mendes rickba...@gmail.comescreveu:

 Boa Tarde Galera...
 Ja perguntei aqui na lista mas vamos tentar novamente...
 Seguindo os conselhos...ja habilei o mananger do asterisk.
 Tentei utilizar socket com delphi para ver se da resultado, abaixo segue
 os retornos que tive...

 primeiro eu tentei me conectar...
 -- Tentativa de Conexão ás 14/08/2012 12:38:51
  Asterisk Call Manager/1.1

 depois tentei enviar os comandos abaixo separadamente.
 -- Comando enviado: Action: Login ás 14/08/2012 12:41:21
  Fim do retorno ás 14/08/2012 12:41:36

 -- Comando enviado: UserName: teste ás 14/08/2012 12:42:56
  Fim do retorno ás 14/08/2012 12:43:16

 -- Comando enviado: Secret: abc123 ás 14/08/2012 12:43:50
  Fim do retorno ás 14/08/2012 12:44:43

 -- Comando enviado: Action: Command ás 14/08/2012 12:45:02
  Fim do retorno ás 14/08/2012 12:45:55

 -- Comando enviado: Command: sip show peers ás 14/08/2012 12:46:17
  Fim do retorno ás 14/08/2012 12:47:07

 A principio nenhum comando me trouxe retorno...e ja não sei mais o que
 mexer para tentar fazer essa integração com delphi funcionar.

 Vou postar trecho do codigo que fiz.


 procedure Tfrm_Principal.btnEnviarComandoClick(Sender: TObject);
 var
   tmpComando: string;
 begin
   if (trim(edtComando.Text)  '') then
   begin
 tmpComando := trim(edtComando.Text) +
 ifthen((groupTerminador.ItemIndex = 0), Acao, Execucao);
 ListaComando.Lines.Add('Comando enviado: ' + trim(edtComando.Text) + '
 ás ' + FormatDateTime('DD/MM/ HH:MM:SS', now));
 EnviaComando(tmpComando);
   end;

 end;

 procedure Tfrm_Principal.EnviaComando(pComando: string);
 var
   tmpRetorno: string;
 begin

   ConectaSocket.SendString(pComando);

   repeat
 tmpRetorno := ConectaSocket.RecvPacket(StrToIntDef(edtTimeOut.text,
 2000));
 memoRetorno.Lines.Add(trim(tmpRetorno));
   until tmpRetorno = '';

   memoRetorno.Lines.Add('Fim do retorno ás ' + FormatDateTime('DD/MM/
 HH:MM:SS', now));
   memoRetorno.Lines.Add(StringOfChar('-', 50));

   edtComando.Clear;
   groupTerminador.ItemIndex := 0;
 end;


 Se alguem puder me ajudar a tentar fazer um simples exemplo dessa conexão
 eu agradeço.

 Saudações.

 Ricardo Mendes


 ___
 KHOMP Inovação: External Board Series
 Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
 FreeSWITCH.
 Tenha a External Series Experience na sua aplicação. Visite www.khomp.com
 ___
 DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
 Centro Treinamento - Curso de PABX IP -  Asterisk  - Site
 www.digivoice.com.br
 
 YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
 mercado.
 email: yeal...@commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
 __
 Para remover seu email desta lista, basta enviar um email em branco para
 asteriskbrasil-unsubscr...@listas.asteriskbrasil.org




-- 

Atenciosamente,

Ronaldo Sacco
(54) 9174-8840
Bacharel em Ciência da Computação
___
KHOMP Inovação: External Board Series
Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e 
FreeSWITCH.
Tenha a External Series Experience na sua aplicação. Visite www.khomp.com
___
DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
Centro Treinamento - Curso de PABX IP -  Asterisk  - Site  www.digivoice.com.br

YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do mercado.
email: yeal...@commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
__
Para remover seu email desta lista, basta enviar um email em branco para 
asteriskbrasil-unsubscr...@listas.asteriskbrasil.org

Re: [AsteriskBrasil] Integração com Delphi

2012-08-14 Por tôpico Ricardo Mendes
Ronaldo...mas nesse trecho aqui
 tmpComando := trim(edtComando.Text) + ifthen((groupTerminador.ItemIndex =
0), Acao, Execucao);

eu determino se o terminado vai ser o de Ação ou Execução que correspondem
a
Acao = #13 + #10;
Execucao = #13 + #10 + #13 + #10;

Será que é errado isso?

Ricardo Mendes

Em 14 de agosto de 2012 14:05, Ronaldo Sacco
cont...@ronaldosacco.com.brescreveu:

 Ricardo, talvez este script PHP te ajude:

 $socket = fsockopen(localhost,5038, $errno, $errstr, 100);
 fputs($socket, Action: Login\r\n);
 fputs($socket, ActionID: 1\r\n);
 fputs($socket, UserName: $user\r\n);
 fputs($socket, Secret: $pswd\r\n\r\n);
 [...]


 O segredo deste script está no \r\n (retorno de carro e quebra de
 linha). Sem isso não da retorno. Talvez seja o teu problema.


 Em 14 de agosto de 2012 13:58, Ricardo Mendes rickba...@gmail.comescreveu:

 Boa Tarde Galera...
 Ja perguntei aqui na lista mas vamos tentar novamente...
 Seguindo os conselhos...ja habilei o mananger do asterisk.
 Tentei utilizar socket com delphi para ver se da resultado, abaixo segue
 os retornos que tive...

 primeiro eu tentei me conectar...
 -- Tentativa de Conexão ás 14/08/2012 12:38:51
  Asterisk Call Manager/1.1

 depois tentei enviar os comandos abaixo separadamente.
 -- Comando enviado: Action: Login ás 14/08/2012 12:41:21
  Fim do retorno ás 14/08/2012 12:41:36

 -- Comando enviado: UserName: teste ás 14/08/2012 12:42:56
  Fim do retorno ás 14/08/2012 12:43:16

 -- Comando enviado: Secret: abc123 ás 14/08/2012 12:43:50
  Fim do retorno ás 14/08/2012 12:44:43

 -- Comando enviado: Action: Command ás 14/08/2012 12:45:02
  Fim do retorno ás 14/08/2012 12:45:55

 -- Comando enviado: Command: sip show peers ás 14/08/2012 12:46:17
  Fim do retorno ás 14/08/2012 12:47:07

 A principio nenhum comando me trouxe retorno...e ja não sei mais o que
 mexer para tentar fazer essa integração com delphi funcionar.

 Vou postar trecho do codigo que fiz.


 procedure Tfrm_Principal.btnEnviarComandoClick(Sender: TObject);
 var
   tmpComando: string;
 begin
   if (trim(edtComando.Text)  '') then
   begin
 tmpComando := trim(edtComando.Text) +
 ifthen((groupTerminador.ItemIndex = 0), Acao, Execucao);
 ListaComando.Lines.Add('Comando enviado: ' + trim(edtComando.Text) +
 ' ás ' + FormatDateTime('DD/MM/ HH:MM:SS', now));
 EnviaComando(tmpComando);
   end;

 end;

 procedure Tfrm_Principal.EnviaComando(pComando: string);
 var
   tmpRetorno: string;
 begin

   ConectaSocket.SendString(pComando);

   repeat
 tmpRetorno := ConectaSocket.RecvPacket(StrToIntDef(edtTimeOut.text,
 2000));
 memoRetorno.Lines.Add(trim(tmpRetorno));
   until tmpRetorno = '';

   memoRetorno.Lines.Add('Fim do retorno ás ' + FormatDateTime('DD/MM/
 HH:MM:SS', now));
   memoRetorno.Lines.Add(StringOfChar('-', 50));

   edtComando.Clear;
   groupTerminador.ItemIndex := 0;
 end;


 Se alguem puder me ajudar a tentar fazer um simples exemplo dessa conexão
 eu agradeço.

 Saudações.

 Ricardo Mendes


 ___
 KHOMP Inovação: External Board Series
 Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
 FreeSWITCH.
 Tenha a External Series Experience na sua aplicação. Visite www.khomp.com
 ___
 DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
 Centro Treinamento - Curso de PABX IP -  Asterisk  - Site
 www.digivoice.com.br
 
 YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
 mercado.
 email: yeal...@commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
 __
 Para remover seu email desta lista, basta enviar um email em branco para
 asteriskbrasil-unsubscr...@listas.asteriskbrasil.org




 --

 Atenciosamente,

 Ronaldo Sacco
 (54) 9174-8840
 Bacharel em Ciência da Computação



 ___
 KHOMP Inovação: External Board Series
 Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
 FreeSWITCH.
 Tenha a External Series Experience na sua aplicação. Visite www.khomp.com
 ___
 DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
 Centro Treinamento - Curso de PABX IP -  Asterisk  - Site
 www.digivoice.com.br
 
 YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
 mercado.
 email: yeal...@commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
 __
 Para remover seu email desta lista, basta enviar um email em branco para
 asteriskbrasil-unsubscr...@listas.asteriskbrasil.org

___
KHOMP Inovação: External Board Series
Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e 
FreeSWITCH.
Tenha a External Series Experience na sua 

Re: [AsteriskBrasil] Integração com Delphi

2012-08-14 Por tôpico Ronaldo Sacco
De acordo com a tabela ascii está correto o 13 (nova linha) e o 10 (nova
linha). Mas agora não sei te dizer se teu código em Delphi está OK..
Tenta substituir o #13 e #10 por '\r' e '\n'.

Um exemplo simples de reload em PHP, ficaria:
?php

$socket = fsockopen(localhost,5038, $errno, $errstr, 100);
fputs($socket, Action: Login\r\n);
fputs($socket, ActionID: 1\r\n);
fputs($socket, UserName: USUARIO\r\n);
fputs($socket, Secret: SENHA\r\n\r\n);
fputs($socket, Action: Command\r\n);
fputs($socket, Command: reload\r\n\r\n);

?

Tenta utilizar este comando acima, transforma na linguagem Delphi.. O
script apenas dá um reload no asterisk, não recebendo nenhum retorno. Se
funcionar, você vai saber que pelo menos a comunicação com o asterisk está
OK.

Já se eu preciso receber algum retorno, eu utilizo o seguinte comando:
$get=fgets($socket,128);

Tenho um exemplo em Java também. Se quiser me avisa..

[]'s

Em 14 de agosto de 2012 14:10, Ricardo Mendes rickba...@gmail.comescreveu:

 Ronaldo...mas nesse trecho aqui
  tmpComando := trim(edtComando.Text) + ifthen((groupTerminador.ItemIndex
 = 0), Acao, Execucao);

 eu determino se o terminado vai ser o de Ação ou Execução que correspondem
 a
 Acao = #13 + #10;
 Execucao = #13 + #10 + #13 + #10;

 Será que é errado isso?

 Ricardo Mendes

 Em 14 de agosto de 2012 14:05, Ronaldo Sacco 
 cont...@ronaldosacco.com.brescreveu:

 Ricardo, talvez este script PHP te ajude:

 $socket = fsockopen(localhost,5038, $errno, $errstr, 100);
 fputs($socket, Action: Login\r\n);
 fputs($socket, ActionID: 1\r\n);
 fputs($socket, UserName: $user\r\n);
 fputs($socket, Secret: $pswd\r\n\r\n);
 [...]


 O segredo deste script está no \r\n (retorno de carro e quebra de
 linha). Sem isso não da retorno. Talvez seja o teu problema.


 Em 14 de agosto de 2012 13:58, Ricardo Mendes rickba...@gmail.comescreveu:

  Boa Tarde Galera...
 Ja perguntei aqui na lista mas vamos tentar novamente...
 Seguindo os conselhos...ja habilei o mananger do asterisk.
 Tentei utilizar socket com delphi para ver se da resultado, abaixo segue
 os retornos que tive...

 primeiro eu tentei me conectar...
 -- Tentativa de Conexão ás 14/08/2012 12:38:51
  Asterisk Call Manager/1.1

 depois tentei enviar os comandos abaixo separadamente.
 -- Comando enviado: Action: Login ás 14/08/2012 12:41:21
  Fim do retorno ás 14/08/2012 12:41:36

 -- Comando enviado: UserName: teste ás 14/08/2012 12:42:56
  Fim do retorno ás 14/08/2012 12:43:16

 -- Comando enviado: Secret: abc123 ás 14/08/2012 12:43:50
  Fim do retorno ás 14/08/2012 12:44:43

 -- Comando enviado: Action: Command ás 14/08/2012 12:45:02
  Fim do retorno ás 14/08/2012 12:45:55

 -- Comando enviado: Command: sip show peers ás 14/08/2012 12:46:17
  Fim do retorno ás 14/08/2012 12:47:07

 A principio nenhum comando me trouxe retorno...e ja não sei mais o que
 mexer para tentar fazer essa integração com delphi funcionar.

 Vou postar trecho do codigo que fiz.


 procedure Tfrm_Principal.btnEnviarComandoClick(Sender: TObject);
 var
   tmpComando: string;
 begin
   if (trim(edtComando.Text)  '') then
   begin
 tmpComando := trim(edtComando.Text) +
 ifthen((groupTerminador.ItemIndex = 0), Acao, Execucao);
 ListaComando.Lines.Add('Comando enviado: ' + trim(edtComando.Text) +
 ' ás ' + FormatDateTime('DD/MM/ HH:MM:SS', now));
 EnviaComando(tmpComando);
   end;

 end;

 procedure Tfrm_Principal.EnviaComando(pComando: string);
 var
   tmpRetorno: string;
 begin

   ConectaSocket.SendString(pComando);

   repeat
 tmpRetorno := ConectaSocket.RecvPacket(StrToIntDef(edtTimeOut.text,
 2000));
 memoRetorno.Lines.Add(trim(tmpRetorno));
   until tmpRetorno = '';

   memoRetorno.Lines.Add('Fim do retorno ás ' +
 FormatDateTime('DD/MM/ HH:MM:SS', now));
   memoRetorno.Lines.Add(StringOfChar('-', 50));

   edtComando.Clear;
   groupTerminador.ItemIndex := 0;
 end;


 Se alguem puder me ajudar a tentar fazer um simples exemplo dessa
 conexão eu agradeço.

 Saudações.

 Ricardo Mendes


 ___
 KHOMP Inovação: External Board Series
 Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
 FreeSWITCH.
 Tenha a External Series Experience na sua aplicação. Visite
 www.khomp.com
 ___
 DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
 Centro Treinamento - Curso de PABX IP -  Asterisk  - Site
 www.digivoice.com.br
 
 YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
 mercado.
 email: yeal...@commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
 __
 Para remover seu email desta lista, basta enviar um email em branco para
 asteriskbrasil-unsubscr...@listas.asteriskbrasil.org




 --

 Atenciosamente,

 Ronaldo Sacco
 (54) 9174-8840
 Bacharel em Ciência da Computação



 ___
 

Re: [AsteriskBrasil] Integração com Delphi

2012-08-14 Por tôpico Ricardo Mendes
Vou tentar transformar isso em delphi...
Em java a questão ficaria diferente...mas se puder me enviar...manda para o
meu email

Ricardo Mendes
rickba...@gmail.com

Em 14 de agosto de 2012 14:25, Ronaldo Sacco
cont...@ronaldosacco.com.brescreveu:

 De acordo com a tabela ascii está correto o 13 (nova linha) e o 10 (nova
 linha). Mas agora não sei te dizer se teu código em Delphi está OK..
 Tenta substituir o #13 e #10 por '\r' e '\n'.

 Um exemplo simples de reload em PHP, ficaria:
 ?php


 $socket = fsockopen(localhost,5038, $errno, $errstr, 100);
 fputs($socket, Action: Login\r\n);
 fputs($socket, ActionID: 1\r\n);
 fputs($socket, UserName: USUARIO\r\n);
 fputs($socket, Secret: SENHA\r\n\r\n);
 fputs($socket, Action: Command\r\n);
 fputs($socket, Command: reload\r\n\r\n);

 ?

 Tenta utilizar este comando acima, transforma na linguagem Delphi.. O
 script apenas dá um reload no asterisk, não recebendo nenhum retorno. Se
 funcionar, você vai saber que pelo menos a comunicação com o asterisk está
 OK.

 Já se eu preciso receber algum retorno, eu utilizo o seguinte comando:
 $get=fgets($socket,128);

 Tenho um exemplo em Java também. Se quiser me avisa..

 []'s

 Em 14 de agosto de 2012 14:10, Ricardo Mendes rickba...@gmail.comescreveu:

 Ronaldo...mas nesse trecho aqui
  tmpComando := trim(edtComando.Text) + ifthen((groupTerminador.ItemIndex
 = 0), Acao, Execucao);

 eu determino se o terminado vai ser o de Ação ou Execução que
 correspondem a
 Acao = #13 + #10;
 Execucao = #13 + #10 + #13 + #10;

 Será que é errado isso?

 Ricardo Mendes

 Em 14 de agosto de 2012 14:05, Ronaldo Sacco cont...@ronaldosacco.com.br
  escreveu:

 Ricardo, talvez este script PHP te ajude:

 $socket = fsockopen(localhost,5038, $errno, $errstr, 100);
 fputs($socket, Action: Login\r\n);
 fputs($socket, ActionID: 1\r\n);
 fputs($socket, UserName: $user\r\n);
 fputs($socket, Secret: $pswd\r\n\r\n);
 [...]


 O segredo deste script está no \r\n (retorno de carro e quebra de
 linha). Sem isso não da retorno. Talvez seja o teu problema.


 Em 14 de agosto de 2012 13:58, Ricardo Mendes rickba...@gmail.comescreveu:

  Boa Tarde Galera...
 Ja perguntei aqui na lista mas vamos tentar novamente...
 Seguindo os conselhos...ja habilei o mananger do asterisk.
 Tentei utilizar socket com delphi para ver se da resultado, abaixo
 segue os retornos que tive...

 primeiro eu tentei me conectar...
 -- Tentativa de Conexão ás 14/08/2012 12:38:51
  Asterisk Call Manager/1.1

 depois tentei enviar os comandos abaixo separadamente.
 -- Comando enviado: Action: Login ás 14/08/2012 12:41:21
  Fim do retorno ás 14/08/2012 12:41:36

 -- Comando enviado: UserName: teste ás 14/08/2012 12:42:56
  Fim do retorno ás 14/08/2012 12:43:16

 -- Comando enviado: Secret: abc123 ás 14/08/2012 12:43:50
  Fim do retorno ás 14/08/2012 12:44:43

 -- Comando enviado: Action: Command ás 14/08/2012 12:45:02
  Fim do retorno ás 14/08/2012 12:45:55

 -- Comando enviado: Command: sip show peers ás 14/08/2012 12:46:17
  Fim do retorno ás 14/08/2012 12:47:07

 A principio nenhum comando me trouxe retorno...e ja não sei mais o que
 mexer para tentar fazer essa integração com delphi funcionar.

 Vou postar trecho do codigo que fiz.


 procedure Tfrm_Principal.btnEnviarComandoClick(Sender: TObject);
 var
   tmpComando: string;
 begin
   if (trim(edtComando.Text)  '') then
   begin
 tmpComando := trim(edtComando.Text) +
 ifthen((groupTerminador.ItemIndex = 0), Acao, Execucao);
 ListaComando.Lines.Add('Comando enviado: ' + trim(edtComando.Text)
 + ' ás ' + FormatDateTime('DD/MM/ HH:MM:SS', now));
 EnviaComando(tmpComando);
   end;

 end;

 procedure Tfrm_Principal.EnviaComando(pComando: string);
 var
   tmpRetorno: string;
 begin

   ConectaSocket.SendString(pComando);

   repeat
 tmpRetorno := ConectaSocket.RecvPacket(StrToIntDef(edtTimeOut.text,
 2000));
 memoRetorno.Lines.Add(trim(tmpRetorno));
   until tmpRetorno = '';

   memoRetorno.Lines.Add('Fim do retorno ás ' +
 FormatDateTime('DD/MM/ HH:MM:SS', now));
   memoRetorno.Lines.Add(StringOfChar('-', 50));

   edtComando.Clear;
   groupTerminador.ItemIndex := 0;
 end;


 Se alguem puder me ajudar a tentar fazer um simples exemplo dessa
 conexão eu agradeço.

 Saudações.

 Ricardo Mendes


 ___
 KHOMP Inovação: External Board Series
 Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
 FreeSWITCH.
 Tenha a External Series Experience na sua aplicação. Visite
 www.khomp.com
 ___
 DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
 Centro Treinamento - Curso de PABX IP -  Asterisk  - Site
 www.digivoice.com.br
 
 YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
 mercado.
 email: yeal...@commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
 __