Mostrando entradas con la etiqueta telefonia. Mostrar todas las entradas
Mostrando entradas con la etiqueta telefonia. Mostrar todas las entradas

miércoles, abril 09, 2008

AsteriskNow

Asterisk es un software que permite crear una central telefónica a partir de una computadora, además se pueden agregar características especiales que lo hacen una solución completa de telefonía empresarial por una pequeña fracción del costo que supondría hacer lo mismo con PBX privativos. Esta es una mini-guia de configuración de AsteriskNow...


AsteriskNow es una distribución GNU/Linux basada en Slax una pequeña distro basada a su vez en Slackware que incluye Asterisk y sus principales componentes auspiciada por Digium la empresa que desarrolla Asterisk y vende tarjetas y artículos de telefonía VoIP para el Asterisk y otros PBX.


Además de AsteriskNow existe otra distribución llamada Trixbox (anteriormente llamada Asterisk@Home), esta distribución está basada en Fedora y por lo tanto la instalación de paquetes es muy sencilla utilizando yum y demás herramientas propias de esta distribución.


Una de las principales ventajas de utilizar estas distribuciones en lugar de hacer una instalación de cualquier otra y en ella instalar Asterisk es que estas solo instalan los componentes más necesarios para el correcto funcionamiento y administración de Asterisk, se recomienda que el servidor de Asterisk sea exclusivo para este fin, sin embargo nada impide que la misma computadora ejecute otras aplicaciones y/o servicios, incluso, Trixbox instala SugarCRM un administrador de relaciones con los clientes que se integra muy bien con Asterisk.


En mi caso decidí instalar AsteriskNow debido a que soportaba mejor la tarjeta FXS/FXO que se instaló en el servidor, aunque la instalación de cualquiera de las dos distribuciones es muy similar entre sí e incluso no es muy diferente a la instalación de cualquier otra distribución GNU/Linux, en el caso de AsertiskNow ni siquiera da la opción de particionar el disco de forma personalizada así que se debe de tener cuidado por que eliminará TODOS los datos en el disco duro que se destine para la instalación de AsteriskNow.


Es digno de mención que Trixbox instala FreePBX que es un administrador gráfico de Asterisk via web (o navegador no se como es correcto decirlo) y que AsteriskNow instala Asterisk-GUI que realmente es mucho más limitado de que FreePBX, sin embargo se dice que la próxima versión de Trixbox también instalará por defecto Asterisk-GUI (realmente ignoro por qué, a mi me parece retroceso) y como punto a favor de AsteriskNow está el que su instalación se parece más a una instalación manual, ya que trixbox instala Asterisk con una serie de archivos enlazados que lo hacen más difícil de entender o manipular desde los archivos de configuración.


Bueno de cualquier forma son dos opciones muy buenas, en mi modesta opinión recomiendo Trixbox para aquellos entornos en donde las necesidades de características especiales sean más grandes, y AsteriskNow en ambientes en los que se necesite un servicio “básico” y lo pongo entre comillas por que como veremos a continuación lo básico es muy relativo ya que provee características que muchos PBX privativos o por hardware envidiarían o bien su implementación resulta de un costo infranqueable para empresas medianas, ya no digamos pequeñas o micro-empresas.


Después de esta introducción algo extensa voy a tratar de explicar cuales son las características de AsteriskNow y como ponerlo a funcionar en un entorno modesto.


La instalación de AsteriskNow no es muy complicada ni diferente a la instalación de otras distribuciones GNU/Linux, además es completamente gráfica e incluso no permite particionado (o particionamiento ¿como es más correcto? ) manual del disco así que obviaré esta parte.


Al terminar la instalación nos presenta un asistente de configuración de Asterisk muy sencillo, en la primer pantalla muestra las tarjetas de telefonía análoga que tenemos instaladas, es decir la capacidad que tenemos de comunicarnos con teléfonos normales.

Imagen:1-asistente-asterisk.png

La segunda pantalla es para configurar la fecha y hora no hay más que explicar salvo que si la fecha y la hora de la tarjeta madre corresponden a UTC en la instalación esta pantalla no se presentará.


La siguiente pantalla es más importante, se refiere a las extensiones que tendremos, los campos que nos presenta son:

   * La cantidad de dígitos que poseerán las extensiones
* En qué número iniciarán y si a las extensiones análogas se les puede asignar múltiples extensiones, esto es útil en el caso de que no sean muchos teléfonos y queramos dar la impresión de múltiples departamentos o bien para dar a los supervisores de distintos departamentos un solo teléfono que lo conecte a la linea de los departamentos que supervisa.

Imagen:2-asistente-asterisk.png


La pantalla de proveedores de servicios es la siguiente pantalla que nos muestra el asistente esta nos sirve para configurar las formas en las que nuestro servidor Asterisk puede comunicarse con “el mundo exterior”. Existen dos tipos de proveedores de servicios los análogos o PSTN es decir el proveedor de telefonía común Ejemplo: Telmex, Telefonica, Alestra, etc. Y los proveedores de VoIP de los cuales AsteriskNow posee dos preconfigurados que son IAXTEL y Voicepulse, no se si tengan relación personal con Digium o le hallan pagado algo para aparecer ahí pero la idea es que su configuración debería ser más sencilla aunque de IAXTEL no se nada ya que no he podido acceder a su sitio si alguien lo logra haga favor de avisarme ( http://www.iaxtel.com/ ) por su parte Voicepulse ofrece buenas tarifas en llamadas a México aunque existen otros proveedores que las mejoran, ya es cuestión de que busquen las mejores tarifas o su conveniencia porque también existe la posibilidad de configurar un proveedor VoIP personalizado y los campos son:

   * Un comentario.
* El protocolo a utilizar (IAX o SIP) .
* Si necesita identificación de usuario.
* La dirección de el proveedor.
* Nuestro usuario.
* Nuestra contraseña.

Imagen:3-asistente-asterisk.png

Tengo que decir, que yo intenté configurar de esta manera el proveedor de servicio Broadvoice y no tuve éxito y lo tuve que hacer de forma “manual”, más adelante hablaremos de esto.


La siguiente etapa es configurar las reglas de marcación, ya existen algunas reglas de marcación definidas sin embargo estas son validas para EEUU y además no tienen asignado ningún proveedor por lo tanto no se pueden utilizar, sin embargo es muy sencillo configurar las reglas de marcación aunque estas reglas pueden ser tan complejas como nuestro gusto o necesidades lo dicten, al solicitar agregar una regla de marcación nos pide varios datos:

Imagen:4-asistente-asterisk.png

   * Nombre de la regla: es solo para identificarla y debe ser una cadena con signos estándar.
* El siguiente campo configura hacia que proveedor enviaremos la llamada cuando se cumpla la regla
* Los campos que siguen forman la regla propiamente dicha; existen dos modos de definirla:
* El modo fácil; que consiste en completar la oración: “Si el número comienza por ____ y es seguido de ____ dígitos (o más) quitar ___ dígitos y anteponer _______”
* Y el modo personalizado: que consiste en escribir una cadena en la cual existen los siguientes comodines:
+ N -> Cualquier dígito desde 2 hasta 9
+ X -> Cualquier dígito desde 0 hasta 9
+ . -> Cualquier cantidad de dígitos ( es un punto “.” )


Un ejemplo muy simple de esta forma sería 01XXXXXXXXXX (marcación larga distancia lada), otra forma es poner todos los números tal cual de esta forma podemos establecer que a través de determinada linea (proveedor) solo se puedan hacer llamadas a un solo número (0444641035409 mi celular :-D ). Espero disculpen lo simples de los ejemplos pero en realidad pueden ser tan complejos como gusten. Esta forma de establecer la regla de marcado también incluye la opción de quitar dígitos y agregar otros como en el caso anterior, lo cual nos puede dar la posibilidad incluso de crear claves de acceso a las lineas o lo que su imaginación y necesidades dicten.


Tenemos la oportunidad de configurar un buzón de mensajes en la siguiente etapa del asistente de configuración inicial, en este caso la información necesaria incluye:

Imagen:5-asistente-asterisk.png

   * Extensión para revisar mensajes (debe contener la cantidad de dígitos que se estableció en un paso anterior ).
* Si se van a enviar por correo-e los mensajes que lleguen a la extensión.
* El buzón maneja carpetas para administrar los mensajes de como configurar las carpetas hablaremos después ya que son muy flexibles, la idea en este caso es que nos pide una cantidad máxima de mensajes por carpeta.
* La duración de cada mensaje.
* El tiempo que debe timbrar el teléfono antes de enviar a la llamada entrante al buzón.


El último paso de el asistente de configuración es el establecimiento de las extensiones, en caso de querer agregar extensiones de usuarios tendremos que llenar algunos campos como son:

Imagen:6-asistente-asterisk.png

   * El número de extensión (obligatorio) este debe ser de la longitud que establecimos y por defecto nos pone el número inicial y este se incrementa automáticamente con cada nueva entrada.
* Nombre completo (opcional) no es necesario que sea real pero nos puede servir para identificar la cuenta.
* Contraseña (obligatorio) no es necesario ponerla para Asterisk, sin embargo muchos clientes necesitan enviar una contraseña y si el servidor tiene establecido NONE como contraseña y se envía pues no nos dará acceso.
* e-mail (opcional) el correo del titular de la extensión para recibir sus mensajes de voz o algún comunicado del administrador.
* Id de llamada (caller id) (opcional) es lo que se mostrará en las pantallas de los clientes cuando se llame desde esa extensión, es como el nombre del identificador de llamadas, si no se establece se enviará el número de extensión hay una cosa que hay que considerar; se puede poner cualquier cosa y de un tamaño máximo de 999 caracteres, sin embargo, los teléfonos normales solo pueden presentar 8 caracteres y solo simbolos US-ASCII o ASCII extendido así que no conviene abusar ni siquiera de los espacios
* Teléfono análogo (analog phone) en caso de que el teléfono sea análogo y esté conectado directamente a un puerto análogo de Asterisk.
* Reglas de marcado: define cual regla de marcado de las establecidas se utilizará al llamar desde esa extensión.
* Si va a estar en el directorio de Asterisk.
* Si posee un correo de voz.
* Si es un cliente que admita SIP.
* Si es un cliente que admita IAX.
* Si esa extensión puede enviar señales para conectar con una aplicación cliente en el servidor Asterisk (opción por demás interesante que después explicaremos).
* Si es un “agente” (un usuario miembro de un grupo predefinido).
* Si soporta llamada en espera para poder poner en el fondo a sus llamantes.
* Si soporta desvío de llamada y llamada en conferencia.


La última pantalla del asistente es la de rutas de entrada, en esta parte podremos definir hacia donde se encaminarán las llamadas entrantes tomando como referencia el proveedor (linea) del cual vienen y el número que llama, para crear la configuración de esta característica necesitamos llenar los siguientes datos:

Imagen:7-asistente-asterisk.png

   * Ruta: aquí tenemos dos opciones:
o Todas las llamadas entrantes que no coincidan con otra ruta de entrada establecida
o Las llamadas entrantes que coincidan con el siguiente patrón; en caso de seleccionar esta se abrirá automáticamente un campo para establecer el patrón.
* Desde el proveedor: esto es desde cual linea tendría que entrar la llamada esto incluye por supuesto proveedores o lineas VoIP sean internas o externas.
* A la extensión: el número de extensión al que timbrará al recibir la llamada que coincida con las directivas de la ruta.


Al terminar de rellenar estos datos y pasar a la siguiente vista nos dará un mensaje de felicitación por tener un servidor Asterisk listo y trabajando en (créanme) 50 minutos (en la publicidad dice 30 pero dependerá de su equipo y rapidez para teclear y rellenar radio-buttons y check-boxes), ok admito que es un cliente muy básico pero con esto ya podemos empezar a trabajar.

Algunos enlaces interesantes de este tema son:

   http://www.asterisk.org/
http://www.asterisk-es.org
http://www.asterisknow.org/
http://www.trixbox.org/
http://www.asterisk-latam.com/

Próximamente enviaré la segunda parte de está mini-guia de AsteriskNow espero que les guste y más que eso, que se útil para alguien.


Este documento está disponible bajo los términos de la GNU Free Documentation License 1.2

Asterisk para montar centralita telefonica Opensource

Asterisk es una aplicación de software libre (bajo licencia GPL) de una central telefónica (PBX). Como cualquier PBX, se puede conectar un número determinado de teléfonos para hacer llamadas entre sí e incluso conectar a un proveedor de VoIP o bien a una RDSI tanto básicos como primarios.
Mark Spencer, de Digium, inicialmente creó Asterisk y actualmente es su principal desarrollador, junto con otros programadores que han contribuido a corregir errores y añadir novedades y funcionalidades. Originalmente desarrollado para el sistema operativo GNU/Linux, Asterisk actualmente también se distribuye en versiones para los sistemas operativos BSD, MacOSX, Solaris y Microsoft Windows, aunque la plataforma nativa (GNU/Linux) es la mejor soportada de todas.
Asterisk incluye muchas características anteriormente sólo disponibles en sistemas costosos propietarios PBX como buzón de voz, conferencias, IVR, distribución automática de llamadas, y otras muchas más. Los usuarios pueden crear nuevas funcionalidades escribiendo un dialplan en el lenguaje de script de Asterisk o añadiendo módulos escritos en lenguaje C o en cualquier otro lenguaje de programación soportado por Linux.
Para conectar teléfonos estándar analógicos son necesarias tarjetas electrónicas telefónicas FXS o FXO fabricadas por Digium u otros proveedores, ya que para conectar el servidor a una línea externa no basta con un simple módem.
Quizá lo más interesante de Asterisk es que soporta muchos protocolos VoIP como pueden ser SIP, H.323, IAX y MGCP. Asterisk puede interoperar con terminales IP actuando como un registrador y como gateway entre ambos.
Lejos de poder competir con las compañías que comercializan soluciones de VoIP Hw/Sw de alta calidad como Alcatel-Lucent, Cisco, Avaya ó Nortel, Asterisk se empieza a adoptar en algunos entornos corporativos como solución de bajo coste junto con SER (Sip Express Router).

Historia
La aplicación Asterisk fue desarrollada por Mark Spencer, por entonces estudiante de ingeniería informática en la Universidad de Auburn, Alabama. Mark había creado en 1999 la empresa "Linux Support Services" con el objetivo de dar soporte a usuarios de Linux. Para ello necesitaba una centralita telefónica, pero ante la imposibilidad de adquirirla dados sus elevados precios, decidió construir una con un PC bajo Linux, utilizando lenguaje C.
Posteriormente "Linux Support Services" se convertiría en el año 2002 en "Digium", redirigiendo sus objetivos al desarrollo y soporte de Asterisk. ..

Desarrollo del proyecto
El modelo de desarrollo se basa en el uso del sistema de control de versiones Subversion y en un procedimiento de informe de errores denominado Asterisk Bug Tracker. Este último cuenta a su vez con una sistema "de méritos", denominado Karma, en el que aparecen los colaboradores en un ranking, de acuerdo con una puntuación (positiva o negativa) otorgada a las aportaciones que han realizado.
Además se utilizan las habituales herramientas de este tipo de proyectos, como listas de correo, IRC, o documentación on line.

Estructura organizativa
Mark Spencer es el organizador y principal desarrollador, apoyado por un grupo de colaboradores que reciben el nombre de "administradores". Los administradores realizan principalmente labores de programación y control del software generado. Existe también un amplio grupo de programadores, llamados "managers" que pueden aportar soluciones a errores documentados o crear nuevas funcionalidades. Por último están los denominados "reporters", todos aquellos colaboradores que realizan informes sobre errores detectados.
Toda nueva funcionalidad es probada exhaustivamente antes de formar parte del repositorio del sistema de control de versiones y ha de contar finalmente con el visto bueno de los responsables de los repositorios, de acuerdo a criterios de oportunidad, prioridad o importancia de la nueva funcionalidad propuesta.

Industria relacionada
Existen multitud de empresas relacionadas con Asterisk. La mayor parte de ellas siguiendo uno de los modelos de negocio más habituales del software libre, como es el de aportar valor añadido al software, en este caso mediante el diseño, instalación, formación y mantenimiento de centralitas telefónicas basadas en Asterisk.
Digium, la empresa creada por Mark Spencer, amplia este modelo de negocio tanto con la venta de hardware específico, fundamentalmente tarjetas de comunicación, como con la venta de software propietario, entre el que destaca el "Asterisk Business Edition", aplicación basada en Asterisk a la que se le incorporan ciertas funcionalidades.

Estado actual
La versión estable de Asterisk está compuesto por los módulos siguientes:
Asterisk: Ficheros base del proyecto.
Zaptel: Soporte para hardware. Drivers de tarjetas.
Addons: Complementos y añadidos del paquete Asterisk. Opcional.
Libpri: Soporte para conexiones digitales. Opcional.
Sounds: Aporta sonidos y frases en diferentes idiomas.
Cada módulo cuenta con una versión estable y una versión de desarrollo. La forma de identificar las versiones se realiza mediante la utilización de tres números separados por un punto. Teniendo desde el inicio como primer número el uno, el segundo número indica la versión, mientras que el tercero muestra la revisión liberada. En las revisiones se llevan a cabo correcciones, pero no se incluyen nuevas funcionalidades.
En las versiones de desarrollo el tercer valor siempre es un cero, seguido de la palabra "beta" y un número, para indicar la revisión.

Versiones
Las versiones tanto estables como de desarrollo de cada módulo pueden descargarse en la zona de descargas de la página oficial de Asterisk.
A fecha de Marzo de 2008 son las siguientes:

Versión 1.6 (en pruebas)
Asterisk Versión 1.6.0 beta7

Versión 1.4 Estable
Asterisk Version 1.4.19
Zaptel Version 1.4.9
Libpri Version 1.4.3
Addons Version 1.4.6

Versión 1.2 y 1.0
Estas versiones se consideran paralizadas y no se continuarán manteniendo.
Nota: Actualmente la rama 1.4 es la aconsejada para sistemas en producción.

Radiografía
A continuación se presentan dos cuadros con algunos datos y cifras de la aplicación. Estos datos se han obtenido aplicando el modelo COCOMO. Aunque este modelo se aplica habitualmente a procesos "clásicos" de producción de software, y en consecuencia las cifras obtenidas han de tomarse con precaución, permite hacerse una idea del tamaño del proyecto y el coste que podría haber alcanzado en caso de haber sido construido como software propietario.
Resumidamente, en el cálculo de costes se han tenido en cuenta dos factores, el salario medio de un desarrollador, cifrado en 56.286 $/año, y el coste que toda empresa tiene que afrontar, además de los sueldos de los programadores, para lanzar un producto al mercado.
Estado actual de Asterisk
Página web
http://www.asterisk.org
Inicio del proyecto
1999
Versión analizada
Version 1.4.0 - Diciembre 2006
Líneas de código fuente
250.463
Esfuerzo estimado de desarrollo (persona/año - persona/mes)
66,03 - 792,30
Estimación de tiempo (años)
2,63
Estimación de número de desarrolladores en paralelo
25,08
Coste total estimado
8.919.128 $
Lenguajes de programación utilizados en Asterisk 1.4.0
Lenguaje
Líneas de código
Porcentaje
ANSI C
232.514
92,83%
sh
7.550
3,01%
cpp
5.815
2,32%
perl
2.259
0,90%
yacc
1.508
0,60%
asm
642
0,26%
tcl
113
0,05%
PHP
62
0,02%
Nota: Datos generados con SLOCCount - David A. Wheeler

Véase también
Trixbox
AstLinux
FreePBX
AsteriskNOW

Enlaces externos
www.asterisk.org Página oficial del proyecto (en inglés)
Página principal de Digium (en inglés)
Pagina de la comunidad Asterisk en Español
Página de la comunidad Asterisk de Latino America (en español)
Debian Package
Bug Tracker
Listas de correo
Wiki de Asterisk en español
Página principal de documentación de Asterisk (en inglés)
Página de la comunidad Asterisk de habla hispana
Ejemplos de instalación y configuración de Asterisk
Página de documentación en Castellano de Asterisk
Destar: Una herramienta web para configurar Asterisk de manera sencilla (con soporte para varios idiomas: español, francés e inglés). (en inglés)
Base de datos de información sobre Asterisk y VoIP en General (en inglés)
Instalación fácil de Asterisk - Bulma
Introducción a Asterisk - Linux-Málaga
Ayuda a usuarios de Asterisk - Perú
Jornada VoIP Enpresa Digitala - Plataforma Asterisk
Usuarios de Asterisk LatinoAmerica
Slast Linux - Asterisk Live CD- (En Ingles)

Mapa de Usuarios de Asterisk
AsteriskCounter Contador y Mapa de usuarios de Asterisk

Aplicaciones PBX
http://www.sipfoundry.org/sipX Aplicación PBX de software libre.
http://wiki.gnutelephony.org/index.php/GNU_Bayonne Aplicación PBX del proyecto GNU