Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Antes de empezar
Qu sabes de Asterisk?
Introduccin a VoIP
VoIP en general
VoIP: Caractersticas Principales
Se utiliza una nica red. Si dos empresas estn unidas a travs de Internet, Porqu no aprovecharlo ? Se administra una nica red. Estndares abiertos e internacionales. Inter-operabilidad, Bajada de precios en proveedores y fabricantes de hardware VoIP. Calidad: Es posible conseguir la misma calidad, de hecho hoy por hoy, el 40% de las llamadas de las grandes operadoras se encaminan por VoIP. Fiabilidad: En LAN, se puede lograr una gran fiabilidad. En Internet tambin, pero existen quizs demasiados factores. (QoS, NAT) Coste: Instalacin sobre red existente, precios de llamadas.
NAT: El cncer de la VoIP. Distintos tipos, no es fcilmente manejable. QoS: Necesidad de ofrecer calidad de servicio, al ser la voz crtica en tiempo real. Latencia: Tiempo que tarda la voz en llegar al destino. Jitter: Variacin de la latencia. Ancho de banda: En Espaa conexiones asimtricas. El ancho de banda es muy caro.
Terminologa Bsica
Telefona
Lo que hay en nuestra pared. Alimenta dispositivos. Utiliza sealizacin FXO. El conector de nuestro telfono donde entra la lnea. Recibe alimentacin. Utiliza sealizacin FXS.
Redes y protocolos
El protocolo SIP
El protocolo SIP
Protocolo de Inicio de Sesin (Session Initiation Protocol) Un protocolo de sealizacin. Legible por el ser humano, similar a HTTP. Es principalmente un protocolo de sealizacin de capa de aplicacin para iniciacin, modificacin y terminacin de sesiones de comunicacin multimedia entre usuarios. Principales elementos implicados:
Capacidades de SIP:
Localizacin del usuario. Disponibilidad del usuario: determinacin de la voluntad del receptor de la llamada de participar en las comunicaciones. Capacidad del usuario: Determinacin del medio y de sus parmetros. Gestin de la sesin: transferencia, terminacin de sesiones, modificacin de los parmetros de la sesin desde el propio 'User Agent'.
El protocolo SIP es de forma nativa peer to peer: 2 User Agents pueden establecer una sesin entre s:
Dos Canales:
Sealizacin(UDP 5060): Establecimiento, Negociacin,Fin...) Streaming RTP (UDP 10000-20000 normalmente) y control RTCP.
El protocolo IAX2
IAX2
Inter Asterisk eXchange v2. Protocolo exclusivo para enlaces entre Asterisk, aunque hay algunos hardphones IAX2 (Atcom). Los streams de audio y la sealizacin viajan por el mismo puerto: 4569 UDP. Protocolo binario, NO basado en texto. No tiene problemas con NAT!!
Internet
Datos + Sealizacin
IAX2 (2)
IAX2 trunking:
Es posible enviar varias conversaciones por el mismo flujo, lo cual supone un importante ahorro de ancho de banda (overhead de la capas IP y transporte UDP). AES 128 ?? MD5 Texto en claro (plaintext) RSA
Encriptacin:
Autenticacin
y Skype?
Skype
Ventajas:
Desventajas:
Espiando al usuario. Protocolo oscuro y cerrado. 0 de interoperabilidad. Imposibilidad de utilizar proveedores alternativos. Robo de ancho de banda. P2P ???
Alternativas a Skype
Servidor Asterisk!!
Introduccin a Asterisk
Qu es Asterisk?
Software
Cumple todas las funcionalidades de una centralita tradicional y ms. Open Source. Asterisk is an OpenSource Multiprotocol Modular PBX Para uso domstico. Uso empresarial (ABE) Operadores de telefona IP. etc...
Funcionalidades de Asterisk
Multiprotocolo y OpenSource!! Extensiones, DIDs para usuarios. Buzones de voz, desvos de llamada, follow-me, ... Colas y agentes. Mens IVR. Protocolos: SIP, IAX2, H.323, MGCP, ... PSTN: T1/E1, ISDN BRI, FXO/FXS. Soporte de vdeo (Asterisk 1.6: the video release).
Arquitectura de Asterisk
Arquitectura de Asterisk
Canales
CSV MySQL
CDR PBX Core
Dial Voicemail
Aplicaciones y funciones
AGI config
Recursos Formatos
.gsm .wav
Codecs
G.729 G.711
Codecs de audio
Sirven para digitalizar la voz humana. Cuando dos dispositivos van a establecer una comunicacin, acuerdan el codec a utilizar. Factores importantes a la hora de seleccionar un codec:
Bandwidth Ethernet (Kbps) 87.2 Kbps 31.2 Kbps 21.9 Kbps 20.8 Kbps 55.2 Kbps 47.2 Kbps 31.5 Kbps
Los proveedores VoIP suelen trabajar en g729, que consume muy poco ancho de banda y no sera viable utilizar g711 por ejemplo. PERO g729 no es libre :( Cada licencia de g729 para un canal = 10$ Hay una implementacin que puede utilizarse con fines no lucrativos/educacionales http://asterisk.hosting.lv/ Para comprobar los costes del transcoding: *CLI>core show translation
Llamadas en Asterisk
Asterisk recoge la llamada y la pocesa su lgica de enrutado (dialplan). Despus se encamina al destino.
Receptor de la llamada.
AstChannels: La mgia
Si asterisk es multiprotocolo, como se realiza una llamada entre 2 dispositivos de distinta tecnologa? Hay 4 canales!! 2 dependientes de la tecnologa utilizada y 2 AstChannels. Asterisk crea los AstChannels para poder llevar a cabo el bridging.
Transferencias. Parking.
Bridging
Canales independientes de la tecnologa. Asterisk los genera y lleva a cabo el mecanismo de bridging.
Antes de profundizar en el protocolo SIP o IAX2, definiremos unos conceptos comunes que maneja Asterisk. Peers, users y friends:
Asterisk HACE una llamada A UN peer. Asterisk RECIBE una llamada DE un user. Un friend es ambas cosas. Concepto de user en desuso. Se utilizan peers y friends.
Proceso de registro:
Un dispositivo informa a Asterisk sobre su ubicacin (direccin IP y puerto) Solo es necesario registrarse con Asterisk si Asterisk no sabe donde esta el dispositivo (host=dynamic). El registro expira, y se vuelve a informar de la ubicacin. Necesaria para realizar una llamada. (o no?) Pueden realizarse llamadas sin registrarse pero no sin autenticarse. El registro implica autenticacin, para que Asterisk mande las llamadas a la IP que se le ha dicho.
Autenticacin:
Puertos y protocolos:
En IAX2 todo viaja por el mismo puerto: 4569 UDP. En SIP, la sealizacin por el puerto 5060 UDP y los streams de audio y video con el protocolo RTP por puertos aleatorios (rtp.conf) UDP.
Esquema
Instalando Asterisk
Antes de instalar...
Libreras necesarias
Para poder compilar Asterisk tendremos que instalar lo siguiente como mnimo:
Compilando Asterisk
Estructura de directorios
/etc/asterisk: Contiene los ficheros de configuracin. Si al compilar ejecutamos make samples, tendremos ejemplos en este directorio. /usr/lib/asterisk/modules: Contiene los mdulos de Asterisk que hemos compilado. /var/lib/asterisk: Contiene diferentes libreras de Asterisk. /var/lib/asterisk/agi-bin: Directorio para contener los AGI. /var/spool/asterisk: Directorio para archivos que genera Asterisk (voicemail, etc.) /var/log/asterisk: Aqu se guardan los log de Asterisk.
Ejecutando Asterisk
-c: Modo consola. Asterisk se inicia en primer plano. -v: Verbose. Cuantas ms uves se aadan ms mensajes descriptivos veremos en la consola. -d: Debug. Cuantas ms des, ms mensajes de debug. -r: Remote console. Si hemos ejecutado Asterisk en segundo plano, nos permite conectarnos al CLI.
Para lanzar Asterisk en segundo plano: #asterisk Para lanzar Asterisk en primer plano: #asterisk -vvvvvvvvvvc Para conectarnos a la consola si Asterisk esta en segundo plano: #asterisk -vvvvvvvvvvr
Ficheros de configuracin
SPA 3102
Conectarlo a la red (boca WAN) para que coja IP por DHCP. Consultar la IP usando el IVR: **** > 110# Activar el servidor web en la boca WAN: **** > 7932# >1# > 1 Acceder con el navegador.
SPA 3102
Deshabilitar el router:
Entrar como Admin > Advanced. Pestaa Router > LAN Setup Networking Service: Bridge Mode
SPA 3102
Configurar la FXO:
Pestaa Voice > PSTN Line. En la seccin Proxy and Registration, en el campo Proxy ponemos la direccin IP de nuestro Asterisk. En la seccin Subscriber Information, en el campo User ID ponemos el nombre de la cuenta SIP que hemos creado en Asterisk y en el campo Password la contrasea. En la seccin de Dialplans ponemos lo siguiente en el DialPlan 2: (S0<:s>)
SPA 3102
Configurar la FXO:
PSTN-To-VoIP Gateway Enable: Yes PSTN Caller Auth Method: None PSTN Ring Thru Line 1: no PSTN CID For VoIP CID: yes PSTN Caller Default DP: 2
En la seccin FXO timer values, ponemos PSTN Answer Delay: 2, o el nmero que queramos, esto es el tiempo que se esperar antes de descolgar.
SPA 3102
Configurar la FXS:
Pestaa Voice > Line 1. En la seccin Proxy and Registration, en el campo Proxy ponemos la direccin IP de nuestro Asterisk. En la seccin Subscriber Information, en el campo User ID ponemos el nombre de la cuenta SIP que hemos creado en Asterisk y en el campo Password la contrasea.
Demo
Anexo A: Softphones
X-Lite
Protocolo SIP Soporte STUN g711a/u, gsm, ilbc, speex Windows, GNU/Linux, MacOSX
Protocolo SIP e IAX2 Soporte STUN g711a/u, gsm, ilbc, speex, g729 (version BIZ) Windows, GNU/Linux, MacOSX
Cubix
Protocolo SIP e IAX2 Soporte STUN g711a/u, gsm, ilbc, speex, g729 Windows
DIAX
KIAX
Twinkle
Ekiga
Links
http://www.asterisk.org/(webodicialdeAsterisk) http://www.saghul.net/blog/documentos/(materialdelacharlaycursode20h) http://www.voipinfo.org/(todosobreVoIP) http://planet.vozip.com/(planetsobreVoIP) http://www.asteriskguru.com/(tutoriales,etc...) http://www.asterisk.org/doxygen/(documentacindedevelopers) http://www.asteriskes.org/(wikideusuarioshispanihablantes) http://groups.google.com/group/asteriskes/(listadecorreoAsteriskES) http://www.vozip.com(tiendadeVoIP)
Castellanizar Asterisk
Incluir la lnea language=es en los ficheros de configuracin. (sip.conf, iax.conf, extensions.conf, voicemail.conf, ...) Editar el fichero indications.conf, poniendo country=es. Ficheros de sonido en castellano:
http://www.voipnovatos.es/voces/ Descargamos en formato gsm, alaw, g729, ... Editar arbol de directorios (todo cuelga de es) Copiar a /var/lib/asterisk/sounds/es/
Licencia
Licencia
http://creativecommons.org/licenses/bync/2.5/es/
GRACIAS A TODOS!!