ASTERISK - "LA" central telefónica de código abierto

Responder
Alejandro Donato
Avanzado
Avanzado
Mensajes: 34
Registrado: Vie Nov 19, 2010 6:40 am
Ubicación: Río Cuarto - Córdoba

ASTERISK - "LA" central telefónica de código abierto

Mensaje por Alejandro Donato » Mié Mar 09, 2011 3:56 am

Siguiendo los HOW TO previos, ya estamos en condiciones de darle un uso interesante a nuestro server.

Que es ASTERISK?

Un día, un técnico como nosotros, tenía en sus manos un modem telefónico interno, comunacho, de esos que, en mas de una PC vienen instalados y nunca usamos (la banda ancha los termino de eliminar, solo se usan para enviar/recibir faxes en una pc de escritorio por lo general).
Dicho modem, tenía soporte de voz (o sea, permitía atender llamados, si le ponían el soft adecuado).
Comenzó a plantear de usarlo para armar una centralita telefónica... pero con la idea de que sea GPL (o sea, como un proyecto abierto, no comercial). De ahí para arriba, se imaginarán... nació ASTERISK.

El proyecto en sí, sigue siendo GPL, o sea, gratuito y abierto, para que el que quiera lo pueda modificar y usar. Lo "esponsorea" DIGIUM, que, fabrica hardware para la central (placas para líneas análogas) y vende el servicio de armado y configuración de las centrales. Dan cursos, etc.

Lo cierto es que, hoy por hoy, ni siquiera es necesario conectar la central a una línea análoga. Se pueden comprar "troncales IP" que, nos asignan un número de red e incluso nos permiten salir a la red PSTN (Red de Servicios de Telefonía Publica).
O sea, con un troncal IP, podemos recibir y hacer llamadas como si de una línea telefónica convencional se tratase.

Para que quiero una ASTERISK?

Los costos de telefonía, aquí en Argentina, están regulados por la CNT. O sea, todas las compañias cobran lo mismo, la unidad telefónica vale para todos lo mismo. Por lo tanto, por mas que sea IP, una línea conectada a la PSTN se rige por estos valores.
La diferencia radica en que, cada compañía telefónica es libre de fraccionar como se le ocurra. Por eso, por ejemplo, un "pulso" dura 2 minutos, y se cobra eso como mínimo. Un llamado de menos de 2 minutos, se paga igual completo, y si se tarifa cada 2 minutos, un llamado de 2 minutos 10 segundos, se paga como de 4 minutos.
A esto, se le suma el "tarifa normal - tarifa reducida". En realidad la tarifa es la misma siempre, pero cambia la forma de fraccionar. En "tarifa alta", se tarifa cada 4 minutos, en tarifa baja, cada 2.
Por lo general, en una línea IP, la forma de tarifar cambia. No hay "tarifa normal" o "reducida", ya que, se fracciona cada 1 minuto o menos y eso es constante durante todo el día.
Como resultado, uno paga lo que habla, ni mas ni menos. Al fraccionarse en tramos mas chicos, hace que cada llamada cueste menos.
Esa es la magia de la telefonía IP (entre otras) que hace que, sea mas barata.

Resumiendo, quiero una asterisk para, no solo tener todos los chiches imaginables en una central telefónica (contestador, preatendedor, internos, etc) sino que además, quiero abaratar costos en telefonía!

El sistema es muy flexible, permitiendo prácticamente hacer lo que se nos ocurra con los llamados. Podemos incluso, hablar gratis a cualquier parte del mundo, o bajar llamadas en cualquier destino y pagarlas como locales.

Es un lindo chiche, y con mucho uso comercial. Es legal cobrar por armarla, pero no se vende. O sea, no hay licencias que pagar por nada, y el que quiere, dona al proyecto.

Que necesito para tener mi Asterisk?

Asterisk en sí, no es mas que un programa compuesto por un núcleo y sus agregados. El "core" (o núcleo) se encarga de, manejar los tipos de canales, interconectarlos, atenderlos, desviarlos, etc.
Hacer esto, no exige demasiado. Y mas aún si el sistema va a manejar pocas llamadas simultáneas.
Por lo tanto, es totalmente escalable, y se puede correr desde en un router (si leyeron bien, un router) hasta en el mejor de los servers.

El núcleo, tiene control de carga. O sea, que, cuando llega a un punto donde no puede manejar mas llamadas, deja de recibirlas o generarlas. Se puede limitar la cantidad de llamadas simultáneas, para evitar saturar la central.
Se pueden interconectar varias centrales, para conectar, por ejemplo, dos oficinas distantes, y que entre ellas, se comuniquen como internos.
Por canales digitales, se pueden recibir y/o hacer múltiples llamadas, por lo que, con un solo número, tenemos muchas "líneas" disponibles.

