Inicio > Asterisk, Centos, Linux, Manuales y tutoriales > Sistema de llamadas desatendidas para Elastix – AudioElastixdialer 0.1

Sistema de llamadas desatendidas para Elastix – AudioElastixdialer 0.1

En algun momento, existe la necesidad de realizar llamadas a los clientes , para reproducir le un grabacion o mensaje determinado (mas conocido como IVR) , por ejemplo para los siguientes casos :

– Sistemas de cobro
– Aviso de promociones
– Recordatorios de pago

Lo interesante es poder hacer estas llamadas de manera automatica y que podamos subirlas desde un archivo, ejemplo un  csv y tenerlo registrado en una base de datos.

Ese es el objetivo, ahora como lo hacemos ?

Bueno para eso nos vamos a apoyar en la funcionalidad «Asterisk call files» desde nuestro Elastix, como lo haremos

– Usaremos un par de paginas en php, que tendran el objetivo de cargar un csv (donde estaran los numeros a llamar)
– Luego se leera el archivo csv , para introducirlo en la base de datos.
– Finalmente leera la base de datos y generara los archivos .call en la carpeta /var/spool/asterisk/outgoing.

A.- COMPOSICION DE LOS ARCHIVOS
Como a todos los ingenieros nos gusta poner nombres a nuestras creaciones, a este lo he llamado, AudioElastixDialer , el cual esta compuesto de los siguientes archivos.

– funciones_bd.php , Contiene funciones basicas , de conexion a la base de datos , operaciones a las tablas , generacion de nuevos codigos.

– index.php , formulario donde se establece el nombre de campaña , tipo de troncal a usar (por default voip) , contexto a usar , y el archivo de numeros a llamar.

– audioelastixdialer.php , realiza las siguientes funciones , sube el cvs a la carpeta del servidor , luego lee los numeros del csv y los inserta a la base de datos  y finalmente crear los archivos .call , basado en la informacion de la base de datos.

B.- INSTALACION
La instalacion esta basada en una plataforma ELASTIX 2.4 a 32 bits , sin embargo puede trabajar en cualquier plataforma basada en Asterisk.

1.-  Crear carpeta donde se alojara la aplicacion , descargarla y descomprirla
#mkdir /var/www/html/AudioElastixDialer
#cd /var/www/html/
#wget http://www.silcom.com.pe/soft/AudioElastixDialer.zip
#unzip AudioElastixDialer.zip

2.- Configuracion de directorios en el sistema
#
chmod a+wr /var/www/html/AudioElastixDialer
#chmod a+wrx /var/spool/asterisk/outgoing/

3.- Configurar el dialplan de Elastix

Ingresamos a modificar el archivo de extensiones personalizadas

#vi /etc/asterisk/extensions_custom.conf

Incluimos en el contexto central uno nuevo el cual llamaremos «call-file-test»  y lo unicaremos al final como se muestra a continuacion.

[from-internal-custom]
exten => 1234,1,Playback(demo-congrats)         ; extensions can dial 1234
exten => 1234,2,Hangup()
exten => h,1,Hangup()
include => agentlogin
include => conferences
include => calendar-event
include => weather-wakeup
include => call-file-test

Luego vamos al final del mismo archivo e ingresamos nuestro contexto nuevo

[call-file-test]
exten => s,1,wait(15)
exten => s,2,Playback(demo-congrats)
exten => s,3,Hangup()

Guardamos los cambios en el archivo y finalmente recargamos los cambios a nivel del CLI de Asterisk

#asterisk -rvvvvvvvv
CLI> reload

4.- Modificar los datos de conexion a la base de datos

#vi /var/www/html/AudioElastixDialer/funciones_bd.php

if(!($conector=mysql_connect(«localhost»,»root»,»tucontrasena»)))

Nota Importante: Verificar también el nombre de la base de datos «AudioElastixDialerBD» en el mismo archivo.

5.- Crear la base de datos para el Audio Elastix Dialer

#mysql -p

mysql> create database AudioElastixDialerBD;

#mysql -u root -p AudioElastixDialerBD < /var/www/html/AudioElastixDialer/sql/AdioElastixDialerBD.sql


6.- Configuracion de la troncal de salida

Para configurar la troncal voip es necesario ingresar al archivo «audioelastixdialer.php» y configurar los parámetros a partir de la linea 77 aproximadamente, actualmente esta configurado para llamadas con prefijo de Perú

$tronc1=»SIP/0051″;
$tronc2=»@PROVEEDORVOIP»;

Ejemplo , para configurar la salida del dialer por el proveedor Nextor Proxy, asumiendo que la troncal tiene el mismo nombre, seria de esta forma:

$tronc1=»SIP/52″;
$tronc2=»@NEXTORPROXY»;

C.- USANDO AUDIOELASTIXDIALER

1.- Ingresar a la aplicación

Ingresar via : https://TUIP/AdioElastixDialer/  y veremos el siguiente formulario

AudioElastixDialer

Ingresaremos basicamente :

Nombre de Campaña : Prueba1
Archivo de llamadas : selecionaremos el archivo csv a subir (incluyo un ejemplo en el zip)

2.- Iniciar Campaña

Para iniciar la campaña es necesario hacer click sobre el boton «Crear Campaña» , si todo salio bien , generara los archivos .call y comezara a llamadar a los numeros indicados, luego reproducira el audio definido en el contexto «call-file-test» agregado asteriormente.

Si todo esta bien configurado nos mostrara esta pantalla :

AudioElastixDialer-OKEl programa generara los archivos .call de la siguiente forma

AudioElastixDialer-SPOOL

Luego empezara a generar las llamadas , esto es lo que tendria que verse a nivel de CLI

AudioElastixDialer-CLI

3.- Conclusiones y modificaciones

– El programa esta hecho en PHP con MYSQL
– Es totalmente Open Source mientras me respeten los creditos
– Resalto que no es un marcador predictivo , ya que se generan tantas llamadas como la troncal usada lo permita.
– Es posible modificarlo para que funcione con troncales Dahdi
– Es posible modificarlo para que funcione con colas
– El futuro , integrarlo al Elastix Addons

La interfase es fea , lo se.. sorry no soy diseñador 😀

Espero les sirva !!

