Bienvenidos a VozBox!
http://www.vozbox.es
==============================================
Implantación de un sistema VoIP basado en Asterisk. VozBox-Servidor de Comunicaciones.
Este proyecto está diseñado para instalar la última versión estable Certified-asterisk-11.2-current + FreePBX en un sistema basado en Debian Wheezy.
PLATAFORMAS Y VERSIONES TESTEADAS:
+ 686 Y amd64
+ Debian Wheezy
+ Asterisk: Certified-asterisk-11.2-current
+ Libpri 1.4.14
+ DAHDI LINUX COMPLETE 2.6.2.+2.6.2
+ FreePBX 2.11.0.1
+ Avantfax 3.3.3
+ FOP2 2.27
+ Webmin 1.630
Documento LEEME.txt en Files.
Esta ISO instala Debian Wheezy, Asterisk(r) y Freepbx-GUI.
Descarge la ISO desde http://prdownloads.sourceforge.net/vozbox/vozbox-2.11-DISTRO.iso
Forma de Uso:
sudo dd if=/home/Donwload/vozbox-2.11-DISTRO.iso of=/dev/sdX bs=1M
donde X es la unidad USB montada en su sistema.
Notas:
- La instalación genera un fichero de reporte en root con nombre: install-VozBox.log
[Calidad de Servicio]
[Codecs]
[Instalaciones]
[scripts y otras cosas útiles]
[Modelo de actuación ante averías de VozBox]
1.1 VoIP
1.2 ¿Qué es VoIP?
VoIP (Voice Over Internet Protocol), es la transmisión de datos de voz sobre redes basadas en IP. La transmisión se genera dividiendo los flujos de audio en pequeños paquetes que son transportados sobre las redes IP.
Este sistema permite convivir con los sistemas tradicionales de comunicación. Las líneas telefónicas PSTN entrantes, pueden ser convertidas a VoIP, a través de una pasarela (Gateway) que permite recibir y hacer llamadas en la red telefónica normal.
1.2.1 Elementos fundamentales de una red VoIP
- Terminales: teléfonos IP que pueden ser hardware o software. - GateKeeper: controlador y gestionador de toda la comunicación de VoIP. - Gateway: dispositivo que hace de enlace con la telefonía fija tradicional. Actúa de forma transparente al usuario.
1.2.2 Protocolos de VoIP
Los protocolos son reglas muy estrictas que rigen la gestión de la transmisión de los paquetes de datos sobre la red.
Hay multitud de protocolos: H323, SIP, Megaco , Skinny Client Contro Protocol, MiNet, CorNet-IP, IAX, Skype, IAX2, Jingle, Telme y MGCP.
A continuación haremos una breve descripción algunos de los más importantes:
H323:
Fue desarrollado en 1996 por la UIT5 como un medio para transmitir voz, vídeo, datos, fax y las comunicaciones a través de una red basada en IP al tiempo que se mantiene conectividad con la PSTN. Está basado en el protocolo RDSI Q.931 y está enfocado para situaciones en las que se combina el trabajo entre IP y RDSI. Facilita la introducción de Telefonía IP en las redes existentes de RDSI basadas en sistemas PBX.
SIP:
Fue desarrollado por el IETF. Se trata de un protocolo de señalización para crear, modificar y terminar sesiones con uno o más participantes. Estas sesiones incluyen llamadas telefónicas por Internet, distribución de datos multimedia, y conferencias multimedia.
Tiene una sintaxis muy similar al HTTP.
• Ventajas:
La gran mayoría de teléfonos IP soportan este protocolo.
• Inconvenientes:
Tiene problemas con el NAT. Los datos y señalización viajan de forma
separada y suele necesitar un servidor STUN para resolver este
problema.
Son necesarios muchos puertos. Necesita el puerto 5060 para señalización y
2 puertos RTP para cada conexión de audio. Es necesario abrir muchos
puertos en el Firewall.
IAX:
Es un protocolo de señalización que fue creado por Mark Spencer, para paliar una serie de inconvenientes y problemas del SIP.
• Ventajas:
Consume mucho menos ancho banda que el SIP. Los mensajes IAX son
codificados de forma binaria mientras que los del SIP son mensajes de
texto. Así mismo IAX intenta reducir al máximo la cabecera de los
mensajes.
No hay problema de NAT. Los datos y la señalización viajan
conjuntamente.
Sólo necesitamos el puerto, el 4569, para mandar la información de
señalización y los datos de todas sus llamadas.
• Inconvenientes:
No está estandarizado y por tanto no está muy extendido en dispositivos
hardware.
1.2.3 Parámetros de VoIP
Codecs
Para poder transmitir la voz sobre una red IP, necesitamos codificarla y para ello, empleamos códecs de compresión de audio. Según el códec que utilicemos ocupará más o menos ancho de banda y esto influirá mucho en la calidad de los datos transmitidos.
Los codecs más utilizados en VoIP son:
• G.711
En LAN, es el códec que más se utiliza. La calidad de audio es óptima y el consumo es moderado.
Proporciona un flujo de datos de 64 Kbits/s.
• G.729
Es el más optimizado en ancho de banda , pero el consumo de la CPU es mayor. Se suele utilizar para extensiones telefónicas que están fuera de la red local y que por tanto son lejanas.
Proporciona un flujo de datos de 8 Kbits/s, aunque también pueden suministrar tasas de 6,4 Kbit/s y 11,8 Kbit/s para peor o mejor calidad respectivamente.
Retardo o latencia
Parámetro que controla el retardo de transito y de procesado de la conversación. Un retardo óptimo es aquel que no supera los 159 ms.
Calidad de servicio
Para llegar a este objetivo se siguen unos criterios:
• Supresión de silencios. Se aprovecha mejor el ancho de banda al transmitir menos información.
• Compresión de cabeceras aplicando los estándares RTP/RTCP.
• Priorización de los paquetes que tienen menor latencia.
• Implantación de Ipv6. Proporciona mayor espacio de direccionamiento y la posibilidad de Tuneling.
1.2.4 ¿Cómo se transmite la VoIP por la red?.
Los paquetes de VoIP se transmiten sobre la red basada en IP aprovechando el modelo TCP/IP.
Consta de 5 capas:
Aplicación
Protocolos NTP, RTP, RTCP aseguran la entrega y calidad de los paquetes VoIP.
Transporte
El protocolo UDP, transporta los paquetes VoIP desde inicio a fin.
Internet
Se añade la dirección IP al paquete. Cada dispositivo de VoIP (teléfono o PC), tiene una única dirección IP que enruta la entrega de paquetes VoIP para y desde el llamante al receptor durante toda la llamada.
Interface de Red
Se añade la MAC adress al paquete.
Físico
En esta capa se convierten todos los paquetes a señales eléctricas u ópticas, para ser transportados sobre la red interna o externa.
Los protocolos específicos que se utilizan en cada capa son:
Aplicación:
En esta capa los paquetes de VoIP utilizan 3 protocolos:
• NTP: ayuda a asegurar que las señales son transmitidas y recibidas en el margen de tiempo necesario para asegurar la calidad de recepción.
• RTP: proporciona funciones de transporte de red de fin a fin, para señales de voz digitales, encapsuladas en el paquete VoIP.
• RTCP: monitoriza la entrega de la señal de voz y proporciona funciones mínimas de control para asegurar la entrega de los paquetes.
Transporte:
La mayoría de los datos de una red usan el protocolo TCP en la capa de transporte, mientras que en VoIP se utiliza el UDP.
El TCP es más lento que el UDP. Utiliza más tiempo en la entrega de paquetes en el destino para asegurar que llegan correctamente. Pero al tratarse de un sistema que funciona en tiempo real es más importante la velocidad de entrega de paquetes, que no la seguridad en que llegan todos los paquetes. Por eso se usa el UDP.
1.2.5 Ventajas del sistema VoIP
Funcionales
• Provee movilidad a nuestros empleados. Permite a los usuarios conectar su teléfono en
cualquier parte en la oficina. Los usuarios simplemente cogen su teléfono y lo conectan
al puerto Ethernet más cercano y mantienen su número existente.
• Permite comunicación unificada integrando otros servicios disponibles en Internet como
son vídeo, mensajes instantáneos, fax-to-mail, etc.
• Escalable. Podemos trasmitir más de una llamada sobre la misma línea telefónica. La
transmisión de VoIP hace más fácil aumentar las líneas telefónicas cuando se
incorporan nuevos empleados.
Gestión
• Mucho más fácil de instalar y configurar que una central telefónica propietaria
• Nos facilita la administración por Web de forma fácil e intuitiva, frente a otros sistemas
como por ejemplo centralita Siemens Hipath que necesitan de un software específico para
poder configurarlo.
• Mejor reporte.
Económicas
• Tenemos voz y datos en una misma infraestructura. No hay necesidad de cableado
telefónico separado.
• Reducción significativa de costes al aprovechar Internet.
• Proporciona servicios que normalmente son muy difíciles y costosos de implementar
usando la red tradicional de voz PSTN. Funcionalidades que normalmente son
facturadas con cargo extra por las compañías telefónicas, como identificación de
llamada, transferencia de llamadas, remarcado automático, conferencias, etc, son fáciles
de implementar y sin coste alguno.
• El estándar SIP elimina teléfonos propietarios y costosos.
• Llamadas entre sedes gratuitas.
2. ASTERSIK
2.1 ¿Qué es Asterisk?
Asterisk es la implementación de una central telefónica PBX por software, que corre sobre la plataforma Linux o Unix, conectado a la PSTN. Permite conectividad en tiempo real entre las redes PSTN y redes VoIP. Es una aplicación de código abierto, bajo licencia GPL que fue creada por Marc Spencer de Digium y que ha sido desarrollada por el mismo, junto a programadores de todo el mundo.
Conceptos generales
Canal
Medio por el cual se emite una llamada entrante o saliente. Por defecto Asterisk soporta una serie de canales, los más importantes son:
• H323, IAX2, SIP, MGCP (Protocolos de VoIP).
• Console: GNU Linux OSS/ALSA sound system.
• ZAP: Líneas analógicas o digitales.
Dialplan
Configuración de la centralita Asterisk que indica el camino a seguir durante una llamada, de inicio a fin. En términos generales, podríamos decir que es quien lleva el comportamiento lógico de la centralita.
Extensión
En la telefonía tradicional una extensión se asocia a un teléfono, interfaces o menús. En Asterisk, una extensión es una lista de comandos a ejecutar. Se accede a una extensión cuando se recibe una llamada entrante por un canal dado, cuando el usuario que ha llamado marca la extensión, cuando se ejecuta un salto de extensiones desde el Dialplan de Asterisk.
Contexto
El Dialplan o lógica del comportamiento de Asterisk, se divide en uno o varios contextos. Un contexto es una colección de extensiones.
Los contextos, sirven para poder diferenciar “el lugar” donde se encuentra una llamada y así por ejemplo, aplicar políticas de seguridad para usuarios. Asterisk no se comporta igual cuando llama un usuario y marca el 1 y cuando un usuario local marca el mismo 1. Menús y submenús diferenciados. En general es una forma de diferenciación.
Aplicación
Asterisk ejecuta secuencialmente los comandos asociados a cada extensión. Esos comandos son realmente aplicaciones que controlan el comportamiento de la llamada y del sistema en sí.
Ejemplos:
• Hangup: colgar una llamada.
• Dial: realizar una llamada saliente.
• Goto: saltar a otra extensión o contexto.
La arquitectura de Asterisk está formada por cuatro APIs. Un API es el conjunto de funciones y procedimientos que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.
Usando este sistema basado en APIs, la base del Asterisk no tiene porque preocuparse por detalles como, que llamada está entrando, que códec se está utilizando, etc.
Descripción de las APIs
• API de Canales Asterisk: Maneja el tipo de conexión por el cual el cliente está llegando sea una conexión SIP, H323, RDSI, etc. • API de Aplicaciones Asterisk: Permite a varios módulos de tareas cumplir varias funciones, multiconferencias, lista de directorios, buzones de voz, aplicaciones personalizadas, etc. • API de traducción de Codecs: Carga módulos, codecs, para apoyar varios tipos de audio, codificando y decodificando formatos tales como G711, G729, GSM, etc. • API de formato de ficheros Asterisk: Maneja la lectura y escritura de varios formatos de archivos para el almacenaje de datos en el sistema de archivos.
Usando estas APIs Asterisk alcanza una completa abstracción entre sus funciones básicas y las diferentes tecnologías y aplicaciones relacionadas.
2.3 Servicios que ofrece
Permite implementar los mismos servicios que una centralita clásica, pero sin coste adicional, tales como:
• Transferencia de llamadas, internas y externas . • Desvío de llamadas si está ocupado o no contesta. • Opción No molestar (Do Not Disturb). • Parking de llamadas (Call Parking). • Llamada en espera (Hold). • Grupos de llamada (Ring groups). • Identificador de llamante (CallerID). • Sistema DISA. (método por el cual una persona externa a la oficina puede realizar llamadas a través de la centralita). • Operadora Digital (menús interactivos y guiados). • Música en espera y en transferencia (ficheros MP3 actualizables por el usuario). • Captura de llamadas de forma remota (remote pickup). • Buzones de voz (general, individuales, por grupos) protegidos por contraseña. • Gestión del buzón de voz mediante el terminal telefónico y página web. • Gestión de listas negras (números telefónicos con acceso prohibido). • Acciones a realizar según horarios y fechas (horario laboral, dias festivos, etc.). • Salas de conferencia (2 o más terminales simultáneamente). • Registro y listados de llamadas entrantes y salientes, con gráficas de consumo. • Detección automática de entrada de faxes. • Recepción de fax desde el propio sistema y posterior envío por e-mail. • Envío de faxes desde el propio sistema a través de interfaz web. • Gestión de colas de llamadas entrantes. • Grabación de llamadas entrantes y salientes. • Monitorización de llamadas en curso. • Soporta videoconferencia con protocolos SIP e IAX2.
2.4 Codecs
Utiliza los codecs de audio: ADPCM25, G.711, G.723.1, G.726, G.729, GSM, ilbc, linear, lpc- 10, speex.
2.5 Protocolos
Asterisk, soporta extensiones que soporten los protocolos SIP,IAX, MGCP H.323, tanto para teléfonos IP físicos como teléfonos IP lógicos (Softphone).
2.6 Integración de Asterisk con la telefonía tradicional
Se efectúa mediante interfaces analógicos en el caso de líneas analógicas y mediante interfaces digitales en el caso de líneas RDSIs.
Interfaces analógicos
La integración se efectúa a través de dispositivos FXO, FXS. Los dispositivos FXO se utilizan para conectar con líneas analógicas PSTN, mientras que los dispositivos FXS, permiten conectar teléfonos analógicos no VoIP.
Interfaces digitales
Tenemos 2 tipos de accesos RDSIs:
• Acceso Básico (BRI): 2 canales de voz de + 1 de señalización.
• Acceso Primario (PRI): 30 canales de voz + 1 de señalización.
Tanto en los interfaces analógicos como en los digitales, se instala el driver DAHDI. Se trata de un interfaz de kernel que permite acceder a las tarjetas de comunicaciones y se descarga de internet. La configuración de los interfaces de hardware, se almacena en etc/asterisk/chan_dahdi.conf. Luego se configura dahdi-channels.conf (etc/astersik/dahdi-channels.conf) que es donde está la configuración Asterisk para la utilización de dichos interfaces de hardware.
2.7 Administración de Asterisk
La administración de Asterisk se hace por interface web o por la línea de comandos CLI en modo administrador.
Asterisk CLI es la consola de Asterisk desde donde podemos “debugear” y comprobar el funcionamiento de Asterisk. Para acceder a ella debemos ejecutar asterisk –r en la línea de comando (ejemplo: utilizando la aplicación Putty en Windows).
Wiki: Calidad de Servicio
Wiki: Codecs
Wiki: Instalaciones
Wiki: Modelo de actuación ante averías de VozBox
Wiki: scripts y otras cosas útiles