[AsteriskBrasil] Mail to SMS

Asterisk Addict Guy asteriskaddict em gmail.com
Quinta Setembro 3 08:16:28 BRT 2009


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";
$to ="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";
$to ="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
> 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/3964abdd/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil