Gestión de llamadas con             Erlang/OTP    Manuel Ángel Rubio Jiménez
¿Quién soy?Programador desde hace 20 años  Basic, Modula-2, Pascal, C, C++, Ensamblador, Java,  Perl, PHP, Python, Ruby, J...
La Red Inteligente               Inteligencia                Inteligencia               en la gestión               en la ...
Soluciones antes de 2008Caso del 1414        90X, 80X        90X, 80X     9X, 6X                     9X, 6X
Soluciones antes de 2008Caso del 1414                                 Asterisk                                 Asterisk   ...
Soluciones antes de 2008Caso del 1414                                 Asterisk                                 Asterisk   ...
Soluciones antes de 2008Caso Cetelem                     X   9X                         9X                    6X          ...
Soluciones antes de 2008   Caso CetelemDiseño en PHP inoperanteDiseño en PHP inoperanteel sistema funciona bienel sistema ...
Soluciones antes de 2008   Caso CetelemDiseño en PHP inoperanteDiseño en PHP inoperanteel sistema funciona bienel sistema ...
Soluciones antes de 2008Diseño de procesosDiseño de procesos para uso con PHP para uso con PHP
Soluciones antes de 2008Diseño de procesosDiseño de procesos para uso con PHP para uso con PHP
Soluciones con Erlang            Concepto de ACDHacemos que la lógicapermanezca en un núcleo                            Nú...
Soluciones con Erlang            Concepto de ACDEl núcleo se encarga de obtener la informaciónde configuración, así como m...
Soluciones con Erlang            Concepto de ACDY ya que estamos, damos información alos agentes a través de XMPP, en una ...
Datos Numéricos                              Asterisk + MySQL           Asterisk + Erlang      Máquinas de Asterisk       ...
Prueba de fuegoCenso del Campo con 200 agentesAtendiendo llamadas.               90X, 80X               90X, 80X          ...
Prueba de fuegoCenso del Campo con 200 agentesAtendiendo llamadas.                          La solución es acogida con éxi...
Soluciones con Erlang           Concepto de ColasHacemos que la lógicapermanezca en un núcleo                            N...
Soluciones con Erlang           Concepto de ColasEl núcleo se encarga de obtener la informaciónde configuración, así como ...
DesafíoVolvemos al 1414, para comprobarla potencia de nuestra solución.           90X, 80X           90X, 80X             ...
DesafíoVolvemos al 1414, para comprobarla potencia de nuestra solución.                       La solución es acogida con é...
Soluciones con Erlang            Concepto de JCMEl núcleo toma información de los contactosy los gestiona pare realizar la...
Soluciones con Erlang            Concepto de JCMLanza las llamadas para contactary anota los resultados en la base de dato...
Soluciones con Erlang                Concepto de JCM                            Núcleo                          Erlang/OTP...
Datos Numéricos                               PHP                 Erlang  Llamadas a gestionar        3000                ...
PotenciandoLas campañas pueden ser mayores,más contactos, y más campañassimultáneas.                          X        9X ...
PotenciandoLlegamos a procesar campañasde hasta 50.000 contactos enun solo día... otro éxito más.                         ...
La Tentación
JVM vs BEAM                      JVM      BEAM    Soft-realtime     No        Sí     Distribución     No        Sí  Multip...
JVM vs BEAM                       JVM      BEAM    Soft-realtime      No        Sí     Distribución      No        Sí  Mul...
JVM vs BEAM                       JVM      BEAM    Soft-realtime      No        Sí     Distribución      No        Sí  Mul...
JVM vs BEAM                         JVM      BEAM    Soft-realtime        No        Sí     Distribución        No        S...
Beneficios✔ Distribución
Beneficios✔ Distribución✔ Alta Disponibilidad
Beneficios✔ Distribución✔ Alta Disponibilidad                S                                     S✔ Tolerancia a Fallos ...
Beneficios✔ Distribución                            ➢ gen_server✔ Alta Disponibilidad✔ Tolerancia a Fallos       ➢ gen_fsm...
¿Preguntas?
Agradecimientos➢ Universidad Complutense de Madrid➢ Grupo de Usuarios de Erlang Madrid➢ Jet Multimedia España, S.A.➢ A tod...
Upcoming SlideShare
Loading in …5
×

Gestión de Llamadas con Erlang/OTP

1,598 views

Published on

Charla ofrecida en la Sala de Grados de la Universidad Complutense de Madrid, organizada por el Grupo de Usuarios de Erlang de Madrid.

La charla se orienta en los problemas que se encontraron en Jet Multimedia para la gestión de llamadas y cómo se solventaron empelando Erlang/OTP.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,598
On SlideShare
0
From Embeds
0
Number of Embeds
325
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Gestión de Llamadas con Erlang/OTP

  1. 1. Gestión de llamadas con Erlang/OTP Manuel Ángel Rubio Jiménez
  2. 2. ¿Quién soy?Programador desde hace 20 años Basic, Modula-2, Pascal, C, C++, Ensamblador, Java, Perl, PHP, Python, Ruby, JavaScript, Lua, ... y Erlang.Desarrollador desde hace 7 años Metodologías clásicas, Métrica-3, RUP, Scrum, Xtreme Programming, Kan-ban, DSDM, ASD, …Gerente de Desarrollo de Voz en Jet Multimedia Red Inteligente (900, 901, 902, 905, 806, …), sistemas virtuales de telefonía y VoIP.Blog http://bosqueviejo.net
  3. 3. La Red Inteligente Inteligencia Inteligencia en la gestión en la gestión de las llamadas de las llamadas 90X, 80X 90X, 80X 9X, 6XUsuarios
  4. 4. Soluciones antes de 2008Caso del 1414 90X, 80X 90X, 80X 9X, 6X 9X, 6X
  5. 5. Soluciones antes de 2008Caso del 1414 Asterisk Asterisk Código C Código C Semáforos Semáforos Listas enlazadas Listas enlazadas Límite software de 20 a 30 llamadas Límite software de 20 a 30 llamadas 90X, 80X 90X, 80X 9X, 6X 9X, 6X
  6. 6. Soluciones antes de 2008Caso del 1414 Asterisk Asterisk Código C Código C Semáforos Semáforos Listas enlazadas Listas enlazadas Límite software de 20 a 30 llamadas Límite software de 20 a 30 llamadas 90X, 80X 90X, 80X 9X, 6X 9X, 6X
  7. 7. Soluciones antes de 2008Caso Cetelem X 9X 9X 6X ,, 6 ,, 6 6X 9X 9X X
  8. 8. Soluciones antes de 2008 Caso CetelemDiseño en PHP inoperanteDiseño en PHP inoperanteel sistema funciona bienel sistema funciona bien con poca carga, pero con poca carga, peroCetelem pide campañas deCetelem pide campañas de 10.000 contactos 10.000 contactos X 9X 9X 6X ,, 6 ,, 6 6X 9X 9X X
  9. 9. Soluciones antes de 2008 Caso CetelemDiseño en PHP inoperanteDiseño en PHP inoperanteel sistema funciona bienel sistema funciona bien con poca carga, pero con poca carga, peroCetelem pide campañas deCetelem pide campañas de 10.000 contactos 10.000 contactos X 9X 9X 6X ,, 6 ,, 6 6X 9X 9X X
  10. 10. Soluciones antes de 2008Diseño de procesosDiseño de procesos para uso con PHP para uso con PHP
  11. 11. Soluciones antes de 2008Diseño de procesosDiseño de procesos para uso con PHP para uso con PHP
  12. 12. Soluciones con Erlang Concepto de ACDHacemos que la lógicapermanezca en un núcleo Núcleo Asterisk Erlang/OTP
  13. 13. Soluciones con Erlang Concepto de ACDEl núcleo se encarga de obtener la informaciónde configuración, así como mantener datosde informes, estadísticas, etc. PostgreSQL Núcleo Asterisk Erlang/OTP
  14. 14. Soluciones con Erlang Concepto de ACDY ya que estamos, damos información alos agentes a través de XMPP, en una aplicaciónde escritorio Java. PostgreSQL Núcleo Asterisk Erlang/OTP ejabberd
  15. 15. Datos Numéricos Asterisk + MySQL Asterisk + Erlang Máquinas de Asterisk 1 2+Llamadas simultáneas H.323 20-30 80~ x NºMáq. Llamadas simultáneas SIP ??? 200~ x NºMáq. Pruebas de Stress Asterisk + Erlang Llamadas entrantes 230 Nivel de Carga CPU 0.36
  16. 16. Prueba de fuegoCenso del Campo con 200 agentesAtendiendo llamadas. 90X, 80X 90X, 80X 9X, 6X 9X, 6X
  17. 17. Prueba de fuegoCenso del Campo con 200 agentesAtendiendo llamadas. La solución es acogida con éxito y el INE aún sigue con nosotros. 90X, 80X 90X, 80X 9X, 6X 9X, 6X
  18. 18. Soluciones con Erlang Concepto de ColasHacemos que la lógicapermanezca en un núcleo Núcleo Asterisk Erlang/OTP
  19. 19. Soluciones con Erlang Concepto de ColasEl núcleo se encarga de obtener la informaciónde configuración, así como mantener datosde informes, estadísticas, etc. PostgreSQL Núcleo Asterisk Erlang/OTP
  20. 20. DesafíoVolvemos al 1414, para comprobarla potencia de nuestra solución. 90X, 80X 90X, 80X 9X, 6X 9X, 6X
  21. 21. DesafíoVolvemos al 1414, para comprobarla potencia de nuestra solución. La solución es acogida con éxito y nos dan el tráfico del 1472, así como dar más servicios que antes no era posible dar. 90X, 80X 90X, 80X 9X, 6X 9X, 6X
  22. 22. Soluciones con Erlang Concepto de JCMEl núcleo toma información de los contactosy los gestiona pare realizar las llamadas. PostgreSQL Núcleo Erlang/OTP
  23. 23. Soluciones con Erlang Concepto de JCMLanza las llamadas para contactary anota los resultados en la base de datos. PostgreSQL Núcleo Asterisk Erlang/OTP
  24. 24. Soluciones con Erlang Concepto de JCM Núcleo Erlang/OTPPostgreSQL Núcleo Operador Asterisk
  25. 25. Datos Numéricos PHP Erlang Llamadas a gestionar 3000 22000+Tiempos de comprobación 1-5 seg 1 seg ✔ PHP se cuelga con frecuencia. ✔ El procesado de datos en PHP es muy costoso (tiempo + memoria).
  26. 26. PotenciandoLas campañas pueden ser mayores,más contactos, y más campañassimultáneas. X 9X 9X 6X ,, 6 ,, 6 6X 9X 9X X
  27. 27. PotenciandoLlegamos a procesar campañasde hasta 50.000 contactos enun solo día... otro éxito más. X 9X 9X 6X ,, 6 ,, 6 6X 9X 9X X
  28. 28. La Tentación
  29. 29. JVM vs BEAM JVM BEAM Soft-realtime No Sí Distribución No Sí Multiplataforma Sí Sí Multi-Proceso Hilos Procesos Código Nativo No* HiPETolerante a fallos No* Sí
  30. 30. JVM vs BEAM JVM BEAM Soft-realtime No Sí Distribución No Sí Multiplataforma Sí Sí Multi-Proceso Hilos Procesos Código Nativo No* HiPETolerante a fallos No* Sí ¿ Erjang ?
  31. 31. JVM vs BEAM JVM BEAM Soft-realtime No Sí Distribución No Sí Multiplataforma Sí Sí Multi-Proceso Hilos Procesos Código Nativo No* HiPETolerante a fallos No* Sí ¿ Erjang ?
  32. 32. JVM vs BEAM JVM BEAM Soft-realtime No Sí Distribución No Sí Multiplataforma Sí Sí Multi-Proceso Hilos Procesos Código Nativo No* HiPETolerante a fallos No* Sí Jarlang
  33. 33. Beneficios✔ Distribución
  34. 34. Beneficios✔ Distribución✔ Alta Disponibilidad
  35. 35. Beneficios✔ Distribución✔ Alta Disponibilidad S S✔ Tolerancia a Fallos P P P P P P
  36. 36. Beneficios✔ Distribución ➢ gen_server✔ Alta Disponibilidad✔ Tolerancia a Fallos ➢ gen_fsm✔ ¡¡¡ Behaviours !!! ➢ gen_event ➢ application ➢ supervisor
  37. 37. ¿Preguntas?
  38. 38. Agradecimientos➢ Universidad Complutense de Madrid➢ Grupo de Usuarios de Erlang Madrid➢ Jet Multimedia España, S.A.➢ A todos vosotros

×