Envio de SMS a traves de Asterisk ,enlazado con Google Calendar

196 views
Skip to first unread message

David Escañuela Alonso

unread,
Nov 7, 2009, 6:28:28 AM11/7/09
to asterisk-es
Buenas,
el otro dia lei un articulo :

http://bytecoders.homelinux.com/content/aviso-por-sms-de-nuevo-voicemail.html#comment-704

sobre el envio de SMS a traves de Asterisk enazado con Google
Calendar, me gusto la idea de que si en un momento dado te llama a la
oficina un cliente importante y no estas en ese momento alli ,te
llegue un sms avisandote de ello.

En pricipio el unico problema que encontre fue que utilizaban FreePBX
y yo no soy partidario de dichas interfaces,creo que el problema
estara en el extensions.conf que he editado,no obstante dice que lo
que hace es enviarte el correo desde el buzon de voz....nose como
enlaza con el buzon de voz de tu extension....

Comento lo que he hecho y pongo aqui el codigo aver si podeis
ayudarme:

1)Tengo 2 calendarios en Google Calendar,como no sabia como delimitar
en que calendario debe fijarse habilite en ambos el aviso por SMS
desde Google Calendar.

2)Modifique la ruta en el archivo enviarSMS.sh.( /usr/src/SMSGoogle )
3)Cree el archivo sms_send.php ,lo guarde en var/lib/asterisk/agi-
bin/:

#!/usr/bin/php -q
<?php

// ------------
// Configuracion de Google Calendar
// ------------
$usr="david...@gmail.com"; // Usuario
$pwd="xxxxxxxx"; // Password

// Cambiar por el directorio de instalaci�n
$sms_tool_path="/usr/src/SMSGoogle";

// Opciones de depuracion:
// Si tienes problemas revisa el archivo de log
$parm_error_log = '/tmp/wakeup.log';

// Poner a true si queremos habilitar la depuraci�n
$parm_debug_on = true;


GLOBAL $stdin, $stdout, $stdlog, $result, $parm_debug_on,
$parm_test_mode;

// Settings de la WIKI http://www.voip-info.org
ob_implicit_flush(false);
set_time_limit(30);
error_reporting(0);

$stdin = fopen( 'php://stdin', 'r' );
$stdout = fopen( 'php://stdout', 'w' );

// Se escribe log en modo depuracion
if ($parm_debug_on)
{
$stdlog = fopen( $parm_error_log, 'w' );
fputs( $stdlog, "---Start---\n" );
}


// Poner en un array todas las variables que manda Asterisk
// http://www.voip-info.org/tiki-index.php?page=Asterisk%20AGI%20php
$agivars = array();
while (!feof(STDIN)) {
$agivar = trim(fgets(STDIN));
if ($agivar === '') {
break;ARG1
}
$agivar = explode(':', $agivar);
$agivars[$agivar[0]] = trim($agivar[1]);
}
extract($agivars);

// Obtenemos el Caller ID
$callerid = $agi_callerid;
// Mandamos el mensaje usando el API de Google
$msg="'Asterisk: Tiene una llamada perdida de $callerid'";
$cmd = "$sms_tool_path/enviaSMS.sh $usr $pwd $msg &";
$p = popen($cmd, 'r');
if ($parm_debug_on)
{
$stdlog = fopen( $parm_error_log, 'w' );
fputs( $stdlog, "Mensaje enviado: ".$msg );
fputs( $stdlog, "Enviado: ".$p );
}
?>


4) Modifique el extensions.conf :

[incoming]

; Send SMS using Google API
exten => 1200,1,NoOp("Voice Mail SMS alert")
exten => 1200,n,GotoIf($["${EXTEN}" = "1200"]?100:200)
exten => 1200,100,NoOp("Extension 1200: Enviando mensaje")
exten => 1200,n,AGI(sms_send.php)
exten => 1200,n,NoOp("Voicemail SMS alert, listo")
exten => 1200,n,Hangup
exten => 1200,200,NoOp("No se envia mensaje")
exten => 1200,n,Hangup

La idea era que al yo hacer una perdida a esa extension desde la 100
me llegase un SMS al movil dicendomelo.

5) En el CLI lo que aparce es lo siguiente:

-- Executing [1200@from-internal:1] NoOp("SIP/103-b7c0cd40", ""Voice
Mail SMS alert"") in new stack
-- Executing [1200@from-internal:2] GotoIf("SIP/103-b7c0cd40", "1?
100:200") in new stack
-- Goto (from-internal,1200,100)
-- Executing [1200@from-internal:100] NoOp("SIP/103-b7c0cd40",
""Extension 103: Enviando mensaje"") in new stack
-- Executing [1200@from-internal:101] AGI("SIP/103-b7c0cd40",
"sms_send.php") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/sms_send.php
-- AGI Script sms_send.php completed, returning 0
-- Executing [1200@from-internal:102] NoOp("SIP/103-b7c0cd40",
""Voicemail SMS alert| listo"") in new stack
-- Executing [1200@from-internal:103] Hangup("SIP/103-b7c0cd40",
"") in new stack
== Spawn extension (from-internal, 1200, 103) exited non-zero on
'SIP/103-b7c0cd40'

6)Como active la depuracion miro el contenido de fichero temporal
waleup.log:

