18
PRACICA 1 LABORATORIO III DE SISTEMAS DE TELECOMUNICACIONES INSTALACION, CONFIGURACION DE ASTERISK, USUARIOS, EXTENSIONES Y CLIENTES SOFTWARE CARLOS ANDRES ARARAT MINA CARLOS IVAN CAICEDO JOAQUI GERARDO MAURICIO ERAZO ACOSTA Ing-Esp: JAVIER ALEXANDER HURTADO LABORATORIO III DE SITEMAS DE TELECOMUNICACIONES I PERIODO 2011 UNIVERSIDAD DEL CAUCA INGENIERIA ELECTRONICA Y TELECOMUNICACIONES POPAYAN 2011

PRACTICA 1

  • Upload
    camlx2

  • View
    435

  • Download
    3

Embed Size (px)

Citation preview

Page 1: PRACTICA 1

PRACICA 1LABORATORIO III DE SISTEMAS DE TELECOMUNICACIONES

INSTALACION, CONFIGURACION DE ASTERISK, USUARIOS, EXTENSIONES Y CLIENTES SOFTWARE

CARLOS ANDRES ARARAT MINACARLOS IVAN CAICEDO JOAQUI

GERARDO MAURICIO ERAZO ACOSTA

Ing-Esp:JAVIER ALEXANDER HURTADO

LABORATORIO III DE SITEMAS DE TELECOMUNICACIONESI PERIODO 2011

UNIVERSIDAD DEL CAUCAINGENIERIA ELECTRONICA Y TELECOMUNICACIONES

POPAYAN2011

Page 2: PRACTICA 1

Contenido

1 Asterisk. 1.1 Instalación y configuración de Asterisk. 1.2 Configuración de usuarios y extensiones de acuerdo a un plan de marcación. 1.3 Configuración de clientes Software SIP (X-Lite, Zoiper, ExpressTalk, MizuPhone, FaramPhone y Mirial Softphone).

1.3.1 Xlite 1.3.2 Zoiper 1.3.3 ExpressTalk 1.3.4 MizuPhone 1.3.5 FaramPhone 1.3.6 Mirial Sofphone

Page 3: PRACTICA 1

1 Asterisk

Asterisk es un sofware que nos da funciones de central telefonica (PBX), que posee una licencia de libre distribucion, bajo licencia GPL, que puede concetar llamadas de terminales conectas a esta central como a proveedores de servicios VoIP o RDSI que corre en plataforma Linux y otras plataformas Unix .

Ventajas de Asterisk: • Corre bajo Linux y es código abierto. • Es posible proveer contenido dinámico por teléfono. • Reducción extrema de costos. • Tener control del sistema de telefonía. • Ambiente de desarrollo fácil y rápido.

Asterisk usa los soporta los siguientes protocolos protocolos:• SIP • H323 • IAXv1 y v2 • MGCP • SCCP (Cisco Skinny).

Asterisk soporta los siguientes CODECs para el manejo de señales: • GSM – ( 12 -13 K bps) • iLBC – (15 Kbps) • LPC10 - (2.5 Kbps) • Speex - ( 2.15 -44.2 K b ps) G.711 ul aw ( usado en EUA) – ( 64 K bps) . • G.711 alaw (usado en Europa y Brasil) – (64 Kbps). • G. 7 2 3 . 1 – Mo d o P as s - t h r o u gh • G. 7 2 6 - 3 2 kb p s e n A s t e r i s k1 . 0 . 3 , 1 6 / 2 4 / 32 / 4 0 kb p s • G.729 – Precisa adquisición de licencia, a menos que este siendo usando en

modo pass-thru.(8Kbps) • GSM – ( 12 -13 K bps) • iLBC – (15 Kbps) • LPC10 - (2.5 Kbps) • Speex - ( 2.15 -44.2 K b ps)

Asterisk puede soporta servicios de telefonia entre los cuales tenemos:• Llamadas• Correo de voz• Transferencia de llamadas• IVR Personalizado (Interactive Voice Response)• Cola de llamadas• Backtones• Invitar a un terceco o conferencia• Entre otros.

Page 4: PRACTICA 1

1.1 Instalación y configuración de Asterisk version 1.8.3 sobre Ubuntu 10.10

La instalacion se realiza desde te terminal de ubuntu, ubucado en el menu Aplicaciones, Accesorios.

Para evitar inconvenites iniciamos como administrador:

sudo su***password****

Antes de instalar Asterisk actualizamos la librerías de Ubuntu, para este y lo siguientes procedimientos es recomendable tener una conexión a internet.

apt-get update

