[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