Mensaje enviado: 'Asterisk: Tiene una llamada perdida de 100'Enviado:
Resource id #8

A pesar de hacer numerosas llamadas con la extension 100 y otras
tantas con la 103 ,solo puso esa linea ,creo que fue de la primera
perdia que hize.


Gracias.

Saúl Ibarra

unread,
Nov 7, 2009, 6:58:01 AM11/7/09
to aster...@googlegroups.com
2009/11/7 David Escañuela Alonso <david...@gmail.com>:

>
> Buenas,
> el otro dia lei un articulo :
>
> http://bytecoders.homelinux.com/content/aviso-por-sms-de-nuevo-voicemail.html#comment-704
>
> sobre el envio de SMS a traves de Asterisk enazado con Google
> Calendar, me gusto la idea de que si en un momento dado te llama a la
> oficina un cliente importante y no estas en ese momento alli ,te
> llegue un sms avisandote de ello.
>
> En pricipio el unico problema que encontre fue que utilizaban FreePBX
> y yo no soy partidario de dichas interfaces,creo que el problema
> estara en el extensions.conf que he editado,no obstante dice que lo
> que hace es enviarte el correo desde el buzon de voz....nose como
> enlaza con el buzon de voz de tu extension....
>
> Comento lo que he hecho y pongo aqui el codigo aver si podeis
> ayudarme:
>
> 1)Tengo 2 calendarios en Google Calendar,como no sabia como delimitar
> en que calendario debe fijarse habilite en ambos el aviso por SMS
> desde Google Calendar.
>
> 2)Modifique la ruta en el archivo enviarSMS.sh.( /usr/src/SMSGoogle )
> 3)Cree el archivo sms_send.php ,lo guarde en var/lib/asterisk/agi-
> bin/:
>

David, esto que teiene que ver con Asterisk? Que es un AGI? Tu
problema esta en el codigo PHP, y esta lista no va de eso. En lugar de
intentar hacerlo todo de golpe, porque no intentas primero hacer que
funcione en la consola? Y luego ya lo pondras en el dialplan y todo el
tema.


PD: Estas machacando todo el rato el fichero de log, porque no lo
abres con 'append'.

--
/Saúl
http://www.saghul.net | http://www.sipdoc.net

David Escañuela Alonso

unread,
Nov 7, 2009, 7:19:28 AM11/7/09
to aster...@googlegroups.com
ok,trabajare en ello,gracias de todas formas.

Edwin Alberto Quijada

unread,
Nov 7, 2009, 10:49:03 AM11/7/09
to Asterisk Asterisk
Aun no entiendo cual es la necesidad de complecarse la vida enviando sms por asterisk si hay app opensource mas faciles para eso y no hay que invemtra la rueda para hacerlo.

Si revisan SMSTools es una herramienta perfecta para envio de SMS yo la uso conjuntamente con Asterisk y un par scripts y funciona de maravilla. El envio de SMS nunca ha sido nada dificil para mi con el uso de esta app.


> Date: Sat, 7 Nov 2009 03:28:28 -0800
> Subject: [Asterisk-ES] Envio de SMS a traves de Asterisk ,enlazado con Google Calendar
> From: david...@gmail.com
> To: aster...@googlegroups.com

David Escañuela Alonso

unread,
Nov 7, 2009, 11:50:57 AM11/7/09
to aster...@googlegroups.com
ok,voy a echar un vistazo a esa herramienta

David Escañuela Alonso

unread,
Nov 8, 2009, 8:31:33 AM11/8/09
to asterisk-es
¿Como enlazaste Asterisk con SMSTools?

