Un ayuda memorias para temas de redes, telefonía y programación
viernes, septiembre 16, 2011
Grabar llamadas en Asterisk y administrarlas via Web
Aqui les mostre un pequeño sistema de grabacion hecho en Asterisk y con administracion Web. El diagrama del sistema es el siguiente:
Dialplan
En el dialplan necesitamos ejecutar la aplicacion MixMonitor la cual creara el archivo de audio de la llamada, esta sera guardar en un disco RAM, cuando concluye la grabacion ejecutamos el script grabacion y le entregamos varios datos entre ellos la ubicacion de la grabacion.
[grabacion]
;Prueba de grabacion
exten=>20,1,set(tiempo=${UNIQUEID})
exten=>20,n,set(GRABACION=/mnt/ramdisk/${tiempo}.wav)
exten=>20,n,set(LLAMANTE=${CALLERID(num)})
exten=>20,n,set(LLAMADO=${EXTEN})
exten=>20,n,set(FECHA=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})
exten=>20,n,MixMonitor(/mnt/ramdisk/${tiempo}.wav||python /var/lib/asterisk/agi-bin/grabacion.agi ${LLAMANTE} ${LLAMADO} ${CDR(duration)} ${GRABACION})
exten=>20,n,Dial(SIP/${EXTEN},30,hrtT)
exten=>20,n,hangup()
Script
El Script se ejecuta al finalizar mixmonitor, y su trabajo en subir la informacion a la base de datos.
#!/usr/bin/python
#utilizaremos las librerias para manejo de SQL de Web2py
from gluon.sql import DAL, Field
import sys
# Definimos la base de datos
db=DAL("mysql://root:password@127.0.0.1/grabaciones")
# Definimos la tabla
db.define_table('trabajos',Field('llamante'),Field('llamado'),Field('fecha'),Field('grabacion','upload',uploadfolder='/home/www-data/web2py/applications/grabacion/uploads'),migrate=False)
llamante=sys.argv[1]
llamado=sys.argv[2]
fecha=sys.argv[3]
grabacion=sys.argv[4]
audiograbacion = open(grabacion,'rb')
# insertamos los datos en la base de datos
db.trabajos.insert(llamante=llamante,llamado=llamado,fecha=fecha,grabacion=db.trabajos.grabacion.store(audiograbacion,grabacion))
db.commit()
Aplicacion Web
Para realizar la aplicacion web utilizamos Web2py. Esta aplicacion lo que hace es conectarse a la misma base de datos que utiliza el script y asi se puede visualizar. Adjunto la aplicacion, eso si para utilizarla debes tener instalado Web2py.
Descarga Aplicacion
Suscribirse a:
Comentarios de la entrada (Atom)
No hay comentarios.:
Publicar un comentario