ABC de ASTERISK


Vamos a desarrollar la siguiente temática sobre ASTERISK


CONTENIDO

Curso de asterisk VoIP

INTRODUCCION

Software Libre y Licencias

Breve historia de Linux y Asterisk

Distribuciones de Linux y Asterisk

Características de Linux y Asterisk

Estructura básica del sistema

  • Comandos básicos
  • ls, nano, pwd, ps, top, iptraf, find, grep, cat, man, make, subversion, apt,wget, more
  • Operadores básicos

Aplicaciones específicas para trabajo con Asterisk

  • Apache, MySQL, PHP
  • Scripts
  • Trabajo remoto con SSH


Instalación  Linux
          Configuración sistema base
  • Configuración de red
  • Uso de SSH y tuneles
  • Uso de operadores
  • Descarga de aplicaciones con apt

Introducción a Asterisk
  • Diferencias con un PBX tradicional
  • Características
  • Requisitos de hardware
  • Requisitos de software
  • Práctica
  • Descarga de Asterisk, zaptel y libpri
  • Compilación de Asterisk.

Arquitectura de Asterisk

Canales e interfases
  • SIP
  • IAX2
  • ZAP

Interfaces de hardware

Protocolos de VoIP
  • SIP
  • IAX2
  • H323

Codecs y formatos de archivos

Calidad de servicio

Organización del sistema de archivos

Aplicaciones

Práctica

Configuración de una tarjeta zaptel
  • Creación de usuarios SIP
  • Creación de usuarios IAX2

Módulos
  • CDR
  • AGI
  • Agentes
  • Codecs
  • Instalación de addons
  • Configuración de CDR
  • Instalación de codec G729


Configuración de Asterisk

Archivos de configuración

Sintaxis de archivos de configuración
  • Comentarios
  • Líneas
  • Secciones
  • Variables
  • Objetos
  • Comandos

Planes de marcación
  • Extensiones
  • Patrones
  • Aplicaciones
  • Prioridades
  • Contextos de extensión
  • Variables
  • Funciones
  • Macros
  • Práctica
  • Creación de contextos
  • Inclusión de contextos
  • Creación de extensiones
  • Patrones de marcado
  • Procesamiento básico mediante funciones

Aplicaciones específicas
  • Wait
  • Answer
  • Playback
  • Background
  • Meetme
  • Voicemail
  • VoicemailMain
  • Práctica
  • Armado de un plan de llamadas básico

Asterisk Realtime

Introducción

Realtime estático

Realtime dinámico

Configuración
  • Usuarios SIP
  • Extensiones
  • Voicemail
  • Práctica

Interconexión entre servidores Asterisk
  • Introducción
  • Características de IAX
  • Alta de usuarios
  • Envio de llamadas
  • Práctica

Usos avanzados del diaplan
  • Uso de realtime
  • Ciclos
  • anipulación de cadenas
  • Menu de voz
  • Practica

AGIs
  • Introducción
  • Usos
  • Entrada y salida de datos
  • Re-utilización de clases
  • Integración con bases de datos
  • Práctica


1. Qué es Asterisk?

Es un motor de telefonía, el cual permite convertir cualquier computador en una PBX que maneja canales SIP, Troncales Analogas, Extensiones,IVR, etc. Es un software de central telefónica con capacidad para voz sobre IP, que se distribuye bajo licencia libre. (por lo cual su popularidad)

Esta desarrollado en C, y hace el procesamiento de las comunicaciones de voz a nivel de Software, lo cual es muy diferente a los sistemas de telefonia tradicional que lo realizaban con hardware fabricado especialmente para ello.  Aunque actualmente la mayoria de los sistemas telefonicos procesan las comunicaciones de voz a nivel de software.

El proyecto Asterisk esta asociado con los drivers DAHDI o los antiguos ZAPTEL, que manejan las tarjetas de interface para la PSTN o red publica conmutada (por ejemplo reciben y convierte, las lineas analogas FXS, FXO) y tambien las digitales como las de PRIMARIOS (E1/T1/J1, RDSI,R2, etc).


Con la siguiente imagen les queda mas claro:



(Al final todo se reduce a un archivo)