On 7 nov, 17:50, David Escañuela Alonso <davidin...@gmail.com> wrote:
> ok,voy a echar un vistazo a esa herramienta
>
> El 7 de noviembre de 2009 16:49, Edwin Alberto Quijada <
> macaru...@hotmail.com> escribió:
>
> >  Aun no entiendo cual es la necesidad de complecarse la vida enviando sms
> > por asterisk si hay app opensource mas faciles para eso y no hay que
> > invemtra la rueda para hacerlo.
>
> > Si revisan SMSTools es una herramienta perfecta para envio de SMS yo la uso
> > conjuntamente con Asterisk y un par scripts y funciona de maravilla. El
> > envio de SMS nunca ha sido nada dificil para mi con el uso de esta app.
>
> > > Date: Sat, 7 Nov 2009 03:28:28 -0800
> > > Subject: [Asterisk-ES] Envio de SMS a traves de Asterisk ,enlazado con
> > Google Calendar
> > > From: davidin...@gmail.com
>
> > > To: aster...@googlegroups.com
>
> > > Buenas,
> > > el otro dia lei un articulo :
>
> >http://bytecoders.homelinux.com/content/aviso-por-sms-de-nuevo-voicem...
>
> > > sobre el envio de SMS a traves de Asterisk enazado con Google
> > > Calendar, me gusto la idea de que si en un momento dado te llama a la
> > > oficina un cliente importante y no estas en ese momento alli ,te
> > > llegue un sms avisandote de ello.
>
> > > En pricipio el unico problema que encontre fue que utilizaban FreePBX
> > > y yo no soy partidario de dichas interfaces,creo que el problema
> > > estara en el extensions.conf que he editado,no obstante dice que lo
> > > que hace es enviarte el correo desde el buzon de voz....nose como
> > > enlaza con el buzon de voz de tu extension....
>
> > > Comento lo que he hecho y pongo aqui el codigo aver si podeis
> > > ayudarme:
>
> > > 1)Tengo 2 calendarios en Google Calendar,como no sabia como delimitar
> > > en que calendario debe fijarse habilite en ambos el aviso por SMS
> > > desde Google Calendar.
>
> > > 2)Modifique la ruta en el archivo enviarSMS.sh.( /usr/src/SMSGoogle )
> > > 3)Cree el archivo sms_send.php ,lo guarde en var/lib/asterisk/agi-
> > > bin/:
>
> > > #!/usr/bin/php -q
> > > <?php
>
> > > // ------------
> > > // Configuracion de Google Calendar
> > > // ------------
> > > $usr="davidin...@gmail.com"; // Usuario
> > > $pwd="xxxxxxxx"; // Password
>
> > > // Cambiar por el directorio de instalaci n
> > > $sms_tool_path="/usr/src/SMSGoogle";
>
> > > // Opciones de depuracion:
> > > // Si tienes problemas revisa el archivo de log
> > > $parm_error_log = '/tmp/wakeup.log';
>
> > > // Poner a true si queremos habilitar la depuraci n
> > > $parm_debug_on = true;
>
> > > GLOBAL $stdin, $stdout, $stdlog, $result, $parm_debug_on,
> > > $parm_test_mode;
>
> > > // Settings de la WIKIhttp://www.voip-info.org
> > > ob_implicit_flush(false);
> > > set_time_limit(30);
> > > error_reporting(0);
>
> > > $stdin = fopen( 'php://stdin', 'r' );
> > > $stdout = fopen( 'php://stdout', 'w' );
>
> > > // Se escribe log en modo depuracion
> > > if ($parm_debug_on)
> > > {
> > > $stdlog = fopen( $parm_error_log, 'w' );
> > > fputs( $stdlog, "---Start---\n" );
> > > }
>
> > > // Poner en un array todas las variables que manda Asterisk
> > > //http://www.voip-info.org/tiki-index.php?page=Asterisk%20AGI%20php

Raúl Alexis Betancor Santana

unread,
Nov 8, 2009, 8:38:36 AM11/8/09
to aster...@googlegroups.com
On Sunday 08 November 2009 13:31:33 David Escañuela Alonso wrote:
> ¿Como enlazaste Asterisk con SMSTools?

Pues teniendo en cuenta que SMSTools no tiene un modulo para asterisk ni nada
parecido ... la lógica dice que lo habrá hecho a base de scripts y AGI's
probablemente. Que es el método que se sigue cuando se quiere integrar "algo"
con Asterisk y no hay módulo nativo que ofrezca aplicaciones a usar
directamente desde el dialplan.

Saludos
--
Raúl Alexis Betancor Santana
Dimensión Virtual

David Escañuela Alonso

unread,
Nov 8, 2009, 11:19:05 AM11/8/09
to aster...@googlegroups.com
Aver eso es de cajon,habra hecho un script en php o en cualuqier otro lenguaje,el problema que encuentro no es ese ,es que no entiendo el funcionamiento de SMSTools y por tanto no se como empezar a hcer el script ,me haria falta saber un poco las pautas que él ha seguido ya que lo tiene hecho y asi facilitarme un poco la labor.

Saúl Ibarra

unread,
Nov 8, 2009, 11:31:50 AM11/8/09
to aster...@googlegroups.com
2009/11/8 David Escañuela Alonso <david...@gmail.com>:

> Aver eso es de cajon,habra hecho un script en php o en cualuqier otro
> lenguaje,el problema que encuentro no es ese ,es que no entiendo el
> funcionamiento de SMSTools y por tanto no se como empezar a hcer el script
> ,me haria falta saber un poco las pautas que él ha seguido ya que lo tiene
> hecho y asi facilitarme un poco la labor.
>

Puede que esto te sirva: http://smstools3.kekekasvi.com/board.php

Reply all
Reply to author
Forward
0 new messages