martes, 7 de octubre de 2008

Plan de Marcado

Según el libro “Asterisk PBX Guía de Configuración” de Flavio E. Gonçalves.
“El plan de marcado es sin duda el área de configuración de Asterisk mas importante y es el responsable del funcionamiento de la conmutación de las llamadas.”

El Plan de Marcado o Dialplan es, por decirlo de alguna manera, el cerebro de Asterisk; es aquí donde se ejecutan todas las decisiones que toma el programa y se configura en el archivo extensions.conf que se encuentra en /etc/asterisk. Este controla como las llamadas, tanto de entrada como de salida, son encaminadas y configuradas.

Para crear el plan de marcado tenemos que abrir el archivo extensions.conf y configurarlo de la siguiente manera:

Primero, al igual que en iax.conf y sip.conf, se configura la sesión general.

[general]

static=no
Esta opción afecta la operación del comando “save dialplan”. El valor estándar es “no”

writeprotect=yes
Esta opción afecta la operación del comando “save dialplan”. El valor estándar es “no”

Según el Libro “Asterisk PBX Guía de Configuración” de Flavio E. Gonçalves.
“Save dialplan sobrescribirá su archivo extensions.conf con uno nuevo generado por el plano de numeración actual. Una copia de su archivo extensions.conf viejo no sera guardada. Todos los comentarios seran perdidos. El archivo ejemplo de asterisk viene con esta configuracion peligrosa writeprotect=no, static=yes”

autofallthrogh=yes
Si estuviera configurado para yes, al final de un conjunto de comandos para una extensión este terminará la ejecución con un BUSY, CONGESTION o HANGUP dependiendo de que el Asterisk encuentre mas conveniente.

clearglobalvars=yes
Limpia y recarga las variables globales cada vez que ocurre un reload en Asterisk.

priority jumping=yes
Las aplicaciones que soportan saltar prioridades fundamentado en el resultado de las operaciones correrán de forma normal.

Después de configurara la sesión general, se creara el o los contextos de cada usuario. Nosotros en las extensiones anteriores colocamos context=out_general, entonces debemos crear un contexto que lleve por nombre out_general.

La estructura del plan de marcado es la siguiente:


exten=extensión,prioridad, aplicación

Ejemplo:
[out_general]
exten=30,1,wait(3) Con esto lo que estamos haciendo es
que cuando se marque la extensión 30
espere 3 segundos antes de pasar a la
siguiente prioridad.
exten=30,2,dial(SIP/30) Luego de esperar los 3 seg, llamar a
las extensión SIP 30
exten=30,3,hangup() Colgar la llamada

Aquí tenemos un plan de marcado básico, donde al marcar la extensión 30 podremos realizar la llamada.

Como Crear Extensiones?

Antes que nada tenemos que decidir que protocolo vamos usar, o si vamos a usar los dos protocolos. Aquí explicaremos como crear extensiones para ambos protocolos.

Primero vamos a utilizar el protocolo SIP. Para crear una cuenta debemos abrir el archivo sip.conf que se encuentra en /etc/asterisk/

El contexto general es el primero que se configura y se hace de la siguiente manera:

[general]
bindport=5060
Puerto donde asterisk debe esperar por conexiones de entrada SIP. Por lo general se usa 5060

bindaddr=0.0.0.0
Dirección Ip donde asterisk ira a esperar las conexiones SIP. Puede ir la dirección IP del servidor

context=default
Configura el contexto general donde todos los clientes serán colocados, a menos que se especifique un contexto diferente.

disallow=all
Prohíbe todos los codec

allow=ulaw
allow=gsm
allow=alaw
permite un determinado codec

maxexpirey=120
Tiempo máximo para registro en segundos

defaultexpirey=80
Tiempo por defecto para registrarse en segundos

realm=172.16.1.134
Dirección IP del servidor

language=es
Lenguaje en español

pickupgroup=1
callgroup=1
Con estos dos comandos configuramos todas las extensiones SIP en el mismo grupo para así poder realizar la captura de llamadas.

Ahora configuramos cada una de las extensiones:

[Nombre o nº usuario]

type=friend
Configura la clase de conexión

secret=su clave
Usado para autenticar los peers y users

host=dynamic
Configura la dirección ip. La opción dynamic: se espera que el teléfono se registre.

context=out_general
Ver en extension.conf

callerid="nombre"
Identificador de llamada

canreinvite=no
Asterisk tratará de redireccionar de forma predeterminada.

pickupgroup=1
callgroup=1
Con estos dos comandos configuramos todas las extensiones SIP en el mismo grupo para así poder realizar la captura de llamadas.

Con esto ya creamos un usuario SIP, ahora para crear extensiones IAX tenemos que abrir el archivo iax.conf y configurar lo siguiente:


Al igual que en el sip.conf, el contexto general es el primero que se configura.

[general
]
bindport=4569 Se especifica el puerto.
bindaddr=0.0.0.0 Se especifica la dirección IP del servidor
language=es Se especifica el lenguaje
disallow=all Se deniegan los codec
allow=gsm Se permite el codec gsm
allow=alaw Se permite alaw
allow=ulaw Se permite ulaw
pickupgroup=1
callgroup=1 con estos dos comandos se configura las extensiones en un mismo
grupo para poder realizar la captura de llamadas .


Ahora configuramos cada una de las extensiones:


[nº extensión]

type=friend
username=nombre
secret=su clave
host=dynamic
context=out_general
callerid="identificador"
pickupgroup=1
callgroup=1

Como podemos observar, las extensiones IAX se configuran exactamente igual que las extensiones SIP. También se puede ver en ambas extensiones, IAX y SIP, el parámetro context=out_general, este contexto se configura en el archivo extensions.conf y contiene el plan de marcado de la extensión.

miércoles, 10 de septiembre de 2008

Protocolo para extensiones

Un protocolo es conjunto de normas que controlan la secuencia de mensajes que ocurren durante una comunicación entre entidades que forman una red. Existen distintos tipos de extensiones que se distinguen por el protocolo que usan. Para las ellas existen varios protocolos, los mas utilizados son: SIP, IAX y H323, y dependiendo cual se use se configura en un archivo distinto, es decir, si la extensión es SIP, el archivo donde se crea la extensión es el sip.conf, en cambio si fuera IAX seria en iax.conf. Aquí hablaremos solo de estos dos debido a que son los que utilizaremos para desarrollar el Servidor Asterisk.


Según la web: http://voip.megawan.com.ar/doku.php/sip

“El protocolo de iniciación de sesión (SIP) es un protocolo de señalización para crear, modificar, y terminar sesiones con unos o más participantes. Estas sesiones incluyen llamadas telefónicas por Internet, distribución de datos multimedia, y conferencias multimedia.”


Este protocolo es el comúnmente utilizado en las comunicaciones VoIP pero presenta problemas con el NAT.


Según la web: http://es.wikipedia.org/wiki/NAT

NAT (Network Address Translation - Traducción de Dirección de Red) es un mecanismo utilizado por routers IP para intercambiar paquetes entre dos redes que se asignan mutuamente direcciones incompatibles. Consiste en convertir en tiempo real las direcciones utilizadas en los paquetes transportados. También es necesario editar los paquetes para permitir la operación de protocolos que incluyen información de direcciones dentro de la conversación del protocolo.”


En una conversación realizada el día 2 de septiembre de 2008 con Roberto de Oliveira, Tutor profesional, explico que el problema que presenta el protocolo SIP se debe a que a la hora de hacer la conexión con otra entidad (teléfono IP, softphone o servidor asterisk) envía cada conversación por puertos distintos.


Si el servidor y los clientes están en una misma red, este problema no es de mucha importancia debido a que los datos no tendrían que pasar por un router ni por un firewall, en cambio, si por el contrario la llamada tiene que salir hacia otra red es justamente ahí donde se presenta el problema, ya que por lo general nos topamos con un firewall, el cual un filtro que controla todas las comunicaciones que pasan de una red a la otra y en función de lo que sean permite o deniega su paso, y como el SIP envía las conversaciones por distintos puertos lo mas seguro es que nos podamos conseguir con un puerto bloqueado.


