[AsteriskBrasil] Fazer um GoTo usando AMI

Marllon Asterisk marllon.asterisk em gmail.com
Quarta Maio 1 19:26:30 BRT 2013


Para ficar mais claro, e para ajudar outras pessoas que tambem estejam com
dificuldades com o Goip irei explicar o que ja fiz e o porque.

Em primeiro lugar devo informar que quase tudo que eu consegui fazer ate
agora se deve a exemplo que está no seguinte site:
https://github.com/tangaza/Tangaza/wiki/Connecting-a-GoIP-GSM-VoIP-gateway-to-an-Asterisk-AGI

Neste site ele dá exemplo de como configurar o GOIP, e como configurar o
Asterisk para se comunicar com o Goip. A partir das referencias deste site
eu ja consegui receber ligacoes pelo goip, fazer ligacoes pelo goip,
receber sms pelo goip e tambem consigo enviar* sms pelo goip atraves do
plano de discagem.

Conforme o site citado acima, pra enviar uma SMS pelo asterisk atraves do
Goip basta setar a variavel Message(body) contendo o numero do telefone +
quebra de linha (\n) + mensagem e depois chamar a aplicacao MessageSend
passando como parametro a tecnologia e o tronco.

Para fins de exemplo posso dizer que ficaria assim:

exten = 1234,1,Set(Message(body)=12345678\nminhamensagem)
exten = 1234,n,MessageSend(sip:gsm1)  ;onde gsm1 é o nome do tronco que eu
criei para o goip

Mas o que esta feito acima nao funciona, pois o Asterisk não consegue
interpretar o \n como quebra de linha. No exemplo do Github eles usam um
AGI em Perl para conseguir setar a variavel Message(body) de modo que haja
uma quebra de linha que seja corretamente interpretada pelo asterisk ao
chamar a aplicacao MessageSend. Como eu nao entendo nada de perl criei um
AGI em PHP apenas para setar variavel Message(body) contendo um numero de
telefone + quebra de linha + mensagem. Depois de feito isso ficou assim:

exten = 1234,1,Agi(sms.php)
exten = 1234,n,MessageSend(sip:gsm1)  ;onde gsm1 é o nome do tronco que eu
criei para o goip

Fazendo isto eu consigo enviar o SMS mas tem 3 grandes problemas:
1) Nao consigo setar o numero de telefone, ele fica estatico no meu AGI
2) Nao consigo setar a mensagem, ela fica estatica no meu AGI
3) Só consigo enviar essa mensagem se eu ligar pro ramal 1234

O que eu preciso fazer na verdade é conectar no Asterisk e faze-lo enviar
uma mensagem para um determinado numero, sem precisar chamar um ramal.

Creio que a maneira correta e mais facil seria o seguinte
1) Conectar no Asterisk por AMI
2) Setar a variavel Message(body)
3) Chamar a aplicacao MessageSend

Na teoria parece fácil, mas na pratica não dá certo. Nao consigo setar a
maldita variavel Message(body) atraves do AMI. Dá erro.

Nesta pagina mostra um pouco sobre o MessageSend atraves do AMI:
https://wiki.asterisk.org/wiki/display/AST/Asterisk+11+ManagerAction_MessageSend

Mas também não consegui fazer nada.

Considerando que pelo AMI eu consigo setar novas variaveis, pensei que se
tivesse como fazer um simples Goto atraves do AMI tudo estaria resolvido,
pois eu poderia usar o GoTo para seguir meu exten 1234, ler as variavies
que criei atraves do meu AGI e a mensagem seria enviada normalmente.

Sei lá, estou perdido. Escrevi um monte e nem sei se deu pra entender, só
espero que toda essa minha confusão dê algum resultado um dia...




Em 1 de maio de 2013 11:42, Nildo Furtado <nildo em infont.com.br> escreveu:

