Desde Sinologic, nos compartieron las ponencias del VoIP2DAY. Esperemos que pronto publiquen los videos. Un saludo
martes, 18 de octubre de 2011
lunes, 22 de agosto de 2011
Nuevo Relesease de Espeak para Asterisk
Chequeando el blog de Venture Voip me tope con la buena noticia de que Lefteris Zafiris ha publicado un nuevo relase del modulo de sintetización de voz Espeack, ha inicios de haber creado este blog les hable de este excelente sintetizador, pero no tenía compatibilidad con Asterisk 1.6 y 1.8.
Compendio de Voz Ip y mas
sábado, 20 de agosto de 2011
Importante falla de seguridad descubierta en Interfaces Web sobre CentOS 5.x 6.x
Fernando Villares publicó un aviso de una falla de seguridad en Centos con Free PBX, he aquí la noticia:
jueves, 26 de mayo de 2011
Cómo programar un AGI en PHP sin librerías raras
Un excelente artículo que Elio Rojano nos comparte en su blog de Sinologic. Una de las personas que más respeto en este ambito de la voz ip
Muchas personas que están aprendiendo Asterisk y que ya conocen las posibilidades de esta aplicación, quieren
empezar a desarrollar sus propias soluciones para que Asterisk pueda interactuar con bases de datos, archivos del sistema de ficheros y en función de algún valor, conseguir que Asterisk haga una llamada, reproduzca una locución, o mil cosas más.
Esto se realiza gracias a un concepto en Asterisk llamado AGI (Asterisk Gateway Interface) y que viene a ser un programa desarrollado por nosotros (o por otro usuario) que Asterisk ejecuta (importante esto último) y que sirve para que interactúe Asterisk con el sistema Linux, pudiendo acceder a archivos locales, puertos físicos (usb, puertos series, paralelos, etc.), bases de datos, páginas webs, y prácticamente cualquier otra cosa que pueda manejar nuestro sistema Linux.
No voy a entrar en la “profundidad” en la que se entra en el curso Asterisk Advanced, pero sí ofrecer un esqueleto básico de un AGI programado en PHP sin necesidad de librerías externas y utilizando una programación muy sencilla (ideal para empezar a familiarizarse con este tipo de sistemas de integración Asterisk-*)
A continuación tenéis un ejemplo ultra-básico sobre cómo puede ser un AGI programado en PHP y sin necesidad de librerías tipo “php-agi” ni “AstPHPAGI”, ni ninguna otra, tan solo tu Asterisk, tú y PHP con sus modulitos.
Debo decir que este ejemplo no lo he programado yo, pero para ilustrar el ejemplo sirve igualmente.
Los comentarios sí son míos y creo que ayudan bastante a entender cómo funciona y qué precauciones debemos tomar antes, durante y después de programar un AGI.
También sé que para muchos, programar un AGI no tiene ninguna ciencia, pero hay que entender que muchos lectores se consideran muy, muy novatos, así que para seguir aprendiendo, aquí tenéis este ejemplo:
#!/usr/bin/php
<?php
// Lo primero es entrar en el Asterisk y ejecutar el comando: "agi set debug on" para ver
// qué va haciendo el AGI.
// Hay que evitar enviar por la "salida estandar" nada, salvo los comandos para el Asterisk.
// El Asterisk nada más ejecutar el AGI, nos envía información para aburrir...
$agivars = array();
while (!feof(STDIN)) {
$agivar = trim(fgets(STDIN));
if ($agivar === '') {
break;
}
$agivar = explode(':', $agivar);
$agivars[$agivar[0]] = trim($agivar[1]);
}
// la variable $agivars es un array bidimensional con los datos recogidos por el Asterisk
// Un ejemplo de esto puede ser:
// exten=>00,1,AGI(prueba.php,600123456)
/*
Array
(
[agi_request] => prueba.php ;; Nombre del archivo que contiene el AGI que está ejecutando.
[agi_channel] => SIP/100-00000008 ;; Canal SIP que llama al AGI. (canal, que no usuario)
[agi_language] => en ;; Idioma por defecto del canal
[agi_type] => SIP ;; tipo de Tecnología utilizada para llamar al AGI
[agi_uniqueid] => 1305795790.9 ;; UniqueID de la "llamada al AGI"
[agi_version] => 1.8.4 ;; Versio? del sistema AGI utilizado. ¿coincide con el Asterisk?
[agi_callerid] => 100 ;; CallerID del usuario que ejecuta el AGI
[agi_calleridname] => 100 ;; CallerIDname del usuario que ejecuta el AGI
[agi_callingpres] => 0 ;; ...
[agi_callingani2] => 0 ;; ...
[agi_callington] => 0 ;; ...
[agi_callingtns] => 0 ;; ...
[agi_dnid] => 00 ;; Número marcado en el dialplan para llamar al AGI
[agi_rdnis] => unknown ;; ...
[agi_context] => salientes ;; Contexto donde se ejecuta el AGI
[agi_extension] => 00 ;; Extensión donde se ejecuta el AGI
[agi_priority] => 1 ;; Prioridad donde se ejecuta el AGI
[agi_enhanced] => 0.0 ;; Agi "mejorado"
[agi_accountcode] => ;; El AccountCode (si lo hemos definido)
[agi_threadid] => -1239581840 ;; ...
[agi_arg_1] => 600123456 ;; Argumento 1 del AGI (el Argumento 0 es el nombre del AGI)
[agi_arg_2] => ;; Argumento 2 del AGI
... ;; ...
)
*/
// Vamos a decirle a Asterisk que haga un Dial al número que le hemos pasado por parámetro:
echo "EXEC Dial DAHDI/g1/".$agivars[agi_arg_1];
// Podemos usar los comandos propios de los AGI (como hemos usado el 'EXEC') que podemos obtener
// ejecutando en la consola "agi show commands" o "agi show commands topic <comando>" para una
// información más detallada de cada comando.
// Importante... despues del "?" y el ">" del 'fin del PHP' no debe haber ni siquiera un [ENTER]...
// ya que en caso contrario, Asterisk devolverá un error del tipo:
// ERROR[24598]: utils.c:1133 ast_carefulwrite: write() returned error: Broken pipe
?>El código no puede ser más sencillo, quizá lo más interesante pueden ser los comentarios que explican el comienzo y los comandos básicos para programar un AGI.
Sin más me queda agradecer de nuevo a Elio Rojano por sus grandes aporte a la comunidad de Asterisk
Fuente: Sinologic.net
lunes, 7 de febrero de 2011
Mensajería en SIP con MSRP
Hace días estaba por postear este artículo escrito por Saúl Ibarra pero bueno ya estoy un poco menos ajetreado y lo pude hacer, un excelente artículo hablando de un tema que no muchos conocen y no muchos entienden, saludo
Muchas veces hablamos de menajería y presencia, y nos quedamos en la parte de presencia. Supongo que para muchos mensajería es el SIP MESSAGE. Pues no.
SIP MESSAGE puede estar bien para intercambiar pequeños fragmentos de datos sin demasiado contexto, como un SMS en los móviles. Recordemos que a día de hoy lo que más se utiliza es SIP sobre UDP, por lo que sufrimos los problemas inherentes a este entorno:
miércoles, 10 de marzo de 2010
MSI presenta un terminal completamente táctil
La empresa MSI acaba de presentar en el CeBIT un terminal IP completamente táctil, sin botones y que funciona con elsistema operativo Android.
Uno de los grandes descubrimientos de esta exposición ha sido un teléfono completamente tactil con una pantalla de 9? y que en el cartelito dicta:
Soporta:
- PSTN y DECT (opcional)
- VoIP
- Llamadas de Videoconferencia
- Mensajería Instantánea
- Fácil panel táctil
- Sistema operativo Android
Pese a esto, el teléfono es impresionante, no sólo porque corre Android, si no porque su diseño “frontal” es perfectamente configurable y bastante original, no hay más que ver las fotografías y el siguiente vídeo:
