Introducción a Asterisk

24,835 views
24,666 views

Published on

Introducción a Asterisk y estudio de un caso práctico: estudiantes que se van de ERASMUS.

Published in: Technology
1 Comment
17 Likes
Statistics
Notes
No Downloads
Views
Total views
24,835
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
1,827
Comments
1
Likes
17
Embeds 0
No embeds

No notes for slide

Introducción a Asterisk

  1. 1. Introducción a VoIP y Asterisk Saúl Ibarra Corretgé
  2. 2. Antes de empezar ● Conocimientos previos recomendados: – Manejo básico de la consola de GNU/Linux. – Interés – Ganas de aprender ● ¿Qué sabes de Asterisk? – ¿Lo has utilizado? Saúl Ibarra Corretgé - http://www.saghul.net
  3. 3. Introducción a VoIP Saúl Ibarra Corretgé - http://www.saghul.net
  4. 4. VoIP en general VoIP: Características Principales ● Se utiliza una única red. Si dos empresas están unidas a través de Internet, ¿ Porqué no aprovecharlo ? ● Se administra una única red. ● Estándares 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 también, pero existen quizás demasiados factores. (QoS, NAT) ● Coste: Instalación sobre red existente, precios de llamadas. Saúl Ibarra Corretgé - http://www.saghul.net
  5. 5. VoIP en general (2) VoIP: Problemas ● NAT: El cáncer de la VoIP. Distintos tipos, no es fácilmente manejable. ● QoS: Necesidad de ofrecer calidad de servicio, al ser la voz crítica en tiempo real. ● Latencia: Tiempo que tarda la voz en llegar al destino. ● Jitter: Variación de la latencia. ● Ancho de banda: En España conexiones asimétricas. El ancho de banda es muy caro. Saúl Ibarra Corretgé - http://www.saghul.net
  6. 6. Terminología Básica Saúl Ibarra Corretgé - http://www.saghul.net
  7. 7. Telefonía ● PSTN: Public Switched Telephony Network. ● FXS: Foreign eXchange Station. – Lo que hay en nuestra pared. – Alimenta dispositivos. – Utiliza señalización FXO. ● FXO: Foreign eXchange Office. – El conector de nuestro teléfono donde entra la línea. – Recibe alimentación. – Utiliza señalización FXS. Saúl Ibarra Corretgé - http://www.saghul.net
  8. 8. Redes y protocolos ● LAN, WAN, ... ● Protocolos: – Capa de Transporte: ●TCP ● UDP – Capa de Aplicación: ● SIP: Session Initiation Protocol ● IAX2: Inter Asterisk eXchange Saúl Ibarra Corretgé - http://www.saghul.net
  9. 9. El protocolo SIP Saúl Ibarra Corretgé - http://www.saghul.net
  10. 10. El protocolo SIP ● Protocolo de Inicio de Sesión (Session Initiation Protocol) ● Un protocolo de señalización. ● Legible por el ser humano, similar a HTTP. ● Es principalmente un protocolo de señalización de capa de aplicación para iniciación, modificación y terminación de sesiones de comunicación multimedia entre usuarios. ● Principales elementos implicados: – User Agent (Usuario) – Registrar y SIP Proxy ● El sector de la VoIP tiende globalmente hacia SIP. Saúl Ibarra Corretgé - http://www.saghul.net
  11. 11. El protocolo SIP (2) ● Capacidades de SIP: – Localización del usuario. – Disponibilidad del usuario: determinación de la voluntad del receptor de la llamada de participar en las comunicaciones. – Capacidad del usuario: Determinación del medio y de sus parámetros. – Gestión de la sesión: transferencia, terminación de sesiones, modificación de los parámetros de la sesión desde el propio 'User Agent'. ● En SIP, el usuario es el 'dueño' de su sesión. ● Contrasta con el concepto de “centralita”. Saúl Ibarra Corretgé - http://www.saghul.net
  12. 12. El protocolo SIP (3) ● El protocolo SIP es de forma nativa “peer to peer”: 2 User Agents pueden establecer una sesión entre sí: ● Dos Canales: – Señalización(UDP 5060): Establecimiento, Negociación,Fin...) – Streaming RTP (UDP 10000-20000 normalmente) y control RTCP. Saúl Ibarra Corretgé - http://www.saghul.net
  13. 13. El protocolo IAX2 Saúl Ibarra Corretgé - http://www.saghul.net
  14. 14. IAX2 ● Inter Asterisk eXchange v2. ● Protocolo exclusivo para enlaces entre Asterisk, aunque hay algunos hardphones IAX2 (Atcom). ● Los streams de audio y la señalización viajan por el mismo puerto: 4569 UDP. ● Protocolo binario, NO basado en texto. ● No tiene problemas con NAT!! Internet Datos + Señalización Saúl Ibarra Corretgé - http://www.saghul.net
  15. 15. 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). ● Encriptación: – AES 128 ?? ● Autenticación – MD5 – Texto en claro (plaintext) – RSA ● Necesita una fuente de tiempo: Zaptel (ztdummy) Saúl Ibarra Corretgé - http://www.saghul.net
  16. 16. ¿y Skype? Saúl Ibarra Corretgé - http://www.saghul.net
  17. 17. Skype ● Ventajas: – Multiplataforma. – Codec. – Uso generalizado. – P2P. – SkypeOut. ● Desventajas: – Espiando al usuario. – Protocolo oscuro y cerrado. – 0 de interoperabilidad. – Imposibilidad de utilizar proveedores alternativos. – “Robo” de ancho de banda. – P2P ??? Saúl Ibarra Corretgé - http://www.saghul.net
  18. 18. Alternativas a Skype ● Gizmo Project (http://www.gizmoproject.com/) – Multiplataforma. – Interconexión con Astersk. – Protocolo SIP. ● Open Wengo (http://www.openwengo.org/) – #include gizmo.h – Posibilidad de usarlo solo como softphone. Saúl Ibarra Corretgé - http://www.saghul.net
  19. 19. Alternativas a Skype (2) ● Servidor Asterisk!! – Extensiones SIP o IAX2. – Varios proveedores IP. – Conexión con la PSTN. Saúl Ibarra Corretgé - http://www.saghul.net
  20. 20. Introducción a Asterisk Saúl Ibarra Corretgé - http://www.saghul.net
  21. 21. ¿Qué es Asterisk? ● Software – Cumple todas las funcionalidades de una centralita tradicional y más. – Open Source. – “Asterisk is an OpenSource Multiprotocol Modular PBX” ● Distintos tipos de uso – Para uso doméstico. – Uso empresarial (ABE) – Operadores de telefonía IP. – etc... Saúl Ibarra Corretgé - http://www.saghul.net
  22. 22. Funcionalidades de Asterisk ● Características típicas de centralita: – Transferencias – Música en espera – ... ● Multiprotocolo y OpenSource!! ● Extensiones, DIDs para usuarios. ● Buzones de voz, desvíos de llamada, follow-me, ... ● Colas y agentes. ● Menús IVR. ● Protocolos: SIP, IAX2, H.323, MGCP, ... ● PSTN: T1/E1, ISDN BRI, FXO/FXS. ● Soporte de vídeo (Asterisk 1.6: “the video release”). Saúl Ibarra Corretgé - http://www.saghul.net
  23. 23. Arquitectura de Asterisk Saúl Ibarra Corretgé - http://www.saghul.net
  24. 24. Arquitectura de Asterisk ● Asterisk es muy modular. ● Nos permite ajustarlo a nuestras necesidades (escalabilidad). – Asterisk en dispositivos empotrados. Saúl Ibarra Corretgé - http://www.saghul.net
  25. 25. Arquitectura de Asterisk (2) Canal SIP Canal IAX2 Canal ZAP Canales CSV Dial MySQL Voicemail CDR PBX Core Aplicaciones y funciones AGI .gsm G.729 config .wav G.711 Recursos Formatos Codecs Saúl Ibarra Corretgé - http://www.saghul.net
  26. 26. Codecs de audio ● Sirven para digitalizar la voz humana. ● Cuando dos dispositivos van a establecer una comunicación, acuerdan el codec a utilizar. ● Factores importantes a la hora de seleccionar un codec: – Calidad de audio. – Coste computacional. – Gasto de ancho de banda. ● Comparación de ancho de banda utilizado por los codecs. Fuente: Cisco Saúl Ibarra Corretgé - http://www.saghul.net
  27. 27. Codecs de audio (2) Codec & Bit Rate Bandwidth (Kbps) Ethernet (Kbps) G.711 (64 Kbps) 87.2 Kbps G.729 (8 Kbps) 31.2 Kbps G.723.1 (6.3 Kbps) 21.9 Kbps G.723.1 (5.3 Kbps) 20.8 Kbps G.726 (32 Kbps) 55.2 Kbps G.726 (24 Kbps) 47.2 Kbps G.728 (16 Kbps) 31.5 Kbps Saúl Ibarra Corretgé - http://www.saghul.net
  28. 28. Codecs de audio (3) ● Los proveedores VoIP suelen trabajar en g729, que consume muy poco ancho de banda y no sería viable utilizar g711 por ejemplo. ● PERO g729 no es libre :( ● Cada licencia de g729 para un canal = 10$ ● Hay una implementación que puede utilizarse con fines no lucrativos/educacionales http://asterisk.hosting.lv/ ● Para comprobar los costes del transcoding: *CLI>core show translation Saúl Ibarra Corretgé - http://www.saghul.net
  29. 29. Llamadas en Asterisk Dispositivo que Receptor de la origina la Asterisk recoge la llamada. llamada: SIP, llamada y la pocesa ZAP, IAX2, ... su lógica de enrutado (dialplan). Después se encamina al destino. En una llamada hay 2 canales: el que origina la llamada y el que la recibe. Saúl Ibarra Corretgé - http://www.saghul.net
  30. 30. AstChannels: La mágia ● Si asterisk es multiprotocolo, ¿como se realiza una llamada entre 2 dispositivos de distinta tecnología? ● Hay 4 canales!! 2 dependientes de la tecnología utilizada y 2 AstChannels. ● Asterisk crea los AstChannels para poder llevar a cabo el bridging. – Transferencias. – Parking. Saúl Ibarra Corretgé - http://www.saghul.net
  31. 31. Bridging Canal dependiente Canal dependiente de la tecnología. SIP, de la tecnología. SIP, ZAP, IAX2,... ZAP, IAX2,... Canales independientes de la tecnología. Asterisk los genera y lleva a cabo el mecanismo de “bridging”. Saúl Ibarra Corretgé - http://www.saghul.net
  32. 32. Canales VoIP en Asterisk ● 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”. Saúl Ibarra Corretgé - http://www.saghul.net
  33. 33. Canales VoIP en Asterisk (2) ● Proceso de registro: – Un dispositivo informa a Asterisk sobre su ubicación (dirección 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 ubicación. ● Autenticación: – Necesaria para realizar una llamada. (¿o no?) – Pueden realizarse llamadas sin registrarse pero no sin autenticarse. – El registro implica autenticación, para que Asterisk mande las llamadas a la IP que se le ha dicho. Saúl Ibarra Corretgé - http://www.saghul.net
  34. 34. Canales VoIP en Asterisk (3) ● Puertos y protocolos: – En IAX2 todo viaja por el mismo puerto: 4569 UDP. – En SIP, la señalización por el puerto 5060 UDP y los streams de audio y video con el protocolo RTP por puertos aleatorios (rtp.conf) UDP. Saúl Ibarra Corretgé - http://www.saghul.net
  35. 35. Building “The ERASMUS Survival Kit” Saúl Ibarra Corretgé - http://www.saghul.net
  36. 36. Esquema Saúl Ibarra Corretgé - http://www.saghul.net
  37. 37. Instalando Asterisk Saúl Ibarra Corretgé - http://www.saghul.net
  38. 38. Antes de instalar... ● Factores a tener en cuenta antes de instalar Asterisk: – Número de llamadas simultáneas. – Interrupciones. – Transcoding. ● Necesitamos que el servidor este completamente dedicado a Asterisk – Nada de X. – Ningún servicio que no sea estrictamente necesario. Saúl Ibarra Corretgé - http://www.saghul.net
  39. 39. Librerías necesarias ● Para poder compilar Asterisk tendremos que instalar lo siguiente como mínimo: #apt­get install bison libncurses5­dev  libnewt­dev zlib1g­dev libssl­dev initrd­ tools procps linux­headers­$(uname ­r)  build­essential ● Algunos módulos requieren librerías especiales: – El módulo chan_gtalk necesita la librería iksemel. Saúl Ibarra Corretgé - http://www.saghul.net
  40. 40. Compilando Asterisk ● Primero descargamos los ficheros necesarios: #mkdir asterisk #cd asterisk #wget http://downloads.digium.com/pub/asterisk/asterisk­1.4­ current.tar.gz #wget http://downloads.digium.com/pub/asterisk/asterisk­addons­1.4­ current.tar.gz #wget http://downloads.digium.com/pub/zaptel/zaptel­1.4­ current.tar.gz ● Compilamos por orden: – Zaptel – Asterisk – Asterisk-Addons (opcional) Saúl Ibarra Corretgé - http://www.saghul.net
  41. 41. Compilando Asterisk (2) #tar ­zxvf zaptel­1.4­current.tar.gz #cd zaptel­1.4­current #./configure #make menuselect #make #make install #modprobe ztdummy #tar ­zxvf asterisk­1.4­current.tar.gz #cd asterisk­1.4­current #./configure #make menuselect #make #make install Saúl Ibarra Corretgé - http://www.saghul.net
  42. 42. Compilando Asterisk (3) #tar ­zxvf asterisk­addons­1.4­current.tar.gz #cd asterisk­addons­1.4­current #./configure #make menuselect #make #make install ● Paso opcional, instala otras aplicaciones: – Formato MP3. – CDR en MySQL. – ... Saúl Ibarra Corretgé - http://www.saghul.net
  43. 43. Estructura de directorios ● /etc/asterisk: Contiene los ficheros de configuración. Si al compilar ejecutamos “make samples”, tendremos ejemplos en este directorio. ● /usr/lib/asterisk/modules: Contiene los módulos de Asterisk que hemos compilado. ● /var/lib/asterisk: Contiene diferentes “librerías” 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. Saúl Ibarra Corretgé - http://www.saghul.net
  44. 44. Ejecutando Asterisk ● Hay que ser root. ● Modificadores de arranque: – -c: Modo consola. Asterisk se inicia en primer plano. – -v: Verbose. Cuantas más uves se añadan más mensajes descriptivos veremos en la consola. – -d: Debug. Cuantas más des, más mensajes de debug. – -r: Remote console. Si hemos ejecutado Asterisk en segundo plano, nos permite conectarnos al CLI. Saúl Ibarra Corretgé - http://www.saghul.net
  45. 45. Ejecutando Asterisk (2) ● 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 Saúl Ibarra Corretgé - http://www.saghul.net
  46. 46. Ficheros de configuración Saúl Ibarra Corretgé - http://www.saghul.net
  47. 47. Configuración del Linksys SPA3102 Saúl Ibarra Corretgé - http://www.saghul.net
  48. 48. 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. Saúl Ibarra Corretgé - http://www.saghul.net
  49. 49. SPA 3102 ● Deshabilitar el router: – Entrar como Admin > Advanced. – Pestaña Router > LAN Setup – Networking Service: Bridge Mode Saúl Ibarra Corretgé - http://www.saghul.net
  50. 50. SPA 3102 ● Configurar la FXO: – Pestaña Voice > PSTN Line. – En la sección “Proxy and Registration”, en el campo “Proxy” ponemos la dirección IP de nuestro Asterisk. – En la sección “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 contraseña. – En la sección de “Dialplans” ponemos lo siguiente en el DialPlan 2: (S0<:s>) Saúl Ibarra Corretgé - http://www.saghul.net
  51. 51. SPA 3102 ● Configurar la FXO: – En la sección “PSTN-To-VoIP-Gateway Setup ” ponemos: ● 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 sección “FXO timer values”, ponemos “PSTN Answer Delay: 2″, o el número que queramos, esto es el tiempo que se esperará antes de descolgar. Saúl Ibarra Corretgé - http://www.saghul.net
  52. 52. SPA 3102 ● Configurar la FXS: – Pestaña Voice > Line 1. – En la sección “Proxy and Registration”, en el campo “Proxy” ponemos la dirección IP de nuestro Asterisk. – En la sección “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 contraseña. Saúl Ibarra Corretgé - http://www.saghul.net
  53. 53. Demo Saúl Ibarra Corretgé - http://www.saghul.net
  54. 54. Anexo A: Softphones Saúl Ibarra Corretgé - http://www.saghul.net
  55. 55. X-Lite ● Protocolo SIP ● Soporte STUN ● g711a/u, gsm, ilbc, speex ● Windows, GNU/Linux, MacOSX Saúl Ibarra Corretgé - http://www.saghul.net
  56. 56. Zoiper (antes Idefisk) ● Protocolo SIP e IAX2 ● Soporte STUN ● g711a/u, gsm, ilbc, speex, g729 (version BIZ) ● Windows, GNU/Linux, MacOSX Saúl Ibarra Corretgé - http://www.saghul.net
  57. 57. Cubix ● Protocolo SIP e IAX2 ● Soporte STUN ● g711a/u, gsm, ilbc, speex, g729 ● Windows Saúl Ibarra Corretgé - http://www.saghul.net
  58. 58. DIAX ● Protocolo IAX2 ● g711a/u, gsm, ilbc, speex ● Windows Saúl Ibarra Corretgé - http://www.saghul.net
  59. 59. KIAX ● Protocolo IAX2 ● g711u, gsm, speex ● Windows, Linux, *BSD Saúl Ibarra Corretgé - http://www.saghul.net
  60. 60. Twinkle ● Protocolo SIP ● g711a/u, gsm, speex, g726 ● GNU/Linux (Qt) Saúl Ibarra Corretgé - http://www.saghul.net
  61. 61. Ekiga ● Protocolo SIP e IAX2. ● g711a/u, gsm, speex, g726. ● GNU/Linux. Saúl Ibarra Corretgé - http://www.saghul.net
  62. 62. Anexo B: Links de interés Saúl Ibarra Corretgé - http://www.saghul.net
  63. 63. Links http://www.asterisk.org/ (web odicial de Asterisk) http://www.saghul.net/blog/documentos/ (material de la charla y curso de 20h) http://www.voip­info.org/ (todo sobre VoIP) http://planet.voz­ip.com/ (planet sobre VoIP) http://www.asteriskguru.com/ (tutoriales, etc...) http://www.asterisk.org/doxygen/ (documentación de developers) http://www.asterisk­es.org/ (wiki de usuarios hispanihablantes) http://groups.google.com/group/asterisk­es/ (lista de correo Asterisk­ES) http://www.voz­ip.com (tienda de VoIP) Saúl Ibarra Corretgé - http://www.saghul.net
  64. 64. Anexo C: Castellanizar Asterisk Saúl Ibarra Corretgé - http://www.saghul.net
  65. 65. Castellanizar Asterisk ● Incluir la línea “language=es” en los ficheros de configuración. (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/ Saúl Ibarra Corretgé - http://www.saghul.net
  66. 66. Licencia Saúl Ibarra Corretgé - http://www.saghul.net
  67. 67. Licencia http://creativecommons.org/licenses/by­nc/2.5/es/ Saúl Ibarra Corretgé - http://www.saghul.net
  68. 68. ¡¡GRACIAS A TODOS!! Saúl Ibarra Corretgé - http://www.saghul.net

×