A nivel PBX, sobrepasa por lejos a cualquier central telefónica análoga, tanto en costo como en posibles prestaciones.

Puede manejar internos, colas de llamadas, recepcionista digital, correo de voz, faxes, e incluso, con un poco de imaginación, se pueden hacer programas a medida, con lo que, por ejemplo, se puede consultar una base de datos y devolver un resultado.

Veamos entonces en partes, que componen una central telefónica Asterisk.

**continua**

Alejandro Donato
Avanzado
Avanzado
Mensajes: 34
Registrado: Vie Nov 19, 2010 6:40 am
Ubicación: Río Cuarto - Córdoba

Re: ASTERISK - "LA" central telefónica de código abierto

Mensaje por Alejandro Donato » Vie Mar 11, 2011 1:10 am

El núcleo (core)

Asterisk en si, no necesita mucho mas que el núcleo y algún tipo de canal para funcionar.

O sea, que teniendo una forma de conectar líneas, y la misma u otra para conectar internos, la central esta lista para operar.

Se programa de una forma relativamente simple, orientada a objetos y disparada por eventos, donde interactúan unos con otros.

Los canales

Los canales son, la forma que tiene la central de comunicarse con los distintos tipos de hard o servicios. Asterisk prácticamente posee canales para todos los gustos. Desde canales para manejar hardware (como ser un modem) hasta canales para generar llamadas con skype.
Todos interactúan (en la medida que sean compatibles), y se puede desde enviar un sms hasta una videoconferencia.

Los módulos

Asociados muchas veces a los canales, un módulo es necesario para manejar alguna funcionalidad.

Las aplicaciones

Son programas que, quizás no son críticos para el funcionamiento de la central, pero si, le añaden funcionalidades interesantes a la misma. Un ejemplo seria el CDR (Call Detail Record) que es la aplicación que conecta con alguna base de datos para llevar el registro de las llamadas.


Combinando estos elementos, podemos lograr una central con muchísimas funciones, basadas en la necesidad de cada uno. Desde algo bien simple, hasta una trama complejísima de trabajo.

Programarla "a mano" requiere una cierta habilidad en programación. La forma de definir canales y extensiones no es muy complicada, pero se complica un poco con las "macros", en las que, se realizan tareas mas complejas (una macro es una secuencia de acciones).

Por suerte para todos, existen "frontends" (paneles de control, mas visuales) en los que, definir como queremos que trabaje la central, es mucho mas sencillo, ya que, estos frontends generan los archivos necesarios y configuran la central de una forma mucho mas amena.

Hay incluso, distribuciones "now!" que, en un cd, permiten correr la central, instalarla, todo preconfigurado. En nuestro ejemplo no es útil, porque queremos aprovechar el servidor para otras cosas, pero, si de solo una central se trata, se pueden utilizar esta clase de distribuciones.

En post subsiguientes, veremos como montar todo el sistema, o sea, la central, los canales necesarios, y un buen frontend para manejarla.

Alejandro Donato
Avanzado
Avanzado
Mensajes: 34
Registrado: Vie Nov 19, 2010 6:40 am
Ubicación: Río Cuarto - Córdoba

Re: ASTERISK - "LA" central telefónica de código abierto

Mensaje por Alejandro Donato » Sab Mar 19, 2011 3:30 pm

Tenemos dos opciones:

1 - Instalar la central desde los repositorios de Ubuntu.
2 - Compilar la central e instalarla desde las fuentes.

Ventajas modalidad 1: Es una linea de comando solamente, y casi que deja todo instalado, con configurarlo y agregarle el frontend (la interfase web de control, en nuestro caso, FreePBX).
Otra ventaja, las dependencias necesarias se instalan automáticamente (como ser el servidor web, la base de datos mysql, etc).
Desventajas modalidad 1: Se instala la versión que este en los repositorios (a hoy es la 1.6.2), la cual, si bien no es muy vieja, no es la última. Actualmente van por la 1.8.3, y con el cambio de generación, vienen muchas mejoras y agregados, además de muchos errores corregidos.
Otra desventaja, los archivos de configuración del paquete incluido en la distribución, vienen pre ajustados al sistema, con lo que, no todo esta en los sitios por defecto, lo que a veces genera algunos problemas (sobre todo al momento de modificarla)

Ventajas modalidad 2: Se puede utilizar la versión que sea, y se puede actualizar fácilmente, ya que, suelen, al momento de liberar una versión nueva, mantener la compatibilidad hacia la anterior y migrarla automáticamente.
Desventaja, hay que instalar las dependencias necesarias a mano, pero se puede utilizar el sistema apt para instalarlas, con lo que no es muy complicado tampoco.

Preparo el listado de dependencias y una explicación breve de para que es cada uno, así la comenzamos a montar.

Responder