Você está na página 1de 19

1. Sistemas de VOIP con Asterisk: MODULO 2 Marzo 2010 Guayaquil, Ecuador Instructor: Ing.

Jos Crdova

2. Detalles Adicionales 3. Pila de Protocolos 4. Setting Up un Sistema Asterisk Purpose Simultaneous calls Minimum Recommendation Hobby System <5 X86 400Mhz 256MB SoHo System 5 - 10 X86 1Ghz 512Mb SMB System 10 15 X86 3Ghz 1GB Large >15 Dual CPU, Clusters

5. Detalle DTMF 6. SIP y Troncal SIP 7. Mensajes SIP Informational 100 Trying 180 Ringing 181 Call forwarded 182 Queued 183 Session Progres Success 200 OK Request Failure 400 Bad Request 401 Unauthorised 403 Forbidden 404 Not Found 405 Bad Method 415 Unsupported Content 420 Bad Extensions 486 Busy Here

8. Mensajes SIP Server Failure 504 Timeout 503 Unavailable 501 Not Implemented 500 Server Error Global Failure 600 Busy Everwhere 603 Decline 604 Doesnt Exist 606 Not Acceptable

9. Protocolo SIP SIP Elementos principales: Registrar y SIP Proxy. User Agent. Proxy Server: Elemento que acta como servidor y cliente. Como cliente genera mensajes en nombre del cliente que origin el requerimiento. Los mensajes recibidos se responden o son re-encaminados. Outbound Proxy. Inbound Proxy.

10. Inbound Proxy El usuario se vuelve independiente del equipo que utiliza y de su localizacin.

11. Outbound Proxy Se encarga de las tareas administrativas: tarifacin, grupos de usuarios, permisos, dominios, etc. Un servidor puede ser entrante y saliente a la vez.

12. Sealizacin SIP con Proxy 13. Registrar Server Maneja mensajes de tipo REGISTER. REGISTER es un mensaje de ubicacin que indica IP y Puerto de un UA. No se implementa en Asterisk, limitacin de *. No se implementan posiciones mltiples para un UA. Se puede implementar en el SIP Proxy.

14. Protocolo SIP y Asterisk El registro vuelve dinamica la localizacin del UA. La conmutacin del Proxy Server depender de la localizacin Se basa en dos enfoques: A traves del registro en el REGISTRAR Server el usuario puede ser localizado en un dispositivo cualquiera. Movilidad IP a travs de VPNs. Asterisk no es un SIP Proxy. Un SIP Proxy maneja el control de la llamada en nombre de los UA y nunca es terminal de una llamada. Asterisk, como entidad SIP, puede ser un SIP Registrar y una terminal UA.

15. Protocolo SIP Cuando Asterisk controla una llamada actua como B2BUA manteniendose en medio de la llamada como terminal. SIP Proxy Server: No puede montar aplicaciones como PBX. Se enlaza con un Gateway PSTN: Asterisk. En conjunto dan funcionalidades avanzadas.

16. Arquitectura Avanzada 17. El Problema del NAT Dentro de las empresas se suele utilizar direcciones IP privadas. El equipo que provee acceso a Internet tiene IP pblica. Los equipos locales con IP privadas estn detrs del equipo con IP pblica. Todo equipo para ser alcanzable en Internet necesita una IP pblica. Source NAT: la red interna se enmascara en una IP pblica.

18. El Problema del NAT

19. Solucin al NAT Soluciones en el servidor: NAT Helpers. Keep aplives. Media Proxys. Soluciones en el cliente: Keep alives. STUN ( Simple Traversal of UDP through NAT).

20. Interconexin SIP SIP permite crear enlaces con cualquier PBX, Gateway o cualquier dispositivo que hable SIP. La configuracin de un enlace de interconexin entre Asterisk usando SIP se basa en: Configuracin de un peer/user/friend. Register: register => usuario:password@host La interconexin con IAX2 ser muy parecida.

21. Configuracin Interconexin sip.conf Server A: [general] register => serverA:welcome@192.168.1.2/serverB [serverB] type=friend secret=welcome context=from_serverB host=dynamic disallow=all allow=ulaw

22. Configuracin Interconexin sip.conf Server B: [general] register => serverB:welcome@192.168.1.1/serverA [serverA] type=friend secret=welcome context=from_serverA host=dynamic disallow=all allow=ulaw

23. extensions.conf Server A [internal] exten => _1XXX,1,Dial(SIP/${EXTEN},30) exten => _1XXX,n,Playback(hello) exten => _1XXX,n,Hangup() include => remote [remote] exten => _2XXX,1,Dial(SIP/serverB/${EXTEN}) exten => _2XXX,n,Hangup() [from_serverB] include => internal

