Está en la página 1de 14

Cómo configurar Asterisk 1.

4 para utilizar Ekiga y Linphone como


clientes SIP.

Autor: Joel Barrios Dueñas


Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2007 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer
obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede
utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio,
por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo
puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que
dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se
obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras
limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en
este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad
alguna si el usuario o lector hace mal uso de éstos.

Introducción.

Acerca de Ekiga.

Ekiga es una aplicación para VoIP (Voice over IP o Voz sobre IP) y vídeo-conferencia,
distribuido bajo los términos de la licencia GNU/GPL. Incluye soporte para los
protocolos SIP (Session Initiation Protocol o Protocolo de Inicialización de Sesiones) y
H.323.

El proyecto fue iniciado por Damien Sandras con el nombre GnomeMeeting, como parte de
los requisitos para graduarse de la Universidad Católica de Louvain, en la ciudad de Bruselas,
Bélgica. El nombre del proyecto fue cambiado por Ekiga el 18 de enero de 2006, con el fin
de evitar se le asociara como equivalente de Microsoft NetMeeting. Actualmente es
mantenido por una comunidad de desarrolladores, con Sandras como líder.

URL: http://www.ekiga.org/

Acerca de Asterisk.

Asterisk es una implementación de código abierto para central telefónica


(PBX, Private Branch eXchange o Private Business eXchange). Cuenta con un doble
licenciamiento, GNU/GPL y licencia propietaria. Esta última es con el objeto de poder incluir
soporte para el protocolo G.729, el cual está sujeto a las limitaciones de una patente,
aunque el codificador correspondiente funciona indistintamente con una u otra versión.

Asterisk está diseñado para servir como 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 , tanto básicos como primarios.

La versión libre de Asterisk incluye todas las funcionalidades de las más costosas
alternativas de código cerrado, como son correo de voz, llamada en conferencia, respuesta
interactiva de voz (a través de menús del teléfono) y distribución automática de llamadas.

URL: http://www.asterisk.org/

Acerca de Linphone.

Linphone es un cliente SIP para VoIP creado por Simon Morlat. Está hecho en GTK2, es
pequeño, ligero y muy estable e incluye además linphonec, una poderosa versión para
terminales en modo texto. La versión de AL Desktop incluye soporte para voz y mensajes
instantáneos, pero el código incluye también soporte para vídeo.

Características:

• Cumple con los estándares SIP (Session Initiation Protocol o Protocolo de Inicialización de
Sesiones).
• Puede registrarse en servidores Asterisk.
• Soporte para subscripción de VoIP hacia RTC (Red Telefónica Conmutada, también conocida
como PSTN o Public Switched Telephone network). Es decir, telefonía red telefónica básica.
• Es equipamiento lógico libre.
• Es muy estable en GNU/Linux y probablemente también en los diversos sabores de Unix.
• Hay versión estable para Windows, pero con algunas funciones aún sin portar.
• Funciona bien con las siguientes implementaciones, probadas por el autor de Linphone: eStara
softphone, Teléfonos Pingtel, Hotsip, Vocal (Vivida), Siproxd y Partysip

URL: http://www.linphone.org/

Acerca del protocolo SIP.

SIP (Session Initiation Protocol o Protocolo de Inicialización de Sesiones) es un protocolo


propuesto como estándar por la IETF (Internet Engineering Task Force o Fuerza de Trabajo
en Ingeniería de Internet), descrito en el RFC 3261, para la iniciación, modificación y
finalización de sesiones interactivas de usuario, en las cuales intervienen elementos de
medios electrónicos, como pueden ser vídeo, voz y mensajería instantánea. Es uno de los
varios protocolos de señalización para la tecnología de Voz sobre IP (VoIP o Voice over IP)
y forma parte de la arquitectura IMS (IP Multimedia Subsystem o Subsistema multimedios
por IP).

URL: http://tools.ietf.org/html/rfc3261

Equipamiento lógico necesario.

Considerando que se va a instalar el cliente (Ekiga) en un sistema distinto al del servidor


que sustentará a Asterisk, las instalaciones de equipamiento lógico correspondientes
proceden de la siguiente forma.

Instalación de servidor Asterisk.

Para poder llevar al cabo los procedimientos descritos en este y otros documentos
relacionados, usted necesitará tener instalado al menos lo siguiente, lo cual no está incluido
en la instalación estándar de CentOS 4, Red Hat™ Enterprise Linux 4 o White Box
Enterprise Linux 4 (disponible a través de los depósitos de equipamiento lógico de Alcance
libre).

• asterisk-1.4.1
• asterisk-addons-1.4.0
• asterisk-sounds-es
• gsm-1.0.12
• libidn-0.6.9
• libpri-1.4.0
• spandsp-0.0.3-7_pre28
• speex-1.2
• zaptel-1.4.0
Instalación a través de yum.
Si dispone de un servidor con CentOS 4, Red Hat™ Enterprise Linux 4 o White Box
Enterprise Linux 4, puede utilizar el el depósito yum de Alcance Libre para servidores en
producción:

[alcance-libre]

name=Alcance Libre para Enterprise Linux 4

baseurl=https://www.alcancelibre.org/al/el/4/

gpgkey=https://www.alcancelibre.org/al/AL-RPM-KEY

La instalación solo requiere utilizar lo siguiente:

yum -y install asterisk asterisk-addons asterisk-sounds-es


zaptel kernel-module-zaptel

Al terminar, solo bastará iniciar el servicio asterisk, puesto que de forma predeterminada
arrancará solo la siguiente vez que reinicie el sistema.

service asterisk start


Instalación de cliente Ekiga.

Instalación a través de yum.

Si dispone de un escritorio con AL Desktop en CentOS 4 Red Hat™ Enterprise Linux


4 o White Box Enterprise Linux 4, puede utilizar el depósito yum de AL Desktop:

[AL-Desktop]

name=Enterprise Linux $releasever - $basearch - AL Desktop

mirrorlist=https://www.alcancelibre.org/al/el4/al-desktop

gpgkey=https://www.alcancelibre.org/al/AL-RPM-KEY

La instalación requiere utilizar lo siguiente:

yum -y install ekiga

Instalación de clientes Linphone y Linphonec.

Instalación a través de yum.

Si dispone de un escritorio con AL Desktop en CentOS 4 Red Hat™ Enterprise Linux


4 o White Box Enterprise Linux 4, puede utilizar el depósito yum de AL Desktop:

[AL-Desktop]

name=Enterprise Linux $releasever - $basearch - AL Desktop


mirrorlist=https://www.alcancelibre.org/al/el4/al-desktop

gpgkey=https://www.alcancelibre.org/al/AL-RPM-KEY

La instalación requiere utilizar lo siguiente:

yum -y install linphone

Procedimientos.

Configuración de servidor Asterisk.

Archivo /etc/asterisk/manager.conf.

Si se considera necesario, se puede configurar el acceso remoto hacia el gestor de Asterisk.


Se requiere definir un usuario, las correspondiente clave de acceso y los privilegios
necesarios, a fin de poder permitir utilizar diversas herramientas para la administración y/o
supervisión remota(s). En el siguiente ejemplo para el contenido del
archivo /etc/asterisk/manager.conf, se activa acceso remoto a través del puerto 5038,
se define admin como usuario, secreto como clave de acceso y se otorgan todos privilegios.

[general]

displaysystemname = yes

enabled = yes

;webenabled = yes

port = 5038

;httptimeout = 60

; De modo predefinido, el gestor de Asterisk escuchará


peticiones

; por cualquier interfaz activa en el sistema, pero puede

; definirse, por ejmeplo, que solo se permitan conexiones


desde

; la dirección IP de red privada (RFC 1918).

bindaddr = 0.0.0.0

;displayconnects = yes

;timestampevents = yes

[admin]
secret = secreto

deny=0.0.0.0/0.0.0.0

permit=192.168.12.0/255.255.255.128

writetimeout = 100

read = system,call,log,verbose,command,agent,user,config

write = system,call,log,verbose,command,agent,user,config

Archivo /etc/asterisk/sip.conf.

El siguiente ejemplo corresponde a la configuración de tres cuentas SIP (101, 102 y 103). El
contenido se agrega o bien modifica opciones, al archivo /etc/asterisk/sip.conf.

[general]

context=default

srvlookup=yes

videosupport=yes ; Asterisk puede también gestionar las


conferencias de vídeo

disallow=all ; Desactivar todos los codificadores

allow=alaw ; Permitir codificadores en orden de


preferencia

allow=ilbc

allow=gsm

allow=h261

; El paquete asterisk-sounds-es de alcance libre instala


los archivos de audio

; al español. Por tanto, se puede definir éste como idioma


pata los mensajes.

language=es

; Realizar registro en ekiga.net con un usuario y clave de


acceso válidos y

; encaminar las llamadas hacia la extensión 101

register => usuario:clave-de-acceso@ekiga.net/101

; Hacer acceder a Asterisk hacia una cuenta en ekiga.net


para permitir
; realizar llamadas

[ekiga]

type=friend

username=usuario

secret=clave-de-acceso

host=ekiga.net

canreinvite=no

qualify=300

; Si se utiliza asterisk 1.4.x:

insecure=port,invite

; Si se utiliza asterisk 1.2.x:

; insecure=very

; Extensión 101

[101]

type=friend

secret=secreto1

qualify=yes ; El par correspondiente está no más allá de


2000 mS.

nat=no ; No hay NAT.

host=dynamic ; Dispositivo se registrará con servidor.

canreinvite=no ; Asterisk tratará de redireccionar de forma


predeterminada.

context=home ; Contexto predefinido (ver →


extensions.conf)

;port=5061 ; Descomentar si Ekiga o Linphone y Asterisk


están en el mismo sistema.

; Extensión 102

[102]

type=friend
secret=secreto2

qualify=yes

nat=no

host=dynamic

canreinvite=no

context=home

;port=5061

; Extensión 103

[103]

type=friend

secret=secreto3

qualify=yes

nat=no

host=dynamic

canreinvite=no

context=home

;port=5061

Archivo /etc/asterisk/voicemail.conf.

A fin de habilitar el acceso al correo de voz para cada extensión y al mismo tiempo
especificar una cuenta de correo electrónico hacia la cual se enviará un mensaje de correo
electrónico con el mensaje de voz como adjunto, solo es necesario verificar que las
siguientes opciones estén habilitadas. En el ejemplo, se configuran las cuentas para las
extensiones 101, 102 y 103.

[general]

; Escoger el formato del correo de voz. Recomendado usar


WAV, por razones de

; compatibilidad.

format=wav

; Si se dispone de espacio suficiente en la cuenta de


correo, la siguiente

; opción especifica que se adjunte el mensaje de voz a un


mensaje de correo

; electrónico, de modo que se pueda escuchar al dar clic


desde el cliente.

attach=yes

[default]

; Cada buzón de voz se lista en el siguiente formato:

; buzón => clave de acceso,Nombre de persona,correo


electrónico,correo

; electrónico de servicio de localizador. Ejemplos:

101 => secreto1,Nombre,alguien@algo.algo,numero@mi-


celular.algo

102 => secreto2,Nombre,otro@algo.algo

103 => secreto3,Nombre,alguien-mas@algo.algo

Archivo /etc/asterisk/extensions.conf.

El siguiente ejemplo corresponde a la configuración de tres extensiones (101, 102 y 103). El


contenido se agrega al archivo /etc/asterisk/extensions.conf.

; Macro que habilita el uso de correo de voz, de modo que


no hará falta
; repetir complejas configuraciones en cada cuenta.
[macro-correovoz]
exten => s,1,Dial(${ARG1},20)
exten => s,2,Goto(s-$DIALSTATUS},1)
exten => s-NOANSWER,1,Voicemail(u${MACRO_EXTEN})
exten => s-NOANSWER,2,Hangup()
exten => s-BUSY,1,Voicemail(b${MACRO_EXTEN})
exten => s-BUSY,2,Hangup()
exten => _s-.,1,Goto(s-NOANSWER,1)

[home]
; Extensión 101
exten => 101,1,Macro(correovoz,SIP/101)

; Extensión 102
exten => 102,1,Macro(correovoz,SIP/102)

; Extensión 103
exten => 103,1,Macro(correovoz,SIP/103)

; Lo siguiente permite acceder al correo de voz desde


Ekiga, simplemente
; marcando el número 8
exten => 8,1,VoiceMailMain(s${CALLERIDNUM})
exten => 8,2,Hangup

; Prueba de Eco
exten => 600,1,Answer()
exten => 600,2,Playback(demo-echotest)
exten => 600,3,Echo()
exten => 600,4,Playback(demo-echodone)
exten => 600,5,Hangup()

; Lo siguiente permite realizar llamadas hacia cuentas de


Ekiga.net
; solo antecediendo un número 9 antes de la cuenta. Es
decir:
; Si antes se tenía que marcar sip:alguien@ekika.net, ahora
se hará
; como sip:9alguien@ekiga.net
exten => _9.,1,Dial(SIP/ekiga/${EXTEN:1},20,r))

Al terminar, solo bastará reiniciar el servicio asterisk para que surtan efecto los cambios.

service asterisk restart

También puede ingresar a la interfaz de línea de mandatos (CLI o Command Line Interface),
desde el servidor que sustenta a Asterisk, utilizando el mandato asterisk -r y ejecutando
desde ésta el mandato reload. Al terminar, ingrese el mandato exit para salir de la interfaz
de línea de mandatos.

Configuración de cliente Ekiga.

Ekiga, además de ajustar los niveles de audio del sistema para permitir el funcionamiento del
micrófono (captura), requiere y desactivar cualquier método de NAT que esté especificado
(por lo general, STUN).

En la versión 2.0.7, si activa la casilla de cancelación de eco, Ekiga no enviará el DTMF y


no será posible autenticar en el buzón de voz. Deje la casilla sin activar.
Al terminar y aplicar los cambios, se debe acceder al menú de la aplicación Editar →
Cuentas y añadir una nueva cuenta tipo SIP, especificando un nombre para identificar la
cuenta, la IP del servidor Asterisk, el usuario a utilizar y la correspondiente clave de acceso.

Al terminar, solo se necesitará hacer clic en la casilla para activar la cuenta y registrarse en
el servidor.
Configuración de cliente Linphone y Linphonec.

Solo es necesario añadir la cuenta desde la pestaña SIP de la ventana de preferencias. Un


pequeño error en el despliegue de texto en la versión 1.6.0 hace que no se muestren las
cuentas que se dan de alta, pero de hecho deberán estar ahí.

Pestaña SIP de la ventana de preferencias.

Se hace clic en el botón Add proxy/registar, acción que abrirá una ventana para ingresar
los datos necesarios.
Ventana de registro de cuenta.

Si se prefiere, a fin de verificar datos y hacer otros ajustes, puede editarse el


archivo ~/linphonerc y modificar, con cualquier editor de texto, la configuración de las
cuentas, ejemplificada a continuación:

[sip]

sip_port=5060

guess_hostname=0

contact=sip:101@192.168.1.253

inc_timeout=15

use_info=0

use_ipv6=0

default_proxy=0

[proxy_0]

reg_proxy=SIP:192.168.1.253

reg_expires=900

reg_sendregister=1

publish=1

[auth_info_0]

username=101
userid=101

passwd=secreto1

realm="asterisk"

La configuración hecha es utilizada tanto por el cliente gráfico, linphone, como el cliente
para terminal de texto, linphonec.

Particularmente es muy interesante las aplicaciones prácticas linphonec, el cual se puede


utilizar en sistemas sin entorno gráfico. Puede dejarse iniciando automáticamente en algún
guión con la opción -a para contestar llamadas automáticamente y utilizarlo como la
imaginación lo determine. Es ideal para ser utilizado en terminal telefónica en clientes ligeros
o equipos obsoletos.

Comprobaciones.

Para si uno marca 600, deberá contestar el servidor Asterisk con un mensaje de prueba de
eco. Si se conectan los clientes al servidor Asterisk, podrán comunicarse entre si marcando
solo el número de extensión o bien como sip:extension@servidor.
Ejemplo: sip:103@192.168.10.1. Marcando el número 8 desde Ekiga, se podrá acceder al
correo de voz.

Si necesita depurar la configuración, puede hacerlo ingresando a la interfaz de línea de


mandatos utilizando el mandato asterisk -r, añadiendo de una a cinco letras v para indicar
el nivel de depuración. Ejemplo:

asterisk -vvvr

Lo anterior mostrará mensajes de depuración de nivel 3. Al terminar, ingrese el


mandato exit para salir de la interfaz de línea de mandatos.

Modificaciones necesarias en el muro cortafuegos en el servidor


Asterisk.

Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo Shorewall, es


necesario abrir el puerto 5060 por UDP para comunicaciones a través de protocolo SIP y
opcionalmente los puertos 4569,5036, 10000:20000 y 2727 por UDP, de forma
correspondiente para los protocolos IAX2, IAX, RTP y MGCP, en el caso dado que se quiera
acceder hacia éstos con clientes que incluyan dicho soporte. Si se va a utilizar herramientas
para administración y/o supervisión remota(s), el puerto del gestor de Asterisk corresponde
al 5038 por TCP.

Las reglas para el archivo /etc/shorewall/rules de Shorewall, como cortafuegos de una


sola zona (net), correspondería a algo similar a lo siguiente:

#ACTION SOURCE DEST PROTO DEST SOURCE

# PORT PORT(S)1

ACCEPT net fw udp 5060


ACCEPT net fw tcp 5038

#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT


REMOVE

Las reglas para el archivo /etc/shorewall/rules de Shorewall, como cortafuegos de dos


zonas (net y loc), considerando que se desea permitir acceso tanto desde redes públicas
como privadas, pero el acceso al gestor de Asterisk solo desde la red local, correspondería a
algo similar a lo siguiente:

#ACTION SOURCE DEST PROTO DEST SOURCE

# PORT PORT(S)1

ACCEPT net fw udp 5060

ACCEPT loc fw udp 5060

ACCEPT loc fw tcp 5038

#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT


REMOVE

Bibliografía.

• http://wiki.ekiga.org/index.php/Ekiga_as_an_Asterisk_client
• http://wiki.ekiga.org/index.php/Asterisk_and_Voicemail
• http://wiki.ekiga.org/index.php/Connecting_Asterisk_to_ekiga.net
• http://en.wikipedia.org/wiki/Asterisk_%28PBX%29
• http://en.wikipedia.org/wiki/Ekiga
• http://es.wikipedia.org/wiki/Session_Initiation_Protocol
• http://tools.ietf.org/html/rfc3261

También podría gustarte