Al buscar la solución para este problema nos encontramos con el protocolo IAX.


Según la web http://es.wikipedia.org/wiki/IAX2

“IAX2 utiliza un único puerto UDP, generalmente el 4569, para comunicaciones entre puntos finales (terminales VoIP) para señalización y datos. El tráfico de voz es transmitido in-band, lo que hace a IAX2 un protocolo casi transparente a los cortafuegos y realmente eficaz para trabajar dentro de redes internas. En esto se diferencia de SIP, que utiliza una cadena RTP out-of-band para entregar la información.”


Al utilizar un único puerto y transmitir el trafico de voz in-band hace del protocolo IAX la mejor vía para realizar las transmisiones de VoIP, tanto en conexiones Servidor-Servidor como en conexiones Servidor-Cliente. La gran desventaja es que la mayoría de los teléfonos IP utilizan protocolo SIP, en estos momentos son pocos los equipos que usan IAX.

Instalacion de Asterisk

Primero se debe descargar los siguientes paquetes:
  • Zaptel

  • Libpri

  • Asterisk


Después de descargarlos se debe descomprimir y copiarlos en /usr/src. Ahora se deben compilar en el siguiente orden (es importante seguir el orden):

  • Zaptel

  • Libpri

  • Asterisk


Para instalar Zaptel:

cd /usr/src/zaptel-1.4.x/

make clean

./configure

make menuselect

make install

make install-udev

make config

update-rc.d zaptel defaults


Para instalar Libpri:

cd /usr/src/libpri-1.4.x/

make clean

make

make install


Para instalar Asterisk:

cd /usr/src/asterisk-1.4.0

make clean

./configure

make menuselect

make

make install

make samples

make config


Ahora ya esta instalado correctamente Asterisk.

Nota: se recomienda bajar los archivos de la siguiente pagina www.asterisk.org

viernes, 29 de agosto de 2008

¿Qué es Asterisk?

¿Qué es Asterisk?

Asterisk es un software PBX que usa el concepto de software libre (GPL). Digium, empresa que promueve el Asterisk, invierte en ambos aspectos, el desenvolvimiento de código fuente y en hardware de telefonía de bajo costo que funciona con Asterisk. El Asterisk corre en plataforma Linux y otras plataformas Unix con o sin hardware conectado a la red publica de telefonía PSTN.

El Asterisk permite conectividad en tiempo real entre las redes PSTN y redes VoIP. Con Asterisk, usted no tiene apenas un cambio excepcional de su PBX. El Asterisk es mucho masque un PBX central. Con Asterisk en su red, usted puede crear cosas nuevas en telefonía como:

  • Conectar empleados trabajando desde casa para un PBX de la oficina sobre conexiones de banda ancha.
  • Conectar oficinas en varias provincias sobre IP. Esto puede ser web y sus e-mail.
  • Construir aplicaciones de respuesta automática por voz, que puede conectarlo a un sistema de pedidos, por ejemplo, o a otras aplicaciones internas.
  • Dar acceso al PBX de la compañía para usuarios que viajan, conectándose desde un aeropuerto o un Hotel.

Asterisk incluye muchos recursos que solo eran encontrados en sistemas de mensajería unificada sistemas encima de la linea como:

  • Musica en espera para clientes en filas de espera, soportando streaming de media así como musica en mp3.
  • Filas de llamadas donde agentes de forma conjunta atienden las llamadas y monitorizan dicha fila.
  • Integración para sintetización de la conversación.
  • Registro detallado de llamadas para integración con sistemas de tarificacion.
  • Integración con reconocimiento de voz (tal como el software de código abierto para reconocimiento de voz)
  • La habilidad de interfaces con lineas telefónicas normales.
 
Alojamiento Web