24. extensions.conf Server B [internal] exten => _2XXX,1,Dial(SIP/${EXTEN},30) exten => _2XXX,n,Playback(hello) exten => _2XXX,n,Hangup() include => remote [remote] exten => _1XXX,1,Dial(SIP/serverA/${EXTEN}) exten => _1XXX,n,Hangup() [from_serverA] include => internal

25. IAX2 y Troncal IAX Inter Asterisk eXchange v2

26. IAX2 Recordar: Interconecta Servidores Asterisk. Poco telfonos implementan IAX: Hardphones ATCOM y Softphone ZOIPER. Sealizacin y Streaming en el mismo puerto 4569 UDP. Solucin al problema del NAT. Inclua seguridad: Texto Plano, Llave RSA, MD5.

27. IAX2 Nuevo: Se puede utilizar para enviar varios payloads de voz en un flujo ya creado. Disminuye la insercin completa de overheads. Se utiliza una configuracin parecida a la de la Troncal SIP.

28. Configuracin Interconexin IAX2 29. IAX.conf En las nuevas versiones de Asterisk viene includa una caracterstica adicional de seguridad anti DoS en el protocolo IAX2. http://www.asterisk.org/doxygen/trunk/Config_iax.html [general] jitterbuffer=yes bindport=4569 calltokenoptional = 0.0.0.0/0.0.0.0 requirecalltoken = auto maxcallnumbers = 512

30. Configuracin Interconexin IAX2 Server A: [general] autokill=yes ;para evitar lazos register => serverA:welcome@192.168.1.2 ; lnea de registro [serverB] type=friend secret=welcome trunk=yes context=from_serverB host=dynamic deny=0.0.0.0/0.0.0.0 permit=192.168.1.2/255.255.255.0

31. Configuracin Interconexin IAX2 Server B: [general] autokill=yes register => serverB:welcome@192.168.1.1 [serverA] type=friend secret=welcome trunk=yes context=from_serverA host=dynamic deny=0.0.0.0/0.0.0.0 permit=192.168.1.1/255.255.255.0

32. extensions.conf Server A [internal] exten => _1XXX,1,Dial(SIP/${EXTEN},30) exten => _1XXX,n,Playback(hello) exten => _1XXX,n,Hangup() include => remote [remote] exten =>

_2XXX,1,Dial(IAX2/serverB/${EXTEN},30,r) exten => _2XXX,n,Hangup() [from_serverB] include => internal 33. extensions.conf Server B [internal] exten => _2XXX,1,Dial(SIP/${EXTEN},30) exten => _2XXX,n,Playback(vm-unavail) exten => _2XXX,n,Hangup() include => remote [remote] exten =>

_1XXX,1,Dial(IAX2/serverA/${EXTEN}) exten => _1XXX,n,Hangup() [from_serverA] include => internal 34. Sealizacin Analgica 35. Sealizacin Analgica Existen 3 tipos de Sealizacin: Sealizacin de Supervisin. Sealizacin de Direccionamiento. Sealizacin de Informacin. De los tipos de sealizacin de Supervisin tenemos: On-hook: cuando el usuario pone el telfono on-hook la PBX lo interrumpe y no permite que la corriente elctrica pase. En este estado el circuito que se ha creado se denomina on-hook, el telfono solo puede timbrar. 36. Sealizacin de Supervisin Analgica Off-Hook: Alzar el telfono cierra el lazo con la PBX y le indica que el usuario intenta hacer una llamada, la PBX genera un tono de marcado indicando al usuario que esta lista para aceptar la direccin de marcado. Ringing: cuando un usuario llama a otro genera un voltaje al ringer que advierte al otro usuario de la recepcin de una llamada. Sealizacin vara por pais con diferentes tonos: Para modificar a Asterisk: indications.conf 37. Sealizacin Analgica Sealizacin de Direccionamiento: DTMF (Dual Tone Multi-Frequency). Pulse Dialing (telfonos de disco). Sealizacin de Informacin: muestra el progreso de la llamada y los eventos relacionados a ella: Dial Tone. Busy Tone. Ringback. Invalid Number. Congestion. Confirmation Tone. 38. Interfaces con PSTN Existen tres maneras de Conectarse a la PSTN (RTPC, RTB): Canal Anlogo. Par de cobre regular.

Canal Digital. Gran cantidad de lineas. Vienen en CSU/DSU o en MUX de Fibra. Conector terminal RJ45 A veces en conectores BNC. Canal Sip. 39. Interfaces Anlogicas FXO Foreign eXchange Office: Se conecta a la PSTN o a otra extensin de la PBX. Se comunica con una linea telefnica de una PSTN. RECIBE un tono de marcado. OPX (Off Promises Extension) conexin a un FXS de otra central. FXS Foreign eXchange Station: Alimenta telfonos anlogos, modems, faxes. DA un tono de marcado y energa al telfono. 40. FXS y FXO con Asterisk 41. Sealizacin de Interfaz Anloga Sealizacin de las Interfaces Analgicas: Loop-Start. Es el mas usado. Permite al telfono indicar on-hook y off-hook. On Hook, el telfono esta esperando un tono de timbrado. Off Hook, solicita tono de marcado y permite pasar el audio. Permite al switch indicar ring y no-ring. La linea regularmente esta en lazo abierto. Cuando se pone lazo cerrado el switch da tono de marcado. Una llamada entrante es sealizada por un voltaje de timbrado de 100V sobre el par (de cobre) abierto. 42. Sealizacin de Interfaz Anloga Groundstart: Similar a Loopstart. El que llama pone su linea en corto circuito. El SW identifica ese estado y cambia el voltaje sobre el par abierto y cierra el lazo. La linea primero se ocupa antes de ser ofrecida al que desea llamar. 43. Sealizacin de Interfaz Anloga Kewlstart: Aade inteligencia al circuito. Monitorea el otro lado de la conversacin. Se basa en Loopstart. Asterisk usa KS por defecto. 44. Lneas Digitales

45. Lneas Digitales PCM: La seal analgica es muestreada 8000 veces por segundo. Ley u: USA y Japn, resto del mundo: Ley A. Las troncales digitales usan TDM en dos formatos:

la PSTN debe proveer una troncal digital. TDM (Multiplexacin por Divisin de Tiempo) permite montar mltiples canales en una sola trama de datos. En cada SLOT de tiempo se usa 64 Kbps, g711, de BW para transmitir un canal de voz. En USA: T1 con 24 lneas disponibles. En EU y LATAM: E1 con 30 lneas disponibles. T1 regularmente usa un esquema de RBS (Robbed Bit Signaling) un bit es prestado para sealizacin y as no pierde canales para sincronizacin y sealizacin como E1. Los canales se transmiten a 56Kbps en cada slot. se manejan con canales FXO. Muchas lneas de la PSTN 46. Lneas Digitales Pocas lneas de la PSTN

47. Lneas Digitales El origen de usar T1s fue el de conectar PBX y transmitir canales de voz. T1 puede usar CAS y CCS. T1: Sealizacin Asociada al Canal (CAS) es un metodo de sealizacin comunmente utilizado en interconexin de centrales PBX.

48. Lineas Digitales T1: 193 bits: 8bits x 24slots (DS0) +1 bit de Framing. T1 se repite cada 125us = 8000 muestras/segundo: 1.544Mbps = 193x8000. Para hacer Framing cuenta con: SF/D4 12 Frames en una secuencia. ESF Agrega CRC y Control.

49. T1 y E1 T1: Un canal DS0 usa 64Kbps suficiente para la voz pero no para la sealizacin. RBS: Usa el LSB para sealizacin, la prdida de la calidad es imperceptible. Es sealizacin CAS en banda E1: 30 canales disponibles de los 32, 1 es usado para framing y el 17 es usado para sealizacin Es sealizacin CAS fuera de banda.

50. T1 y E1 E1: El formato de frame tiene 32 timeslots. Timeslot 1 se usa para informacin de framing. Timeslot 17 lleva la informacin de el resto de los timeslots y de el inicio de un multi

frame. CCS: Utilizan un canal comn para sealizar: ISDN Q.931 Q.SIG y SS7. http://www.rhyshaden.com/transm.htm 51. Codificacin de la Fuente Digital La codificacin indica la manera como los bits son interpretados. Estos son llamados Cdigos de Linea, capa fisica. T1: ESF con B8ZS D4/SF con AMI E1: HDB3 Capa Fsica. CCS Capa de Enlace de Datos. Esta informacin debe darla el proveedor para poder configurarla en Asterisk. 52. Sealizacin de Troncales Digitales Nos pueden entregar T1/E1: T1 con RBS. T1 con ISDN. E1 con MFC/R2 (CAS) E1 con ISDN. ISDN (Integrated Services Digital Network) es muy comn en USA, es estndar de ITU desde 1984. Define: Canales Portadores (Bearer Channels): Datos y Voz 53. Sealizacin de Troncales Digitales Canales de Datos (Data Channels): Sealizacin fuera de banda. Sealizacin LAPD (Link Access Protocol Channel D). Q.931 ISDN viene con 2 Interfaces fsicas: BRI (basic rate interface). 2B+D: 2 Bearer (64K) y 1 Data (16K). 1 par de cobre a 148Kbps. PRI (primary rate interface). 1 troncal T1/E1. 23B+D para T1 30B +D para E1. 54. Tarjeta Digital 55. Tarjetas de Telefona Digital Las tarjetas de Telefona Digital son tarjetas PCI estndar configurables para utilizarse como T1 (24 canales) o como E1/PRI (32 canales) mediante un jumper. De acuerdo al modelo vienen de diferente numero de puertos: TE110P TE205P TE405P En USA suele utilizarse T1 que tiene 23 canales tipo B y un canal D de 64Kbps, alcanzando una velocidad global de 1536Kbps. En Europa se utiliza ms E1 que consiste de 30 canales B y un canal D de 64Kbps, alcanzando una velocidad global de 1984Kbps. 56. Tarjetas de Telefona Digital 57. Cable T1 Crossover

58. Configuracin system.conf span: se refiere a un grupo de canales que se transmite a travs de un cable. La sintaxis para configurar esta opcin es la siguiente: span=(spannum),(timing),(LBO),(framing),(coding) spannum: es el nmero con que se identifica el span. timing: indica de donde se toma la fuente de reloj. Puede tomar los valores 0 (este span no es fuente de reloj), 1 (este span es fuente primaria de reloj), 2 (igual al cero sin propagacin de la seal de reloj) En el lado del transmisor se genera la seal de reloj. La PSTN debera proveer el reloj, la PSTN no puede ser esclavo. 0 el puerto no ser usado como fuente de reloj. 1 el puerto es usado como fuente de reloj en primera prioridad. 2 el puerto es usado como fuente de reloj en 2da prioridad, si el primero falla este ser la nueva fuente.

59. Configuracin system.conf LBO: indica el nivel de potencia con el que se trasmite la seal (por default se pone en 0), este valor esta funcin de la longitud del cable: 0: 0-133 ft, 1: 133266 ft, 2: 266-399 ft, 3: 399-533 ft y 4: 533-655 ft. 0 db (CSU) / 0-133 ft (DSX-1) 1 133-266 ft (DSX-1) 2 266-399 ft (DSX-1) 3 399-533 ft (DSX-1) 4 533-655 ft (DSX-1) 5 -7.5db (CSU) 6 -15db (CSU) 7 -22.5db (CSU) framing: indica cmo comunicarse con el hardware en el otro extremo de la lnea. Para T1 puede ser D4 o ESF y para E1 puede ser CAS (Channel Associated Signalling) o CCS (Common-Channel signalling).

60. Configuracin system.conf coding: indica como comunicarse con el otro extremo. Para T1 puede ser ami o b8zs y para E1 puede ser ami (Alternate Mark Inversion) o hdb3 (High Density Bipolar of order 3 code). Canales B: bchan: indica los canales que van a ser usados para datos. Transmiten informacin a 64Kbps, y se emplean para transportar cualquier tipo de informacin de los usuarios, bien sean datos de voz o datos informticos. Estos canales no transportan informacin de control de la RDSI. Canales D:dchan: indica los canales que

van a ser usados para control. Los canales tipo D se utilizan principalmente para enviar informacin de control, como es el caso de los datos necesarios para establecer una llamada o para colgar, por esta razn tambin se le conoce como canal de sealizacin. 61. Configuracin chan_dahdi.conf switchtype: tipo de switch en la lnea PRI que se usa, los ms comunes son euroisdn, national y qsig. national: National ISDN 2 (default) dms100: Nortel DMS100 4ess: AT&T 4ESS 5ess: Lucent 5ESS euroisdn: EuroISDN (common in Europe) ni1: Old National ISDN 1 qsig: Q.SIG group: define el numero de grupo al que pertenecen los canales. 62. Configuracin chan_dahdi.conf signalling: tipo de sealizacin pri_cpe (Costumers Premisses Equipment) para indicar que la tarjeta trabajar como esclavo y pri_net (Network) para el maestro. auto: Use the current value from DAHDI. em: E & M em_e1: E & M E1 em_w: E & M Wink featd: Feature Group D (The fake, Adtran style, DTMF) featdmf: Feature Group D (The real thing, MF (domestic, US)) featdmf_ta: Feature Group D (The real thing, MF (domestic, US)) through a Tandem Access point featb: Feature Group B (MF (domestic, US)) fgccama Feature Group C-CAMA (DP DNIS, MF ANI) 63. Configuracin chan_dahdi.conf fgccamamf Feature Group C-CAMA MF (MF DNIS, MF ANI) fxs_ls: FXS (Loop Start) fxs_gs: FXS (Ground Start) fxs_ks: FXS (Kewl Start) fxo_ls: FXO (Loop Start) fxo_gs: FXO (Ground Start) fxo_ks: FXO (Kewl Start) pri_cpe: PRI signalling, CPE side pri_net: PRI signalling, Network side gr303fxoks_net: GR-303 Signalling, FXO Loopstart, Network side gr303fxsks_cpe: GR-303 Signalling, FXS Loopstart, CPE side sf: SF (Inband Tone) Signalling 64. Configuracin chan_dahdi.conf sf_w: SF Wink sf_featd: SF Feature Group D (The fake, Adtran style, DTMF) sf_featdmf: SF

Feature Group D (The real thing, MF (domestic, US)) sf_featb: SF Feature Group B (MF (domestic, US)) e911: E911 (MF) style signalling ss7: Signalling System 7 pri_cpe: CPE (Customer Promises Equipment), cliente, usuario, esclavo. pri_net: Host, Master, Network. context: contexto al que se dirigirn las llamadas entrantes. channel: canales a los cuales se les van a asignar las opciones 65. Asterisk Gateway Interface AGI 66. AGI AGI (Asterisk Gateway Interface) provee una interfaz estndar para que programas externos puedan controlar el plan de marcado. Los mas usados: PHP, Python, Bash, Perl. El intercambio de informacin del script con Asterisk se realiza va los canales de comunicacin: STDIN, STDOUT y STDERR. Lee desde STDIN para obtener informacin. Escribe en STDOUT para enviar informacin. Escribe en STDERR para enviar informacin de debugging. 67. AGI Desde el punto de vista del Script: Entradas desde Asterisk son STDIN. Salidas hacia Asterisk son STDOUT. El control de la ejecucin esta en manos de Asterisk. Hay que cuidar lo que se enva a ejecutar. Buscar un Lenguaje de Programacin de rpida ejecucin. 68. AGI Comandos El script AGI enva comandos a Asterisk escribiendo en el STDOUT. Seguidamente Asterisk enva una respuesta por cada uno de ellos que es leda por el script. ANSWER: atiende. HANGUP: cuelga. SAY [NUMBER | DIGITS | ALPHA | PHONETICS]: dice un nmero, dgito, caracter o una cadena fonticamente. SET [CONTEXT | EXTENSION | PRIORITY]: establece un nuevo contexto, extensin o prioridad luego de finalizada la ejecucin de script. VERBOSE: imprime un mensaje en el log. WAIT FOR DIGIT: espera que se presione un dgito. [SET | GET] VARIABLE: asigna u obtiene el valor de una variable del plan de marcacin.

69. AGI y Lenguajes 70. Ejecucin AGI 71. AGI y PHP Todo script AGI basado en PHP debe tener la siguiente forma: Se debe proveer 2 funciones para hacer read y write de los flujos correspondientes STDIN y STDOUT. Codigo Operacional y los comandos se ejecutarn a partir de esas funciones r/w. Se deben cerrar los flujos para finalizar los scripts.

72. Comunicacin Asterisk y AGI ASC: AGI Script, AST: Asterisk 73. AGI con DB y Web 74. AGI Ejemplos El programa debe tener modo de ejecucin. Estar en /var/lib/asterisk/agi-bin. Para llamarlo desde el plan de marcado: exten => 123,1,Answer() exten => 123,2,AGI(mi_script.php|argumentos) exten => 123,2,AGI(otro_script.agi,par1,par2,parn) El siguiente script est escrito en PHP y dicta los nmeros que se encuentran en el archivo que se le pasa como parmetro: yum y install php; chmod 755 mi_script.php

75. AGI Ejemplo: Dicta numeros (1) #!/usr/bin/php -q <?php // Esta lnea es para que que haga no mantenga en un buffer el output ob_implicit_flush(true); set_time_limit(6); error_reporting(0); // Se abren los diferentes archivos (STDIN, STDOUT y un archivo de log del AGI) $in = fopen(&quot;php://stdin&quot;,&quot;r&quot;); $out = fopen(&quot;php://stdout&quot;,&quot;w&quot;); $stdlog = fopen(&quot;/var/log/asterisk/my_agi.log&quot;, &quot;w&quot;); // Si debug es true, escribe en el archivo de log definido anteriormente $debug = true;

76. AGI Ejemplo: Dicta numeros (2) // Toma el nombre del archivo con los nmeros a dictar del primer parmetro $archivo = $argv[1]; // Define la funcion read, que lee el input del STDIN

function read() { global $in, $debug, $stdlog; $input = str_replace(&quot; &quot;, &quot;&quot;, fgets($in, 4096)); if ($debug) fputs($stdlog, &quot;read: $input &quot;); return $input; } // Define la funcion write, que escribe el output en el STDOUT function write($line) { global $debug, $stdlog, $out; if ($debug) fputs($stdlog, &quot;write: $line &quot;); fputs($out,$line.&quot; &quot;); fflush($out); } 77. AGI Ejemplo: Dicta numeros (3) // Lee el archivo que se paso como parametro $lines = file($archivo); // Reproduce los digitos contenidos en cada linea del mismo informando en el log del foreach ($lines as $line) { $line=trim($line); for ($i=0;$i<strlen($line);$i++) { write(&quot;VERBOSE &quot;REPRODUCIENDO DIGITO $line[$i]&quot;&quot;); read(); write(&quot;SAY DIGITS $line[$i] &quot;&quot;&quot;); read(); sleep(1); } } // Se cierran todos los handlers de archivos fclose($in); fclose($out); fclose($stdlog); exit; ?> 78. AGI Ejemplo: Dicta numeros (3) Se relaciona el programa con una extensin para probarlo: exten => 200,1,Answer(); exten => 200,2,AGI(dicta.php|/tmp/numeros.txt) exten => 200,3,Hangup() 79. CDR Call Detail Record 80. CDR El CDR es un archivo a manera de log que contiene informacin acerca de las llamadas, entre otros: Origen, Destino, Intercambio de informacin, duracin. A partir del CDR se puede generar facturacin. Asterisk trabaja con CDR en algunos formatos: Csv archivos de texto con valores separados por coma Cdr SQLite logs de CDR en la base de datos de SQLite Pgsql logs de CDR en las bases de datos de PostgreSQL Odbc logs de CDR a cualquier base de datos con soporte unixODBC Mysql logs de CDR en las bases de datos de MySQL Etc.

81. CDR Para trabajar el CDR utilizando un DB en MySQL: yum install mysql* unixODBC-devel -y service mysqld start mysqladmin -u root password labtelecom09 Ingresar al directorio donde se encuentran las fuentes de asterisk add-ons volver al menuselect y seleccionar soporte para MySQL. mysql p (con password de root)

82. CDR en MySQL DB Creacin de la DB Asterisk y la tabla CDR en SQL.

83. CDR en MySQL DB Agregar indices y un identificador para los registros. ALTER TABLE 'cdr' ADD 'uniqueid' VARCHAR(32) NOT NULL default '; ALTER TABLE 'cdr' ADD INDEX ( 'calldate' ); ALTER TABLE 'cdr' ADD INDEX ( 'dst' ); ALTER TABLE 'cdr' ADD INDEX ( 'accountcode' ); En cdr_mysql.conf, ntese el password. [global] hostname=localhost dbname=asterisk password=labtelecom09 user=root

84. CDR en MySQL DB Cargar los addons relacionados: load app_addon_sql_mysql.so load cdr_addon_mysql.so Se pueden agregar en: archivo /etc/asterisk/modules.conf load => cdr_addon_mysql.so Reiniciamos el servicio de Asterisk y verificamos que el cdr para mysql este levantado: CLI> restart now CLI> cdr mysql status Practica 7.

85. Anlisis de Trfico y Dimensionamiento Introduccin. 86. Consideraciones de BW Asterisk permitia traduccin de codecs. Transcoding se reflejaba en el desempeo del sistema. CODECS de buena calidad similar a PSTN:

87. Consideraciones de BW BW, Tamaos de Payload, PPS para algunos codecs: Existen tambin medidas de BW para redes con VAD (Voice Activity Detection). Implementaciones con VAD aseguran un ahorro de hasta el 35% de ancho de banda.

88. Consideraciones de BW Los silencios tambin se paquetizan.

89. Consideraciones de BW En la Red IP los protocolos agregan headers aumentando el tamao de la trama con consecuencias en el requerimiento de ancho de banda.

90. Consideraciones de BW Por ejemplo para comparar un paquete en diferentes redes de datos. Codec g.711 (64 Kbps) Ethernet (Ethernet+IP+UDP+RTP+G.711) = 95.2 Kbps PPP (PPP+IP+UDP+RTP+G.711) = 82.4 Kbps Frame-Relay (FR+IP+UDP+RTP+G.711) = 82.8 Kbps Codec G.729 (8 Kbps) Ethernet (Ethernet+IP+UDP+RTP+G.729) = 31.2 Kbps PPP (PPP+IP+UDP+RTP+G.729) = 26.4 Kbps Frame-Relay (FR+IP+UDP+RTP+G.729) = 26.8 Kbps Comprobar el costo del transcoding: CLI>core show translation

91. Consideraciones de BW Packetizer VOIP Bandwidth Calculator permite realizar anlisis como el anterior para diferentes tipos de datos. Caracteristicas de la herramienta: De acuerdo al encabezado se van calculando los headers que se agregan en la trama. Los retardos entre paquetes o las tramas por paquetes indican la paquetizacin. La tasa de paquetes (pps) permite dimensionar a los routers. http://www.bandcalc.com/

92. Dimensionamiento de Trfico: Factores de Dimensionamiento: Nmero de Lneas. Ancho de banda requerido al ISP. Nmero de canales simultneos en Asterisk. Solucin: 1. Mtodo basado en Simplificaciones: Estimar el nmero de llamadas por usuario.

93. Mtodo de Simplificaciones Ejemplo de Dimensionamiento: H B1 B2

94. Mtodo de Simplificaciones Se debe dimensionar: Numero de troncales E1. Ancho de banda requerido para la red Frame Relay. El nmero de Lneas: 165 = 120+30+15 Asumiendo que se utilizar un canal cada 5 usuarios: 165/5=33 Lneas. Usando este criterio y la herramienta de Clculo tenemos: Ancho de

banda para Ramal 1 (B1): 26.8*6=160.8Kbps Ancho de banda para Ramal 2 (B2): 26.8*3=80.4Kbps 95. Mtodo de Erlang Erlang: Ide un mtodo para calcular el nmero de lneas en una troncal. Erlang es una medida de trfico. Describe el volumen de trfico en una hora. Ejemplo: En una hora se realizan 20 llamadas a un promedio de 5 minutos por llamada: Nmero total de minutos: 20x5=100 minutos de trfico. 100min/60min = 1.66 ERLANGS. Mtodo experimental para dimensionamiento, se puede basar en CDR. 96. Mtodo de Erlang Erlang B: Permite calcular el nmero de lneas en una troncal. Las llamadas arriban aleatoriamente con distribucin Poisson. Las llamadas en bloqueo liberan sus canales inmediatamente. BHT (Busy Hour Traffic) = 17% de minutos por da de llamadas. BHT se calcula experimentalmente con un call logger o con el mtodo de simplificaciones. GoS (Grade of Service): probabilidad que las llamadas caigan en bloqueo. GoS se puede reemplazar por 0.05 o 0.01 B2: 0 minutos, BHT = 0 min GoS = 0.01 (1% de Prdidas) Con estos datos usaremos un Erlang B Online Calculator: http://www.erlang.com B2: 1000 minutos, BHT aprox 170min 2.83 Erlangs B1 B1: 2000 minutos, BHT aprox 300min 5 Erlangs H 97. Mtodo de Erlang Datos del mtodo experimental: H B2 = 8 Lneas Con los requerimientos de BW ya calculados: BW para B1: 26.8x11 = 294.8 Kbps. BW para B1: 26.8x8 = 214.8 Kbps. BW Simplificado BW Erlang 160.8 Kbps 294.8 Kbps 80.4 Kbps 214.8 Kbps B1 = 11 Lneas H 98. Mtodo de Erlang Resultados: H 99. RTP Header Compression Se pueden reducir requerimientos de BW usando: Compresin de la Cabecera RTP (RTP Header Compression): Estandar IETF RFC 2508. Disponible en las calculadoras revisadas. Se aplica a redes PPP

y Frame Relay. Routers deben soportar el RFC. Realice los clculos usando RHC. 20ms de paquete 20 bytes.100. IAX2 Inter Asterisk eXchange 2: Conecta nativamente Asterisk boxes. No necesita soporte de los Routers. Tiene un Modo Troncal nativo. Reutiliza las mismas cabeceras en la 2da llamada. Ejemplo: Capa de Enlace: PPP. RTP comn (RFC 3550) Codificando G.729 a 8kbps 101. IAX2 31.2 Kbps. Para la Segunda Trama: No se agregan nuevas cabeceras. Se agregan mini tramas IAX2. 40 Bytes de Voz codificada. 8 Kbps, 78 Bytes 102. IAX2 De la Primera Trama: 20 Bytes de Payload (Voz codificada). 58 Bytes de Cabeceras. 20+58=78 Bytes de la trama completa a 31.2Kbps. 20 Bytes 32.8 Kbps. 42.4-32.8 = 9.6Kbps por llamada adicional a partir de la 2da. 42.4 Kbps. 42.2 Kbps carga dos llamadas: 21.1kbps por llamada. Agregando 1 Miniframe (4 bytes) a una llamada dan: 82Bytes 8 Kbps, 106 Bytes 103. IAX2 58 Bytes de Cabeceras, 12 son IAX2 Header. 8 bytes Miniframes, 4 bytes para cada Payload. 58+8+40 = 106 Bytes de la trama completa a 42.4 Kbps. 20 Bytes 104. IAX2 Re clculo de BW para las troncales luego de reduccin IAX2: La primera llamada usa el BW completo 31.2Kbps. La segunda usa el incremento 9.6Kbps, etc. B1 (11 Lineas): 31.2 + (11-1) *9.6Kbps = 127.2 Kbps B2 (8 Lineas): 31.2 + (8-1) *9.6Kbps = 98.4 Kbps 105. Aumento del Voice Payload La solucin a simple vista debera ser aumentar el tamao del Payload de Voz: Evita que se agreguen cabeceras. Transmite en una misma trama mayor informacin. Aumenta considerablemente la vulnerabilidad a la latencia. Reduce el consumo de BW: Siguiendo los clculos

realizados anteriormente: Payload de Voz con 60Bytes. BW: 16.05 Kbps con 138 Bytes(Payload+Headers) 106. Aumento del Voice Payload 107. Aumento del Voice Payload En Asterisk se puede cambiar el tamao usando la variable de canal ALLOW. allow = ulaw:30 108. DUNDi Distributed Universal Number Discovery 109. DUNDi Sistema P2P que permite localizar gateways para servicios telefnicos. No hay autoridad central que se encargue de la administracin. Es completamente distribuido por su naturaleza P2P. Se puede considerar como un directorio telefnico. 110. DUNDi en Asterisk: dundi.conf [general] port=4520 ; puerto mediante el cual se comunica el protocolo dundi entityid=00:0C:29:0C:AB:C2 ; identificador de mi Asterisk en la nube dundi, MAC ; de la tarjeta de red eth0 cachetime=5 ; Tiempo que permanece en cache la ruta para ir a las extensiones ; aprendidas mediante dundi ttl=12 ; Mx. No. de saltos que se harn buscando el destino autokill=yes ; si al preguntar a un par, el ACK tarda ms de 2 segundos, se cancela la bsqueda ; a travs de ese peer; es til cuando no est activo el peer o cuando hay una conexin mala hacia el peer 111. Contextos DUNDi Definen que contextos de extensions.conf sern accesados por DUNDi. nombre_contexto => contexto_extensions,peso,proto,destino[,opciones]] nombre_contexto: Nombre del contexto al que se hace referencia en una peticin dundi. contexto_extensions: Nombre del contexto en el extensions.conf, donde se buscarn los nmeros que son solicitados en la nube dundi. peso: Deber ser 0 en caso de que nuestro conmutador publique directamente los nmeros, en caso contrario, deber tener el valor del nmero de

saltos que necesita para llevar al destino. proto: Cualquiera de los protocolos IP (sip, iax,323) con el cual el peer remoto se debe comunicar con nosotros. destino: Es la informacin que se entrega al peer para que pueda llegar al nmero que est marcando. 112. Contextos DUNDi opciones: Pueden ser varios argumentos los cuales indican el comportamiento que se tendr cuando no tengamos nosotros el nmero que se est solicitando. nounsolicited . No se permiten llamadas que no sean solicitadas. nocomunsolicited . No se permiten llamadas comerciales que no sean solicitadas. nopartial . No se permiten bsquedas para patrones parciales. residential, comercial, mobile . Le indica a los pares qu tipo de nmeros son los que se estn publicando a travs de este contexto. 113. Autenticacin en DUNDi Los peers se autentican mediante llave pblica/privada. cd /var/lib/asterisk/keys astgenkey -n dundi_ext_44xx yum -y install php cp dundi_ext_44xx.pub /var/www/html service httpd start wget -c http://132.248.175.90/dundi_principal.pub CLI>reload res_crypto.so CLI>reload pbx_dundi.so CLI>dundi lookup 4400@priv

Você também pode gostar