martes, 7 de octubre de 2008
Plan de Marcado
“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?
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
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
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?
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.