Seguimos con la instalacion de algunos paquetes que son necesarios para el funcionamiento de asterisk, asi como otros que nos pueden servir en las siguientes practicas, para esto ingresamos los paquetes siguientes de manera individual y si alguno nos pide confirmacion, lo hacemos:

apt-get install libxml2.devapt-get install g++apt-get install libncurses5-devapt-get install libstdc++5apt-get install ssh

Ahora instalamos los headers del sistema, pero para ello primero averiaguamos la version de servidor linux:

uname –a

este nos arroja la version, esta es: Linux servidor 2.6.32-21-generic #1 SMP Sun Oct 14 23:05:12 GMT 2007 i686 GNU/Linux, donde laversion es la 2.6.32.21

Intalamos los headers del sistema con la siguiente instrucción:

apt-get install linux-headers-2.6.32-21-generic

A continuación se digita el siguiente comando:

ln -s /usr/src/linux-headers-2.6.32-21-generic /usr/src/linux-2.6

Ahora si procedemos a descargar Asterisk-1.8.3.tar.gz, las libreria libpri-1.4.11.5.tar.gz y dahdi-linux-complete-2.4.1+2.4.1.tar.gz como complementos, lo hacemos directamente desde el terminal:

Page 5: PRACTICA 1

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8.3.tar.gz

wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.11.5.tar.gz

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.4.1+2.4.1.tar.gz

Page 6: PRACTICA 1

Las anteriores archivos quedan guadados en la carpeta Descargas, nos ubicamos en esta carpeta y los copiamos en la carpetas de instalacion:

cd /home/enfasis/Descargascp *.tar.gz /usr/src/

Donde enfasis es el nombre de usuario, Ahora nos ubicamos en la carpeta de instalacion y como los archivos estan protegidos, les quitamos las restricciones que tiene:

cd /usr/src/chmod 777 dahdi-linux-complete-2.4.1+2.4.1.tar.gz chmod 777 libpri-1.4.11.5.tar.gz chmod 777 asterisk-1.8.3.tar.gz

Procedemos a descomprimir los archivos de instalacion:tar –zxvf dahdi-linux-complete-2.4.1+2.4.1.tar.gztar –zxvf libpri-1.4.11.5.tar.gz tar -zxvf asterisk-1.8.3.tar.gz

Procedemos a instalar cada uno de los paquetes, iniciamos con dahdi:cd dahdi-linux-complete-2.4.1+2.4.1make cleanmakemake install

luego de la instalacion nos debe aparecer la siguiente pantalla:

Page 7: PRACTICA 1

Instalamos el segundo paquete libpri:

cd ..cd libpri-1.4.11.5make cleanmakemake install

luego de la instalacion exitosa nos debe aparecer la siguiente pantalla:

Page 8: PRACTICA 1

Por ultimo instalamos asterisk:

cd ..cd asterisk-1.8.3./configuremake cleanmakemake install

Page 9: PRACTICA 1

Para instalar los ejemplos de archivos de configuración utilizamos el comando:

make samples

Al hacer esto, dichos ejemplos se sobrescribirán sobre los archivos de configuración existentes.

Ahora debemos iniciar Asterisk desde un Terminal como administrador utilizando el siguiente comando:

cd /usr/src/asterisk-1.8.3asterisk –vvvc

Entonces aparecerán una serie de mensajes en la pantalla y al presionar la tecla Enter, se entra a la línea de comandos de asterik y se verá en la pantalla lo siguiente:

CLI>

Para ingresar a la línea de comandos asterisk, digitamos el siguiente comando en una consola como usuario root:

asterisk –r

Para reiniciar asterisk en CLI (Command Line Interface) Asterisk :

CLI>reloadPara detener asterisk en CLI (Command Line Interface) Asterisk:

CLI>core stop now

Page 10: PRACTICA 1

1.2 Configuración de usuarios y extensiones de acuerdo a un plan de marcación.

Nuestro plan de marcado correspondiente son las extensiones del orden de 10000

Para esto modificamos los archivos extensions.conf y sip.conf con el fin de configurar las extensiones en el servidor.

Primero configuramos el archivo extensions.conf , abrimos el archivo como muestra a coninuacion e ingresando la configuracion de grupo, el cual lo llamamos Lab3Sistel, y añadimos las extensiones al final del archivo.

sudo su cd /etc/asterisk/ gedit extensions.conf

Ingresamos al final del archivo:

[Lab3Sistel]exten=> 10001,1,Dial(SIP/10001)exten=> 10002,1,Dial(SIP/10002)exten=> 10003,1,Dial(SIP/10003)

Por otro lado configuramos el archivo soft.conf , abrimos el archivo como muestra a coninuacion e ingresando la configuracion de grupo, el cual lo llamamos Lab3Sistel, y añadimos las configuraciones sip de las extensiones al final del archivo.

