Discadores Automaticos con GNUDialer

may 04

Discadores Automaticos con GNUDialer

Este es el primer manual tipo HowTo que escribo, cualquier comentario sobre la estructura o el contenido, por favor, es bienvenido.

Hace poco más de un año me encomendaron generar una solución de discador automático, conocido como Robodialer o Autodialer, la idea era poder hacer cobranza preventiva a ciertos clientes de una casa comercial. Lo se, es bastante molesto pero sin embargo era parte de mi trabajo y un buen desafío en ese minuto.

Pasé por muchas empresas que ofrecían este servicio, todas con soluciones propietarias y con costos altísimos, así que decidí hacer una solución propia utilizando únicamente software libre -no necesariamente gratuito.


Llegue a dos soluciones VICIDIAL y GNUDialer instalé y probé ambas soluciones y según lo que recuerdo GNUDialer servía más a mi propósito ya que la configuración es mucho más simple que la de vicidial, si bien la documentación no es tan completa, no era tan necesaria que las opciones de configuración se explicaban solas (algo que creo que es muy importante en cualquier sistema), otro factor muy importante es la escalabilidad, la diferencia entre vicidial y gnudialer es que el primero utiliza salones de conferencia para hacer el bridge de las llamadas, esto quiere decir que si quisiéramos tener 10 llamadas simultaneas, debiésemos crear 10 salones de conferencia, a diferencia de gnudialer que usa AgentLogIn para las llamadas, estoy seguro que hay más diferencias y “pros” como “cons” para cada uno de los sistemas, pero no es parte de este post… por ahora.

Finalmente la decisión fue para GNUDialer y debo decir que estoy muy conforme ya que probó ser un excelente sistema.

Aquí explico los pasos para su instalación, si deseas saber más sobre como usar las funciones del discador puedes ver la página oficial del proyecto o bien escribirme a mario[ARROBA]spooky.cl

Descargar Documento

UPDATE 11/05/2009: Hice unas modificaciones a errores en el manual.

49 comments

  1. What’s Happening i’m new to this, I stumbled upon this I have found It positively helpful and it has aided me out loads. I hope to contribute & aid other users like its helped me. Good job.

  2. -.; that seems to be a great topic, i really love it ~~;

  3. :”- I am very thankful to this topic because it really gives up to date information `,.

  4. Hola Emily,
    Creo que es va un poco tarde la respuesta.
    La clave que se ingresa es “gnudialer”, este corresponde a la primera linea del archivo /etc/gnudialer.conf
    Espero te sirva…Saludos,

  5. Buenas tardes.Tengo una duda…instalé todo.Cual es la clave para ingresar al dialerlogin.html?(administrador de campaña) la clave 1234 me dice que es incorrecto…donde veo la clave…y en crm.html me logea, pero me dice “Locating server”.

  6. Anonymous /

    Hola Mario.
    Existe algun manual para administrar campañas, importar datos, etc. Hasta el momento todo lo que he logrado a prueba y error…
    Gracias por tu ayuda.
    Saludos.

  7. Anonymous /

    Hola Mario,
    me gustaría saber porque en la url al logearme me muestra siempre el mensaje.
    Locating server y conn-failed. Donde se logea.

  8. Anonymous /

    Buenas tardes.
    Tengo una duda…instalé todo.
    Cual es la clave para ingresar al dialerlogin.html?(administrador de campaña) la clave 1234 me dice que es incorrecto…donde veo la clave…y en crm.html me logea, pero me dice "Locating server".

  9. Anonymous /

    me gustaria aprender a manejar este sistema hay algun manual o curso para esto por me parece super interesante!!!

  10. Pedro Gonzales /

    Por alguna razon el domain estuvo down ayer. So, disculpa la molestia amigo!

  11. Pedro Gonzales /

    Mario,

    Todavia estoy en el proceso de hacer el dialer, pero por alguna razon el server de dynx.com lo quitaron y segun por lo que estuve leyendo esta en proceso de mudarse a http://www.gnudialer.com … Me podrias un favor grandisimo, puedes postear el archivo channel.c.hangup.1418.diff.txt… Porfin compre el hardware asterisk que es compatible.

    Gracias !

    Pedro Gonzales

  12. DarwinPeru /

    Tengo algunas preguntas, espero me puedan ayudar…
    La opcion auto es lo mismo que el marcado progresivo? y si no lo es, como hago para hacer marcaciones progresivas y no predictivas? y si lo es: porque cuando ejecuto la campaña, gnudialer corre y corre y no deja de parar sin marcar nada y porsupuesto sin transferir ninguna llamada, corre hasta acabarse los numeros telefonicos de la DATA que ingresé.
    Alguna sugerencia?

    Saludos

  13. DarwinPeru /

    Ok Mario, sorry, no tenia la intención de incomodar a nadie, lo tomaré en cuenta para la proxima…

    Darwin

  14. Mario Hernandez /

    @Darwin, te agradecería que no elminaras tus entradas anteriores, ya que es un problema que aparentemente afecta a todos y que encontraste una pronta solución (a pesar de que esta fue descubierta y publicada aquí mismo por poponicalo el 19/05/2009).

    Creo que simplemente no es el espíritu de lo que trato de hacer aquí.

    Muchas Gracias.

  15. DarwinPeru /

    Por lo visto GNUDialer solo trabaja en posiciones con Computadora, para que el asesor pueda guardar los cambios del evento de la llamada, Mario, me podrias por favor decir si con VICIdial es igual? puesto que en mi Call todos los operadores trabajan con Equipos telefonicos Analogicos conectados a Asterisk…

    Acepto otras sugerencias…

    Saludos

    Darwin

  16. Mario Hernandez /

    @DarwinPeru adicional a la asignacion del agente a la campaña, debes crearlo como extension SIP o IAX, para esto debes hacerlo en el archivo respectivo, para ver si están logueados debes escribir sip show peers o iax2 show peers

    sobre el error, justamente me apareció eso hoy en uno de mis servers y se trata de un cambio que hicieron en la funcion originate, esto se debe a que asterisk cierra el puntero antes de obtener una respuesta, para los efectos del discador es inofensivo, y se soluciona agregando async, esto se hace en el codigo fuente de gnudialer, pero dudo mucho que sea soportado en un futuro, como te decia, este error es inofensivo -por ahora.

  17. Mario Hernandez /

    @Victor, los warnings los puedes omitir, lor errors son los que no te dejan seguir, si te sale alguno, avisame donde salen para modificar la guia.

  18. DarwinPeru /

    Mario, Se agradece por el tutorial, muy practico y sencillo, sin embargo presento algunos errores que no entiendo y agradeceria me puedas ayudar, cuando creo un agente, por ejemplo 300 con nombre Gerente y password 300, va todo bien hasta allí, luego quiero ingresar con ese usuario al crm y me logueo colocando 300 y me sale la pantalla CRM Logged In, pero noto que en el CLI me muestra el siguiente error:

    == Parsing '/etc/asterisk/manager.conf': Found
    == Manager 'crm' logged on from 192.168.1.3
    [Jan 15 13:55:17] ERROR[2706]: utils.c:966 ast_carefulwrite: write() returned error: Broken pipe
    [Jan 15 13:55:17] ERROR[2706]: utils.c:966 ast_carefulwrite: write() returned error: Broken pipe
    [Jan 15 13:55:17] ERROR[2706]: utils.c:966 ast_carefulwrite: write() returned error: Broken pipe
    == Manager 'crm' logged off from 192.168.1.3

    Que quiere decir esto? y algo que he notado es que en el CRM tambien si coloco 250 o cualquier otro número de agente que aun no he creado, igual me permite loguearme y me sale el mismo mensaje tanto en la pantalla : CRM Logged In como el anterior mensaje en el CLI: que estoy haciendo mal? y otra cosa que leí, me tengo que loguear no solo en el crm si no tambien en el softphone con el mismo agente que he creado? como asi? es decir, como te comenté, yo he creado el agente "300" nombre="Gerente" password="300", ahora como me logueo en el eyebeam? yo he colocado como Display name=Gerente UserName = 300 y password = 300 y dominio el dominio de mi server: 192.168.1.2, pero no me loguea, que estoy haciendo mal?

    Espero tus comentarios y agradesco de antemano tu ayuda…

    Saludos

    Darwin
    fastnet1@hotmail.com

  19. Victor /

    Hola Mario, muchas gracias por contestar mi duda, lo que no entiendo es a q te refieres con editar el codigo fuente antes de compilar, he seguido tu guia al pie de la letra hasta instale el debian 5.03 netinst, pero igual me sale el mismo mensaje justo cuando hago make dentro de la carpeta /usr/src/gnudialer, luego omite todo el mensjae y le di un make install, y prosegui, cree una campa, luego los agentes, asigne agente, cree los operadores, todo ingreso al crm logeo el anexo todo el gnudialer marca, pero no me tranfiere la llamada al anexo no se si es por la instalacion o es por algo que estoy haciendo mal, si puedes agregarme seria estupendo, mi correo y msn es:

    candelasistemas@hotmail.com

  20. Hola amigo muchas gracias por la respuesta, mira yo uso Ubuntu Server, eso quiere decir q no debo instalar el g++ o solo omito los warming, y no hago caso a los mensajes que me manda, por que la web del gnudialer carga, el crm cargar, carga data, crea todo, pero cuando arranco la campaña no lanza la llamada al agente eso esta mal, o es que ya no es la instalacion, como saber si instale bien el gnudialer o si lo hize mal, sale algun mensaje se peude saber de alguna forma.

    Muchas Gracias y Feliz Navidad

  21. Mario Hernandez /

    @Victor, son sólo warnings y aparecen producto del cambio en la versión de g++ (por eso hay que editar el código fuente antes de compilar), puedes seguir la guía y obviar los warnings o bien, hacer la instalación con una versión obsoleta de g++

  22. Hola Amigo como estas, mira segi tu guia al pie de la letra pero tengo un problema cuando doy el ultimo make me da este mensaje:

    queue.h:56: warning: deprecated conversion from string constant to âchar*â
    (SE REPITE VARIAS VECES)
    dispo.h:74: warning: deprecated conversion from string constant to âchar*â
    (SE REPITE VARIAS VECES)

    No se que hacer amigo por que puede pasar este problema, ayudame por favor.

  23. Cordial Saludo,
    Alguien tiene el tema de la reproducción de una grabacion cuando marca en lugar de enviarlo a la cola de agentes?
    Que modificaciones debo hacer para que cuando GNU realice la llamada llegue a un contexto personalizado y no a la cola?
    Graicas por su atencion.

  24. Mario Hernandez /

    @Pedro, el hardware es independiente de gnudialer, necesitas hardware compatible con asterisk, si te funciona ahí lo puedes usar en gnudialer

  25. Pedro Gonzales /

    Mario Amigo,

    Ojala tengas oportunidad de leer mi mensaje.

    Gracias

    Pedro

  26. Pedro Gonzales /

    Mario,

    La guia es excelente, pero que hardware usas? Estas usando una lina T1 o solamente VoIP… tengo unas tarjetas Dialogic T1 ISA que no son muy compatibles con nada pero si es mucho problema comprare otras. Solo tendria que resolver la interrogante del hardware que es compatible con debian y gnudialer.

    Gracias

  27. Victor /

    Mario Gracias por la respuesta, y si asigne el agente a la campaña, una vez logeado el agente en la web del crm y en eyebeam
    en el cli sale esto

    == Parsing '/etc/asterisk/manager.conf': Found
    == Manager 'crm' logged on from XX.XX.XX.XX
    == Parsing '/etc/asterisk/manager.conf': Found
    == Manager 'crm' logged on from XX.XX.XX.XX
    == Manager 'crm' logged off from XX.XX.XX.XX
    == Parsing '/etc/asterisk/manager.conf': Found
    == Manager 'dialer' logged on from 127.0.0.1
    == Manager 'dialer' logged off from 127.0.0.1
    — Executing [145@contexto01:1] AgentLogin("SIP/145-08b16708", "145") in new stack
    — < SIP/145-08b16708 > Playing 'agent-loginok' (language 'es')
    — Started music on hold, class 'default', on SIP/145-08b16708
    == Agent '145' logged in (format g729/g729)

    y nunca recibo una llamada en mi agente pasan y pasan los minutos es como si el GNU no marcara nada o es q tengo q marcar algo yo uso solo Troncales SIP

  28. Mario Hernandez /

    @Victor, asignaste el usuario a la campaña? tienes que ver que dice asterisk cuando realiza la llamada

  29. Victor /

    Hola amigo exelente guia aunque lo del paquete subversión es muy jalado, mas bien yo lo instale bajando un tar.gz.

    Pero tengo unas GRANDES DUDAS, mira instale todo entro al administrador, creo una campaña(Tambien importo la Data), asigno los agente(Tambien creo el marcado de los agentes en el extension), Inicio la Campaña(Configurando el sip), pero no marca y si marca no se si entra la llamada por que en el agente solo dice: AGENTE LOGEADO (Todo mi @sterisk tiene voz española) sale la musica del hold y nunca le entra una llamada.
    cuando toy dentro de la pbx por la consola y pongo: gnudialer me sale lo siguiente:

    PRAC-USA02: tzFilter Disabled
    PRAC-USA02: query – SELECT DISTINCT `id`, `phone` FROM `PRAC-USA02` IGNORE INDEX (disposition) WHERE 1 AND (LEFT(lastupdated,10) = LEFT(NOW(),10) AND disposition = 1 OR (LEFT(lastupdated,10) <> LEFT(NOW(),10))) AND ((((disposition > -6 AND disposition < 6) AND disposition <> -3 AND disposition <> 3 AND disposition <> 0) AND attempts < 4)) ORDER BY attempts ASC LIMIT 0,2
    PRAC-USA02: Dialing 2 calls (0) skipped
    PRAC-USA02: has ran out of leads! (CHECK YOUR FILTERS!!!)
    PRAC-USA02: ABANDON %: 0 (or less than zero)
    PRAC-USA02: tzFilter Disabled
    PRAC-USA02: filter – (((disposition > -6 AND disposition < 6) AND disposition <> -3 AND disposition <> 3 AND disposition <> 0) AND attempts < 4)

    pero no entran las llamadas

    me podrias ayudar con eso por favor

  30. Anonymous /

    Tu guia es perfecta… todo trabaja con asterisk, pero que hardware usaste? que piezas? usas dialogic? los drivers de dialogic trabajan solo para redhat es un problema ya no se que hacer :( ojala estes checkeando este post.

    Gracias… Me gustaria saber la configuracion que usas y cuantos usuarios se conectan y como..

  31. Anonymous /

    Gracias por Responder pero en el link http://dynx.net/ASTERISK/gnudialer/

    ay varios archivo, tu crees q podrias modificar tu manual y especificar con un rar para poder asi guiamer mejor ya que el gnudialer recien lo veo y no se nada de ese sistema y me intera muxo las cualidades q tiene

  32. Mario Hernandez /

    @Anonimo, probablemente exista un problema con el repositorio SVN de gnudialer, intenta descargandolos directamente desde http://dynx.net/ASTERISK/gnudialer/

    me he dado cuenta que el dominio no esta siempre disponible, asi que modificaré el manual para agregar tambien la descarga del tar.gz

  33. Anonymous /

    Amigo buenas estaba siguiendo tu manual pero en esta linea no funciona no pasa nada en mi consola ocmo si no existiera

    GNUDialer
    Existe un repositorio SVN funcionando para descargarlo, primero debemos instalar el paquete subversión

    apt-get install subversión
    svn checkout http://dynx.net/svn/gnudialer-puff/trunk gnudialer-puff

    podrias revisarlo y decirme q hago ay q toy liado con eso

    gracias

  34. Anonymous /

    Mario unas preguntas

    La primera es, cuando los operadores están a la espera de las llamadas, en algunos casos (bastante frecuentes), se logran comunican con el encuestado pero de repente se les corta la llamada y vuelven al estado de espera de llamada; como si hubieran ya marcado una disposición, pero no lo hicieron.

    La 2da. consulta es, que el GNU distribuye las llamadas sin problemas durante 30 minutos aproximadamente, de manera fluida, pero luego se pone muy lento y ya asigna llamadas de manera equitativa, ya que puedo tener agentes hablando constantemente y otros que no reciben una llamada por 15 minutos; (este tema esta relacionado a los parámetros declarados en la campaña al crearlos??, tales como "Ratio"; "Lines" y "Sleep time"). Ahora este tema lo resuelvo deteniendo el servicio y volviéndolo a ejecutar, pero se que no debe ser la mejor solución.

  35. uhmm por ejemplo yo uso el vicidialnow pero tengo un problema, el marcador no me genera msa de 10 llamadas simultaneas por campaña , es decir si tengo 3 agentes en una campaña y lo configuro para que haga 3 llamadas x agente serian 9, pero si tengo mas de 3 por ejemplo 5 siendo 3×1 se limita a 10 que puedo hacer para cambiar eso

  36. Mario Hernandez /

    @Anónimo, instalarlo en un server distinto a elastix

  37. Anonymous /

    Mario, me parece muy interesante el manual de GNUDial, voy a realizar esta implementación sobre Elastix, Alguna sugerencia?

  38. Anonymous /

    Hola:

    Segui al pie de la letra la guía, y aparentemente quedo bien instalado todo, pero al accesar la pagina para la administracion de gnudialer y dar click en cualquier boton, solo me aparece el recuadro en blanco.

    Que puede estar haciendo mal?

    Por otro lado, no veo en ningún momento que se ejecute algun script para crear las tablas en Mysql, checo la base de datos "dialer" y no hay ninguna tabla generada, ¿en que momento se crean?

    Agradecería me ayudaran a solucinar esto.

    Un saludo desde México:

    Raúl

  39. Anonymous /

    ok mario….gracias
    entonces boy aseguir tu
    consejo…. boy atener un solo pbx
    por cierto estaba buscando informacion
    de gnudialer… para administracion
    http://www.gnudialer.org
    casi no hay manuales mas que el tuyo gran oporte
    por cierto soy gilberto hernandez..

  40. Mario Hernandez /

    @Anonimo, VICIDial tiene sus manuales de instalación (con un cierto nivel de complejidad, lamentablemente mayor a la de GNUDialer) en http://astguiclient.sourceforge.net/vicidial.html en el momento que lo instalé el manual completo de administracion, instalación etc. era pagado (en amoocon'09 uno de los que trabajan en el proyecto confirmó que esa era su forma de financiamiento) tal como dije anteriormente en su momento ese software no servia a mis propositos (no me gusta eso de tener un salon de conferencias por canal/agente).

    Como referencia general, siempre trata de dividir las cosas, si vas a tener una PBX (elastix, trixbox, pbxinaflash, etc) procura que "solo" sea una PBX o tendrás problemas de implementacion (especialmente si estas trabajando en tu tesis), mi recomendacion para todos es que usen el discador "separado" de la PBX, en lo posible directamente conectado a una E1 o con un trunk hacia otro asterisk, esa es una muy buena practica.

  41. mauricio /

    alguiewn me podria colaborar para modificar el dialer.conf y enviar mensajes(grabaciones publicitarias) a diferentes numeros con el gnudialer vi que una persona en un post anterior dijo que lo habia hecho mas exactamente (anonimo 10 de junio de 2009) , que aunque no le funcionaba bien si le reproducia el mensaje , quisiera que me colaboraras
    si alguien puede ayudar mi correo es mauro2485@gmail.com

    gracias de antemano
    AMR

  42. Anonymous /

    saludos …algun manual para implementar
    elastix con vicidial bueno como integrarlo
    saludos

  43. Anonymous /

    SALUDOS CAMARADA TENGO UNA PREGUNTA
    SABES COMO PUEDO HACER PARA INTEGRAR TRIXBOX
    A VICIDIAL

    SE QUE ES EN EL DIAPLAN PERO EN QUE PARTE HOO COMO
    SALUDOS ALGUN MANUAL

  44. Fernando /

    Gracias ya tengo funcionando apache, tienes alguna guia para lo que viene a continuacion, crear las campañas y el dial plan para Santiago.

  45. Mario Hernandez /

    @Fernando
    En CentOS si no me equivoco los archivos se encuentran en /etc/httpd/conf.d
    de todas formas el archivo /etc/httpd/httpd.conf o apache2.conf tiene una sentencia #include para los virtualhosts

    @Anonimo
    Ese problema es muy común y se soluciona con alguna implementación de la extensión h

  46. Anonymous /

    Hola, soy Humberto, gracias por la guia :D .

    Quisiera solicitar tu ayuda, por los problemas de compatibilidad que estuve leyendo me decidi por instalar el asterisk 1.2, y pues instale gnudialer con una tarjeta TDM400 y 1 solo puerto fxo, estoy haciendo un autodialer, y pues gracias a tu guia pude instalarlo y esta funcionando, el problema es que marca pero pues estando en llamada, sigue intentando marcar a los otros numeros de la BD, no se si asi funcione o tenga algo mal, tambien quisiera solicitar tu ayuda, aqui en mexico no se si utilicen cambios de polaridad para detectar el cuelgue, ya que pues el servidor se utilizara para hacer llamadas y reproducir un mensaje cuando contesten, y ya jugue con los valores de busydetect, busypattern y pues no logro detectar cuando cuelgan y la grabacion sigue hasta que se acaba, cuelguen o no!!!

    Muchas Gracias de Antemano!!!

    Soy el Anonimo del Comentario anterior jeje

  47. Fernando /

    Hola he seguido la guia al pie de la letra, pero tengo un problema en la última parte que dice modificar /etc/apache2/sites-enabled/000-default

    Estoy usando Centos por que es el estandar de la empresa. Y no encuentro ese archivo en Centos, el directorio aparece como httpd pero no esta.

    Si me puedes ayudar te lo agradeceria.

    saludos

  48. Anonymous /

    Hola, Que Buen Tutorial, me ha ayudado a poder instalar mi gnudialer :D , solo quisiera consultar algo, estoy intentando hacer una campaña para poder hacer llamadas automaticas y reproduzca una grabacion en cuanto le contesten. Bueno digamos que ya lo tengo en parte, aunque no se si lo este haciendo bien o me podrias dar una mejor idea.

    Lo que hice es crear una campaña y agente, y modifique el dialer.conf, para que cuando esta transfiriendo la llamada al agente, lo envia a un contexto, donde contesta, reproduce mensaje y cuelga. Ya lo probe y si, lo hace, aunque contesten o no, igual reproduce la grabacion, y cuando termina, no marca el siguiente numero :S.

    Bueno, espero puedas orientarme un poco, ya que soy nuevo en Asterisk y pues no se mucho, jejeje

    De Antemano Muchas Gracias

  49. Anonymous /

    entonces configurare los dialer de esa manera, lo ultimo. IP_asterisk es la direccion ip donde esta la extencion sip discador que tiene el contexto de llamados.

    que en mi caso seria el asterisk con lass tramas para hacer llmadas.

    gracias.

Leave a Reply