[AsteriskBrasil] Mail to SMS

Kim Delevati kim.delevati em gmail.com
Quinta Setembro 3 10:14:01 BRT 2009


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" <mail em domain.com>;
$to ="mail em domain.com " <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>

>  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" <mail em domain.com>;
> $to ="mail em domain.com " <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" <mail em domain.com>;
> $to ="mail em domain.com " <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>
>
>>  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>
>>
>>>  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>
>>>
>>>> Pessoal,
>>>>
>>>> Estou tentando implementar uma funcionalidade que seria, enviar um mail
>>>> para uma conta tipo 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
>>>> 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.orgAsteriskBrasil em listas.asteriskbrasil.orghttp://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
>>>
>>
>>  ------------------------------
>>
>>
>> _______________________________________________
>> 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.orgAsteriskBrasil em listas.asteriskbrasil.orghttp://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
>>
>
> ------------------------------
>
>
> _______________________________________________
> 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.orgAsteriskBrasil em listas.asteriskbrasil.orghttp://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/36f9516e/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil