Monta tu centralita de telefonía VoIP con Asterisk (2º parte

Monta tu centralita de telefonía VoIP con
Asterisk (2º parte): Interfaz web BEETON
Enrique Morón Ayuso
http://about.me/emoronayuso
ASTERISK: Una caja de herramientas
Registro de extensiones
Plan de llamadas
Buzón de voz
Sistema de voz interactivo
Conferencias
Registro de llamadas
Música en espera
Colas de llamadas
¿Un panel de administración web?
¿Qué paneles web existen ya?
AsteriskGUI
FreePBX
Voiceone
Mi proyecto:
Beeton
Documentación
Monitorización
básica del sistema
Gestión
de
usuarios
y
extensiones
Monitorización
básica de llamadas
actuales
Sistema de gestión
de IVR (Interactive
Voice Response)
Gestión del buzón
de voz de los
usuarios
Reglas de llamada
entrantes
y
salientes
(Incoming/Outboun
d Calling roules)
Grupos de llamada
Música en espera
Gestión de colas
de llamadas
Consola
de
Asterisk CLI
Soporte
Complejidad de uso
Fuente:
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Fuente:
http://wiki.freepbx.org/display/F2/Screen+Shots
Fuente:
http://wiki.freepbx.org/display/F2/Screen+Shots
AsteriskGUI
Fuente:
https://wiki.asterisk.org/wiki/display/AST/Asterisk+GUI
Principio KISS
¿Qué es Beeton?
Panel web de administración y monitorización básica
de Asterisk
Otorgar una interfaz que permite una gestión básica y
sencilla a usuarios inexpertos
Gestión modular de funcionalidades, para amoldar el
panel a las necesidades de cada caso
Integra librerías de otro proyecto de software libre:
PYST
Primer pantallazo
Fuente:
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Desmontando a Beeton
ARA
AGI
/etc/asterisk/extensions.conf
/etc/asterisk/sip.conf
/etc/asterisk/iax.conf
/etc/asterisk/voicemail.conf
/etc/asterisk/jabber.conf
/etc/asterisk/queues.conf
/etc/asterisk/cdr.conf
…....
(
)
MVC: Don Repeat Your Self
“The web framework for perfectionists with deadlines”
Desmontando a Beeton
Confguración de Asterisk Realtime Architecture: ARA
Fuente:
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Desmontando a Beeton
Confguración de la BBDD del registro de llamadas
Fuente:
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Desmontando a Beeton
AGI: Asterisk Gateway Interface
Permite a Asterisk comunicarse con programas externos
Desmontando a Beeton
Proyecto PYST:
Una interfaz de Python para Asterisk
Es un conjunto de interfaces y librerías que permiten
la programación de Asterisk utilizando Python
Tiene soporte para AGI
Enmascara toda la comunicación del script Python y
Asterisk
Facilita el Debug de AGI
Fuente:
http://pyst.sourceforge.net/
Desmontando a Beeton
Uso de ARA + AGI
Fuentes:
http://www.voip-info.org/wiki/view/Asterisk+-+documentation+of+application+commands
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Desmontando a Beeton
Uso de ARA + AGI
Fuentes:
http://www.voip-info.org/wiki/view/Asterisk+-+documentation+of+application+commands
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Desmontando a Beeton
Uso de ARA + AGI
/etc/asterisk/extensions.conf
[usuarios]
switch => Realtime/@
[dpto comercial]
switch => Realtime/@
Fuentes:
http://www.voip-info.org/wiki/view/Asterisk+-+documentation+of+application+commands
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Desmontando a Beeton
Uso de ARA + AGI
/etc/asterisk/extensions.conf
[usuarios]
switch => Realtime/@
[dpto comercial]
switch => Realtime/@
Fuentes:
http://www.voip-info.org/wiki/view/Asterisk+-+documentation+of+application+commands
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Desmontando a Beeton
Uso de ARA + AGI
/etc/asterisk/extensions.conf
[usuarios]
switch => Realtime/@
[dpto comercial]
switch => Realtime/@
Id| contexto| extension | prioridad | app | appdata
24 | usuarios |
302
|
1
| AGI | responder_llamadas.py
Fuentes:
http://www.voip-info.org/wiki/view/Asterisk+-+documentation+of+application+commands
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Desmontando a Beeton
Uso de ARA + AGI
/var/lib/asterisk/agi-bin/responder_llamadas.py
/etc/asterisk/extensions.conf
[usuarios]
switch => Realtime/@
[dpto comercial]
switch => Realtime/@
Id| contexto| extension | prioridad | app | appdata
24 | usuarios |
302
|
1
| AGI | responder_llamadas.py
Fuentes:
http://www.voip-info.org/wiki/view/Asterisk+-+documentation+of+application+commands
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Desmontando a Beeton
Diseño: Diagrama conceptual
Fuente:
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Funcionalidades de Beeton
Registro de llamadas
Fuente:
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Funcionalidades de Beeton
Registro de extensiones
Fuente:
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Funcionalidades de Beeton
Registro de extensiones
Fuente:
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Funcionalidades de Beeton
Sistema de respuesta de voz interactiva
Fuente:
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Funcionalidades de Beeton
Acceso a la consola de Asterisk con
historial de comandos
Fuente:
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Desarrollo de funcionalidades en Beeton
Módulos del plan de llamadas
Capa de
presentación:
Plantillas
Definición de la
funcionalidad
nueva_funcionalidad.tar.gz
Lógica del plan de
llamadas
#include Proyecto PYST
Fuente:
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Desarrollo de funcionalidades en Beeton
Defnición del modelo
esperar.json
func_beeton_espera.tar.gz
Fuente:
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Desarrollo de funcionalidades en Beeton
Defnición del modelo
esperar.json
Lógica de la funcionalidad
esperar.py
func_beeton_espera.tar.gz
Fuente:
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Pruebas: Hardware utilizado
Sistema embebido: Placa Alix3D2
+
Fuente:
sobre una Compact Flash de 4GB
https://beetonvoip.wordpress.com/2014/04/04/instalando-asterisk-en-una-placa-alix3d2lx800-con-debian/
Pruebas: Hardware utilizado
Unifcación de tecnologías VoIP y GSM
Gateway GoIP
Teléfono IP: DESTEL
Fuente:
https://beetonvoip.wordpress.com/2014/04/13/unifcando-tecnologias-gsm-voip/
Pruebas: Rendimiento
Resultados de las pruebas hechas con SIPp
Llamadas %CPU Libre %CPU Ocupada Memoria usada (MB)
0
87,6
12,4
236
6
72,3
27,7
236
11
53,9
46,1
236
16
31,4
68,6
236
21
17,5
82,5
239
26
0
100
240
Fuente:
Tráfico de red (kbits/s)
65
919
1776
2983
3276
4351
https://beetonvoip.fles.wordpress.com/2014/03/documentacion_completa_proyecto_beeton.pdf
Pruebas: Conclusiones
Fuente:
https://askozia.com/confgure-your-askozia-phone-system/
Futuro: Colaboración
[email protected]
@emoronayuso
https://beetonvoip.wordpress.com
https://github.com/emoronayuso
Algunos desarrollos futuros
Desarrollo de nuevas funcionalidades para el plan de
llamadas de la interfaz:
-
Colas de llamadas
Buzón de voz
Salas de conferencia
Servicio de fax
Integración con Jabber
Generar mas gráfcas para las estadísticas del sistema y la
monitorización
Sistema de backup de la confguración (export/import JSON)
Integración con Nagios
Monta tu centralita de telefonía VoIP con
Asterisk (2º parte): Interfaz web BEETON
Enrique Morón Ayuso
http://about.me/emoronayuso