sudo su cd /etc/asterisk/ gedit sip.conf

Ingresamos al final del archivo:

[Lab3Sistel]

[10001]type=friend ; Se define como tipo amigohost=dynamic ;Se desconoce la locación del usuario y se deja en dynamiclanguage=es ; define el idiomacontext=Lab3Sistel ; El contexto al que pertenecera el usuariosecret=10001 ;contraseña del usuariousername=10001 ; nombre del usuario;callerid=10001

[10002]type=friend ; Se define como tipo amigohost=dynamic ;Se desconoce la locación del usuario y se deja en dynamic

Page 11: PRACTICA 1

language=es ; define el idiomacontext=Lab3Sistel; El contexto al que pertenecera el usuariosecret=10002 ;contraseña del usuariousername=10002 ; nombre del usuario;callerid=10002

[10003]type=friend ; Se define como tipo amigohost=dynamic ;Se desconoce la locación del usuario y se deja en dynamiclanguage=es ; define el idiomacontext=Lab3Sistel; El contexto al que pertenecera el usuariosecret=10003 ;contraseña del usuariousername=10003 ; nombre del usuario;callerid=10003

ARCHIVO sip.conf

El archivo sip.conf sirve para configurar todo lo relacionado con el protocolo SIP y añadir nuevos usuarios o conectar con proveedores SIP.

El fichero sip.conf comienza con una sección general que contiene la configuración por defecto de todos los usuarios y "peers" (proveedores). Se puede sobreescribir los valores por defecto en las configuraciones de cada usuario o peer. En general los servidores SIP escuchan en el puerto 5060 UDP, en algunos casos, por ejemplo si utilizamos SER (Sip Express Router) con Asterisk debemos cambiar este puerto.

DNS es una forma de configurar una dirección lógica para que pueda ser resuelta. Esto permite que las llamadas sean enviadas a diferentes lugares sin necesidad de cambiar la dirección lógica. Usando el DNS SRV se ganan las ventajas del DNS mientras que deshabilitándolo no es posible enrutar llamadas en base a nombre de dominios. Conviene tenerlo activado, por tanto se pone la directiva srvlookup=yes

Cada extensión está definida por un user o usuario, un peer o proveedor o un friend o amigo y viene definida con un nombre entre corchetes []. El tipo (type) "user" se usa para autenticar llamadas entrantes, "peer" para llamadas salientes y "friend" para ambas.

Secret es la contraseña usada para la autenticación.

Se puede monitorizar la latencia entre el servidor Asterisk y el teléfono con qualify=yes para determinar cuando el dispositivo puede ser alcanzado En este caso Asterisk considera por defecto que que un dispositivo está presente si su latencia es menor de 2 segundos. Se puede cambiar este valor poniendo el número de milisegundos en vez de yes.

Si una extensión está detrás de un dispositivo que realiza NAT (Network Address Translation) como un router o firewall se puede configurar nat=yes para forzar a Asterisk a ignorar el campo información de contacto y usar la dirección desde la que vienen los paquetes.

Page 12: PRACTICA 1

Si ponemos host=dynamic quiere decir que el teléfono se podrá conectar desde cualquier dirección IP. Podemos limitar a que dicho usuario solo pueda acceder con una IP o con un nombre de dominio. Si ponemos host=static no haría falta que el usuario se registrara con la contraseña proporcionada en "secret".

También se ha puesto canreinvite=no. En SIP los invites se utilizan para establecer llamadas y redirigir el audio o video. Cualquier invite después del invite inicial en la misma conversación se considera un reinvite. Cuando dos usuarios han establecido la comunicación con canreinvite= yes (por defecto) los paquetes RTP de audio podrían ser enviados extremo a extremo sin pasar por el servidor Asterisk. Esto, normalmente, no suele ser conveniente en casos en los que haya NAT en alguno de los clientes. (NAT=yes).

Por último context=internal indica el contexto donde está las instrucciones para dicha extensión. Esto está relacionado con el contexto del archivo extensions.conf que marca el plan de numeración para ese contexto. Por tanto el contexto internal debe existir en el fichero extensions.conf o de lo contrario se debería crearlo. Varias extensiones pueden tener el mismo contexto.

ARCHIVO extensions.conf

Es el más importante del Asterisk y tiene como misión principal definir el dialplan o plan de numeración que seguirá la centralita para cada contexto y por tanto para cada usuario.

El fichero extensions.conf se compone de secciones o contextos entre corchetes []. Hay dos contextos especiales que están siempre presentes que son [general] y [globals].

Contexto [general]: El contexto [general] configura unas pocas opciones generales como son:

• static : Indica si se ha de hacer caso a un comando "save dialplan" desde la consola. Por defecto es "yes". Funciona en conjunto con "writeprotect" .

• writeprotect : Si writeprotect=no y static=yes se permite ejecutar un comando "save dialplan" desde la consola. El valor por defecto es " no".

• autofallthrough : Si está activado y una extensión se queda sin cosas que hacer termina la llamada con BUSY, CONGESTION o HANGUP Si no está activada se queda esperando otra extensión. Nunca debería suceder que una extensión se quede sin cosas que hacer como explicaremos posteriormente.

• clearglobalvars : Si está activado se liberan las variables globales cuando se recargan las extensiones o se reinicia Asterisk.

• priorityjumping : Si tiene valor 'yes', la aplicación soporta 'jumping' o salto a diferentes prioridades.

En general estas opciones no son muy importantes y se pueden dejar tal y como aparecen por defecto.

Page 13: PRACTICA 1

Contexto [globals]: En este contexto se definen las variables globales que se van a poder utilizar en el resto de los contextos. Por ejemplo: CONSOLE=Console/dsp ;indica que cuando hagamos referencia a la variable CONSOLE estamos llamando a /Console/dsp Las variables suelen ponerse siempre en mayusculas para diferenciarlas posteriormente.

Contextos de llamada [] Esto es lo más importante de este fichero. Vamos a indicar ahora como crear un contexto especifico y asignar un plan de numeración. Todas las líneas de un determinado contexto tienen el mismo formato:

exten => extension , prioridad, Comando(parámetros)

La extensión hace referencia al número marcado y la prioridad al orden en que se ejecutan las instrucciones. Primero se ejecuta la de prioridad 1, luego la 2 y sucesivamente. El Comando hace referencia a la acción a ejecutar.

Ejemplo: Llamar al usuario SIP 10000 y que salte el contestador si no contesta exten => 10000,1,Dial(SIP/10000,30,Ttm) ; intenta llamar al usuario 3000 de SIP que tiene que estar definido en sip.conf con ese contexto [3].

Page 14: PRACTICA 1

1.3 Configuración de clientes Software SIP (X-Lite, Zoiper, ExpressTalk, MizuPhone, FaramPhone y Mirial Softphone). 1.3.1 Xlite 2.0

Una herramienta para realizar las pruebas de las llamadas el un softphone, para el cual usamos X-Lite 2.0, su proceso de isntalacion es el siguiente:

Verificamos que el equipo tenga el paquete libstdc++5-dev , si no lo tiene lo instalamos, descargandolo desde la web.

http://packages.ubuntu.com/jaunty/i386/libstdc++5/download

Descargamos el instalador desde la web:

http://linux.softpedia.com/get/Communications/Internet-Phone/X-Lite-5595.shtml

Copiamos la descarga a la carpeta respectva, desde descagas:

cd Descargasmv X-Lite_Install.tar.gz /usr/src

le habilitamos permisos y descomprimimos.

chmod +x X-Lite_Install.tar.gztar -zxvf X-Lite_Install.tar.gz

El nos descomprime una carpera xten-xlite, la cual habilitamos permisos, e ingresamos a ella.

chmod 777 xten-xlite cd xten-xlite

Corremos la aplicación.

./xtensoftphone

Listo, realizamos configuraciones de audio de entrada y salida.

Page 15: PRACTICA 1

Para abrir la aplicación nuevamente la aplicacion:

cd /usr/src/xten-xlite ./xtensoftphone

1.3.2 Zoiper

Zoiper es un sofphone que tien distribucion para linux y windows, en la distribucion linux se descarga el programa y lo ubicamos asi:

sudo sucd Descargascp zoiper215-linux.tar.gz /usr/src/cd /usr/src/chmod 777 zoiper215-linux.tar.gztar -zxvf zoiper215-linux.tar.gz./zoiper

Si nuevamente queremos abrir zoiper, desde el terminal

Page 16: PRACTICA 1

cd /usr/src/./zoiper

Este sofphone tiene problemas en linux, debido a que al iniciar la aplicación, esta no se cierra hasta el apagado de equipo.

Su configuracione es asi:

1.3.3 Otros softphone

Los softphones siguientes, asi como xten-xlite.exe y zoiper.exe vienen en sus ultimas versiones, los cuales por tener extensiones .exe o .msi, funcionan solo para sistemas operativos windows, su instalacion es de doble click sobre cada uno y seguir el instalador.

ExpressTalk.exe

Page 17: PRACTICA 1

MizuPhone.exe

Page 18: PRACTICA 1

FaramPhone.msi

Mirial Sofphone.exe