sábado, octubre 08, 2011

Presentacion de Telefonia IP

  Esto es una prueba de  las presentaciones con audio de slideshare, muy bueno.  Telefonia
View another webinar from Julio Saldivar

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





miércoles, agosto 24, 2011

Como bloquear paginas en HTTPS en Zentyal


Este problema es recurrente para los administradores de redes que utilizan proxys con Squid para controlar las paginas que se acceden a Internet. Normalmente uno bloquea una pagina vía las reglas del proxy, pero esto no aplica a paginas https como facebook, gmail y otras, ya que el proxy no puede bloquear en https, debido a que este va encriptado y no lo puede diferenciar. Además de lo expuesto anteriormente no podemos bloquear todo el trafico https por el tema de acceso a paginas importantes como Bancos, servicios publicos, etc. Aqui explicare como bloquear en especifico facebook vía el firewall de Zentyal.

Obtener IPs de Facebook y creando objeto facebook

Para obtener las ips de facebook es necesario realizar un ping a las direcciones:

facebook.com
www.facebook.com
login.facebook.com
De esto se obtienen 3 ips de las cuales debemos obtener sus rangos, para eso existe http://whois.arin.net/ui, y creamos un objeto llamado facebook con estos rangos como vemos en la siguiente imagen.
Creando servicio HTTPS

En la seccion de servicios creamos el servicio https como se ve en la siguiente imagen.

Creando la regla de firewall

En el firewall de Zentyal, en la zona filtro para reglas internas, creamos una regla como la siguiente:

Y con esto facebook via https no debería esta permitido, verifica esto en el logs de firewall.