Anuncio publicitario
  1. george
    junio 13, 2013 a las 4:37 pm

    Segui todo al pie de la letra pero me dice siempre Error en consulta a la base de datos y nunca genera las llamadas

  2. junio 13, 2013 a las 5:18 pm

    Hola George
    En el archivo «funciones_bd.php» tiene que estar la contraseña del usuario de Mysql que estas usando.

    if(!($conector=mysql_connect(“localhost”,”root”,”tucontrasena”)))

  3. Jorge S.
    junio 14, 2013 a las 5:00 pm

    Buen Articulo Juan!!! por lo visto volviste al blog con fuerza :)….como es de seguir…lo probare en producción para contarte como fue…Un abrazo…

  4. Juan Carlos
    junio 20, 2013 a las 10:34 pm

    Tengo una duda, en la parte del contexto.
    [call-file-test]
    exten => s,1,wait(15)
    exten => s,2,Playback(demo-congrats)
    exten => s,3,Hangup()

    Solo pone la llamada expera 15 seg. y comienza la grabación cierto?
    Si es de esta forma, si el usuario no contesta de todos modos se va a reproducir la grabación mientras suena en la linea destino.

    Hay alguna forma de que la grabación comience cuando contesten la llamada?

    Saludos! y que buen aporte!

    • junio 30, 2013 a las 4:21 pm

      Hola Juan Carlos
      La linea «exten => s,1,wait(15)» es muy subjetiva , ya que depende de la rapides como «empalma la llamada» la troncal que estas usando, si se demora, como fue en mi caso, tienes que jugar con ese valor, que puede bajar tranquilamente a 4 o 5

      Saludos

      • edu Saravia
        julio 25, 2017 a las 3:19 am

        Hola Señor Oliva un favor, cual seria el codigo para poder subir el audio directo por el programa, para que cuando se suba el archivo de celulares sea ese audio el que se aplique.

    • noviembre 7, 2013 a las 4:46 pm

      cambia el wait por un answer
      y luego como segunda opcion das wait y le colocas 2

      ejemplo

      [call-file-test]
      exten => s,1,Answer
      exten => s,n,wait(2)
      exten => s,n,Playback(demo-congrats)
      exten => s,n,Hangup()

      asi el mensaje se reproduce cuando el cliente final contesta la llamada, espera 2 segundos y reproduce el mensaje..
      saludos

  5. leonel
    junio 29, 2013 a las 7:23 pm

    ak querer realizar la linea de comando siguiente me da un error

    #mysql -u root -p AdioElastixDialerBD < sql/AdioElastixDialerBD.sql

    me dice que no existe sql/AdioElastixDialerBD.sql

    • junio 30, 2013 a las 4:17 pm

      Hola Leonel
      Es un tema de ruta , esta es la linea, tambien ya esta actualizado en el articulo

      mysql -u root -p AdioElastixDialerBD < AudioElastixDialer/sql/AdioElastixDialerBD.sql

      Saludos

      • j carlos z
        agosto 24, 2013 a las 2:11 am

        Server version: 5.0.95 Source distribution

        Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

        Oracle is a registered trademark of Oracle Corporation and/or its
        affiliates. Other names may be trademarks of their respective
        owners.

        Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

        mysql> mysql -u root -p AdioElastixDialerBD ;
        ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘mysql -u root -p AdioElastixDialerBD < AudioElastixDialer/sql/AdioElastixDialerB' at line 1

  6. CamiloG
    julio 5, 2013 a las 3:52 pm

    Excelente aporte! Gracias

  7. julio 26, 2013 a las 3:15 pm

    hola como haria para que lea un campo de dato adicional y lo reproduzca, es decir decir el nomre ejemplo.

  8. julio 26, 2013 a las 5:51 pm

    Hola Arturo

    Pues si , claro que se puede hacer eso , en el contexto call-file-test , antes de ir a la segunda prioridad habria que enviarlo a un AGI , para que consulte la BD extraiga el nombre , vuelva con el dato , lo reprodusca con un tex2speech y luego reprodusca el anuncio del demo-congrats , para este caso.

    Espero te sirva

    Saludos
    Juan Oliva

    • Sofir
      octubre 13, 2017 a las 2:14 pm

      Hola jroliva, podrías dar un ejemplo de este caso, me gustaría que el mensaje agregara 2 datos, por ejemplo el monto a pagar y la fecha de vencimiento, ejemplo: «Uds. tiene un adeudo de: » & & «favor de pasar a liquidar antes del día» & & » por su atención gracias»

      • octubre 16, 2017 a las 2:03 am

        Hola Sofir
        Claro que se puede, de hecho hice exactamente eso para un proyecto reciente, básicamente lo que necesitas es lo siguiente.

        – Modificar la tabla calloutnumeros agregando los campos monto y fecha.
        – En el CSV tienes que agregar los dos datos, por ejemplo
        123456,Juan Oliva,500,15102017
        – En el archivo audioelastixdialer.php en el paso 2 donde se lee el csv para subirlo a la base de datos tienes que aumentar los campos a insertar en la tabla.
        – Luego en el contexto es necesario crear un AGI para consultar el monto y fecha basado en el numero y campana, para luego reproducirlo con un text2speech.

        Básicamente ello, espero te sirva.
        Saludos
        Juan Oliva

  9. Martin
    agosto 23, 2013 a las 6:11 pm

    Hola Juan, excelnte aporte…
    tengo una consulta, si quisiera que haga llamadas a internos q esten dentro de la misma Lan y cargados en el servidor, lo haria? porque me confunde el tema de :
    $tronc1=”SIP/0051″;
    $tronc2=”@SERVILINE”;
    En teoria eso hace llamadas salientes no?
    Muchas gracias!

    • juanmelis
      octubre 19, 2013 a las 1:27 pm

      Hola Martin yo hice una prueba y funciona

      He modificado las lineas de:
      :
      $tronc1=”SIP/0051″;
      $tronc2=”@SERVILINE”;

      por

      $tronc1=»SIP/${EXTEN}»;
      $tronc2=»»;

      en el archivo *.csv puse por ej:

      6002, Fulano
      6003, Sultano
      6020, Mengano

      aclaro que no soy ningun experto y que hice todo en base de lo que
      detalló Juan Oliva

      Espero que sirva.

      • octubre 19, 2013 a las 5:41 pm

        juanmelis Estupendo !! , esa era la idea !!

        Que bueno que hallas entendido el código

        Saludos

      • Martin
        octubre 21, 2013 a las 1:08 pm

        Muchisimas gracias ! Lo voy a probar cuanto antes y comento! Mil gracias!

      • Martin
        noviembre 10, 2013 a las 8:03 pm

        Funciono a la perfección! Muchas gracias!!
        Ahora tengo la siguiente inquietud.. reproduce el demo-congrats que trae el elastix… en caso de que quiera que reproduzca una grabacion por ejemplo en mp3, debo modificar:
        exten => s,2,Playback(demo-congrats)
        por:
        exten => s,2,Playback(«mi_grabacion.mp3) ???
        este mp3, debe estar en la carpeta del sistema o bien, ubicar demo-congrats en donde este y colocar mi archivo en dicho directorio?
        Desde ya muchas gracias Juan por tu aporte, y a vos Juanmelis por darme una mano.
        abrazo!!!!

      • noviembre 11, 2013 a las 12:04 pm

        Marin
        es como tu dices debes colocar esta linea y remplazarla por la actual
        exten => s,2,Playback(miaudio)

        lo otro el asterisk reproduce MP3 como gsm, por recomendacion del procesador te recomiendo uses GSM, en internet andas muchos software que transforman de mp3 a gsm

        el audio debes alojarlo en /var/lib/asterisk/sounds/miaudio.gsm

        en la carpeta sounds

        Saludos.

  10. agosto 28, 2013 a las 10:05 pm

    Hola Martin

    Claro que es posible, en realidad ya no usas trunks salientes ,puedes modificar la variable y formatear el csv con los números de anexos

    Saludos

  11. Martin
    agosto 30, 2013 a las 1:38 pm

    Jorge, muchisimas gracias por responderme! Si lo quisiera hacer, como deberia quedar esa variable? tengo que sacar :
    $tronc1=”SIP/0051″;
    $tronc2=”@SERVILINE”;
    Pero realmente no se claramente que debo poner. Si me podrias dar una ayuda con eso te re agredeceria. De ante mano, muchisimas gracias por este aporte, ya que en mi caso hiciste despertar mi interes en el tema. Abrazo!

  12. mathyaz
    septiembre 24, 2013 a las 1:36 am

    hola juan muy bueno el articulo, justo lo que andaba buscando pero tengo un problema, segui todo al pie de la letra, tambien revise la linea if(!($conector=mysql_connect(“localhost”,”root”,”tucontrasena”))) pero siempre que presiono el boton ‘crear campaña’ me muestra el error ‘ Error en consulta a la base de datos’, que podria ser?

    las tablas y la BD fueron creadas correctamente cosa que comprobe desde phpmyadmin, salu2

    • Valmir Lopes
      abril 24, 2017 a las 2:50 pm

      Estou com o mesmo erro , ja conesguiu acertar?

  13. Tinnho
    septiembre 27, 2013 a las 8:20 pm

    Excelente aporte! Pero me uno al pedido de martin, ¿como se hace para que solamente llame a internos cargados en el elastix dentro de la lan? me gustaria enviar grabaciones a internos que tengo ya configurados y en servicio. Muchas gracias Juan!!!

  14. cristian
    octubre 9, 2013 a las 8:58 pm

    s

  15. cristian
    octubre 9, 2013 a las 9:02 pm

    Estimado te cuento que segui al pie de la letra tus indicaciones, todas correctas creee las campañas y todo exelente revise la base de datos me carga los archivos .csv, pero no me genera la llamada el asterisk.
    informo que lo monte en un asterisk 1.4.9 con centos 5.6 y mysql.

    sera ese el problema.
    ademas de esto el contexto [call-file-test] lo creee en el extensions.conf
    tambien me percate que el archivo que me debe generar en el outcolling el .CALL no me lo genera.

    que podra suceder.

    si me puedes contestar te lo agradeceria.

    • febrero 13, 2014 a las 4:39 pm

      Cristian me indicas si pudistes sacar las llamadas al montar la campaña.

      Tengo un problema cuando trato sacar la llamada al montar la campaña.

      Connected to Asterisk 1.8.25.0 currently running on Test (pid = 2626)
      Verbosity is at least 3
      — Attempting call on SIP/05796046061@TELMEX for s@call-file-test:1 (Retry 1)
      == Using SIP VIDEO TOS bits 136
      == Using SIP VIDEO CoS mark 6
      == Using SIP RTP TOS bits 184
      == Using SIP RTP CoS mark 5
      — Attempting call on SIP/05796046061@TELMEX for s@call-file-test:1 (Retry 2)
      == Using SIP VIDEO TOS bits 136
      == Using SIP VIDEO CoS mark 6
      == Using SIP RTP TOS bits 184
      == Using SIP RTP CoS mark 5
      Test*CLI>

  16. octubre 19, 2013 a las 5:43 pm

    Hola Cristian

    Si no genera los .call en el directorio , entonces es que no esta cargando el csv a la base de datos

    Yo comenzaría por hay

    Saludos

    • febrero 14, 2015 a las 4:12 pm

      Amigo como se que no me esta caragndo el archivo. la db esta bieb configurada

  17. octubre 29, 2013 a las 7:39 pm

    Estimado jroliva

    te informo que cambie a elastix utilizando tu misma version 2.4,
    configure tu aplicacion en esta version y todo me andubo bien, pero siempre existen los problemas. xD

    probe la configuracion para llamar a anexos dentro de la misma central y este me funciona de maravilla todo bien sin problemas, de hecho cambie la opcion wait por answer y me reproduce el audio cuando me contestan los anexos.

    [call-file-test]
    exten => s,1,Answer
    exten => s,2,Playback(demo-congrats)
    exten => s,3,Hangup()

    pero el problema radica cuando quier llamar hacia la PSTN

    cambio a el archivo audioelastixdialer.php por el prefijo y la troncal que utilizo y este no me genera las llamadas.

    pero si me simula la ejecucion

    datos de asterisk

    Usuario y troncal SIP

    modificacion del archivo audioelastixdialer.php

    if ($troncal==»2″)
    {
    $tronc1=»SIP/0″;
    $tronc2=»@stelphone»;
    }
    else
    {
    $tronc1=»ZAP/g1/»;
    $tronc2=»,20,Tt»;
    }

    insertare las imagenes de la configuracion

    1- configurar campaña

    2- respuesta de la configuracion

    3- log del asterisk

    4- archivos call creados

    te agradeceria si me ayudaras con este problema.
    mi skype es cristian.stelphone

    saludos y gracias

  18. Kopper
    noviembre 1, 2013 a las 5:05 pm

    Hola Juan mi consulta es que si no tienes un tutorial para crear algun phpAGI para entrelazar una base de datos Oragle BD para generar consultas de salarios y luego dar un audio con el respectivo monto..

    Gracias de antemano

  19. noviembre 7, 2013 a las 4:43 pm

    Estimado ya esta operativo y funcionando, en el elastix 2.4
    la falla era capa 8 era modificar el prefijo ya que me faltaba un digito para que saliera xD la llamada.

    lo otro, es posible de ir en bloque generando llamadas, es decir de 8 llamadas con 2 intentos y luegos otros 8 numeros con 2 intentos y asi consecutivamente, pero esto de forma automatica, como para dejarlo en campañas. ya que dispongo de 8 rutas, y quiero llamar a 100 numeros, pero al momento de hacerlo el elastix me dispara las 100 llamadas a la ves y me salen 8 llamadas solamente, encaso que se contesten intenta con otros 8 numeros pero luego ya no intenta mas ya que coloco 2 reintentos.

    la falla se produce que si colocara 50 reintentos si un numero no me contesta ni corta la llamada el asterisk lo llamara 50 veces :/

    alguna forma de ejecutar las llamadas en bloque?

    lei que se podia modificar para usar colas, me puedes explicar un poco sobre eso.

    gracias

    • febrero 13, 2014 a las 4:36 pm

      Buenos días Cristian Cespedes.
      Tengo el mismo problema que tenías antes con las llamadas salientes. Cuando moto la campaña no me en toma mi plan de marcado que tengo por default en la WEB, me indicas que plan de marcado realizaste en extensions_custom.conf

      Saludos,

    • Edison
      diciembre 15, 2015 a las 4:23 pm

      estimado como soluciono el problema del 0 que no se carga al inicio

  20. noviembre 22, 2013 a las 4:20 pm

    Gracias por diseñar tan importante aplicación!

    No logro descargar el archivo desde esta dirección http://94.23.152.21:85/pub/AudioElastixDialer.zip

    Usted me podría ayudar por favor?

  21. diciembre 3, 2013 a las 10:51 pm

    Buenas tardes.

    Excelente aporte, pero me pueden colaborar para la descarga del AudioElastixDialer

    http://94.23.152.21:85/pub/AudioElastixDialer.zip

    Saludos,

  22. diciembre 4, 2013 a las 12:34 pm

    Chicos descargelo ahi, lo acabo de subir, o si no dejen un mail y se los mando

    http://www.gigasize.com/get/88so2lf9gyc

    comento que mejore la funcionalidad, lo realize para generar campañas segmentadas y usando las tronales que yo defino, y cuantas llamadas quiero que sean paralelas.
    tambien genere informes de archivos importados entregados y no entregados.

    ademas de esto configure el software para subir el audio directo desde cuando uno crea la campaña y no desde el ftp

    cualquier duda me pueden preguntar por medio de este mismo foro para que todos puedan aprender.

    • juanmelis
      diciembre 11, 2013 a las 2:49 am

      Hola me Cristian me podrias indicar que modificaste para realizar las generar las campañas
      segmentadas y cuantas llamadas sean simultaneas?
      En un entorno de pruebas con una sola linea y con diez destinos tengo el mismo problema que
      describes anteriormente.
      Desde ya gracias !!

      • diciembre 11, 2013 a las 12:21 pm

        Hola juan, si claro que te puedo decir como lo hice,
        como bien dice el manual juan olivar, se usa la funcion asterisk call files, propia de este, lo que hice fue lo siguiente.

        modifique el codigo para que cuando genere las consultas a la base de datos y me tire las llamadas .call, revise las cantidades de troncales disponible y las compare con las llamadas simultaneas.

        te dejo el codigo para que lo remplazes por el que ya esta.

        debes remplazar en el archivo audioelastixdialer.php

        ///////////// CODIGO ACTUAL////////////////

        //5.- GENERAR LA LLAMADA DE LA BASE DE DATOS
        $sentencia=»select id,telefono from calloutnumeros where campana = $idcampana;»;
        $resultado=consultar_bd($sentencia);
        while ($row=mysql_fetch_array($resultado)){
        $id=$row[0];
        $numero=$row[1];
        $Channel= «Channel: » . $tronc1 . $numero . $tronc2 ;
        $Callerid= «Callerid: » . $numero;
        $fp = fopen(«/var/spool/asterisk/outgoing/myarchivo$id.call»,»a»);
        fwrite($fp, $Channel . PHP_EOL . $Callerid . PHP_EOL . $MaxRetries . PHP_EOL . $RetryTime . PHP_EOL . $WaitTime . PHP_EOL . $Context . PHP_EOL . $Extension . PHP_EOL . $Priority . PHP_EOL);
        fclose($fp);

        } //CIERRE DE WHILE
        mysql_free_result($resultado);
        die;

        ?>

        REMPLAZAR POR

        //5.- GENERAR LA LLAMADA DE LA BASE DE DATOS

        $sentencia=»select id,telefono from calloutnumeros where campana = $idcampana;»;
        $resultado=consultar_bd($sentencia);

        $llamadasMax= tu numero de troncales va aca;

        $cant = mysql_num_rows($resultado);

        while($cant > 0 ){

        if( count(glob(«/var/spool/asterisk/outgoing/{*.call}»,GLOB_BRACE)) < $llamadasMax ){
        $row=mysql_fetch_array($resultado);
        $id=$row[0];
        $numero=$row[1];
        $Channel= "Channel: " . $tronc1 . $numero . $tronc2 ;
        $Callerid= "Callerid: " . $numero;
        $fp = fopen("/var/spool/asterisk/outgoing/myarchivo$id.call","a");
        fwrite($fp, $Channel . PHP_EOL . $Callerid . PHP_EOL . $MaxRetries . PHP_EOL . $RetryTime . PHP_EOL . $WaitTime . PHP_EOL . $Context . PHP_EOL . $Extension . PHP_EOL . $Priority . PHP_EOL);
        fclose($fp);
        $cant = $cant – 1;
        $sql = "update calloutnumeros set estado = 'exito' where telefono =".$numero." && campana =".$idcampana;
        consultar_bd($sql);
        $HoraLlamada=date("H:i:s");
        $sql = "update calloutnumeros set fechaLlamado ='".$HoraLlamada."' where telefono =".$numero." && campana =".$idcampana;
        consultar_bd($sql);

        }
        sleep(2);

        }

        $sql = "update calloutcampana set horaTermino ='".date("H:i:s")."' where idcampana =".$idcampana;
        consultar_bd($sql);

        echo "»;
        echo «Volver«;
        echo «»;

        mysql_free_result($resultado);
        die;

        ?>

        tambien puedes colocar la variable en el diseño para que cambies tu maximo de troncales mas libremente, es decir, desde el mismo software.

        Saludos y Exito Juan.

    • juanmelis
      febrero 7, 2014 a las 10:34 pm

      Hola Cristian gracias por haber contestado, pero si no es molestia podrias
      enviarme el archivo audioelastixdialer.php modificado porque no me funcionado. Es para
      verificar si me equivoque en algo.

      • Giancarlo
        marzo 31, 2014 a las 3:03 pm

        Hola creen que me puedan ayudar he intentado usar el código adjunto para mejorar las llamadas pero no me resulta… podrían decirme si el código esta bien o falta añadir algo mas.

    • edu
      agosto 19, 2015 a las 5:13 am

      Hola cristian bien mira que he montado todo pero me sale un error Call failed to go through, reason (3) Remote end Ringing
      este otro me sale
      Attempting call on SIP/572147483647@TSIP-VOIPARKAS for s@call-file-test:1 (Retry 1)

      no se de dnde me sale este numero laargo 2147483647 el 57 si es porque le puse al sip 57 de colombia

      pido tu consejo gracias.

      • FerchoPenagos Mexicali
        mayo 28, 2016 a las 7:01 pm

        Es el tipo de campo donde tienes almacenado el teléfono, yo puse varchar y solucione ese problema.

  23. Roger Caranqui
    diciembre 9, 2013 a las 9:07 pm

    Mi estimado me encantaría probar la solución pero no puedo descargarla me podrias ayudar talvez con los archivos ?? de antemano muchas gracias

    • diciembre 10, 2013 a las 12:07 pm

      http://www.gigasize.com/get/88so2lf9gyc

      un esta activo el link lo acabo de revisar, lee bien perrin ahi te dice como descargar en la parte derecha de la pantalla, sale para descargar! saludos

      • Ramsés
        enero 30, 2014 a las 10:44 am

        Cristian, buenos días,

        ¿Aun sigue operativo ese enlace para la descarga?

        Yo también estoy realizándole mejoras a la aplicación original de Juan, por ejemplo, en la selección de Troncal de la página principal he puesto otro que sea Local, he incluido el código que has puesto antes y en la página principal he puesto un campo donde te pide el número máximo de canales a usar, he cambiado el nombre de la base de datos «AdioElastixDialerDB» por «AudioElastixDialerDB», he cambiado el directorio destino de los ficheros csv, que se depositaban en «./AudioElastixDialer/» a «./AudioElastixDialer/csv/», etc…

        En fin, algunas cosillas…

        Podriamos aunar las modificaciones e ir mejorando la aplicación…

        Juan, por cierto, muy buen aporte con la aplicación.

        Saludos y gracias,

        Ramses

      • enero 30, 2014 a las 1:49 pm

        Hola Ramsés

        El enlace original ya esta actualizado, por cierto , si gustas me envías las modificaciones y las posteo.

        Saludos!!

      • guinoh
        agosto 25, 2015 a las 6:02 pm

        Hola Cristian.

        Se encuentra caido el link, aun cuentas con el archivo?

      • edu
        septiembre 14, 2015 a las 3:45 am

        Hola cristin ue cambios le has hecho al sistema para poder obtener las llamadas que si salieron y las que se perdieron seria genial montar eso.

      • Mauricio Pastrana
        agosto 9, 2018 a las 3:16 pm

        Hola cristian, aun tienes el archivo disponible, es que el link como cambio de server no permite descargarlo, lo podrias resubir o enviar de nuevo, muchas gracias…. mi coreo es respaldocel12@gmail.com

  24. juanmelis
    diciembre 12, 2013 a las 2:08 am

    Gracias Cristian Lo voy a probar!!!!!!!!!!!!!!

    • juanmelis
      febrero 14, 2014 a las 11:24 am

      Hola Cristian gracias por haber contestado, pero si no es molestia podrias
      enviarme el archivo audioelastixdialer.php modificado porque no me funcionado. Es para
      verificar si me equivoque en algo.

  25. diciembre 30, 2013 a las 6:28 pm

    Hola url de descarga ya esta actualizada en un nuevo server y esta disponible nuevamente.

    Gracias a todos por utilizar el software

    Saludos

    Juan Oliva

    • Mauricio Pastrana
      agosto 9, 2018 a las 3:18 pm

      Hola Jroliva, Aun tienes disponible el archivo, o tienes algunas recomendaciones, soy novato en esto y aun no he podido a funcionar el programa, los errores estan en los comentarios pero no tienen respuestas, cuando abro la pagina solo me aparece el encabezado del programa y no me aparecen los otros campos.

      Agradezco mucho tu ayuda y excelente aporte, el programa esta de lujo

  26. enero 6, 2014 a las 7:11 pm

    Hola gracias por la herramienta tan funcional. Quisiera preguntarte como se trabajaria con troncales dahdi ya que estoy atorado en esto. Muchas gracias de antemano

  27. Esteban Mayo
    marzo 10, 2014 a las 4:05 pm

    Hola, muy buen aporte, pero tengo un problema, luego tocar el boton generar campaña me muestra este mensaje

    CAMPAÑA CREADA , GENERANDO LLAMAS

    ELASTIX PROWERFULL !!
    Error en consulta a la base de datos

    y no llega a generar siquiera los .call gracias por adelantado!

    • marzo 10, 2014 a las 4:12 pm

      Esteban Mayo.. debes mirar como estas montando el csv. me paso lo mismo y problema surge de hay… Saludos,

      • Esteban Mayo
        marzo 10, 2014 a las 5:13 pm

        muchas gracias por la respuesta! efectivamente era el .csv, ya no da mas ese error, pero no genera los .call y no llega a realizar las llamadas gracias nuevamente!

        saludos!

  28. Gerardo
    abril 15, 2014 a las 4:48 pm

    amigo guando ejecuro esto me da el siquiente error que podra ser ??????

    [root@PBX ~]# mysql -u root -p AdioElastixDialerBD < AudioElastixDialer/sql/AdioElastixDialerBD.sql
    -bash: AudioElastixDialer/sql/AdioElastixDialerBD.sql: No existe el fichero o el directorio

  29. abril 15, 2014 a las 6:30 pm

    Hola Gerardo

    Fíjate donde esta el archivo «AdioElastixDialerBD.sql» el error te esta indicando que no lo esta encontrando en la ruta.

    Saludos
    Juan Oliva

    • Gerardo
      abril 16, 2014 a las 2:20 pm

      hola Jroliva ya solucione ese detalle pero tengo otro que no me abre la interface web me da este error.

      Not Found

      The requested URL /AdioElastixDialer was not found on this server.
      Apache/2.2.3 (CentOS) Server at 192.168.100.54 Port 443

      • abril 16, 2014 a las 2:34 pm

        Hola Gerardo

        Fíjate en /var/www/html si tienes la carpeta

        Saludos

      • Juan Carlos Luz
        marzo 8, 2015 a las 8:26 pm

        Me puede ayudar a mi me sale el mismo error que ya soluciono Gereardo pero no dice como:
        Not Found

        The requested URL /AdioElastixDialer was not found on this server.
        Apache/2.2.3 (CentOS) Server at 192.168.100.54 Port 443

  30. Gerardo
    abril 18, 2014 a las 3:13 am

    amigo si tengo el directorio creado

  31. Gerardo
    abril 18, 2014 a las 3:31 am

    mysql -u root -p AdioElastixDialerBD < AudioElastixDialer/sql/AdioElastixDialerB
    -bash: AudioElastixDialer/sql/AdioElastixDialerB: No existe el fichero o el directorio

    todavia no me deja que puede ser ?????

  32. Gerardo
    abril 18, 2014 a las 3:51 am

    amigo ya solucione todo, gracias por tu aporte

  33. Eduardo
    abril 19, 2014 a las 10:19 pm

    Hola jroliva

    Cuando abro el formulario solo me muestra la parte de nombre de campaña pero no sale ningun otro campo mas quisiera saber cual podria ser el problema

  34. Gerardo
    abril 21, 2014 a las 7:39 pm

    Hola jroliva

    las llamadas por las troncales analogicas no me esta funcionaldo no veo que disque los numeros del archivo numerosBD.csv.

    me aparece esto

    Attempting call on DAHDI/g0/2147483647 for s@call-file-test:1 (Retry 1
    Attempting call on DAHDI/g0/2147483647 for s@call-file-test:1 (Retry 1)

    y el archivo

    04241138630,gerardo

    • junio 6, 2014 a las 10:53 pm

      Gerardo

      El formato al parecer esta bien , lo que deberías verificar es primero si puede marcar 2147483647 por la troncal g0

      Saludos

  35. Anibal León
    mayo 23, 2014 a las 9:33 pm

    Hola jroliva, me ayudo bastante para presentar un proyecto en la Universidad, solo me quedo una duda porque no me funciono, y es que quería llamar a otro elastix, utilice
    $tronc1=”SIP/${EXTEN}”;
    $tronc2=””;
    para que usara el dial y buscara la troncal sip, pero no funcionó, luego lo cambie a
    $tronc1=”SIP/Troncalsip”;
    $tronc2=”${EXTN}”;
    y tampoco me funciono, después probé
    $tronc1=”SIP/”;
    $tronc2=”Tronalsip”;
    y tampoco funciono, entonces las opciones me mostró un error similar a
    Attempting call on Troncalsip/2002 for s@call-file-test:1 (Retry 1
    Attempting call on 2002 for s@call-file-test:1 (Retry 1)
    Dependiendo la modificación, como lo debo modificar para que llame a las extensiones del otro elastix.

    Las reglas de salidas las tengo funcionando, pues, si marco manualmente, si saca la llamada

    • junio 6, 2014 a las 10:44 pm

      Hola Anibal

      Lo que tienes que lograr hacer con las variables es tener el formato SIP/2000@TRONCALSIP

      Donde 2000 es el numero que deberias subir en el csv.

      Saludos
      Juan Oliva

  36. frank paul agon florez
    mayo 28, 2014 a las 4:59 pm

    como se puede reproducir anuncio (llamada grabada y monitoreada) en una llamada saliente?

  37. junio 6, 2014 a las 10:41 pm

    Frank

    Es bastante sencillo , en el contexto [call-file-test] puedes usar exten => s,1,Playback(tuaudio)

    Saludos
    Juan Oliva

  38. Iván Santa
    junio 10, 2014 a las 6:42 pm

    Excelente aporte, lo estoy probando pues no he podido lograr esta funcionalidad con el módulo de callcenter de elastix v2.4.
    Me queda una pregunta, ¿Cómo sería posible revisar el resultado de las campañas que he creado? es decir, si la llamada fue efectiva, o fallida, o si el número estaba ocupado.
    Saludos y gracias.

  39. junio 10, 2014 a las 8:32 pm

    Hola Iván

    Para lograr lo mismo con modulo de Callcenter de Elastix , tienes que «engañar» al modulo , asiendo que en vez de que dirija la llamada al numero de cola , lo dirija a un numero de extensión que definas en el extensions_custom.conf , lo puedes probar creando una cola con el numero 1234 , pero al final la llamada se va a reproducir un anuncio.

    Respecto a lo otro, las llamadas quedan registradas en la tabla de cdr , así que bastaría hacer una consulta directamente o extraerlo del modulo de reports de Elastix

    Saludos!!

  40. junio 24, 2014 a las 4:11 pm

    Hola estimado, muchas gracias por subir semejante tutorial, la verdad es que lo veo todo super bien.

    El punto es que no me manejo mucho con sistemas Asterisk así que tengo una consulta.

    En el punto 6, donde se configura la troncal por donde salen la llamadas, ¿qué debo poner en caso de que tenga una troncal IAX2? Sucede que las llamadas de mi Elastix se trunkea con otro Elastix mediante ese protocolo, por lo que las llamadas salen a ese servidor y luego a un proveedor de llamadas. ¿Qué datos necesito ingresar?

    Saludos,

  41. junio 25, 2014 a las 8:14 pm

    Hola Carlos
    Tendrias que cambiar la sintaxis y el orden de las variables para que aplique a iax2 , actualmente esta para sip de esta forma

    SIP/$numero@NOMBRETRONCAL

    Pero IAX2 exige :

    IAX2@NOMBRETRONCAL/$numero

    Solo es programación y respetar la sintaxis.

    Saludos
    Juan Oliva

  42. Christian
    junio 26, 2014 a las 10:00 am

    @jroliva, buenos dias.

    trate de seguir tu tutorial como indicas pero me entro la duda que quiero hacerte antes de proseguir. 1º.- Al ingresar este codigo y hacerla funcionar puede ocacionar algun cambio en el funcionamiento actual de Elastix, es decir, sigue funcionando normalmente el modulo Call Center? 2º.- Luego del audio se puede programar que el usuario pulse una de dos teclas como opcion? por ej. opcion 1 marque 1, opcion 2 marque 2 y este quede grabado en los resultados? Como veras, no tengo mucha experiencia en el tema, asi que si me podrias decir como seria este codigo seria de mucha ayuda. Muchas gracias por tu tiempo.

  43. junio 26, 2014 a las 4:01 pm

    Hola Christian , te respondo:

    1.- el programa AudioElastixdialer es independiente del modulo de callcenter de Elastix , ya que su funcionamiento se basa en los archivos .call de Asterisk y el modulo de Elastix tiene su propio marcador predictivo.

    2.- Se pueden modificar el programa para hacer campañas con IVR para captura de datos como por ejemplo encuestas, o derivar la llamada a una cola de atención, si el usuario presiona una determinada opción del audio IVR, justamente eso lo tengo funcionando para una empresa.

    En realidad el cambio no es tan drástico, te recomiendo leer sobre asterisk puro , aplicaciones de Asterisk como background o read y entender muy bien el funcionamiento de los archivos .call

    Saludos
    Juan Oliva

    • Christian
      julio 3, 2014 a las 3:10 pm

      Tengo una consulta mas Jorge y quizas no tenga nada que ver al tema en cuestion (si esto no se debe, favor de borrarlo y disculparme). Como ya sabes, eh montado un server elastix 2.4 para un call center en un vps con CentOS. Dado que mi experiencia en el tema es primitiva, llegar a montarlo fue toda una experiencia pero me esta presentando un error que no se como o donde buscar para solucionarlo. El mismo es que luego de la primera linea de clientes que le cargo para llamadas salientes, el primer cliente lo llama perfecto pero luego de terminar con el primer cliente no sigue la lista, para la campaña ahi mismo. No muestra error, no muestra nada fuera de lo normal. El archivo lo cargo en un csv y todas las lineas iguales (numero,»nombre»,»otrodato».»etc). Otra de las cosas que sucede es que me muestra todos los datos de la base en la primera llamada. Que estoy haciendo mal? Muchas gracias Jorge!

      • Christian
        julio 3, 2014 a las 3:28 pm

        Solucionado Jorge, era solo una comilla faltante en cada linea!

  44. Carlos Elgueda
    junio 26, 2014 a las 8:56 pm

    Hola Juan, agradezco tu respuesta, te explico:

    En el archivo de audioelastixdialer.php, la configuración de la troncal quedó así.

    if ($troncal==»2″)
    {
    $tronc1=»IAX2/IAX_PBX3/»;
    }
    else
    {
    $tronc1=»ZAP/g1/»;
    $tronc2=»,20,Tt»;
    }

    En el CSV inserté sólo dos números a modo de prueba, y al momento de hacerlo arrancar, sucede esto:

    — Attempting call on IAX2/IAX_PBX3/972134970 for s@call-file-test:1 (Retry 1)
    — Attempting call on IAX2/IAX_PBX3/972135035 for s@call-file-test:1 (Retry 1)
    — Call accepted by 192.168.20.45 (format ulaw)
    — Format for call is ulaw
    — Call accepted by 192.168.20.45 (format ulaw)
    — Format for call is ulaw
    > Channel IAX2/IAX_PBX3-18488 was never answered.
    — Hungup ‘IAX2/IAX_PBX3-18488’
    > Channel IAX2/IAX_PBX3-20407 was never answered.
    — Hungup ‘IAX2/IAX_PBX3-20407’

    ¿Qué estoy haciendo mal? ¿Debo hacer algún tipo de modificación al servidor 192.168.20.45?

    Espero tu respuesta, gracias.

  45. julio 1, 2014 a las 2:56 pm

    Hola Carlos , yo lo que veo es que la llamada si llega al otro servidor » Call accepted by 192.168.20.45 (format ulaw)» el problema al parecer es cuando marca, tendrías que ver como llega al otro lado (192.168.20.45) y determinar cual es el error en su log

    Espero te sirva.

    Saludos
    Juan

  46. David
    julio 3, 2014 a las 2:50 pm

    Hola juan muchas gracias por tu aporte, pero me aparece este error, me reconoce el archivo y me pide la contraseña cuando ejecuto la linea en sql, coloco la clave de la base de datos, pero luego me aparece este error, no sabes que podra ser

    [root@localhost ~]# mysql -u root -p AdioElastixDialerBD < /var/www/html/AudioElastixDialer/sql/AdioElastixDialerBD.sql

    Enter password:
    ERROR 1049 (42000): Unknown database 'AdioElastixDialerBD'
    [root@localhost ~]# ERROR 1049 (42000): Unknown database 'AdioElastixDialerBD'

  47. julio 3, 2014 a las 2:53 pm

    Hola David

    No has creado la base de datos AdioElastixDialerBD previamente.

    Saludos
    Juan

  48. David
    julio 3, 2014 a las 2:58 pm

    ya lo corregi, cree mal la base colocando Audio en vez de Adio

  49. David
    julio 7, 2014 a las 2:59 pm

    Hola Juan me anda perfecto, lo modifique para un gateway, ya que no tenemos voip, te queria preguntar si sabes como hacer para que el cliente cuando reciba la grabacion, marque una opcion y yo de alguna forma pueda filtrar el resultado, la grabacion que tengo es para ver si le interesa o no un producto saludos y gracias

  50. Hernan
    julio 23, 2014 a las 7:36 am

    jroliva, muy buen tutorial, lo puse a prueba y funciona perfectamente, ahora mi pregunta seria, como se puede agregar opciones luego del mensaje para el cliente y luego me lo arroje como resultado? Gracias.

  51. juancvl
    julio 26, 2014 a las 11:47 pm

    jroliva, funciona a la perfección, pero que posibilidad hay que se pueda limitar la simultaneidad de las llamadas que realiza el sistema, es decir, si tengo un listado de 100 número y quiero que realice llamadas de 5 en 5. Gracias

    • julio 28, 2014 a las 4:42 pm

      Hola juancvl

      Claro basta con incluir un bucle adicional y un contador, para limitar ello, justamente esas modificaciones como esa y la parte de encuestas y demás requerimientos las tengo en la versión que uso para empresas, pero la base la tienes ahí.

      Saludos
      Juan Oliva

      • Andres
        octubre 3, 2017 a las 9:21 pm

        puedes subir el archivo acutalizado??? a mi me funcionan todas las llamadas, pero quiero que se llamen en grupos de 10, le intente con un bucle pero no se llama a ningun lado teniendo este codigo

        //5.- GENERAR LA LLAMADA DE LA BASE DE DATOS
        $sentencia1=»select id,telefono from calloutnumeros where campana = $idcampana;»;
        $resultado=consultar_bd($sentencia1);
        $número_filas = mysql_num_rows($resultado);
        for($i=0;$i
        Podrias aiudarme por favor, necesito que sean llamadas de 10 en 10… No funciona con mi bucle….

      • AndresCJ
        octubre 3, 2017 a las 9:28 pm

        USANDO ESTE CODIGO INTENGO HACER QUE LAS LLAMADAS SEAN DE 10 EN 10, PERO NOME FUNCIONA, ESTOY USANDO UN BUCLE DIME EN QUE PARTE ESTOY MAL
        //5.- GENERAR LA LLAMADA DE LA BASE DE DATOS
        $sentencia1=»select id,telefono from calloutnumeros where campana = $idcampana;»;
        $resultado=consultar_bd($sentencia1);
        $número_filas = mysql_num_rows($resultado);
        for($i=0;$i<$número_filas;i+10){
        $sentencia="select id,telefono from calloutnumeros where campana = $idcampana limit $i,10;";
        $resultado=consultar_bd($sentencia);
        while ($row=mysql_fetch_array($resultado)){
        $id=$row[0];
        $numero=$row[1];
        $Channel= "Channel: " . $tronc1 . $numero . $tronc2 ;
        $Callerid= "Callerid: " . $numero;
        $fp = fopen("/var/spool/asterisk/outgoing/myarchivo$id.call","a");
        fwrite($fp, $Channel . PHP_EOL . $Callerid . PHP_EOL . $MaxRetries . PHP_EOL . $RetryTime . PHP_EOL . $WaitTime . PHP_EOL . $Context . PHP_EOL . $Extension . PHP_EOL . $Priority . PHP_EOL);
        fclose($fp);
        }//CIERRE DE WHILE
        sleep(45);
        } //CIERRE DEL FOR
        mysql_free_result($resultado);

  52. juancvl
    julio 28, 2014 a las 4:13 pm

    El link de descarga don de explica Cristian que se puede hacer aún sigue desactualizado?,

  53. Hernan
    julio 28, 2014 a las 5:09 pm

    Tienes algun manual donde indique las modificaciones del sistema para la parte de encuestas?

  54. julio 30, 2014 a las 11:13 pm

    Hola Hernan

    Pues en ningún lado de momento , pero básicamente lo que tienes que usar es la aplicación de asterisk read() para capturar los dtmf y luego algún AGI para meter el numero o dftm a una base de datos.

    Saludos
    Juan Oliva

  55. Yohany
    agosto 4, 2014 a las 11:04 pm

    Hola Juan,

    Mil gracias por este excelente aporte, estoy apenas hace unos meses incursionando en este mundo y está solución es muy importante para mi proyecto.
    Sucede que tengo problemas con el .sql (no conoaco mucho de ello), por lo cual pido ayuda con algo de orientación a este error que me aparece:

    [root@localhost ~]# mysql -u root -p AudioElastixDialerBD < /var/www/html/AudioElastixDialer/sql/AdioElastixDialerBD.sql
    Enter password:
    ERROR 1005 (HY000) at line 25: Can't create table './AudioElastixDialerBD/calloutcampana.frm' (errno: 121)

    Llevo días eliminando todo y volviendo a realizar el montaje, pero no me cuadra, ¿Alguna idea de donde estoy fallando?

    Gracias

  56. Juan Pablo
    septiembre 2, 2014 a las 3:15 pm

    Hola Juan.
    Primero que nada quiero felicitarte y agradecerte por este excelente aporte!
    Te comento que apenas estoy incursionando en esto de Asterisk y no he logrado configurar el troncal.
    Estoy haciendo pruebas con modems USB (dongle), y en mi elastix configuré el toncal de la siguiente manera: dongle/dongle0/$OUTNUM$
    ¿Cómo debería configurarlo en el archivo «AudioElastixDialer.php»?
    Agradezco mucho a quien pueda ayudarme!!!
    Saludos

  57. septiembre 5, 2014 a las 8:15 pm

    Hola Juan Pablo

    A la fecha no he tenido oportunidad de probar el dongle , pero tendrías que cambiar

    $tronc1=”SIP/Troncalsip”;

    por

    $tronc1=”dongle/dongle0”;

    Eso debería bastar

    Espero te sirva
    Saludos
    Juan Oliva

  58. Juan Pablo
    septiembre 12, 2014 a las 8:53 pm

    Estimado Juan: muchas gracias por tu respuesta!!!
    Funcionó correctamente con el dongle.
    Te hago otra pregunta: se supone que la aplicación toma en cuenta las rutas salientes que tengo configuradas en el elastix??, porque cuando agrego en el csv un numero que comience por cero (un celular), luego en el archivo .call lo pone sin 0. Puse en la ruta y también en el troncal «prepend»0, pero no me lo agrega y continúa marcando el número son 0.
    Muchas gracias nuevamente!!!!!

  59. Juan Pablo
    septiembre 17, 2014 a las 5:43 pm

    Juan: Ya he solucionado el inconveniente con el nro 0. Se debía a la configuración del troncal (me faltaba una barra invertida al final).
    Te hago otra consulta: si configuro un gateway GSM o una tarjeta FXO, ¿cómo sabe la aplicación cuantos canales tiene ese troncal?

    • edison
      junio 19, 2017 a las 8:10 pm

      yo tengo el mismo problema ne los celulares puede indicarme por favor como lo soluciono

  60. monfi
    octubre 14, 2014 a las 4:10 am

    Gracias estimado Jroliva, Gracias por tu ayuda, y esfuerzo y generocidad, sin egoismo sin muchos conocimiento sobre asterisk, en 2 horas esta trabajando gracias a tus scripts, te transfiero mis buenos desos y energia positiva en los que hagas. desde ecuador.

  61. Francisco
    octubre 22, 2014 a las 12:23 am

    Muy bueno, pero hay alguna forma de hacer alguna encuesta? que se llame con varios audios y con opciones y se vayan guardando los resultados?
    gracias

  62. Sonilux
    octubre 26, 2014 a las 1:46 am

    Grande Juan y Gracias!

  63. Domingo tatis
    noviembre 4, 2014 a las 2:32 am

    Hola estimado Jroliva, A varios nos ha dado el error «error en consulta a la base de datos» y ya se ha hecho lo que usted nos dijo k hicieramos. Quisiera saver si al tutorial le falta alguna configuración mas pork el error que esta dando la aplicación no es porque le falte if(!($conector=mysql_connect(«localhost»,»root»,»abcd1234″)))
    {
    echo «Error al conectar al servidor de base de datos»;
    exit();
    }

    if(!mysql_select_db(«AudioElastixDialerBD»,$conector))
    {
    echo «Error al conectarse a la base de datos»;
    exit();
    Ya ese error no nos lo da, sino el que dice que no puede hacer las consutas a la base de datos por ende falta alguna configuracion en la base de datos o el archivo Audioelastixdialer.php. Saludos…

  64. Domingo
    noviembre 7, 2014 a las 1:08 am

    Disculpen, pero hacer este tutorial en 6 pasos es como meter un barco dentro de una botella
    a esto le falta un desglose mayor, cuando se habla de Un Index que inbolucra PHP + Mysql se
    está hablando de 3 lenguajes diferentes; si alguien le funciono este manual que indique los pasos
    a seguir al menos que no halla $$ de por medio.

    • FerchoPenagos Mexicali
      mayo 28, 2016 a las 7:31 pm

      Yo soy primerizo en asterisk y si me funciono :p

    • mayo 31, 2016 a las 12:27 am

      Que gracioso, no había visto el comentario este hasta ahora, jajajaja

  65. Jonathan
    noviembre 17, 2014 a las 8:16 pm

    Hola , estoy probando este sistema y tengo un problema para sacar unas llamadas…
    Cuando marco a teléfonos fijos lo puedo hacer sin problemas, pero cuando llamo a celulares, no me llama y es porque en el Cli me muestra como si estuviera marcando otro numero.

    audioelastixdialer.php

    if ($troncal==»2″)
    {
    $tronc1=»SIP/»;
    $tronc2=»@MiProveedor»;
    }
    else
    {
    $tronc1=»ZAP/g1/»;
    $tronc2=»,20,Tt»;
    }

    para llamar a fijos marco el -> 11 XXXX-XXXX
    para llamar a celulares marco -> 911 XXXX-XXXX

    cuando marco a un celular el Cli me tira SIP/2147483647@MiProveedor

    Espero que puedan ayudarme, Gracias.

  66. Oscar
    diciembre 9, 2014 a las 10:01 pm

    muy buenas tardes, antes que anda muchas gracias por este gran aporte, ya lo instale y siguiendo las indicaciones que muchos colaboradores aportan, veo que el sistema es muy funcional, pero veo que al ejecutar la campaña el sistema ejecuta los numeros de la lista todos al mismo tiempo, y quisiera saber si existe alguna manera de limitar la cantidad de numeros por bloques, agradezco de antemano su colaboracion.

  67. diciembre 10, 2014 a las 1:23 pm

    Hola amigos muy buen día estado configurando este aplicativo en elastix 2.4, pero cuando genero la campaña me sale exitosa pero al nivel del clic me sale la marcación totalmente diferente ala de la base de datos.
    El numero que marco es 3134006902 el cual es un móvil de Colombia.
    El número que me muestra el clic es: SIP/572147483647
    No logro saber porque es, les agradezco su ayuda
    Gracias

  68. diciembre 10, 2014 a las 8:19 pm

    Alan

    Ya me paso eso, fíjate en el tipo de campo que aloja el numero , cámbialo a un tipo que permita mas dígitos.

    Espero te sirva
    Saludos
    @jroliva

  69. diciembre 11, 2014 a las 12:49 pm

    Hola Juan muy buen día. Cuando tú te refieres al tipo de campo, es el formato del archivo de la base de datos? (csv).
    Agradezco enormemente su colaboración si de pronto tienes un archivo el cual pueda tomar de ejemplo

    • diciembre 11, 2014 a las 1:26 pm

      En la base de datos , el tipo de campo que guarda el numero a marcar.

      Saludos
      @jroliva

  70. diciembre 15, 2014 a las 5:18 pm

    Hola Juan Buen dia me podrias colaborar tengo un troncal SIP que solo me permite la salida de llamadas desde un numero valido de la troncal y cuando llamo veo que una traza que tu script toma el mismo numero a llamar como el que lo origina, agradezco de ante mano tu ayuda para saber si puedo mandar las llamadas con origen especifico se que es en el campo $Channel= «Channel: » . $_POST[‘Channel’]; como le puedo poner para que me saque el numero de mi proveedor.

    Agradezco si tu o alguno de los colegas sabe como hacerlo

  71. diciembre 16, 2014 a las 2:04 am

    Definitivamente y intente de todo pero no me da para las llamadas a celular en colombia ejemplo 573134006902

    a A telefonos no moviles si da normal
    ejemplo: 5713819501

  72. diciembre 17, 2014 a las 10:47 pm

    Hola amigos por favor necesito ayuda para poder realizar llamadas a celulares en Colombia ya que todo lo que marco se me convierte a (572147483647), e antemano les agradezco ya que no tengo mucha experiencia en esta parte

    Numero de ejemplo: 573134006902
    Numero que sale: 572147483647
    La base de datos se encuentra en formato csv, la cual la creamos en Excel

    • diciembre 22, 2014 a las 12:46 am

      Alan

      Te comente que es un problema en la definición del campo que almacena el numero, es muy corto y por eso realiza el cambio que indicas, revisa base de datos.

      Si no tienes experiencia con gestión de base de datos Mysql, pide ayuda al respecto.

      Saludos
      Juan Oliva
      @jroliva

  73. Rodrigo Ruiz
    febrero 18, 2015 a las 4:00 am

    Que tal Juan Buena noche,
    me puedes colaborar, cuando abro el generador de campañas solo me muestra la campaña

    Saludos
    Rodrigo

    • Marcos Suarez
      marzo 2, 2015 a las 4:17 pm

      Saludo Rodrigo Ruiz. también tengo el mismo problemas. y es debido a que el campo siguiente se llenara con el select del idcampana. Pero al no tener ningún valor no te presentara nada. Yo estoy parado por la razón de que no se con que dato voy a rellenar la tabla calloutcampana. Si a alguien de lo que ya le funciono poner un ejemplo de las tablas con los datos ya insertado seria de gran ayuda

  74. Gabriel Colin
    marzo 13, 2015 a las 6:59 pm

    Buen día, realice la configuración de acuerdo a los pasos y ya puedo establecer la llamada y en el cli veo que reproduce la grabación, solo que cuando el interlocutor contesta no escucha la grabación y la llamada dura lo mismo que la reproducción y después se cuelga, todo va bien solo no pasa el audio, alguien sabe que pasa?

    • marzo 13, 2015 a las 8:03 pm

      Hola revisa en que codeg estás enviando la llamada a su proveedor, y también si estás por medio de un nat que te esté bloqueando

  75. Gabriel Colin
    marzo 19, 2015 a las 2:25 pm

    Gracias Alan, lo que hice solo fue probar con otro proveedor de internet y si funciono, el tema era mi proveedor. Gracias Juan Oliva por esta solucion.

    • marzo 19, 2015 a las 2:33 pm

      Vale para nosotros es un gusto ayudar como Juan lo hace con sus post, si te animas tenemos terminación.

  76. abeperez
    mayo 16, 2015 a las 3:15 am

    Hola Juan Excelente aporte, ya lo tengo funcionando con una encuesta, pero no he logrado tomar el status de la llamada para calificar a las que no pude contactar

    [call-file-test]
    exten => s,1,Answer
    exten => s,n,wait(2)
    exten => s,n,Agi(encuesta.php)
    exten => s,n,Hangup()

    en mi Agi leo el CallerID
    $cid=$agi->request[agi_callerid];
    y asi gestiono las que responden y guardo las respuestas

    Pero no se como guardar los telefonos que «NO» contestan

    Espero me puedas apoyar

  77. mayo 18, 2015 a las 12:31 am

    Hola
    Puedes trabajar con las variables de «hangupcause»

    http://www.voip-info.org/wiki/view/Asterisk+variable+hangupcause

    Espero te sirva
    Saludos
    Juan

    • abeperez
      mayo 18, 2015 a las 12:46 am

      Gracias Juan, aun no soy tan ducho manejando las variables, la debo capturar en el audioelastixdialer.php ? Antes de hacer los .call o en el contexto call-file-test y pasarsela a mi captura.php ?

      Te agradecere un poco mas de ayuda

      Gracias

  78. mayo 18, 2015 a las 1:01 am

    Ello tendrías que hacerlo a nivel de CLI de Asterisk.

    Saludos
    Juan

    • abeperez
      mayo 18, 2015 a las 1:42 am

      Ejecuto tu aplicación y a cada numero que me contesta le aplico el agi captura.php pero los mumeros que no me contestan les quiero aplicar otro agi que me los escriba en una tabla con el cid y el status de la llamada, no entiendo como leer y enviar el hangupcause si en tu php o desde el contexto o llamarla desde mi agi asi como llamo el cid.

  79. edmart777
    junio 13, 2015 a las 4:28 am

    Solo me aparece Nombre de Campaña!! y nada mas. 😦

    «AUDIO ELASTIX DIALER 0.1»
    «Generador de Campañas / Destino : Audio»
    «Nombre de Campaña»

    Que puede ser baje el archivo el 12/06/2015 la base y todo esta corriendo con las tablas y todo. Elastix 2.0.2

    • junio 16, 2015 a las 4:34 am

      Hola
      Tienes que hacer un seguimiento a nivel de asterisk puro, tus amigos

      #asterisk -rvvvvv
      #tail -f /var/log/asterisk/full

      Saludos
      Juan Oliva

  80. junio 23, 2015 a las 4:08 pm

    Mi duda es que no me aparece la pagina web completa leuego de digitar https://192.168.0.240/AudioElastixDialer.. todo lo demás esta bien. Gracias de antemano por su ayuda esta muy buena la guia. Nota: la pagina que me carga solo tiene el titulo y una caja de texto que pide nombre de la campaña.

    • Christian
      junio 23, 2015 a las 11:45 pm

      Me ha pasado en versiones posteriores, simplemente no se esta conectando con la base de datos sql, intenta corregir los datos de conexion!

  81. julio 16, 2015 a las 2:40 pm

    Me parece maravillosa tu aplicación. Me gusta trabajar con gente que agrada de proyectos open Source. Soy diseñador UI/UX si gustas podemos trabajar para poner la interfaz mas intuitiva o amigable.
    Saludos desde Colombia 😀

  82. guinoh
    agosto 4, 2015 a las 2:34 pm

    Hola Juan excelente aporte, unicamente tengo una duda, como puedo realizar para que la llamada este configurada de la siguiente manera:

    Cuando reciba la llamada
    Tenga la opción de presionar un boton en caso de estar interesado en responder una encuesta (Por ejemplo que oprima desde el celular el numero 0) todos esos números lo envien a reporte para poder devolver las llamadas a los interesados en responder la encuesta.

    Así mismo en que apartado puedo ver si los números son contestados o no?

    Muchas Gracias por tu ayuda.

    • agosto 4, 2015 a las 2:44 pm

      Hola Guinoh

      Todo depende a que contexto envies la llamada del archivo .call , direcciona el contexto a uno donde tengas programado el press-1 , lo otro lo puedes ver en el cdr de asterisk

      Espero te sirva
      Saludos
      Juan Oliva

  83. Eduardo
    agosto 19, 2015 a las 6:54 am

    Hola J oliva Gracias, por regalarnos tus conocimientos, esta genial tu programa, tengo un pequeño problema todo me funciona OK cuando envio las llamadas a fijos colombia 57 1 3924568, se envia bien, pero cuando cargo numero de celulares 57 321956895 me sale error y un numero largo — 572147483647@ – se que te ha sucedido lo he leido y es cuestion de cambiar el tipo de variable donde se aloja el numero en la base de datos. Me puede ayudar exactamente donde tengo que cambiar eso, que por ser primerizo en esto no he dado con la solución. porfavor si fueraas tan amable decirme donde exactamente debo cambiar, ayudame en mi ignorancia. MUCHAS GRACIAS.

    • agosto 24, 2015 a las 1:59 pm

      Hola Eduardo

      Es por el limite en el campo de la base de datos, modifícalo y se soluciona.

      Saludos!
      Juan Oliva

      • agosto 24, 2015 a las 2:56 pm

        Gracias, si me funciono excelente, Gracias jroliva, muchas gracias, una consulta, como podria realizar un reporte de todas las llamadas?

        y otra consulta hay un proyecto para un swicht Voip sera que podrias ayudarnos a desarrollarlo, cuanto nos cobrariia, podriamos hablar con usted nos regala un telefono? gracias.

      • agosto 24, 2015 a las 3:49 pm

        Hola Edu
        Los reportes están en el CDR de Asterisk , si lo enlazas a MYSQL puedes filtrar la información que necesitas.

        Sobre tu proyecto, claro puedo ver de apoyarlos, escríbeme a jroliva@gmail.com para intercambiar contactos.

        Saludos
        Juan Oliva
        @jroliva

      • christian
        agosto 24, 2016 a las 4:47 pm

        Hola joliva
        Disculpa la ignorancia pero ya trate de todo y no logro sacar la llamadas a celular, a que te refieres con el limite en el campo de la base de datos o que parte es la que se debe de cambiar

        Saludos

  84. agosto 20, 2015 a las 6:54 pm

    Hola Muchas Gracias por tu aporte Jroliva.

    Excelente aporte, muchas gracias por la generosidad.

    Solo tengo una duda como hago que las llamadas que tengan una duración a 10 segundos sean registrados en una base de datos.

    Estoy gradecido con usted, alguien que tenga este conocimiento seria de mucha ayuda.

    • agosto 24, 2015 a las 2:04 pm

      Hola Fre22

      Gracias que bueno que te sirva el programa, si es posible tendrías que modificar el comando «DIAL» de asterisk con el parámetro L

      ejemplo para restringir la llamada a 10 minutos es : L(600000:60000:30000)

      Referencia : http://www.voip-info.org/wiki/view/Asterisk+cmd+Dial

      Espero te sirva
      Saludos!
      Juan Oliva

  85. agosto 26, 2015 a las 10:16 pm

    Muchas Gracias en que apartado configuro el gotoiftime

    Ya que en extensions_custom.conf, permite el ringing en la llamada.

  86. septiembre 1, 2015 a las 10:20 pm

    Hola mi estimado genial tu programa, una consulta como se puede hacer para que la persona que va a hacer la camapaña escoja su troncal por donde la va a realizar.

    • septiembre 2, 2015 a las 12:59 pm

      Hola
      Puedes «jalarlo» de la base de datos de Elastix directamente o crear un tabla en el sistema.

      Saludos
      Juan Oliva

  87. septiembre 21, 2015 a las 8:07 pm

    hola hice todos los pasos pero al cargar https://miip/AudioElastixDialer/ solo me sale nombre de campaña y nada mas

    • septiembre 21, 2015 a las 9:11 pm

      Hola Edison

      Dale clic derecho «ver código fuente» vas a ver que tienes un error de conexión a base de datos.

      Espero te sirva
      Saludos!

      Juan Oliva

      • Edison
        diciembre 14, 2015 a las 8:59 pm

        Gracias ya lo resolví pero al momento de cargar los números y llamar se comen los «0» es decir del celular se marca sin el cero inicial que se hace ahí por favor gracias

      • Jairo Mora
        febrero 4, 2016 a las 4:28 am

        Edison tengo el mismo error solo me sale el nombre de la campaña como l puedo solucionar gracias…

  88. Carlos
    octubre 4, 2015 a las 8:05 pm

    Me encanta tu trabajo Juan, estoy tratando de montarlo con una troncal net2phone (que me ha dado miles de problemas) mi pregunta básicamente es cual línea sip me recomiendas y aquí otras preguntas: que pasa si quiero parar la lista de llamadas? como hago? como hago para hacer llamadas utilizando mas troncales.

    Saludos

    • octubre 5, 2015 a las 1:28 pm

      Hola carlos a que pais estas marcando, pues hay destinos que net2phone tiene mucha falla. si te interesa te puedo dar una troncal sip para que verifiques, juan nos vemos en #elastixworld

  89. Carlos
    octubre 6, 2015 a las 4:59 am

    Que tal Alan, escribo de México tengo semanas intentando esto. Gracias

  90. Angel
    octubre 8, 2015 a las 6:01 pm

    Me gustaría saber si es factible que las llamadas sean realizadas en una hora especifica por cada registro? es factible esto? gracias

  91. jorge mojica
    octubre 15, 2015 a las 4:16 pm

    Saludos Juan es posibel implemtar «mediante que herramienta?» una opcion que detecte los buzones de voz y evite que la gravacion se envie y cuelque la llamada?

  92. Edw
    octubre 22, 2015 a las 5:30 am

    Saludos, estoy tratando de configurar pero me arroja un error cuando creo la campaña, es lo siguiente CAMPAÑA CREADA , GENERANDO LLAMAS

    ELASTIX PROWERFULL !!

    Error en consulta a la base de datos

    Anteriormente me aparecen todos los datos a llenar, reviso todo y no le encuentro error que podría ser?
    Gracias

  93. noviembre 13, 2015 a las 2:35 pm

    monte esta de nuevo las configuraciones y observo que en elastix 2.5 sale el error

    <input name="idcampana" type="text" id="idcampana" value="Error al conectarse a la base de datos

    alguien sabe como corregirlo.

  94. noviembre 13, 2015 a las 2:36 pm

    esa misma configuracion lo tengo en un elastix 2.3 y sale perfecto solo sale en la 2.5 <input name="idcampana" type="text" id="idcampana" value="Error al conectarse a la base de datos

    quien me puede ayudar…..

  95. Edison
    enero 7, 2016 a las 8:13 pm

    Por favor alguien que me ayude como subo números celulares porque subo con el 0 adelante pero al cargar se borran y al marcar igual

    • enero 7, 2016 a las 8:14 pm

      Edison, es un tema del tipo de campo en la base de datos, cambialo al que necesites.

      Saludos!

      • Edison
        enero 7, 2016 a las 8:18 pm

        esta puesto vchar a cual le cambio???

      • Edison
        enero 7, 2016 a las 8:32 pm

        y ayúdame indicando en que parte le cambio

      • Christian
        agosto 24, 2016 a las 7:07 pm

        Hola Edison pudiste hacer el cambio y donde fue?

  96. xotelo
    enero 8, 2016 a las 4:43 pm

    hola solo me sale una parte de el cuadro de arriba y el de nombre de la campañan pero mo me cargar el resto

    • Jairo Mora
      febrero 4, 2016 a las 4:25 am

      igual a mi alguien ya lo ha solucionado?
      y al escribir en el nombre de la campaña me dice error al conectar en la base de datos

  97. Jairo Mora
    febrero 4, 2016 a las 4:23 am

    Hola buenas noches, Juan tengo un problema ya al probar lo realizado paso a paso coloco http/MiIP/AudioElastixDialer/
    y solo me muestra en la pagina la etiqueta Nombre de Campaña: y el cuadro de texto
    pero los demas datos no escribo prueba 1 en el cuadro y me lanza el siguiente error:
    CAMPAÑA CREADA , GENERANDO LLAMAS

    ELASTIX PROWERFULL !!

    Error al conectarse a la base de datos

    • Jairo Mora
      febrero 4, 2016 a las 4:49 am

      Ya lo solucione 🙂

      • F3rcho
        agosto 14, 2017 a las 4:06 am

        Me podrias indicar como solventaste?

    • Sami
      febrero 16, 2016 a las 3:27 am

      Hola Jairo, tengo el mismo problema como lo soluciono, gracias.

  98. febrero 11, 2016 a las 12:31 am

    en el código hay una corrección, le falta una letra al nombre de la base de datos…
    dice:
    if(!mysql_select_db(«AdioElastixDialerBD»,$conector))
    debe decir:
    if(!mysql_select_db(«AudioElastixDialerBD»,$conector))

    saludos

  99. Sami
    febrero 16, 2016 a las 3:42 am

    Corregir en el archivo funciones_bd.php
    la linea:
    if(!mysql_select_db(«AudioElastixDialerBD»,$conector))
    por
    if(!mysql_select_bd(«AudioElastixDialerBD»,$conector))

  100. febrero 18, 2016 a las 12:57 am

    Hola:
    Felicitaciones para los que encontraron la solución al «detalle», no es un error fue adrede poner ello.

    Todo es parte del aprendizaje.

    Saludos!!
    Juan Oliva
    @jroliva

  101. Raul Lopez
    marzo 18, 2016 a las 3:04 am

    Muy interesante, es lo que buscaba. Ahora, como yo solo quiero q se hagan llamadas en cierto horario se me ha ocurrido cambiar la fecha de creación del .call y ajustarlo , eso viene en un link que pusiste o hay una mejor manera,?

    Muchas gracias

    • mayo 31, 2016 a las 12:24 am

      Raul
      O puedes también manejarlo por cron de Linux.
      Saludos
      Juan Oliva

  102. Orlando
    mayo 5, 2016 a las 2:12 am

    Excelente aporte Jroliva me sirvió de mucho funciona a la perfección tratare de hacer algunos cambios y los compartire gracias nuevamente.

    • mayo 31, 2016 a las 12:25 am

      Estupendo!! espero los cambios!!

      Saludos
      Juan Oliva

  103. Alberto Ramirez
    julio 25, 2016 a las 5:21 pm

    Hola buen dia juan eh realizado todos los pasos, mas sin embargo cuando carga la base en mi cli solo me aparece este dato:
    — Attempting call on SIP/00745215563441034@Telefonica_Monterrey for s@call-file-test:1 (Retry 1) — Attempting call on SIP/5563441034@Telefonica_Monterrey for s@call-file-test:1 (Retry 1) == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 — Attempting call on SIP/0445563441034@Telefonica_Monterrey for s@call-file-test:1 (Retry 1) == Using SIP RTP TOS bits 184 == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 == Using SIP RTP CoS mark 5

    eh intentado con los prefijos de marcado y con el prepend que me solicito anteponer mi proveedor

    de antemano agradezco todo lo que me has ayudado entender y te felicito por tu web que siempre me a sido de mucha ayuda

    • julio 26, 2016 a las 2:43 pm

      Hola Alberto
      Pues a simple vista no veo el error en realidad, en todo caso prueba si la llamada manual al 00745215563441034 sale correctamente por la troncal Telefonica_Monterrey , otra cosa es la cantidad de canales disponibles.

      Espero te sirva
      Saludos
      Juan Oliva

      • Alberto Ramirez
        agosto 4, 2016 a las 10:01 pm

        Buen Dia y Estimados

        encontre la solucion a mi problema, en el archivo audioelastixdialer.php

        en la linea 79

        $tronc1=»SIP/${EXTEN}»;
        $tronc2=»@Marcatel»;
        }

        Agregue esto y funciono perfecto

        en mi caso tu solucion me ayudo bastante ya que hay dias en los que no hay mucho flujo de llamadas y con tu sistema puedo generar mas y mandarlas a mi modulo de callcenter a una campaña de entrada donde estan los mismos agentes conectados.

        te agradezco mucho

  104. Jose España
    julio 29, 2016 a las 4:43 pm

    Jose España en julio 29, 2016 en 12:42 am dijo:
    Buena tarde Juan, buen aporte, ya lo probé y muy funciona bien pero tengo una duda, ya que genera todas las llamadas al mismo tiempo, esto me saturaría todas las troncales o mi elastix, ya que revisando en el cdr miro que genero las llamadas al mismo tiempo, hasta los mismos segundos. Existira una forma de encolarlas llamadas para que varié al menos unos segundos en cada llamada que realizce o bien que solo pueda usar una troncal o que limite el numero de llamdas.

    De antemano muchas gracias por tu colaboración y buen aporte.

    Responder ↓

    • agosto 10, 2016 a las 4:04 pm

      Hola José

      Lo que yo hago es crear un contador como variable la cual al llegar al limite ( limite de llamadas simultaneas) hace una pausa (cantidad de segundos promedio que dura la grabación)

      Espero te sirva.
      Saludos
      Juan

      • Jose España
        agosto 16, 2016 a las 4:06 pm

        Muchas gracias Juan por tu respuesta, como puedo crear la variable o crear el limite de llamadas simultaneas. Disculpa el abuso, ya que de programación no se mucho.
        De antemano muchas gracias.

  105. Daniel
    agosto 12, 2016 a las 9:13 pm

    Saludos.. Juan, es una exelente trabajo. Disculpa podrias ayudarme para ahcer ago similar pero para realizar encuestas?.

    • agosto 15, 2016 a las 11:35 pm

      Hola Daniel
      Puedes hacer que la llamada se mueva a un contexto donde trabajes con la aplicación «read» para capturar los dtmf y los envíes a un AGI para que los grabes a una base de datos.

      Espero te sirva
      Juan Oliva

  106. septiembre 20, 2016 a las 9:32 pm

    Saludos, Juan he seguido las instrucciones como indicas pero solo me lo del siguiente enlace

    al colocar un nombre me da el siguiente mensaje:

    CAMPAÑA CREADA , GENERANDO LLAMAS

    ELASTIX PROWERFULL !!
    Error al conectar al servidor de base de datos

    • EicheS
      septiembre 20, 2016 a las 9:35 pm

      se me olvido mencionar que estoy utilizando elastix con las versiones:
      Kernel
      Linux(i386)-2.6.18-409.el5

      Elastix
      elastix-2.5.0-1
      elastix-a2billing-2.1.0-1.gita40e37fefef7ab85999d04298b6e582b41930e7e
      elastix-a2billing-callback_daemon-2.1.0-1.gita40e37fefef7ab85999d04298b6e582b41930e7e
      elastix-addons-2.5.0-5
      elastix-agenda-2.5.0-3
      elastix-asterisk-sounds-1.2.3-1
      elastix-email_admin-2.5.0-4
      elastix-endpointconfig2-2.5.0-3
      elastix-extras-2.5.0-1
      elastix-fax-2.5.0-3
      elastix-firstboot-2.5.0-3
      elastix-framework-2.5.0-13
      elastix-im-2.5.0-1
      elastix-my_extension-2.5.0-1
      elastix-pbx-2.5.0-6
      elastix-portknock-0.0.1-0
      elastix-reports-2.5.0-5
      elastix-security-2.5.0-3
      elastix-system-2.5.0-4

      RoundCubeMail
      RoundCubeMail-0.3.1-12

      Mail
      postfix-2.3.3-7.el5
      cyrus-imapd-2.3.7-16.el5_11

      IM
      openfire-3.7.1-1

      FreePBX
      freePBX-2.11.0-23

      Asterisk
      asterisk-11.21.0-0
      asterisk-perl-1.03-0
      asterisk-addons-11.21.0-0

      FAX
      hylafax-4.3.11-1rhel5
      iaxmodem-1.2.0-2

      DRIVERS
      dahdi-2.10.2-0
      rhino-0.99.7-0
      wanpipe-util-7.0.14-0

      • EicheS
        septiembre 21, 2016 a las 8:42 pm

        Solucionado el Error al conectar al servidor de base de datos.

        pero solo sigue mostrando el nombre de la campaña nada mas

      • Sam
        enero 13, 2017 a las 10:28 pm

        Hola asi me funciono:
        [root@hsrpcom ~]# mysql -u root -p AudioElastixDialerBD < /var/www/html/AudioElastixDialer/sql/AudioElastixDialerBD.sql

  107. septiembre 26, 2016 a las 1:46 pm

    EicheS
    Desde la interfase web no vas a solucionar nada, es necesario que veas y entiendas a nivel del CLI de Asterisk que está pasando.

    Saludos
    Juan Oliva

    • EicheS
      septiembre 27, 2016 a las 1:10 pm

      Perfecto, pero en que parte del PHP debo arreglar porque pienso que hay un error en la sintaxis o en tabla porque si comento esto » ‘echo $nuevocodigo_dc=calcular_nuevo_codigo_bd(«calloutcampana»,»idcampana»)’ » me muestra todo lo demas.

  108. alex
    octubre 4, 2016 a las 1:53 pm

    Buen día soy un completo novato en esto del asterisk pero gracias a los comentarios y respuestas lo tengo actualmente funcionando sin embargo el problema que tengo es que no se como encolar las llamadas si pudieras orientarme o pasarme tu código para suplantar el mio para tenerlo 100% funcional seria grandioso me encontré este en los comentarios de arriba
    //5.- GENERAR LA LLAMADA DE LA BASE DE DATOS
    $sentencia=”select id,telefono from calloutnumeros where campana = $idcampana;”;
    $resultado=consultar_bd($sentencia);
    while ($row=mysql_fetch_array($resultado)){
    $id=$row[0];
    $numero=$row[1];
    $Channel= “Channel: ” . $tronc1 . $numero . $tronc2 ;
    $Callerid= “Callerid: ” . $numero;
    $fp = fopen(“/var/spool/asterisk/outgoing/myarchivo$id.call”,”a”);
    fwrite($fp, $Channel . PHP_EOL . $Callerid . PHP_EOL . $MaxRetries . PHP_EOL . $RetryTime . PHP_EOL . $WaitTime . PHP_EOL . $Context . PHP_EOL . $Extension . PHP_EOL . $Priority . PHP_EOL);
    fclose($fp);

    } //CIERRE DE WHILE
    mysql_free_result($resultado);
    die;

    ?>

    REMPLAZAR POR

    //5.- GENERAR LA LLAMADA DE LA BASE DE DATOS

    $sentencia=”select id,telefono from calloutnumeros where campana = $idcampana;”;
    $resultado=consultar_bd($sentencia);

    $llamadasMax= tu numero de troncales va aca;

    $cant = mysql_num_rows($resultado);

    while($cant > 0 ){

    if( count(glob(“/var/spool/asterisk/outgoing/{*.call}”,GLOB_BRACE))

    Pero por alguna razon al mandar la campaña se queda en blanco la pantalla y no sucede nada si pueden orientarme se los agradeceria y muchas gracias por tu aporte!!

  109. alex
    octubre 4, 2016 a las 4:05 pm

    Perdón este era el código completo que no me funciono
    REMPLAZAR POR

    //5.- GENERAR LA LLAMADA DE LA BASE DE DATOS

    $sentencia=”select id,telefono from calloutnumeros where campana = $idcampana;”;
    $resultado=consultar_bd($sentencia);

    $llamadasMax= tu numero de troncales va aca;

    $cant = mysql_num_rows($resultado);

    while($cant > 0 ){

    if( count(glob(“/var/spool/asterisk/outgoing/{*.call}”,GLOB_BRACE))

  110. alex
    octubre 4, 2016 a las 4:06 pm

    REMPLAZAR POR

    //5.- GENERAR LA LLAMADA DE LA BASE DE DATOS
    $sentencia=”select id,telefono from calloutnumeros where campana = $idcampana;”;
    $resultado=consultar_bd($sentencia);
    $llamadasMax= tu numero de troncales va aca;
    $cant = mysql_num_rows($resultado);

    while($cant > 0 ){
    if( count(glob(“/var/spool/asterisk/outgoing/{*.call}”,GLOB_BRACE))

  111. Christian
    octubre 20, 2016 a las 2:30 pm

    Estimado he tratado de cargar tu aplicación y no me carga, podrías darme alguna pauta?
    Tengo el mismo problema que EicheS.

  112. Marco
    noviembre 10, 2016 a las 12:43 am

    Tengo el mismo problema que EicheS y Christian, alguien lo ha solucionado y me tire un cable ?

  113. raleiva
    diciembre 22, 2016 a las 5:09 am

    Estimados, pregunta al respecto, es posible tener dos o mas encuestas simultaneas ejecutándose y con distintos audios en cada encuesta.y como subir los audios a reproducir, desde la Web de la aplicacion,

  114. Valmir Lopes
    abril 24, 2017 a las 4:41 pm

    Boa tarde, eu segui todo passo a passo e só recebo um msg de erro «Error en consulta a la base de datos»

    • sam
      junio 18, 2017 a las 12:43 am

      Hola, en los comentarios atras puedes encontrar la solucion.

  115. Elias
    julio 24, 2017 a las 5:38 pm

    Hola; Tengo este problema

    <input name="idcampana" type="text" id="idcampana" value="Error al conectarse a la base de datos

    Cuando entro a la ruta https://ip/AudioElastixDialer/ ;solo me carga Nombre de campaña.

    • Fernando Penagos
      julio 24, 2017 a las 6:31 pm

      Modificar el extension_custom.conf
      Agregar esto al [from-internal-custom]
      include => call-file-test

      Y al final del archivo poner esto:
      [call-file-test]
      exten => s,1,wait(15)
      exten => s,2,Playback(demo-congrats)
      exten => s,3,Hangup()

      reload asterisk
      Modificar conexion a BD
      var/www/html/AudioElastixDialer/funciones_bd.php
      if(!($conector=mysql_connect(“localhost”,”root”,”tucontrasena”)))
      Entrar a mysql
      mysql -p
      mysql> create database AudioElastixDialerBD;
      Exportar #mysql -u root -p AudioElastixDialerBD < /var/www/html/AudioElastixDialer/sql/AudioElastixDialerBD.sql
      Checar si estan las tablas:
      use AudioElastixDialerBD;
      show tables;
      Modificar el siguiente archivo
      /var/www/html/AudioElastixDialer/audioelastixdialer.php
      $tronc1="SIP/Vox_Calls/52"; //En este caso puse la troncal de salida y el prefijo para mexico, cuando subo los numero si son fijos los dejo tal cual en el csv pero si son celulares les agrego 1.
      $tronc2="";
      Para poner el audio dirigirse a la carpeta /var/lib/asterisk/sounds/en y alli pegar el audio debe ser gsm con permisos 777 y

      https://TUIP/AudioElastixDialer/

      y seleccionar el archivo csv con los numeros, yo los subo asi.

      telefono, nombre
      telefono, nombre

      POSIBLES ERRORES:
      Carpeta AudioElastixDialer tambien asignarle 777 permisos
      alter table calloutnumeros modify telefono varchar(50);
      Esto es para que tome los telefonos y no marque solo el 2147483647 por alguna razon no toma el int y se tiene q cambiar a varchar.
      Si se tiene la carpeta origina esta mal escrito el nombre no dice AudioElastixDialerBD sino AdioElastixDialerBD , so toca cambiarlo.

      • F3rcho
        agosto 20, 2017 a las 3:03 am

        Que tal Fernando Penagos, veo que tu has logrado que te funcione el programa pero al moemnto de colocar:

        https://MI_IP/AudioElastixDialer/

        Unicamente me aparece que coloque el nombre de la campaña y no todo lo que sale en el cuadro, donde le puedes cargar los numeros.

        Llego algo de tiempo en esto y no encuentro solucion, me podrias ayudar con esto.

        Muchas gracias de antemano

      • Fernando Penagos
        agosto 21, 2017 a las 8:34 pm

        Si claro amigo, pero hiciste ya todos los pasos antes mencionados y sigue igual ?

      • F3rcho
        agosto 21, 2017 a las 8:50 pm

        Que Tal Fernando, gracias por la pronta respuesta, te comento ya logré hacer que me muestre los demás campos dónde se puede cargar el archivo csv, pero no veo que los cargue en la.base de datos, será que algo en el código del archivo audioelastixdialer.php tiene el símbolo //

      • Fernando Penagos
        agosto 21, 2017 a las 9:34 pm

        Checa el campo de telefono, si es int te va a dar problemas tiene que ser varchar.

      • F3rcho
        agosto 24, 2017 a las 5:50 am

        Buen dia Fernando, listo ya realice los cambios que me indicaste, pero siguen sin generarse los archivos .call, ya que al revisar en /var/spool/asterisk/outgoing/
        no tengo ninguno, tengo colectividad a la base de datos y logro ver las tablas donde realice el cambio a VARCHAR(50).

        como es que se generan los archivos .call?

        Muchas gracias por tu ayuda

      • Fernando Penagos
        agosto 24, 2017 a las 6:00 am

        Ya entraste por consola a ver si esta marcando? Como es el formato de los registros csv para tu llamadas?

  116. Fernando Penagos
    agosto 24, 2017 a las 6:14 am

    Entra por el putty al servidor, te logueas y ejecutas el comando asterisk -rvvvv despues das sip show channels y ver si esta marcando.

    • F3rcho
      agosto 24, 2017 a las 6:42 am

      Si el problema es que no estoy generando los archivos .call, no me aparece nada en la carpeta outgoing, no sé si estaré obviando algo al momento de cargar el csv

      • Fernando Penagos
        agosto 24, 2017 a las 6:45 am

        Pues, la verdad no sabia decirte, si estan separados por coma tus registros? yo cuando subo los archivos csv vienen de esta forma:
        111111111, nombre
        22222222, nombre
        etc…

  117. Fernando Penagos
    agosto 24, 2017 a las 6:54 am

    Si lo tienes separado por ; pues modifica este archivo audioelastixdialer.php en este linea
    while (($data = fgetcsv($handle, 1000, «,»)) !== FALSE) {
    por esta linea
    while (($data = fgetcsv($handle, 1000, «;»)) !== FALSE) {

  118. Tito Arrieta
    septiembre 4, 2017 a las 11:13 pm

    Juan, acabo de probar tu programa y con unas cuantas modificaciones logre ponerlo a funcionar, ya me genera el archivo .call, no se si tu tendras la forma de grabar un texto que esta en un campo de base de datos como mp3 o gsm. Necesito generar mensajes personalizados.
    Espero que me puedas ayudar
    gracias

    • F3rcho
      septiembre 4, 2017 a las 11:36 pm

      Buen día Tito, me podrías ayudar, llevo ya bastantes días tratando de entender porque no me generan los archivos .call, que cambios o en cual .PHP lo realizasteis?? Te agradece mucho si me puedes dar una luz 😅

    • cavicata
      septiembre 5, 2017 a las 4:04 pm

      Como hiciste Tito para que te generen los archivos .call ? a mi me muestra el error: • Channel should be in form Tech/Dest at line 1 of /var/spool/asterisk/outgoing/myarchivo29.call
      • At least one of app or extension must be specified, along with tech and dest in file /var/spool/asterisk/outgoing/myarchivo29.call
      • Invalid file contents in /var/spool/asterisk/outgoing/myarchivo29.call, deleting
      En los logs.

  119. Tito Arrieta
    septiembre 5, 2017 a las 6:26 pm

    Aqui los cambios que hice:

    el el paso 5:
    5.- Crear la base de datos para el Audio Elastix Dialer
    dice:
    #mysql -u root -p AudioElastixDialerBD < /var/www/html/AudioElastixDialer/sql/AdioElastixDialerBD.sql
    en el archivo audioelastixdialer.php

    corrección:
    #mysql -u root -p AudioElastixDialerBD < /var/www/html/AudioElastixDialer/sql/AudioElastixDialerBD.sql
    en el archivo audioelastixdialer.php

    ===============================================================
    en el archivo audioelastixdialer.php

    decia:
    //3 .- RECIBIR LAS VARIABLES PARA GENERAR LA LLAMADA
    $Channel= "Channel: " . $_POST['Channel'];
    //$Callerid= "Callerid: " .$_POST['Callerid'];

    ahora:
    //3 .- RECIBIR LAS VARIABLES PARA GENERAR LA LLAMADA
    //$Channel= "Channel: " . $_POST['Channel'];
    $Callerid= "Callerid: " .$_POST['Callerid'];

    Espero que lo puedan aplicar

    • Fernando Penagos
      septiembre 5, 2017 a las 7:07 pm

      Que curioso, yo tengo comentado la variable de callerid y cuando marca a la persona, el callerid que le aparece es su mismo numero.

      • cavicata
        septiembre 6, 2017 a las 5:00 pm

        Ya me funcionó en Issabel 4.0.0-2, me faltaba una configuración en la troncal de salida. Gracias.

      • Fernando Penagos
        septiembre 6, 2017 a las 7:17 pm

        en serio? ahora comentame como hiciste para ingresar por interfaz web yo instale el issabel pero no puedo ingresar 😦 . No sabes?

      • cavicata
        septiembre 6, 2017 a las 8:16 pm

        Abre los puertos que necesites en el firewalld (80,443,22,143,995,993,110 dependiendo los servicios q vayas a usaar) o bien dale de baja al firewalld para probar. Adicional inhabilita el Selinux en el centos y con eso te debería de funcionar.

  120. Sofir
    octubre 12, 2017 a las 9:59 pm

    Hola raza, quiero felicitarlos está excelente este foro, tengo una pregunta y me gustaría si me pueden ayudar, como puedo ampliar el tiempo de la llamada, porque normalmente son 20 seg. la duración de la llamada y mi mensaje grabado dura mas de 30 seg. entonces se corta la llamada y no se escucha todo el mensaje.

    Por anticipado les doy las gracias

    • octubre 16, 2017 a las 1:56 am

      Hola Sofir
      Te comento que por parte de la aplicación no existe ningún tipo de limite en la duración de la llamada, si tu caso es ese, debe ser por otros factores ajenos a la misma.

      Espero te sirva.
      Saludos
      Juan Oliva

      • Sofir
        octubre 21, 2017 a las 2:43 pm

        Revise este caso con mi proveedor de telefonía (TELMEX), monitorearon la llamada que realice, y detectaron que el que esta cortando la llamada es mi conmutador, donde puedo ver la configuración cuando se cuelga la llamada

      • Hector
        octubre 27, 2017 a las 4:52 am

        Sofir, como se te ha venido comentado y ya lo comenta Juan, esto es ajeno al aplicativo, tambien al probar con otra troncal el aplicativo funciona bien, por descarte es tu proveedor.

        Saludos.

      • Sofir
        noviembre 30, 2017 a las 3:46 pm

        ok revisando con mi proveedor, ya lo revisaron bien y ellos tuvieron que modificar algunos parámetros, ya funciona, gracias

  121. Luis Serrano
    octubre 21, 2017 a las 1:59 am

    Cordial saludo,
    es una excelente herramienta, tengo una duda como se si la llamada fue constestada o no, hice pruebas marcando a mi celular y no conteste la llamada y el sistema mirando el cdr me indica de que si fue contestada.

  122. noviembre 2, 2017 a las 8:17 pm

    Hola amigo, soy nuevo en elastix y se me complica un poco escribir los códigos no se si puedes ayudarme con este tema un poco mas a fondo. Te lo agradecería mucho.

  123. alex
    noviembre 29, 2017 a las 8:52 pm

    como se puede detener la campaña? cuando deseo detenerla la unica forma que encuentro es reiniciando hasta 2 veces el elastix porque aunque detenga el proceso asterisk sigue marcando al renaudar

  124. Sofir
    diciembre 4, 2017 a las 6:53 pm

    Ayuda por favor, estoy cargando una campaña con 300 teléfono a marcar pero solamente se marcan 4 teléfonos, porque?, esta es la rutina donde se generan las llamadas:

    //5.- GENERAR LA LLAMADA DE LA BASE DE DATOS
    $sentencia=»select id,telefono from calloutnumeros where campana = $idcampana;»;
    $resultado=consultar_bd($sentencia);
    while ($row=mysql_fetch_array($resultado)){
    $id=$row[0];
    $numero=$row[1];
    $Channel= «Channel: » . $tronc1 . $numero . $tronc2 ;
    $Callerid= «Callerid: » . $numero;
    $fp = fopen(«/var/spool/asterisk/outgoing/myarchivo$id.call»,»a»);
    fwrite($fp, $Channel . PHP_EOL . $Callerid . PHP_EOL . $MaxRetries . PHP_EOL . $RetryTime . PHP_EOL . $WaitTime . PHP_EOL . $Context . PHP_EOL . $Extension . PHP_EO$
    fclose($fp);
    } //CIERRE DE WHILE

    • cavicata
      diciembre 4, 2017 a las 8:16 pm

      Porque el Dialer intenta hacer las 300 llamadas a la vez y solo encuentra 4 canales disponibles. Debes limitar las llamadas simultáneas.

      • Sofir
        diciembre 4, 2017 a las 9:24 pm

        como le puedo hacer para limitar las llamadas de 4 en 4?

      • cavicata
        diciembre 4, 2017 a las 9:55 pm

        Esa es la solución corporativa, Juan Oliva la comercializa.

  125. Sofir
    diciembre 4, 2017 a las 11:09 pm

    Juan necesito tu ayuda

    • Sam
      diciembre 14, 2017 a las 12:48 am

      Hola, alguien ha podido hacer las modificaciones para que se generen las llamadas con limitantes deacuerdo con los canales disponibles?

  126. sam
    diciembre 14, 2017 a las 4:23 pm

    Hola @carlosvcabrera, y es posible que puedas compartir como lo lograste.

  127. Luis
    enero 3, 2018 a las 1:19 am

    Excelente aplicación. Gracias a Juan. No sé si entre todos podemos compartir las mejoras al programa y tal vez lograr una buena add-on. Quedó atento.

    • sam
      enero 4, 2018 a las 1:36 pm

      Hola, el siguiente paso es implementar el control de llamadas simultaneas, al parecer ya algunos lo han hecho y seria bueno compartirlo.

      • Luis
        enero 5, 2018 a las 9:50 am

        Sam. También se ha logrado automatizar el cron. No sé si alguien más quisiera realizar sus aportes y definir un recurso para.compartirlo.

  128. enero 9, 2018 a las 8:24 pm

    Buenas tardes, quisiera urgente su ayuda, todo funciona bien, pero como máximo solo me genera dos llamadas, luego ya no funciona. ¿Cuál sería la solución para poder generar más llamadas?

    • enero 10, 2018 a las 9:08 pm

      Hola Renato
      En primara instancia el programa no tiene ningún tipo de restricción , es así Las llamadas están en función a la cantidad de canales que tiene la troncal saliente.

      Espero te sirva.
      Saludos.
      Juan Oliva

      • nicolas
        enero 29, 2018 a las 3:47 pm

        Juan como andas, tengo un problema al mandar campañas por ejemplo con 30 números, intenta mandar las 30 llamadas simultaneas y solo tengo 3 lineas, osea hace solo 3 llamadas de las 30
        como se hace para que valla llamando de tres en tres hasta completar las 30 ?
        Mil gracias

      • Sofir
        febrero 2, 2018 a las 5:27 pm

        Nicolas, pudiste realizar llamadas de 3 en 3?, si es así, como le hiciste? yo necesito realizar llamadas de 5 en 5

      • renatopintado
        febrero 3, 2018 a las 7:18 pm

        Buenas tardes, si no fuera mucha molestia, alguien tiene el archivo modificado para poder obtener el estado de las llamadas realizadas? si fueron exitosas o no. muchas gracias de antemano. Espero su respuesta.

  129. renatopintado
    enero 11, 2018 a las 3:35 am

    Buenas noches, cuando implementé la solucion en elastix 4 me funcionó sin problemas, pero luego quise hacer la implementación en la version 2.4 y al momento de crear la base de datos con el siguiente comando:
    mysql -u root -p AudioElastixDialerBD < /var/www/html/AudioElastixDialer/sql/AdioElastixDialerBD.sql

    no crea las tablas, cuál sería el motivo?

    Gracias.

    • Sam
      enero 26, 2018 a las 12:45 pm

      Debes corregir esta linea AdioElastixDialerBD.sql esa AudioElastixDialerBD.sql

  130. Luis
    enero 22, 2018 a las 6:48 pm

    Hola @carlosvcabrera, y es posible que puedas compartir como lo lograste.

  131. Luis
    enero 26, 2018 a las 1:17 pm
  132. febrero 3, 2018 a las 7:19 pm

    Buenas tardes, si no fuera mucha molestia, alguien tiene el archivo modificado para poder obtener el estado de las llamadas realizadas? si fueron exitosas o no. muchas gracias de antemano. Espero su respuesta.

  133. marzo 1, 2018 a las 3:32 pm

    Buen dia,
    Alguien a podido validar cuando la llamada es contestada, cuando esta ocupado, fallida, correo de voz etc.

  134. inser
    marzo 2, 2018 a las 5:46 pm

    Hola,soy de monterrey y estoy buscando implementar este sistem en mi empresa, ¿tu me pudieras asesorar o ayudar en hacerlo?

    • Sofir
      abril 13, 2018 a las 6:24 pm

      a quien le compraste el sistema?

    • Hologa
      febrero 6, 2019 a las 12:02 am

      hola que tal inser yo tambien soy monterrey y creo que te puedo ayudar con eso

  135. Juan Pablo acosta
    marzo 24, 2018 a las 12:58 pm

    Hola buenos dias, muchas gracias por su aporte, le comento que cuando ingreso por web a lAudioElastixDialer solo aparece el campo nombre de la campaña, no aparece nada mas. que puede ser
    Muchas gracias

    • Andres Gutierrez
      septiembre 18, 2019 a las 5:36 pm

      Buen día y muchas gracias por el aporte, me esta pasando lo mismo no me aparece todo formulario, solo me aparecen las dos primeras celdas y en el los del http, no informa ningún error.

  136. Sofir
    abril 13, 2018 a las 6:25 pm

    alguien que me pueda ayudar, cuando hago una transferencia de llamada me desconecta y no quiero que me desconecte, lo que quiero est que estemos los tres a la vez, que necesito configurar para que no me desconecte?

    Por sus atenciones les doy las gracias por anticipado
    Saludos

  137. Pedro Avila
    abril 17, 2019 a las 8:59 pm

    Estoy realizando un sistema de llamadas saliente en donde se le hace una llamada a un cliente, hasta ahora todo bien, me genera las llamadas y mando llamar un archivo AGI donde reproduzco los audios necesarios, el problema es cuando llego a un momento donde solicito al cliente que me proporcione un código pero no he encontrado la manera de capturar dicho numero digitado, lo estoy haciendo de la siguiente manera:

    [call-file-test]
    exten => s,1,Answer
    exten => s,2,wait(2)
    exten => s,3,AGI(nv-weather.php)
    exten => s,4,Hangup()

    archivo .call:
    Channel: SIP/Troncal/XXXXXXXX
    CallerID: XXXXXXXX
    MaxRetries: 0
    RetryTime: 60
    WaitTime: 30
    Context: call-file-test
    Extension: s

    y en el archivo PHP capturo los digitos de la siguiente manera
    (ejemplo corto)
    $r = $agi->get_data(‘beep’, 5000, 10);
    $iDigitoIntroducido = $r[‘result’];

    Cuando realizo la llamada directo a la extensión con un softphone si detecta los dígitos que introduzco pero al momento de generar la llamada con el archivo .call, no me captura nada. Creo que el problema es que al realizar la llamada con el archivo .call se genera como un «puente» por así decirlo que comunica el número generado por el troncal, con el archivo AGI y el numero del cliente, y no se está comunicando directamente con él.

    Solicito de su apoyo para ver si alguno de ustedes ha realizado un sistema como éste y conoce alguna solución,

    de antemano muchas gracias.

  138. JOZO
    septiembre 3, 2019 a las 9:05 pm

    Hola jroliva, instale conforme las instrucciones, al momento de iniciar la campaña me dice CAMPAÑA CREADA , GENERANDO LLAMAS

    ELASTIX PROWERFULL !!

    pero no as realiza, estoy trabajando con Issabel,

    en el CLI me aparece as{i

    [2019-09-03 15:57:04] NOTICE[6158]: pbx_spool.c:427 attempt_thread: Call completed to SIP/522147483647@Axtel00
    [2019-09-03 15:57:04] NOTICE[6159]: pbx_spool.c:427 attempt_thread: Call completed to SIP/522147483647@Axtel00

    y entiendo que despues de SIP/52 (codigo del pais) deberia de ir el numero al que esta marcando pero esos no son numeros que yo carge en CSV

    • JOZO
      septiembre 5, 2019 a las 7:57 pm

      Ya quedo funcionando el sistema, lo resolví a haciendo el cambio en la base de datos de INT a VARCHAR como mencionaron arriba.

      Ahora tengo una duda, quiero mandar un IVR. en donde el usuario pueda seleccionar una opción y se le trasfiera a un ejecutivo, alguien lo habrá ya hecho? o me podrán orientar en como hacerlo

      • Vi
        diciembre 17, 2019 a las 4:11 am

        Cual fue el campo que cambiase de INT a VARCHAR? porque he intentado todo lo que han dicho en este foro y no me pasa
        — Attempting call on SIP/NOMBRETRONCAL/98888888 for s@call-file-test:1 (Retry 1)
        — Attempting call on SIP/NOMBRETRONCAL/98998888 for s@call-file-test:1 (Retry 1)
        == Using SIP RTP TOS bits 184
        == Using SIP RTP CoS mark 5
        == Using SIP RTP TOS bits 184
        == Using SIP RTP CoS mark 5

      • Fernando
        diciembre 18, 2019 a las 7:20 pm

        el campo de telefono lo cambias a varchar.

      • JOZO
        diciembre 18, 2019 a las 7:29 pm

        Esto es lo que hice, lo posteo Fernando Penagos arriba:

        La modificación es la tabla de la base de datos,

        POSIBLES ERRORES:
        Carpeta AudioElastixDialer tambien asignarle 777 permisos
        alter table calloutnumeros modify telefono varchar(50);
        Esto es para que tome los telefonos y no marque solo el 2147483647 por alguna razon no toma el int y se tiene q cambiar a varchar.
        Si se tiene la carpeta origina esta mal escrito el nombre no dice AudioElastixDialerBD sino AdioElastixDialerBD , so toca cambiarlo.

  139. Sofir Villarreal
    septiembre 5, 2019 a las 4:34 pm

    excelente, ese proceso lo tengo y me funciona muy bien, pero lo que ahora necesito son grabaciones personalizadas, es decir, tener una grabación que diga: «Usted tiene un pago pendiente de ______, favor de pagar lo mas pronto posible», que el monto a pagar sea diferente según la persona a la que se le esta cobrando, esto se puede manejar en Elastix?, mucho le agradecería me digeran como hacerlo. Por sus atenciones les doy las gracias por aticipado.

  140. Vi
    diciembre 17, 2019 a las 4:27 am

    Buenas noches Juan Oliva, he estado analizando y leyendo cada uno de los comentarios en este foro para tratar de llegar a una solucion, el punto es que hice todo al pie de la letra, se crean los archivos .call, se generan las solicitudes de llamadas pero no pasa de aqui:

    — Attempting call on SIP/988888888@NOMBRETRONCAL for s@call-file-test:1 (Retry 1)
    == Using SIP RTP TOS bits 184
    == Using SIP RTP CoS mark 5
    — Attempting call on SIP/98888999999@NOMBRETRONCAL for s@call-file-test:1 (Retry 1)
    == Using SIP RTP TOS bits 184
    == Using SIP RTP CoS mark 5

    En esta parte hace los 2 intentos que tiene configurado y no logra pasar.

    en /var/www/html/AudioElastixDialer/audioelastixdialer.php la parte de la troncal la tengo de esta forma, por favor dejame saber si aqui es que tengo el error, ya realice las pruebas de llamado de forma manual y las llamadas salen por el troncal pero con el sistema no.

    $troncal= $_POST[‘troncal’];

    if ($troncal==»2″)
    {
    $tronc1=»SIP/9″;
    $tronc2=»@NOMBRETRONCAL»;
    }
    else
    {
    $tronc1=»ZAP/g1″;
    $tronc2=»,20,Tt»;
    }

    Agradezco antemano tu colaboracion

    • Fernando
      diciembre 18, 2019 a las 7:18 pm

      $tronc1=»SIP/NombredelaTroncal/prefijosiesnecesario»;
      ejemplo:
      $tronc1=»SIP/netelipmex/521″;

  141. moguryuu
    febrero 3, 2020 a las 9:56 pm

    amigos, estoy tratando de configurar la fecha y hora para el inicio de la campaña pero no lo logro, alguien me puede ayudar?

  142. octubre 6, 2020 a las 9:04 pm

    Curioso mi asterisk intenta llamar a ‘2147483647’

    • ferchopenagos85
      octubre 7, 2020 a las 2:34 am

      Ese valor corresponde al máximo de un int , no es propiamente un numero telefónico.

      • octubre 28, 2020 a las 4:46 pm

        Hola , debes entrar a tu Mysql y la casilla phone le pones Vachar y solucionado el problema

  143. Byron Sanchez
    mayo 13, 2021 a las 9:05 pm

    Buenas noches Juan mil disculpas molestarte con esta problema pero al ejecutar este solo me lanza el llamado al contesar se cierra la llamada y no me repoduce el audio

    • mayo 14, 2021 a las 8:20 am

      Es el audio conviértelo a wav en digium converter

  144. Andres
    junio 29, 2022 a las 8:16 am

    Buen dia. Queria hacer una consulta. Necesito hacer que cuando haya una llamada saliente desde un interno hacia una linea que no sea interna me reproduzca un audio y luego continue la llamada. Se podra hacer con este codigo?
    Muchas Gracias

  145. Andres
    junio 29, 2022 a las 8:31 am

    Sin que sea desde el modulo de call center

  1. No trackbacks yet.

Responder a Valmir Lopes Cancelar la respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: