Hace unos días me tocó configurar una tarjeta E1 con MCF R2 Modificado y para esto usé una tarjeta Sangoma A101DE Con cancelación de ECO y PCI Express, todo salió bien, la compilación de Asterisk, la compilación de OpenR2-2 y el parche de Asterisk con los drivers de OpenR2. Pero ya después quise reiniciar el servidor y al momento despues de ejecutar sudo reboot, me mandar un Kernel Panic.
Este Kernel Panic se debe a que el sistema rc.6 intenta eliminar los módulos de Wanpipe del kernel, que es el driver sangoma, pero como están aún siendo utilizados por Asterisk y por Zaptel entonces genera el Kernel Panic, me puse a buscar en internet y había varias presuntas soluciones una era poner en el menu grub una excepción a ese número de error de Kernel Panic, otro era crearse un script para apagar zaptel y asterisk poniendo el script en rc.6 y ejecutarlo antes que /etc/init.d/wanrouter stop, pero el más fácil y recomendado por la gente de Sangoma fué solo colocar un script de stop en el directorio /etc/wanpipe/scripts, en dónde se debería parar los servicios de asterisk y luego de wanpipe para que ya no generara el kernel panic y se pudiera reiniciar y apagar el servidor sin problema alguno.
Para esto solo basta crear un archivo en /etc/wanpipe/scripts
sudo /etc/wanpipe/scripts/stop
sudo amportal stop
sudo /etc/init.d/wanrouter stop
sudo /etc/init.d/zaptel stop
#guardar
chmos +x /etc/wanpipe/scripts/stop
Y listo solo bastaría hacer un sudo reboot para verificar que ya no generara el kernel panic..
Hace unos días me contactó un amigo preguntándome de como podía cambiar el tipo de ring de un teléfono, ya que siempre sonaba igual si llamaban del portero(frente de calle), de una línea de su E1 o de otra extensión IP, entonces a veces cuándo alguien llamaba de la PSTN le contestaba como si fuera su compañero, cuándo venía del portero o de una extensión interna decía bueno, era un relajo para acabar pronto.
La solución fué fácil, ya que en su caso está usando ATAs PAP2 los cuáles tienen 2 puertos FXS para convertir teléfonos analógicos en teléfonos IP, de tal forma que en la configuración del ATA se le puede indicar en la opción de "Distinctive Ring Patterns" diferentes Rings para los Callerd ID entrantes, de tal forma que se asignó el Ring 1 a todas las extensiones que sean del 100 al 199, el Ring 2 al portero que en este caso es 301 y el Ring 3 a todas las llamadas de la red PSTN(Telefonía Pública) que tienen un caller id de 8 dígitos.
Lo curioso de todo esto es que buscando información sobre Distinctive Ring Settings en google, me encontró PAP2 que están conectados directamente a internet y su configuración está abierta.. :S
Hace unos días instalé unas licencias del códec g729 en un servidor de VoIP, pero por una razón tuve que cambiar de servidor, el detalle fué que las licencias g729 al registrarlas digium casa la licencia con la mac address de la interfaz de red, y para que Digium permita registrar la licencia de los códecs hay que contactarlos y mandar un documento, etc., pero por practicidad lo que primero se me ocurrio es que antes de iniciar el script de inicio de asterisk, cambiar la mac address mediante el comando macchanger:
macchanger -m 00:01:02:03:04:05 eth0
Y luego continuar con el inicio normal de Asterisk y demás servicios, las licencias funcionaron y fueron reconocidos los canales g729 que se compraron.
Pero esta forma de cambiar la mac no se me hizo tan elegante, por lo que cambié el procedimiento y solo configuré la MAC address del equipo en el archivo /etc/network/interfaces de la siguiente manera:
Y al final solo basta reiniciar el servicio de red
/etc/init.d/networking restart
Y con esto al iniciar el servidor automáticamente cambiará la mac address del equipo y las licencias g729 serán reconocidas por Asterisk
Llevo unas semanas trabajando sobre reconocimiento de voz en linux, el detalle es que actualmente no existen alternativas Open Source serias para el reconocimiento de voz, tenemos sphinx pero le falta mucho para llegar a ser una opción para desarrollos de aplicaciones de voz.
Existen un par de opciones propietarias por ahí bastante buenas las cuales tienen integración hasta con Asterisk para desarrollo de aplicaciones de telefonía IP con reconocimiento de voz, incluso soportan español mexicano y tienen una alta calidad en el reconocimiento de voz, pero como todo lo bueno cuesta, no son nada baratas estas opciones, pero bien valen la pena pagar esos pavos y a una empresa a corto plazo es redituable implementar este tipo de soluciones.
Hace unos días adquirí unas licencias de pruebas de 2 opciones propietarias de reconocimiento de voz y realmente me sorprendió la calidad del reconocimiento de voz, lo interesante es que no solo puedes usarlo para aplicaciones de telefonía IP si no lo puedes integrar con diversas tecnologías, por ejemplo hace apenas unos días me llegó de EU unos equipos con tecnología x10 los cuáles te permiten integrar tecnologías de domótica a bajo costo, de tal forma que integrando estas tecnologías de voz con x10, mediante voz puedes prender luces de tu casa, activar y desactivar alarmas, prender dispositivos electrónicos, sistemas de irrigación, abrir puertas, cerrar cortinas, etc..
Todo esto sería excelente si pudiera ser completamente Open Source, que casi lo es a excepción del reconocimiento de voz, pero al parecer ya hay una luz al final del tunel, pues está ya en desarrollo y de hecho ya hay un beta de VoicePHP, que promete ser un sintetizador de voz al igual que soportará reconocimiento de voz, permitiendo usar PHP como plataforma de desarrollo.
Los creadores de VoicePHP aun no saben si lo liberarán como OpenSource, pero hay esperanzas, aún no he probado ese beta pero ya les mandé un correo para que me lo envíen y ver que pinta tiene y ver como sacarle jugo a la tecnología de VoicePHP.
Si les interesa dense una vuelta a su página para saber más de VoicePHP http://www.voicephp.com
¿ Y tú ya has hecho algún desarrollo sobre reconocimiento de voz o algo por el estilo ?
Pongo rápidamente un tutorial paso a paso de como instalar y usar heyu, para poder controlar dispositivos X10 desde una interfaz de comando, para despues de ahí realizar cualquier aplicación con reconocimiento de voz, interfaz web, agi con Asterisk VoIP, etc.,
mkdir-p ~/software/opensource cd ~/software/opensource wget http://heyu.tanj.com/download/heyu-2.6.0.tgz cd/usr/src sudotar-xzvf ~/software/opensource/heyu-2.6.0.tgz cd heyu* sudosh ./Configure &&sudomake&&sudomakeinstall #Where would you like the sample Heyu configuration file installed? #Seleccionar la opción 3. In directory /etc/heyu (for system-wide access) #To which port is the CM11 attached? #Si es un puerto serial seguro podría ser /dev/ttyS0, si es un convertidor de serial a usb sería /dev/ttyUSB0,
es necesario tener conectado el adaptador X10 CM11A al puerto Serial y también a la corriente eléctrica
#Para empezar a probar, Asignarle un ID único al AM466, este equipo tiene 2 dialers desde donde se configura si es A1, B2, C3, etc., #Si se le asigna la misma clave al dispositivo X10 este se apagará y prenderá junto con el otro también configurado con la misma clave. #Conectar el dispositivo electrónico al AM466 configurado. #Suponiendo que se le asignó A1 al dispositivo X10 AM466, al ejecutar el comando anterior mandará a enceder el dispositivo.
heyu on A1 #Para apagarlo
heyu off A1 #Para encender los dispositivos que estén en la clave A intoducir el siguiente comando
heyu allon A #Para apagar todos al mismo tiempo
heyu alloff A #****** # Luces #****** #Conectar el foco en el socket X10 y de ahí conectar el socket, OJO este socket no se debe conectar a lámparas fluorescentes o de halógeno solo focos normales . #Dejar en encendido el apagador #Inicialmente no prenderá el foco, puesto que hay que asignarle una clave al socket instalado, para esto se tiene que ejecutar en los primeros 30 segundos el siguiente comando:
heyu address C1 #Lo que hacemos con este comando es asignarle el ID C1 al Socket instalado. #Si pasan más de 30 segundos instalados y no se ejecutó el comando, apagar el apagador y volver a prenderlo para poder mandar el comando anterior. #Para mandar a prender el foco ejecutar el siguiente comando
heyu on C1 #Para apagarlo
heyu off C1 #Para prender todos los focos en C
heyu lightson C #Para apagar todos
heyu lightsoff C #Existe un modelo de socket X10 en el cuál se le puede mandar que disminuye o aumente laintensidad de la señal #Para saber más comandos de heyu introducir:
heyu help #Hay dispositivos x10 como sensores de movimiento, alarmas, detectores de humo e incendio, controles de temperatura, etc., los cuáles pueden monitorearse y de acuerdo al evento mandar a enceder dispositivos, apagarlos, etc.,
#Más accesorios aquí:
http://www.digitalconcerve.com/wizard/security/x10_home_automation_accessories.htm
#Para instalar una aplicación web para controlar dispositivos X10 ver AQUI
OpenMeetings es un sistema de videoconferencia basado en Flash, OpenMeetings permite realizar una conferencia con soporte de video, audio, compartición de archivos en diversos formatos, compartición de escritorio, pizarrón electrónico, compartición de paginas web entre otras cosas.. vaya es como dar una conferencia en vivo solo que de manera virtual.
Asi que sin más pongo el tutorial de la instalación paso a paso en Ubuntu Linux.
Para más información vayan al sitio : http://www.code.google.com/p/openmeetings/
sudomkdir ~/software cd ~/software sudowget http://cds-esd.sun.com/ESD7/JSCDL/jdk/6u13-b03/jdk-6u13-linux-i586.bin? AuthParam=1238314710_6ba92bc3cbb2a8a4581ef0a42c40cad7&TicketId=B%2Fw3kxmFRFtCSxZAPV9blAbq &GroupName=CDS&FilePath=/ESD7/JSCDL/jdk/6u13-b03/jdk-6u13-linux-i586.bin&File=jdk-6u13-linux-i586.bin #unir las 3 líneas en una sola url sudowget http://openmeetings.googlecode.com/files/openmeetings_0_8_rc2.zip sudochmod +x jdk-6u13-linux-i586.bin #instalando java cd/usr/src sudosh ~/software/jdk-6u13-linux-i586.bin #mover la instalación del jdk a /usr/src/java sudomv/usr/src/jdk-6u13-linux-i586 /usr/src/java #instalamos MySQL sudoapt-getinstall--yes mysql-client-5.0 mysql-server-5.0 libmysqlclient15-dev #configuramos mysql para trabajar con utf8 sudo editor /etc/mysql/my.cnf [mysqld]
character-set-filesystem=UTF8
character-set-server=UTF8
default-collation=UTF8_general_ci
default-character-set=UTF8 [client]
default-character-set=UTF8 [mysqldump]
default-character-set=UTF8 #instalamos convertidor de swf sudoapt-getinstall--yes swftools gs-gpl libart-2.0-2 libt1-5 libungif4g #instalamos librería para procesar imagenes sudoapt-getinstall--yes imagemagick #instalamos convertidor de pdfs sudoapt-getinstall--yes ghostscript #instalamos software para converción de archivos de openoffice y office #Verifica la instalación de OpenOfficeConverter dependiendo de la versión de OpenOffice, esta es para openoffice 2.3 #si ya tienen instalado OpenOffice entonces solo instalar los siguientes paquetes sudoapt-getinstall openoffice.org-headless xvfb openoffice.org-filter-mobiledev openoffice.org-filter-binfilter msttcorefonts pstoedit libpaper-utils ttf-dejavu #dependiendo de cada version de OpenOffice ver la siguiente URL
http://code.google.com/p/openmeetings/wiki/OpenOfficeConverter #creamos la base de datos para openmeetings
mysql -u root -p
create database openmeetings;
grant all privileges on openmeetings.* to red5@localhost identified by "red5";
flush privileges; exit; sudomkdir-p/usr/src/openmeetings cd/usr/src/openmeetings sudounzip ~/asterisk/openmeetings_0_8_rc2.zip sudorm-rf __MACOSX sudomv-f red5-0.8.RC3-build-hudson-red5_jdk6_stable-79_2 /usr/lib/red5 #asignamos permisos al directorio de instalación de red5 sudochmod-R 0755 /usr/lib/red5/ cd/usr/lib/red5/ sudochmod +x *.sh sudo ./red5.sh #entrar a un navegador http://localhost:5080 para verificar la ejecución del servidor de red5 sudochown-R nobody /usr/lib/red5 sudo editor /etc/init.d/red5
#/***AGREGAMOS LO SIGUIENTE*** #! /bin/bash # # red5 red5 initscript # # Author: Simon Eisenmann . # set-e exportJAVA_HOME="/usr/src/java" exportJRE_HOME="/usr/src/java/jre" exportPATH="${PATH}:${JAVA_HOME}/bin/:${JRE_HOME}/bin" exportOSTYPE="linux" PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="Red5 flash streaming server" NAME=red5 RED5_HOME=/usr/lib/red5 DAEMON=$RED5_HOME/$NAME.sh PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME # Gracefully exit if the package has been removed. test-x$DAEMON || exit 0 # Read config file if it is present. if[-r/etc/default/$NAME] then
. /etc/default/$NAME fi # # Function that starts the daemon/service. #
d_start(){
start-stop-daemon --start-c nobody --pidfile$PIDFILE \ --chdir$RED5_HOME--background--make-pidfile \ --exec$DAEMON } # # Function that stops the daemon/service. #
d_stop(){
start-stop-daemon --stop--quiet--pidfile$PIDFILE \ --name java rm-f$PIDFILE } #aqui es signo moneda $ y luego 1, solo que el editor del blog lo cambia case"$1"in
start) echo-n"Starting $DESC: $NAME"
d_start echo"."
;;
stop) echo-n"Stopping $DESC: $NAME"
d_stop echo"."
;;
restart|force-reload) echo-n"Restarting $DESC: $NAME"
d_stop sleep1
d_start echo"."
;; *) echo"Usage: $SCRIPTNAME {start|stop|restart|force-reload}">&2 exit1
;; esac exit 0 #/****FIN DEL ARCHIVO /etc/init.d/red5******/
sudochmod +x /etc/init.d/red5
#si deseamos que red5 se ejecute al iniciar Linux sudo update-rc.d red5 defaults
#ejecutamos el servidor de red5 sudo/etc/init.d/red5 start
#verificamos la ejecución del servidor netstat-an | grep5080
tcp6 0 0 :::5080 ::<img src="plugins/Emoticons/images/face-kiss.png"border="0"alt="face-kiss.png "width="16"height="16"/> ESCUCHAR - #borramos los demos e instalador sudorm-r/usr/lib/red5/webapps/installer sudorm-r/usr/lib/red5/webapps/root/* #en algun caso aqui podemos crear nuestro index.html /usr/lib/red5/webapps/root #copiamos la configuración de mysql a la configuracion default de sql de openmeetings cd/usr/lib/red5/webapps/openmeetings/conf/ sudocp mysql_hibernate.cfg.xml hibernate.cfg.xml #editamos los valores de conexion al servidor de base de datos <property name="connection.username">red5</property> <property name="connection.password">red5</property> <property name="connection.url">
jdbc:mysql://localhost/openmeetings?autoReconnect=true&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding$ cd/usr/lib/red5/webapps/openmeetings/ sudochmod +x jod/*.sh sudo/etc/init.d/red5 restart cd/usr/lib/red5/webapps/openmeetings/jod #entrar al servidor web de openmeetings
firefox http://localhost:5080/openmeetings/install #Ir al paso 2
y Ahí introducir la información solicitada.. #La instalación podría tardar unos minutos.. puedes ir verificando si la instalación funcionó entrando a mysql
mysql -u red5 -p openmeetings
show tables #Y ver si el instalador ha creado las tablas, si es asi todo va bien.. de lo contrario.. "verifica la información de la base de datos,
#la configuración de red5,
#reinicia red5 y
#repite el proceso de instalación web de openmeetings
#Si todo salió bien.. deberías ver algo como esto
Openmeetings - Installation Complete!
Enter the Application
#Ahora ya puedes entrar a red5 y openmeetings..
#Crear cuentas de usuario, cuartos de conferencias y empezar a tener videoconferencias en línea..
#en caso de que se quieran cambiar los puertos de ejecución del servidor web de red5 editar los siguientes archivos
sudo editor /usr/lib/red5/conf/red5.properties
#http.port=5080
sudo editor /usr/lib/red5/webapps/openmeetings/config.xml
:<red5httpport>5080</red5httpport>
#si se desea tener siempre activo el servicio de red5 entonces poner estos scripts en todos los modos de ejecución
sudo update-rc.d red5 defaults
sudo update-rc.d openoffice defaults
#para quitarlos de ejecución
sudo update-rc.d -f red5 remove
sudo update-rc.d -f openoffice remoce
Hace tiempo cabilaba sobre que necesitaría respaldar para poder levantar Asterisk + FreePBX en caso de un crash que se diera por alguna razón..(Crackers, rm -rf accidental, sobreescribir archivos, etc).
Obviamente en una instalación de FreePBX+Asterisk hay infinidad de archivos y directorios como por ejemplo:
/etc/amportal.conf #archivo de configuración de FreePBX
/var/www/cloudvoox #directorio de instalación web de FreePBX
/var/spool/recordings #Directorio de grabaciones de Asterisk
/var/lib/asterisk/ #archivos diversos de asterisk
/var/lib/asterisk/sound #Sonidos e IVR de Asterisk
/etc/asterisk #archivos de configuración de asterisk y freepbx
La base de datos de mysql para los CDR y configuración de FreePBX
Y así puedo enumerar una infinidad cantidad de directorios y archivos relacionados con asterisk y freepbx, ahora lo interesante no solo es saber que respaldar si no también como hacerlo, para ello he visto un script que funciona bien para respaldar lo necesario de freepbx y asterisk, solo faltaría agregarle la personalización para poder enviar los respaldos generados a un disco de respaldo, servidor ftp o tftp, correo electrónico, vía rsync, samba, etc.
Un script que puede ser funcional para hacer respaldos es el que se pude ver en la siguiente liga: http://bytecoders.homelinux.com/content/backup-de-asterisk-y-freepbx.html
Qué el asistente comprenda desde los conceptos básicos de Telefonía Tradicional y Voz Sobre IP hasta conocimientos avanzados de telefonía IP.
Conozca como instalar y configurar Tarjetas de Telefonía Sangoma & Digium.
Sepa diferenciar el uso de los diversos protocolos de comunicación.
Conozca la diferencia y uso de los diversos códecs.
Integrar nuevas aplicaciones alrededor de Asterisk.
Configurar las aplicaciones básicas de un conmutador IP.
Configurar extensiones y manejar el dialplan de Asterisk.
Configuración de IVRs, Grupos de marcación, DISAs, FollowMe, etc.,
Ruteo de llamadas por diveras tecnologías.
Instalar un Administrador Gráfico para Asterisk
Programación de aplicaciones con Asterisk Gateway Interface
Monitoreo de llamadas
Integración de aplicaciones desarrolladas con el Asterisk Manager Interface
Detección de fallos
Integración de aplicaciones externas con Asterisk
Integración de vTiger CRM con Asterisk
Curso de Introducción a la plataforma Linux.
Se provee un curso de introducción opcional que consta de 6 horas previas al curso de VoIP para que los asistentes nuevos en Linux puedan comprender aun más los aspectos fundamentales del Sistema Operativo Linux, plataforma sobre la cuál se integra la tecnología de Asterisk VoIP y conozcan el entorno sobre la cual se implementa Asterisk PBX.
Temario del curso de Linux Core
¿ Qué es Linux ?
Obteniendo Linux
Distribuciones Linux
Instalación de Linux
Sistema de Archivos de Linux
Comandos principales
Permisos de usuarios y accesos de archivos.
Ejecución de aplicaciones.
Instalación de paquetes.
Compilación e instalación de aplicaciones medante código fuente.
Manejo de editor de texto en linux.
Edición de archivos de configuración.
Configuración de servicios de arranque en Linux.
Registros y Mensajes del Sistema.
Detección de hardware.
Monitoreo de sistema(CPU, RAM, Disco Duro).
Configuración de Redes en Linux.
Temario del Curso de Implementación de Asterisk VoIP
SESIÓN 1
Teoría
Conceptos Básicos de Telefonía Tradicional.
Terminología de la Telefonía tradicional.
Concepto básicos de Voz sobre IP.
Situación Actual de la Telefonía Tradicional en México
¿ Qué es la Telefonía IP ?
Ventajas de Implementación de Telefonía IP en las Empresas.
Diferencia entre Voz sobre IP vs Telefonía IP.
Términos y Aspectos legales en México
Protocolos de Voz sobre IP
Codecs de Voz sobre IP
¿ Qué es Asterisk PBX?
Aplicaciones de un Conmutador de Voz sobre IP basados en Asterisk PBX.
Practica
Instalación de Servidor Linux
Configurando de usuarios
Configuración del sistema de paquetes y repositorios de Linux.
Configurando servicio de consola remota(SSH) para acceso remoto.
Instalación de paquetes requeridos para Asterisk y FreePBX.
Descarga de código fuente de aplicaciones requeridas para instalación de Asterisk PBX.
Compilación de paquetes requeridos.
Instalación de Paquetes de Conmutador de Voz Sobre IP con Asterisk PBX.
Instalación de Drivers DAHDI o ZAPTEL para tarjetas Sangoma ó Digium.
Configuración de tarjetas con DAHDI y ZAPTEL.
Configuración de opciones generales de zapata.conf y dahdi.conf
Configuración de grupos y canales de puertos FXO
Instalación de Gateway para desarrollo de Aplicaciones de Voz Sobre IP.
Instalación de Sonidos en español para IVR.
Instalación y Configuración de Administrador Web FreePBX para Asterisk PBX.
Actualización e instalación de nuevos módulos de FreePBX.
Actualización e instalación de módulos no oficiales de FreePBX
Esquema de archivos de configuración de FreePBX y Asterisk PBX.
Edición de Archivos Generales de configuración de Asterisk PBX.
Edición de archivos de configuración de Usuarios y Extensiones de Asterisk PBX.
Configuración de Softphone en Linux, Windows y PocketPC como extensiones del conmutador de VoIP
Evaluación de la Sesión
Retroalimentación
SESION 2
Practica
Configuración de Planes y Reglas de Marcación en archivos de configuración de Asterisk PBX.
Configuración de Equipos FXS como extensiones de Conmutador VoIP.
Configuración de Puertos FXO de SPA3102 como líneas de salida PSTN
Configuración de Puertos FXO de tarjetas como líneas de salida PSTN.
Configuración de dispositivo PAP2 para conexión de Fax.
Consideraciones para Fax sobre IP.
Configuración de Correo de Voz para extensiones.
Configuración de conexión a un proveedor VoIP para realizar y recibir llamadas desde la red PSTN.
Instalación de Códecs g729.
Configuración de servicio DID(Número telefónico vía VoIP) con Asterisk PBX.
Configuración de Ruteo de llamadas Entrantes al conmutador de VoIP.
Configuración de Ruteo para llamadas Salientes del Conmutador de VoIP.
Configuración de password y pins para llamadas salientes.
Configuración de música de fondo para diversos contextos y grupos de marcación.
Configuración de Follow ME.
Configuración de Call Back.
Configuración de Grupos de Marcación.
Grabación de llamadas.
Instalación de aplicación para revisión de llamadas grabadas.
Implementación de Monitoreo y susurro de llamadas.
Grabación de Mensajes para IVR y otros servicios del conmutador de Voz Sobre IP.
Configuración de grupos de toma de llamadas.
Transferencia y Toma de Llamadas
Evaluación de la Sesión
Retroalimentación
SESION 3
Práctica
AudioConferencia en Asterisk PBX.
VideoConferencia en Asterisk PBX
Configuración de Acceso Remoto para Marcación Directa ( DISA ).
Programación de AGI para implementación de DISA personalizado.
Configuración de Ruteo de Llamadas por Horarios de Marcación.
Configuración de Aplicaciones Interactivas de Voz ( IVR ).
Configuración de dispositivo USB e integración con FreePBX para envío de SMS desde aplicación web.
Configuración de Colas de Llamadas.
Revisión de Códigos de Marcación de Asterisk.
Revisión del Panel de Marcación de FreePBX.
Modificación de base de datos de CDR de Asterisk PBX.
Configuración y programación de CDR.
Modificación del sistema de reportes CDR de FreePBX.
Uso de la consola para depuración de eventos de Asterisk
Conociendo las opciones de la consola de Asterisk
Recarga de funciones de Asterisk
Monitoreando canales en Asterisk
Conociendo el log de Asterisk
Detección de problemas y fallos en Asterisk.
Instalación de IAXModem & Hylafax como Fax Virtual
Instalación y Configuración de AvantFax como Administrador Web de Faxes.
Configuración de Hylafax para envío de Fax desde Aplicaciones Windows.
Evaluación de la Sesión
Retroalimentación
SESION 4
Práctica
Instalación del FrameWork de PHP AGI
Que es un AGI
Qué es AMI
Instalación de Festival y parlante en español
Programación AGI(Asterisk Gateway Interface) demo de interfaz entre Asterisk y Aplicación LAMP
Ejecución de Aplicaciones desde llamadas telefónicas con Asterisk
Desarrollo de aplicaciones VoIP haciendo uso de AMI(Asterisk Manager Interface)
Programación de AMI para monitoreo de llamadas
Programación de AMI para interfaz con sistema de tarificación de llamadas
Integración de aplicación Click to Call.
Configuración de WebPhone
Integración de sistema de detección de movimiento con Asterisk.
Configuración de Marcaciones Internas para Accesos a Diversas Aplicaciones VoIP desarrolladas.
Integración de AsterCRM con Conmutador de Voz sobre IP.
Tarificador de llamadas
Implementación de un Conmutador de Voz sobre IP para un escenario real.
Evaluación de la Sesión
Retroalimentación
Material Entregable:
Disco con todos los paquetes a usar en el curso de implementación del conmutador de Voz sobre IP.
Distribución de Linux Server & Linux Desktop.
Libro Electrónico El Futuro de la Telefonía.
Documentación sobre el proceso de instalación de Asterisk VoIP.
Presentación del curso de Voz sobre IP.
Cuenta VoIP con 10 Dlls de Crédito & DID para prueba de llamadas vía VoIP.
Teléfono VoIP Aastra 6730i, ATA SPA3102 o Tarjeta X100P 1 Puerto FXO.
Lugar:
Por definir por parte de los asistentes
Fecha y Horarios del curso:
Fecha y Horario: Por definir por parte de los asistentes
Límite de Asistentes:
Por definir
Adicionales:
Cualquier duda posterior a la fecha del curso podrá atenderse vía correo electrónico o messenger para atender dudas que hayan salido con respecto algunos de los temas, instalación o configuración de los temas vistos en el curso.
Inversión:
Cotizar el costo mediante el sistema de cotizaciones, por favor regístrese en nuestro sistema y seleccione Curso Especializado de Asterisk PBX para que le llegue a su correo información de curso y costo.
50 % Antes del curso y el resto previo al inicio del curso.
Descuentos:
A partir de 3 Personas Inscritas hay un descuento del 10% sobre el costo original.
Asterbilling es un software que permite integrar un tarificador a Asterisk basado en prefijos, longitud del número de marcado, entre otras cosas, muy apto para ser usado en casetas telefónicas, aparte que tiene un sistema de monitoreo para cuándo se marque un número muestre el tiempo marcado, el número, etc y de ahi mismo imprimir un ticket.
Como plugin adicional para Asterbilling hice un script en php que lo que hace es consultar desde un teléfono el costo de las llamadas desde un cabina en específica, de tal forma que usando festival te regresa de forma hablada la fecha marcada, el tiempo de la llamada, el número marcado y el costo total de la llamada en base a la tarifa aplicada.
Este script también permitiría imprimir un ticket en una impresora de tickets conectada al puerto serial, solo bastaría crear un archivo con la información y mandarlo al puerto lpt.
#!/usr/bin/php -q <?php //llamamos a las librerias de phpagi require("phpagi/phpagi.php"); //activamos la bandera de enviar todo lo que se realice a consola como modo depuracion error_reporting(E_ALL); //creamos una instancia de la clase AGI $agi=new AGI(); //generamos el comando Answer de Asterisk, este comando siempre lo ejecutamos al inicio de un AGI $agi->answer(); //Este demo consultaria informacion en una base de datos y regresaria la informacion de forma hablada por lo que generamos una conexion a la base de datos de sql $conexion=mysql_connect("localhost","astercc","astercc") or die("Error: El servidor no puede conectar con la base de datos"); //Referenciamos el cursor a la base de datos mysql_select_db("astercc",$conexion); //obtenemos el caller id de quien realiza la llamada $_cid=$agi->parse_callerid(); //enviamos un mensaje de voz por medio de festival que esta configurado en idioma espanol $saludo_hora=(date("H")<12)?"Buenos Dias!"<img src="plugins/Emoticons/images/face-sad.png" border="0" alt="face-sad.png " width="16" height="16"/>(date("H")<19)?"Buenas tardes!":"Buenas Noches!");
$agi->text2wav("Hola $saludo_hora"); do{ $agi->text2wav('¿Que cabina desea tarificar? 0 para salir');
//enviamos un beep y esperamos 20 segundos en la espera de una respuesta $_result=$agi->get_data('beep',5000,20); //obtenemos la informacion introducida desde el telefono $cabina=$_result['result']; if($cabina!="" and $cabina!="0"){ $query="select c.id, c.calldate, c.src, c.dst, c.didnumber, c.duration, c.billsec, c.disposition, c.calltype, c.userfield,
m.dialprefix, m.numlen, m.destination, m.connectcharge, m.initblock, m.rateinitial, m.billingblock
from mycdr c, myrate m
where c.src='$cabina' and c.disposition like '%ANSWERED%'
and c.userfield='UNBILLED'
and (c.dst like concat(m.dialprefix,'%') or length(c.dst)=m.numlen)
and (c.groupid=m.groupid or m.groupid=0)
and (c.resellerid=m.resellerid or m.resellerid=0)
order by
"; //select c.id, c.calldate, c.src, c.dst, c.didnumber, c.duration, c.billsec, c.disposition, c.calltype, c.userfield,m.dialprefix, m.numlen, m.destination, m.connectcharge, m.initblock, m.rateinitial, m.billingblock from mycdr c, myrate m where c.src='102' and c.disposition like '%ANSWERED%' and c.userfield=UNBILLED and (c.dst like concat(m.dialprefix,'%') or length(c.dst)=m.numlen) and (c.groupid=m.groupid or m.groupid=0) and (c.resellerid=m.resellerid or m.resellerid=0) $agi->verbose($query); $_result=mysql_query($query); //verificamos si existe un resultado $total=0; $subtotal=0; $ticket=""; $count=1; while($_re=mysql_fetch_array($_result)){ $subtotal=$_re[13]; if($_re[6]>$_re[14]){ $charge_additional=(ceil(($_re[7]-$_re[14])/$_re[16]))*$_re[15]; $subtotal+=$charge_additional; } $total+=$subtotal; $ticket.=" llamada $count.
Fecha: $_re[1].
Tiempo de la llamada: $_re[6] segundos.
Numero Marcado: $_re[4].
Tarifa aplicada: $_re[destination].
Costo: $subtotal pesos.."; } if($total>0){ $agi->text2wav("Total a pagar $total pesos. Desglose : ".$ticket." Total a pagar: $total pesos"); $agi->text2wav("Desea imprimir el ticket?Presione 1 para Aceptar. Otro para salir"); $_result=$agi->get_data('beep',5000,20); $print=$_result['result']; if($print==1){ $ticket=str_replace(".",".\n",$ticket)."\n\nTotal a pagar: ".$total." pesos"; //imprimir ticket //guarda archivo //manda archivo a LPT //elimina archivo impreso //guardar registro } }else{ $agi->text2wav("No hay llamadas para tarificar en la cabina $cabina!"); } } }while($cabina!='0'); $agi->text2wav("Hasta luego. $saludo_hora"); //al finalizar el script del AGI siempre es recomendable ejecutar esta funcion para no dejar el canal abierto. $agi->hangup(); ?>
//*****
Hace un par de semanas buscando algun Softphone que pudiera ejecutarse en una página web mediante Flash ó Applet de Java, encontré Doodling que es un webphone desarrollado en Java que permite conectarse a conmutadores de Voz sobre IP con el protocolo SIP, en este caso pudiendo ser compatible con Asterisk.
Este Webphone lo que permite es que desde una página web se pueda conectar a un conmutador de Voz sobre IP y desde ahí poder llamar a una extensión de la empresa propietaria de la página web, el servicio de doodling permite enviar parámetros de configuración al cliente webphone para hacer el registro SIP en automático, de tal forma que los clientes que visiten una página web podrían ponerse en contacto directo con las personas de ventas para solicitar mayor información sobre algún producto en específico.
Lo interesante de Doodling es que por ahora es un servicio gratuito y se puede empotrar en cualquier página web, el único detalle es que por ahora no funciona en Linux, más que solo en navegadores bajo Windows, pero algo es algo..
Asi que sin más pueden entrar a la siguiente página y probar Doodling. http://doddling.com/
Comentarios Recientes