[AsteriskBrasil] Mail to SMS

Asterisk Addict Guy asteriskaddict em gmail.com
Quinta Setembro 3 11:05:43 BRT 2009


Kim,

show de bola.... já recebi o mail com a informação certinha.

Muito obrigado pela ajuda.

Agora, preciso do processo inverso que seria o seguinte:

Eu tenho no servidor o postfix. Para enviar mails uso o Gmail via SMTP
integrado com o postfix.

O que queria era enviar para uma conta do gmail algo deste tipo:

meumail em gmail.com
Subject: SMS 91xxxxxxx
Message: Blah, blah, blah.....


Ter o script que faz o pooling na conta do Gmail, faz o parse do mail
recebido, e envia o sms para o numero que veio no subject e o texto é o
message.


Alguma luz sobre como fazer isto?

Abraço


Kim Delevati wrote:
> Mas dai no caso  voce nao precisaria da primeira parte, a do agivar
> ali... essa e utilzada para pegar todas as variaveis passadas por
> default pelo Asterisk para o AGI (context, callerid, extension, etc.),
> em teoria como voce nao esta utilizando elas, nao precisaria.
>
>
> O erro no seu script eh que falta o $ antes do argv[1] e argv[2]
>
> $from = "mail em domain.com" <mailto:mail em domain.com>;
> $to ="mail em domain.com " <mailto:mail em domain.com>;
> $subject="SMS from " . $argv[1];
> $headers = "From:".$from;
> $message ="Mensagem recebida: " . $argv[2];
>
>
> Acho que esqueci isso ontem.
>
>
>
> 2009/9/3 Asterisk Addict Guy <asteriskaddict em gmail.com
> <mailto:asteriskaddict em gmail.com>>
>
>     Pois é, eu estou usando o agi debug. Mas tem alguma coisa que
>     ainda não consegui entender. Pelo que eu vi, quando ocorre algum
>     erro, o AGI parece não executar, ou pelo menos não executa na
>     totalidade.
>
>     É a primeira vez que estou fazendo alguma coisa com o AGI. Conheço
>     um pouco de PHP tb.
>
>     Pesquisei bastante para poder fazer isto (Google) e o "melhor"
>     resultado que tenho até agora é qu econsigo enviar o mail com
>     sucesso. Mas não consigo passar o SMS para dentro da rotina AGI e
>     mandar por mail.
>
>     Na console tenho este resultado:
>
>     Verbosity is at least 3
>         -- Executing [sms em from-gsm01:1] Verbose("chan_mobile",
>     "Incoming SMS from +55519xxxxxx Teste do sos
>     ") in new stack
>     Incoming SMS from +55519xxxxxx Teste do sos
>
>         -- Executing [sms em from-gsm01:2] AGI("chan_mobile",
>     "sendmail.php|+55519xxxxxx|Teste do sos
>     ") in new stack
>         -- Launched AGI Script /var/lib/asterisk/agi-bin/sendmail.php
>     AGI Tx >> agi_request: sendmail.php
>     AGI Tx >> agi_channel: chan_mobile
>     AGI Tx >> agi_language: pt
>     AGI Tx >> agi_type: Sebi
>     AGI Tx >> agi_uniqueid: 1251976221.44
>     AGI Tx >> agi_callerid: unknown
>     AGI Tx >> agi_calleridname: unknown
>     AGI Tx >> agi_callingpres: 0
>     AGI Tx >> agi_callingani2: 0
>     AGI Tx >> agi_callington: 0
>     AGI Tx >> agi_callingtns: 0
>     AGI Tx >> agi_dnid: unknown
>     AGI Tx >> agi_rdnis: unknown
>     AGI Tx >> agi_context: from-gsm01
>     AGI Tx >> agi_extension: sms
>     AGI Tx >> agi_priority: 2
>     AGI Tx >> agi_enhanced: 0.0
>     AGI Tx >> agi_accountcode:
>     AGI Tx >> *CLI>
>         -- AGI Script sendmail.php completed, returning 0
>         -- Executing [sms em from-gsm01:3] Hangup("chan_mobile", "") in
>     new stack
>       == Spawn extension (from-gsm01, sms, 3) exited non-zero on
>     'chan_mobile'
>
>     No meu dialplan tenho isto:
>
>     exten => sms,1,Verbose(Incoming SMS from ${SMSSRC} ${SMSTXT})
>     exten => sms,n,AGI(sendmail.php,${SMSSRC},${SMSTXT})
>     exten => sms,n,Hangup
>
>     No meu sendmail.php :
>
>
>     #!/usr/bin/php -q
>     <?php
>
>     // Get AGI vars from *
>     $agivars = array();
>
>     while (!feof(STDIN)) {
>
>     $agivar = trim(fgets(STDIN));
>
>     if ($agivar === '') {
>
>     break;
>
>     }
>
>     $agivar = explode(':', $agivar);
>
>     $agivars[$agivar[0]] = trim($agivar[1]);
>
>     }
>
>     extract($agivars);
>
>     // Variable Declarations
>     $agi_uniqueid;
>     $agi_callerid;
>     $agi_calleridname;
>     $agi_extension;
>     $agi_uniqueid;
>     $UNIQUEID = $agi_uniqueid;
>     $from = "mail em domain.com" <mailto:mail em domain.com>;
>     $to ="mail em domain.com " <mailto:mail em domain.com>;
>     $subject="SMS from " ;
>     $headers = "From: $from";
>     $message ="Mensagem recebida: ";
>
>     mail($to,$subject,$message,$headers);
>
>     ?>
>
>     Esta versão em cima, faz o envio do mail com sucesso.
>
>     Tentei fazer uma alteração usando o que disseste dos argumentos.
>
>
>     #!/usr/bin/php -q
>     <?php
>
>     // Get AGI vars from *
>     $agivars = array();
>
>     while (!feof(STDIN)) {
>
>     $agivar = trim(fgets(STDIN));
>
>     if ($agivar === '') {
>
>     break;
>
>     }
>
>     $agivar = explode(':', $agivar);
>
>     $agivars[$agivar[0]] = trim($agivar[1]);
>
>     }
>
>     extract($agivars);
>
>     // Variable Declarations
>     $agi_uniqueid;
>     $agi_callerid;
>     $agi_calleridname;
>     $agi_extension;
>     $agi_uniqueid;
>     $UNIQUEID = $agi_uniqueid;
>     $from = "mail em domain.com" <mailto:mail em domain.com>;
>     $to ="mail em domain.com " <mailto:mail em domain.com>;
>     $subject="SMS from " . argv[1];
>     $headers = "From: $from";
>     $message ="Mensagem recebida: " . argv[2];
>
>     mail($to,$subject,$message,$headers);
>
>     ?>
>
>     Se faço isto, ele nem manda o mail.
>
>     Valeu pela ajuda.
>
>     Kim Delevati wrote:
>>     Bom, agi é mais minha área.
>>
>>     Não entendi ali, quando você chama a função debug, você passa 1
>>     como paramêtro, depois seta em 3?
>>     Você está startando o Asterisk com quanto de verbose?
>>     Como você está passando os parametros SMSSRC e SMSTXT para o Agi,
>>     não precisa do get variable. Ficam em argv[1] e argv[2]
>>
>>     $smssrc=argv[1];
>>     $smstxt=argv[2];
>>
>>     Ah, uma dica, quando for rodar algum script no agi, coloque o
>>     comando agi debug no console antes.
>>
>>     2009/9/2 Asterisk Addict Guy <asteriskaddict em gmail.com
>>     <mailto:asteriskaddict em gmail.com>>
>>
>>         Estou tentando montar algo com AGI + PHP.
>>
>>         no meu extensions tenho isto:
>>
>>
>>         exten => sms,1,Verbose(Incoming SMS from ${SMSSRC} ${SMSTXT})
>>         exten => sms,n,AGI(sendmail2.agi|${SMSSRC}|${SMSTXT})
>>         exten => sms,n,Hangup
>>
>>         Depois no meu AGI PHP:
>>
>>         #!/usr/bin/php -q
>>         <?php
>>         function debug($string, $level=3) {
>>         global $AGI;
>>         $AGI->verbose($string, $level);
>>         }
>>         //
>>         //
>>         require_once "phpagi.php";
>>         $cidnum = "";    // Caller ID Number for this call
>>         $cidname = "";   // Caller ID Name for this call
>>         $AGI = new AGI();
>>         $smssrc=GET VARIABLE SMSSRC;
>>         $smstxt=GET VARIABLE SMSTXT;
>>         $message="Here I'm" . $smssrc;
>>         debug($message, 1);
>>
>>         ?>
>>
>>         Estou tentando fazer isto somente para testar, mas não chega
>>         a executar a linha de debug.
>>
>>
>>
>>
>>
>>         Kim Delevati wrote:
>>>         Seria ainda mais simples por um site, não?
>>>
>>>         Daí poderia ser por AMI ou um criando arquivos .call.
>>>
>>>         2009/9/2 Asterisk Addict Guy <asteriskaddict em gmail.com
>>>         <mailto:asteriskaddict em gmail.com>>
>>>
>>>             Kim,
>>>
>>>             Realmente o ideal é por mail. Do ponto de vista do
>>>             usuário, este é um conceito muito simples para
>>>             "disparar" o SMS.
>>>
>>>             Kim Delevati wrote:
>>>>             Hmm... tem que ser por email? Provavelmente tem jeitos
>>>>             mais fáceis de fazer o Asterisk mandar essa mensagem
>>>>             remotamente.
>>>>
>>>>             2009/9/1 Asterisk Addict Guy <asteriskaddict em gmail.com
>>>>             <mailto:asteriskaddict em gmail.com>>
>>>>
>>>>                 Pessoal,
>>>>
>>>>                 Estou tentando implementar uma funcionalidade que
>>>>                 seria, enviar um mail para uma conta tipo
>>>>                 sms9XXX em gmail.com <mailto:sms9XXX em gmail.com>, no
>>>>                 servidor do Asterisk ter algo que faça um pooling
>>>>                 de tempos em tempos, tendo algum novo mail, ele
>>>>                 pega e envia via SMS a partir do Asterisk usando o
>>>>                 chan_mobile.
>>>>
>>>>                 Eu já tenho o chan_mobile funcionando para enviar
>>>>                 SMS, conheço alguma coisa de PHP mas não sou
>>>>                 especialista no resto.
>>>>
>>>>                 Alguém já pensou ou tem isto implementado?
>>>>
>>>>                 Também o contrário, se eu receber um SMS para o
>>>>                 número do celular que tenho no chan_mobile, fazer o
>>>>                 parse e enviar por mail.
>>>>
>>>>                 Poderiam dar algumas dicas?
>>>>
>>>>                 Para receber o SMS tenho isto:
>>>>
>>>>                 [incoming-mobile]
>>>>                 exten => sms,1,Verbose(Incoming SMS from ${SMSSRC}
>>>>                 ${SMSTXT})
>>>>                 exten => sms,n,Hangup()
>>>>
>>>>                 Para enviar o SMS uso isto:
>>>>
>>>>                 exten => 99,1,MobileSendSMS(ramal,  91xxxxxx,Hello
>>>>                 World)
>>>>
>>>>
>>>>                 Valeu!
>>>>
>>>>
>>>>
>>>>
>>>>                 _______________________________________________
>>>>                 Participe do IV Encontro VoIPCenter, 16 a 18 de
>>>>                 setembro - São Paulo.
>>>>                 VoIP, Asterisk e Convergência de Redes.
>>>>                 http://www.encontrovoipcenter.com.br
>>>>
>>>>                 Compre uma camiseta da AsteriskBrasil.org!
>>>>                 http://www.voipmania.com.br
>>>>
>>>>                 Acesse o canal IRC de discussão sobre Asterisk em
>>>>                 Português Brasileiro na rede Freenode.net: #asterisk-br
>>>>                 _______________________________________________
>>>>                 Lista de discussões AsteriskBrasil.org
>>>>                 AsteriskBrasil em listas.asteriskbrasil.org
>>>>                 <mailto:AsteriskBrasil em listas.asteriskbrasil.org>
>>>>                 http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>
>>>>
>>>>             ------------------------------------------------------------------------
>>>>             _______________________________________________
>>>>             Participe do IV Encontro VoIPCenter, 16 a 18 de
>>>>             setembro - São Paulo. VoIP, Asterisk e Convergência de
>>>>             Redes. http://www.encontrovoipcenter.com.br Compre uma
>>>>             camiseta da AsteriskBrasil.org!
>>>>             http://www.voipmania.com.br Acesse o canal IRC de
>>>>             discussão sobre Asterisk em Português Brasileiro na
>>>>             rede Freenode.net: #asterisk-br
>>>>             _______________________________________________ Lista
>>>>             de discussões AsteriskBrasil.org
>>>>             AsteriskBrasil em listas.asteriskbrasil.org
>>>>             <mailto:AsteriskBrasil em listas.asteriskbrasil.org>
>>>>             http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>
>>>
>>>             _______________________________________________
>>>             Participe do IV Encontro VoIPCenter, 16 a 18 de setembro
>>>             - São Paulo.
>>>             VoIP, Asterisk e Convergência de Redes.
>>>             http://www.encontrovoipcenter.com.br
>>>
>>>             Compre uma camiseta da AsteriskBrasil.org!
>>>             http://www.voipmania.com.br
>>>
>>>             Acesse o canal IRC de discussão sobre Asterisk em
>>>             Português Brasileiro na rede Freenode.net: #asterisk-br
>>>             _______________________________________________
>>>             Lista de discussões AsteriskBrasil.org
>>>             AsteriskBrasil em listas.asteriskbrasil.org
>>>             <mailto:AsteriskBrasil em listas.asteriskbrasil.org>
>>>             http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>
>>>
>>>         ------------------------------------------------------------------------
>>>         _______________________________________________ Participe do
>>>         IV Encontro VoIPCenter, 16 a 18 de setembro - São Paulo.
>>>         VoIP, Asterisk e Convergência de Redes.
>>>         http://www.encontrovoipcenter.com.br Compre uma camiseta da
>>>         AsteriskBrasil.org! http://www.voipmania.com.br Acesse o
>>>         canal IRC de discussão sobre Asterisk em Português
>>>         Brasileiro na rede Freenode.net: #asterisk-br
>>>         _______________________________________________ Lista de
>>>         discussões AsteriskBrasil.org
>>>         AsteriskBrasil em listas.asteriskbrasil.org
>>>         <mailto:AsteriskBrasil em listas.asteriskbrasil.org>
>>>         http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>
>>
>>         _______________________________________________
>>         Participe do IV Encontro VoIPCenter, 16 a 18 de setembro -
>>         São Paulo.
>>         VoIP, Asterisk e Convergência de Redes.
>>         http://www.encontrovoipcenter.com.br
>>
>>         Compre uma camiseta da AsteriskBrasil.org!
>>         http://www.voipmania.com.br
>>
>>         Acesse o canal IRC de discussão sobre Asterisk em Português
>>         Brasileiro na rede Freenode.net: #asterisk-br
>>         _______________________________________________
>>         Lista de discussões AsteriskBrasil.org
>>         AsteriskBrasil em listas.asteriskbrasil.org
>>         <mailto:AsteriskBrasil em listas.asteriskbrasil.org>
>>         http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>
>>
>>     ------------------------------------------------------------------------
>>     _______________________________________________ Participe do IV
>>     Encontro VoIPCenter, 16 a 18 de setembro - São Paulo. VoIP,
>>     Asterisk e Convergência de Redes.
>>     http://www.encontrovoipcenter.com.br Compre uma camiseta da
>>     AsteriskBrasil.org! http://www.voipmania.com.br Acesse o canal
>>     IRC de discussão sobre Asterisk em Português Brasileiro na rede
>>     Freenode.net: #asterisk-br
>>     _______________________________________________ Lista de
>>     discussões AsteriskBrasil.org
>>     AsteriskBrasil em listas.asteriskbrasil.org
>>     <mailto:AsteriskBrasil em listas.asteriskbrasil.org>
>>     http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
>
>     _______________________________________________
>     Participe do IV Encontro VoIPCenter, 16 a 18 de setembro - São Paulo.
>     VoIP, Asterisk e Convergência de Redes.
>     http://www.encontrovoipcenter.com.br
>
>     Compre uma camiseta da AsteriskBrasil.org!
>     http://www.voipmania.com.br
>
>     Acesse o canal IRC de discussão sobre Asterisk em Português
>     Brasileiro na rede Freenode.net: #asterisk-br
>     _______________________________________________
>     Lista de discussões AsteriskBrasil.org
>     AsteriskBrasil em listas.asteriskbrasil.org
>     <mailto:AsteriskBrasil em listas.asteriskbrasil.org>
>     http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
>
> ------------------------------------------------------------------------
>
>
> _______________________________________________
> Participe do IV Encontro VoIPCenter, 16 a 18 de setembro - São Paulo.
> VoIP, Asterisk e Convergência de Redes.
> http://www.encontrovoipcenter.com.br
>
> Compre uma camiseta da AsteriskBrasil.org!
> http://www.voipmania.com.br
>
> Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na rede Freenode.net: #asterisk-br
> _______________________________________________
> 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/20090903/f0e2e00b/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil