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.