> Como ficaria o codigo de envio no extensions.conf ?
>
>
> Em 30 de abril de 2013 17:15, Marllon Asterisk <marllon.asterisk em gmail.com
> > escreveu:
>
> Eu faço o envio no plano de discagem (extension.conf)
>>
>>
>> Em 29 de abril de 2013 11:04, Nildo Furtado <nildo em infont.com.br>escreveu:
>>
>> Marllon, esse envio via goip é pelo CLI do asterisk ou via campo do linux.
>>>
>>> Pq a minha pergunta, pois se for via CLI esta quase correto (creio eu)
>>> se for via linux criaria um script de envio e nao seria necessário a
>>> conexao via socket para linux... em todo caso, pode me add no skype(
>>> infont.tecnologia)  ou conversaremos por email MP, assim q acharmos a
>>> solução colocaremos aqui no forum.
>>>
>>>
>>> Em 29 de abril de 2013 10:52, Marllon Asterisk <
>>> marllon.asterisk em gmail.com> escreveu:
>>>
>>>> Bom dia Nildo.
>>>>
>>>> Obrigado pela ajuda, já vai me ajudar bastante pois eu não sabia como
>>>> fazer a conexão AMI usando socket.
>>>>
>>>> O problema é que eu não estou usando placa, estou usando um Goip que é
>>>> mais ou menos como um ATA. Então eu não tenho no asterisk a aplicacao que
>>>> faz o envio direto do SMS como você tem na sua placa digivoice. Preciso
>>>> fazer através da aplicação MessageSend nativa do asterisk 11.
>>>>
>>>> Pra eu enviar o SMS pelo goip tenho que fazer basicamente os seguintes
>>>> 2 passos:
>>>> 1) Setar a variavel Message(body) para  $destino
>>>> \"$mensagem\"\r\n\r\n" (igual ao seu exemplo)
>>>> 2) Executar a aplicação MessageSend passando como parametro sip:gsm1 ,
>>>> onde gsm1 é meu tronco do goip. Fica assim: MessageSend(sip:gsm1). Por
>>>> padrão do asterisk ele vai enviar a mensagem que está na variável
>>>> Message(body).
>>>>
>>>> Tomando seu exemplo, acredito que basta eu substituir A por B:
>>>> A) fputs($socket, "Command: dgv send sms 1 $destino
>>>> \"$mensagem\"\r\n\r\n");
>>>> B) fputs($socket, "Command: MessageSend sip gsm1);
>>>>
>>>> Alguém sabe me dizer se a sintaxe que escrevi acima (B) está correta?
>>>>
>>>> Marllon
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Em 28 de abril de 2013 00:52, Nildo Furtado <nildo em infont.com.br>escreveu:
>>>>
>>>> Marllon, bom dia.
>>>>>
>>>>> Sem problemas pelo nilson kkkk
>>>>>
>>>>> segue abaixo via AMI funcionando aqui com uma VB0404, aguardo resposta
>>>>> do funcionamento.
>>>>>
>>>>> <?
>>>>> function retira_acentos( $texto )
>>>>> {
>>>>>   $array1 = array(   "á", "à ", "â", "ã", "ä", "é", "è", "ê",
>>>>> "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù",
>>>>> "û", "ü", "ç"
>>>>>                      , "Ã", "Ã", "Ã", "Ã", "Ã
>>>>> ", "Ã", "Ã", "Ã", "Ã", "Ã", "Ã", "Ã", "Ã", "Ã", "Ã", "Ã", "Ã" );
>>>>>   $array2 = array(   "a", "a", "a", "a", "a",", "Ã", "Ã", "Ã", "Ã", "Ã
>>>>> "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "u", "c"
>>>>>                      , "A", "A", "A", "A", "A", "E", "E", "E", "E",
>>>>> "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "C" );
>>>>>   return str_replace( $array1, $array2, $texto );
>>>>> }
>>>>>
>>>>>  $destino = $_POST['destino'];
>>>>>  $mensagem = retira_acentos($_POST['mensagem']);
>>>>>  $timeout = 30;
>>>>>
>>>>> //Acessando Asterisk vi AMI
>>>>>  $socket = fsockopen("172.0.0.5","5038", $errno, $errstr, $timeout);
>>>>>  fputs($socket, "Action: Login\r\n");
>>>>>  fputs($socket, "UserName: xxxxxxxx\r\n"); //Usuário do AMI
>>>>>  fputs($socket, "Secret:xxxxxxxxxx\r\n\r\n"); //Senha do AMI
>>>>>  Sleep(1);
>>>>>
>>>>>  $wrets=fgets($socket,128);
>>>>> //Enviando comandos via AMI para envio dO SMS
>>>>> fputs($socket, "Action: Command\r\n");
>>>>> fputs($socket, "Command: dgv send sms 1 $destino
>>>>> \"$mensagem\"\r\n\r\n");
>>>>>
>>>>> echo $socket;
>>>>> $wrets=fgets($socket,128);
>>>>>
>>>>>
>>>>>
>>>>> Sleep(1);
>>>>> echo "<pre>
>>>>> Destino.....:$destino
>>>>> Mensagem.....:$mensagem
>>>>> </pre>";
>>>>>  fclose($socket);
>>>>> Sleep(1);
>>>>> }
>>>>> ?>
>>>>>
>>>>>
>>>>>
>>>>> Em 27 de abril de 2013 11:27, Marllon Asterisk <
>>>>> marllon.asterisk em gmail.com> escreveu:
>>>>>
>>>>> Nildo, desculpe por ter te chamado de Nilso. Só vi que escrevi errado
>>>>>> depois de enviar.
>>>>>>
>>>>>>
>>>>>> Em 27 de abril de 2013 11:24, Marllon Asterisk <
>>>>>> marllon.asterisk em gmail.com> escreveu:
>>>>>>
>>>>>> Nilso, obrigado por responder.
>>>>>>>
>>>>>>> Estou configurando um Goip para fazer envio de mensagens. Eu já
>>>>>>> consigo fazer o envio da mensagem através de uma aplicação usando dialplan,
>>>>>>> se eu disco por exemplo para a extensão 1234 a minha aplicação feita no
>>>>>>> dialplan já envia o SMS. Esta parte já está funcionando.
>>>>>>>
>>>>>>> O que eu preciso agora é fazer minha aplicação PHP (meu site)
>>>>>>> conectar no asterisk via AMI, setar 2 variaveis (numero e mensagem) e então
>>>>>>> chamar esta extensão 1234 para disparar o SMS.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Em 26 de abril de 2013 15:57, Nildo Furtado <nildo em infont.com.br>escreveu:
>>>>>>>
>>>>>>> Marllon, boa tarde, voce poderia explicar direito o que vc precisa ?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Em 24 de abril de 2013 15:20, Marllon Asterisk <
>>>>>>>> marllon.asterisk em gmail.com> escreveu:
>>>>>>>>
>>>>>>>>> Olá pessoal.
>>>>>>>>>
>>>>>>>>> Alguém sabe como fazer um GoTo através de AMI?
>>>>>>>>>
>>>>>>>>> Tenho por exemplo a extensão abaixo:
>>>>>>>>> exten=> 1234,1,Noop(teste)
>>>>>>>>>
>>>>>>>>> Como faço para executar esta extensão através de uma conexão feita
>>>>>>>>> pelo AMI usando telnet?
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>>>>>>>>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>>>>>>>>> Intercomunicadores para acesso remoto via rede IP. Conheça em
>>>>>>>>> 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
>>>>>>>>> _______________________________________________
>>>>>>>>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e
>>>>>>>>> SS7.
>>>>>>>>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>>>>>>>>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>>>>>>>>> _______________________________________________
>>>>>>>>> Para remover seu email desta lista, basta enviar um email em
>>>>>>>>> branco para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> *Att.*
>>>>>>>> *
>>>>>>>> *
>>>>>>>> *Nildo Furtado*
>>>>>>>> *CCNA - 503734B*
>>>>>>>> *Tel: 7761-8557*
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>>>>>>>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>>>>>>>> Intercomunicadores para acesso remoto via rede IP. Conheça em
>>>>>>>> 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
>>>>>>>> _______________________________________________
>>>>>>>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e
>>>>>>>> SS7.
>>>>>>>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>>>>>>>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>>>>>>>> _______________________________________________
>>>>>>>> Para remover seu email desta lista, basta enviar um email em branco
>>>>>>>> para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>>>>>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>>>>>> Intercomunicadores para acesso remoto via rede IP. Conheça em
>>>>>> 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
>>>>>> _______________________________________________
>>>>>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
>>>>>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>>>>>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>>>>>> _______________________________________________
>>>>>> Para remover seu email desta lista, basta enviar um email em branco
>>>>>> para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Att.*
>>>>> *
>>>>> *
>>>>> *Nildo Furtado*
>>>>> *CCNA - 503734B*
>>>>> *Tel: 7761-8557*
>>>>>
>>>>> _______________________________________________
>>>>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>>>>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>>>>> Intercomunicadores para acesso remoto via rede IP. Conheça em
>>>>> 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
>>>>> _______________________________________________
>>>>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
>>>>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>>>>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>>>>> _______________________________________________
>>>>> Para remover seu email desta lista, basta enviar um email em branco
>>>>> para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>>>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>>>> Intercomunicadores para acesso remoto via rede IP. Conheça em
>>>> 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
>>>> _______________________________________________
>>>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
>>>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>>>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>>>> _______________________________________________
>>>> Para remover seu email desta lista, basta enviar um email em branco
>>>> para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>>
>>>
>>>
>>>
>>> --
>>> *Att.*
>>> *
>>> *
>>> *Nildo Furtado*
>>> *CCNA - 503734B*
>>> *Tel: 7761-8557*
>>>
>>> _______________________________________________
>>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>>> Intercomunicadores para acesso remoto via rede IP. Conheça em
>>> 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
>>> _______________________________________________
>>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
>>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>>> _______________________________________________
>>> Para remover seu email desta lista, basta enviar um email em branco para
>>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>
>>
>>
>> _______________________________________________
>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>> Intercomunicadores para acesso remoto via rede IP. Conheça em
>> 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
>> _______________________________________________
>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>> _______________________________________________
>> Para remover seu email desta lista, basta enviar um email em branco para
>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>
>
>
>
> --
> *Att.*
> *
> *
> *Nildo Furtado*
> *CCNA - 503734B*
> *Tel: 7761-8557*
>
> _______________________________________________
> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
> Intercomunicadores para acesso remoto via rede IP. Conheça em
> 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
> _______________________________________________
> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
> _______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20130501/6c99344d/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil