SRD UT7 Asterisk

Unidad de Trabajo nº7 – Asterisk. Configuración básica Servicios de red e Internet – I.E.S. Siete Palmas  Objetivo gen

Views 70 Downloads 1 File size 553KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Unidad de Trabajo nº7 – Asterisk. Configuración básica Servicios de red e Internet – I.E.S. Siete Palmas 

Objetivo general:   

Instalación y configuración básica de un servidor de VoIP Asterisk en Ubuntu. Instalación, configuración y gestión de software tipo softphone Twinkle. Realización de llamadas entre dos dispositivos empleando softphones mediante VoIP.



Duración prevista: 3 horas aproximadamente.



Software: Ubuntu 16.04 LTS (xenial)



Mínimos que se persiguen en la actividad:  



Documentación:     



Reflexión sobre la utilidad y generalización de uso de VoIP. Ventajas e inconvenientes de utilización sobre una PBX tradicional. Realización práctica de los distintos pasos en la configuración de un servidor Asterisk y una llamada entre dos clientes softphones.

http://www.alcancelibre.org/staticpages/index.php/como-ekiga-asterisk http://phplinuxandthelike.wordpress.com/2007/09/04/basic-asterisk-configuration/ http://www.twinklephone.com/ Guía de Ubuntu 16.04 LTS Guías en español de las principales distribuciones de Linux (http://linux-cd.com.ar)

Pasos de la Actividad: Introducción a VoIP Voz sobre Protocolo de Internet, también llamado Voz sobre IP, Voz IP, VozIP, VoIP (por sus siglas en inglés, Voice over IP), es un grupo de recursos que hacen posible que la señal de voz viaje a través de Internet empleando el protocolo IP (Protocolo de Internet). Esto significa que se envía la señal de voz en forma digital, en paquetes de datos, en lugar de enviarla en forma analógica a través de circuitos utilizables sólo por telefonía convencional como las redes PSTN (siglas de Public Switched Telephone Network, Red Telefónica Pública Conmutada). Para transmitir la voz sobre el protocolo IP existen dos estándares VoIP: H.323 y SIP. Puede ver una comparativa de ambos en el siguiente enlace. A pesar de que H.323 es más completo, emplearemos SIP por su simplicidad, modularidad y facilidad de instalación. SIP (Session Initiation Protocol) es un protocolo propuesto como estándar por la IETF para VoIP. La alternativa de software más utilizada y conocida que implementa un servidor de comunicaciones basado en VoIP mediante SIP es Asterisk y que será también la que implementaremos en esta práctica. 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. 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. Los clientes SIP para VoIP pueden ser físicos (teléfonos IP), pero también podemos usar clientes basados en software libre para establecer las comunicaciones entre los extremos. Estos se conocen con el nombre de softphone. Existen muchos softphones como Twinkle, Linphone, Ekiga, Zoiper, X-lite, etc… Podemos usar el que queramos, en esta documentación recomendamos Twinkle y Zoiper. En esta práctica implementaremos Asterisk como servidor SIP que funcionará como una PBX a la que se conectarán 2 clientes softphones (Twinkle) que funcionarán como clientes SIP y establecerán una llamada entre ellos.

Paso previo inicial: Configuración de servidor DNS Referenciaremos nuestra centralita Asterisk (PBX virtual) mediante el dominio sip.aula2asir99.local por lo que será necesario añadir en nuestro servidor DNS un registro CNAME de la forma: sip

IN

CNAME ns1

; La IP de sip.aula2asir99.local será la misma que el servidor principal ns1

1 /5

Reiniciamos nuestro servidor bind9 y probamos que se resuelve correctamente la dirección IP mediante el comando nslookup, ping o dig. Pasos a realizar para la instalación y configuración de Asterisk 

Paso 1: Se actualizan los repositorios y los paquetes que tienen actualizaciones: sudo apt-get update sudo apt-get dist-upgrade



Paso 2: Se instalan los paquetes asociados al servidor Asterisk y los sonidos en español: sudo apt-get install asterisk sudo apt-get install asterisk-core-sounds-es Para ver los paquetes instalados por defecto: sudo dpkg –l *asterisk*



Paso 3: Se inicia el servicio de Asterisk y comprobamos su estado: sudo /etc/init.d/asterisk start sudo /etc/init.d/asterisk status



Paso 4: Inicialmente, estableceremos una configuración básica de nuestro servidor. Para ello, nos aseguraremos que están habilitadas las siguientes líneas en el fichero /etc/asterisk/sip.conf: [general] context=public transport=udp srvlookup=yes language=es videosupport=yes … [my-codecs] disallow=all allow=ilbc allow=g729 allow=gsm allow=g723 allow=ulaw



; Indicamos el ámbito de nuestro pbx (público, privado o default) ; Indica el protocolo de transporte que se utilizará ; Habilita la búsqueda de cuentas entre pbxs ; Habilitamos idioma en español ; Habilita la opción de videoconferencia

; Deshabilita todos los codecs disponibles en el sistema ; Habilita los codecs mínimos necesarios para VoIP

Paso 5: Al final del fichero /etc/asterisk/sip.conf, añadiremos dos cuentas SIP (ibrahim y espino) que asociaremos posteriormente a las extensiones telefónicas 101 y 102.

2 /5

; Cuenta ibrahim [ibrahim] type=friend username=ibrahim

secret=srdasir qualify=yes nat=no host=dynamic

canreinvite=no context=aula2asir99 ;port=5061

; El usuario con tipo friend podrá enviar y recibir llamadas ; Esta variable está obsoleta, y la documentación propone defaultuser. ; Es opcional ya que lo importante es el nombre de la extensión, 101. ; Se usa a modo de identificación ; Contraseña que debe poner en el cliente softphone ; El par correspondiente está no más allá de 2000 mS. ; No hay NAT. La comunicación es en red local, directa. ; Cualquier equipo con cualquier IP se podrá registrar como cliente. Es decir, ; en cuanto un cliente SIP se conecte al servidor se identificará su IP. Puede ; establecerse una ip fija, simplemente especificando la ip del equipo. ; Asterisk tratará de redireccionar de forma predeterminada. ; Contexto predefinido (ver → extensions.conf). Importante. ; Si se descomenta esta línea el softphone con extensión 101 estará ; escuchando por dicho puerto. Esto es necesario si queremos ejecutar ; Asterisk y el cliente en el mismo equipo.

; Cuenta espino [espino] type=friend username=espino secret=asirsrd qualify=yes nat=no host=dynamic canreinvite=no context=aula2asir99 ;port=5061

; 

Paso 6: En el fichero /etc/asterisk/extensions.conf, debemos indicar el DialPlanning que consiste en describir cuáles son los pasos que realiza la PBX virtual cuando se realiza la llamada a la extensión correspondiente. Recuerda que hemos definido un contexto de llamadas denominado aula2asir99, ahora debemos describir cómo ha de responder el servidor SIP (Asterisk) cuando reciba una llamada para una extensión concreta. [aula2asir99] exten => 101,1,Dial(SIP/ibrahim) exten => 102,1,Dial(SIP/espino)

En este caso se describe que si el servidor recibe una llamada entrante para la extensión 101, reenviará esa llamada (marcará) a la cuenta SIP ibrahim. Igualmente sucede con la extensión 102 y la cuenta SIP espino. Más adelante, se configurará la centralita (PBX) para otras necesidades más complejas. 

Paso 7: Una vez hecho todos los cambios, reiniciaremos el servicio: sudo /etc/init.d/asterisk restart



Paso 8: Para ver lo que está sucediendo durante la ejecución del servicio Asterisk, podemos ejecutar lanzar el gestor por comandos CLI de Asterisk: sudo asterisk –r Te aparecerá una línea de comandos como la siguiente: ============================================== Connected to Asterisk 13.1.0.~dfsg-1.1ubuntu4 currently running on servidor (pid = 6585) servidor*CLI>

donde se puede interactuar con nuestra centralita mediante comandos. Algunos de los más importantes son:

3 /5



help: Muestra todos los comandos disponibles



sip ?: Muestra ayuda sobre el comando sip



sip show users: Muestra las cuentas SIP disponibles en el servidor.



sip show peers: Muestra el estado de conexión de las cuentas existentes. En esta pantalla debes ver una línea por cada cuenta e indicará si un cliente está conectado a dicha cuenta apareciendo la IP del equipo que se conecta.

 

sip reload: Permite recargar la pantalla sip set debug on: Pone la centralita en modo depuración mostrando todos los eventos en tiempo real que se producen. Es muy útil para la detección de errores. Para deshabilitar este modo, se introduce el comando sip set debug off.

Pasos en la configuración de un softphone Twinkle 

Paso 9: En un equipo cliente con Ubuntu distinto al servidor, realizamos la instalación del softphone Twinkle: sudo apt-get install twinkle



Paso 10: Configuramos un nuevo perfil de usuario dándole un nombre representativo e insertaremos los siguientes datos para la cuenta SIP:  Un nombre simbólico para ese usuario. En nuestro ejemplo, Ibrahim.  El nombre de usuario con el que nos identificará el servidor. En nuestro ejemplo, ibrahim.  El dominio o IP del servidor Asterisk. En nuestro ejemplo, sip.aula2asir99.local. Para la autenticación SIP introduciremos:  El nombre de usuario con el que nos autenticaremos contra el servidor. En nuestro ejemplo, ibrahim.  La contraseña definida para el usuario anterior establecida en el fichero sip.conf. En nuestro ejemplo, srdasir.

4 /5



Paso 11: En otro equipo cliente Ubuntu, realizamos los pasos 9 y 10 y configuramos Twinkle con la otra cuenta (en nuestro caso, Espino) insertada en el fichero sip.conf.



Paso 12: A partir de este punto, ya podemos realizar y recibir llamadas entre ambos clientes. Para ello, desde el primer cliente configurado, marcamos el usuario Ibrahim en la ventana donde nos muestra los usuarios disponibles y lo ponemos como usuario por defecto. Tras pulsar Aceptar, el cliente SIP (Twinkle) intentará autenticarse a la centralita Asterisk y éste registrará la IP del cliente. Desde el gestor por comandos CLI de Asterisk, podrá ver el resultado de esta autenticación mediante el comando sip show peers. Para probar una llamada, podemos insertar directamente en el campo Call el número de la extensión a la que queremos llamar (102 si es desde Ibrahim o 101 si es desde Espino) o añadir los datos de contacto del otro usuario mediante la opción Add Buddy… del menú contextual. Las direcciones de los usuarios SIP serán de la forma: usuario@dominio_o_ip_del_servidor. En nuestro caso, [email protected] para llamar a la otra extensión desde Ibrahim. Nota: En el caso de que el cliente permita usar otros estándares diferentes a SIP, la dirección completa del cliente será de la forma: SIP:usuario@dominio_o_ip_del_servidor. En nuestro ejemplo, SIP:[email protected].

Desafío de esta actividad: Se propone instalar, configurar y utilizar tanto en Windows como en Android otros clientes softphones como Zoiper, Qutecom, Linphone o Ekiga y probar el envío y recepción de llamadas desde el móvil hacia/desde el ordenador.

5 /5