Esta combinacion permite que se tenga una central telefonica con potentes características que antiguamente  eran muy costosas.

2. Distribuciones Asterisk

Debido a la gran popularidad del proyecto Asterisk y ser libre, mucha gente al rededor del mundo ha desarrollado sobre este motor, y han creado distribuciones entre las más conocidas tenemos:

*ElastiX (www.elastix.org)
*TRIBOX (www.trixbox.org)
*Asterisk NOW (http://www.asterisk.org/asterisknow)


Y muchas más....



Cuál de ellas utilizar? Con la que se sientan más cómodos......Incluso pueden instalar el solo motor sin necesidad de una interface gráfica.




3. Funcionalidades que se pueden tener en Asterisk:


Asterisk  como central telefónica tiene las siguientes funciones:

*ACD
*Operadora Automática
*IVR
*VoIP GATEWAY
*Voicemail o Buzon de voz
*Comunicaciones Unificadas o UC
*Grabacion de llamadas
*Conferencia de llamadas
*Mensajeria unificada
*IP PBX
*Aplicaciones de voz
*Transferencia de llamadas
*Opcion de no molestar
*Parqueo de llamadas
*Reporte de llamadas
*Colas de Atencion
*Llamada en espera
*Recepcion de fax
*Bloqueo de llamada entrante
*Identificador de llamadas
*Musica en espera
*Listado interactivo de extensiones
*Condiciones de tiempo que permiten  manejar el comportamiento del PBX segun una hora o fecha determinada
*Follow me, o sigueme.



4. Directorios de Asterisk





Es importante tener en cuenta estos directorios, para futuras configuraciones o para soporte tecnico a issues en la plataforma.

5. Modulos de Asterisk

Asterisk tiene diferentes  modulos que le permiten extender su funcionalidad, lo cual lo hace interesante, para multiples aplicaciones que veremos mas adelante.  Estos modulos estan en el siguiente directorio:


/usr/lib/asterisk/modules/


Se controlan por medio del archivo de configuracion modules.conf, este archivo le indica al Asterisk que módulos carga y cuales no.


Tambien por la linea de comandos se pueden cargar con "load"   o  "noload".




6.   Archivos de  Configuracion:


Se encuentran en la siguiente ruta:


/etc/asterisk









7. DIAL PLAN



El DIAL PLAN o  PLAN DE MARCADO, es el corazon del sistema Asterisk, y define la manera como Asterisk maneja las llamadas tanto entrantes como salientes. Consiste en una serie de instrucciones o pasos que sigue el sistema. A diferencia de los sistemas tradicionales,  el DIAL PLAN de Asterisk es completamente personalizable. 


El archivo de configuracion del DIAL PLAN es:


extensions.conf


El cual se localiza en el directorio: /etc/asterisk/


Tiene 4 componentes  que son: los contextos, las extensiones, las prioridades y las aplicaciones.

Para entenderlo mejor, lo que no este en el DIAL PLAN no existe para el Asterisk, por eso es importante definir las direfentes entidades en el Plan de Marcacion.

En  el DIAL PLAN definimos: Extensiones, la ruta de las llamadas entrantes y salientes.




CONTEXTOS: Son partes del plan de marcacion, que tienen diferentes propositos. Sirve para agrupar la logica del plan de marcado y pueden incluir otros contextos. Por ejemplo tiene la logica para crear la funcionalidad de un reloj despertador o de la validacion de un PIN, o el enrutamiento de la llamada al marcar deteminado Prefijo.


La sintaxis consiste en nombrar un contexto entre corchetes cuadrados[  ].

Ejemplo

[mi_contexto]


Instrucciones
Los contextos contienen instrucciones. Estas instrucciones son líneas de plan de
marcado que tienen la siguiente sintaxis.
[app-pickup]
include => app-pickup-custom
exten => _**.,1,Noop(Attempt to Pickup ${EXTEN:2})
exten => _**.,n,Pickup(${EXTEN:2})
[ext-test]
include => ext-test-custom
exten => 7777,1,Goto(from-pstn,s,1)
exten => 666,1,Goto(ext-fax,in_fax,1)
exten => h,1,Macro(hangupcall,)
exten => nombre_extension, prioridad, aplicación