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
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 :
El programa generara los archivos .call de la siguiente forma
Luego empezara a generar las llamadas , esto es lo que tendria que verse a nivel de 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 !!
Segui todo al pie de la letra pero me dice siempre Error en consulta a la base de datos y nunca genera las llamadas
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”)))
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…
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!
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
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.
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
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
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
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
Excelente aporte! Gracias
hola como haria para que lea un campo de dato adicional y lo reproduzca, es decir decir el nomre ejemplo.
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
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»
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
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!
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.
juanmelis Estupendo !! , esa era la idea !!
Que bueno que hallas entendido el código
Saludos
Muchisimas gracias ! Lo voy a probar cuanto antes y comento! Mil gracias!
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!!!!
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.
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
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!
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
Estou com o mesmo erro , ja conesguiu acertar?
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!!!
s
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.
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>
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
Amigo como se que no me esta caragndo el archivo. la db esta bieb configurada
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
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
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
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,
estimado como soluciono el problema del 0 que no se carga al inicio
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?
Buenas tardes.
Excelente aporte, pero me pueden colaborar para la descarga del AudioElastixDialer
http://94.23.152.21:85/pub/AudioElastixDialer.zip
Saludos,
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.
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 !!
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.
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.
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.
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.
Es el tipo de campo donde tienes almacenado el teléfono, yo puse varchar y solucione ese problema.
Mi estimado me encantaría probar la solución pero no puedo descargarla me podrias ayudar talvez con los archivos ?? de antemano muchas gracias
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
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
Hola Ramsés
El enlace original ya esta actualizado, por cierto , si gustas me envías las modificaciones y las posteo.
Saludos!!
Hola Cristian.
Se encuentra caido el link, aun cuentas con el archivo?
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.
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
Gracias Cristian Lo voy a probar!!!!!!!!!!!!!!
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.
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
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
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
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!
Esteban Mayo.. debes mirar como estas montando el csv. me paso lo mismo y problema surge de hay… Saludos,
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!
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
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
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
Hola Gerardo
Fíjate en /var/www/html si tienes la carpeta
Saludos
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
amigo si tengo el directorio creado
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 ?????
amigo ya solucione todo, gracias por tu aporte
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
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
Gerardo
El formato al parecer esta bien , lo que deberías verificar es primero si puede marcar 2147483647 por la troncal g0
Saludos
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
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
como se puede reproducir anuncio (llamada grabada y monitoreada) en una llamada saliente?
Frank
Es bastante sencillo , en el contexto [call-file-test] puedes usar exten => s,1,Playback(tuaudio)
Saludos
Juan Oliva
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.
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!!
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,
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
@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.
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
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!
Solucionado Jorge, era solo una comilla faltante en cada linea!
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.
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
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'
Hola David
No has creado la base de datos AdioElastixDialerBD previamente.
Saludos
Juan
ya lo corregi, cree mal la base colocando Audio en vez de Adio
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
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.
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
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
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….
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);
El link de descarga don de explica Cristian que se puede hacer aún sigue desactualizado?,
Tienes algun manual donde indique las modificaciones del sistema para la parte de encuestas?
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
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
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
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
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!!!!!
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?
yo tengo el mismo problema ne los celulares puede indicarme por favor como lo soluciono
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.
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
Grande Juan y Gracias!
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…
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.
Yo soy primerizo en asterisk y si me funciono :p
Que gracioso, no había visto el comentario este hasta ahora, jajajaja
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.
Hola ya pudiste con los celulares
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.
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
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
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
En la base de datos , el tipo de campo que guarda el numero a marcar.
Saludos
@jroliva
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
Yelson
El programa está basado en los call files de Asterisk , fíjate que variables puedes trabajar e incorporar al programa, para cumplir lo que necesitas.
http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out
Saludos
Juan Oliva
@jroliva
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
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
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
Que tal Juan Buena noche,
me puedes colaborar, cuando abro el generador de campañas solo me muestra la campaña
Saludos
Rodrigo
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
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?
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
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.
Vale para nosotros es un gusto ayudar como Juan lo hace con sus post, si te animas tenemos terminación.
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
Hola
Puedes trabajar con las variables de «hangupcause»
http://www.voip-info.org/wiki/view/Asterisk+variable+hangupcause
Espero te sirva
Saludos
Juan
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
Ello tendrías que hacerlo a nivel de CLI de Asterisk.
Saludos
Juan
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.
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
Hola
Tienes que hacer un seguimiento a nivel de asterisk puro, tus amigos
#asterisk -rvvvvv
#tail -f /var/log/asterisk/full
Saludos
Juan Oliva
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.
Me ha pasado en versiones posteriores, simplemente no se esta conectando con la base de datos sql, intenta corregir los datos de conexion!
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 😀
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.
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
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.
Hola Eduardo
Es por el limite en el campo de la base de datos, modifícalo y se soluciona.
Saludos!
Juan Oliva
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.
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
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
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.
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
Muchas Gracias en que apartado configuro el gotoiftime
Ya que en extensions_custom.conf, permite el ringing en la llamada.
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.
Hola
Puedes «jalarlo» de la base de datos de Elastix directamente o crear un tabla en el sistema.
Saludos
Juan Oliva
hola hice todos los pasos pero al cargar https://miip/AudioElastixDialer/ solo me sale nombre de campaña y nada mas
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
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
Edison tengo el mismo error solo me sale el nombre de la campaña como l puedo solucionar gracias…
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
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
Que tal Alan, escribo de México tengo semanas intentando esto. Gracias
Me gustaría saber si es factible que las llamadas sean realizadas en una hora especifica por cada registro? es factible esto? gracias
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?
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
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.
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…..
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
Edison, es un tema del tipo de campo en la base de datos, cambialo al que necesites.
Saludos!
esta puesto vchar a cual le cambio???
y ayúdame indicando en que parte le cambio
Hola Edison pudiste hacer el cambio y donde fue?
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
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
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
Ya lo solucione 🙂
Me podrias indicar como solventaste?
Hola Jairo, tengo el mismo problema como lo soluciono, gracias.
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
Corregir en el archivo funciones_bd.php
la linea:
if(!mysql_select_db(«AudioElastixDialerBD»,$conector))
por
if(!mysql_select_bd(«AudioElastixDialerBD»,$conector))
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
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
Raul
O puedes también manejarlo por cron de Linux.
Saludos
Juan Oliva
Excelente aporte Jroliva me sirvió de mucho funciona a la perfección tratare de hacer algunos cambios y los compartire gracias nuevamente.
Estupendo!! espero los cambios!!
Saludos
Juan Oliva
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
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
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
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 ↓
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
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.
Saludos.. Juan, es una exelente trabajo. Disculpa podrias ayudarme para ahcer ago similar pero para realizar encuestas?.
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
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
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
Solucionado el Error al conectar al servidor de base de datos.
pero solo sigue mostrando el nombre de la campaña nada mas
Hola asi me funciono:
[root@hsrpcom ~]# mysql -u root -p AudioElastixDialerBD < /var/www/html/AudioElastixDialer/sql/AudioElastixDialerBD.sql
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
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.
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!!
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))
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))
Estimado he tratado de cargar tu aplicación y no me carga, podrías darme alguna pauta?
Tengo el mismo problema que EicheS.
Tengo el mismo problema que EicheS y Christian, alguien lo ha solucionado y me tire un cable ?
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,
Boa tarde, eu segui todo passo a passo e só recebo um msg de erro «Error en consulta a la base de datos»
Hola, en los comentarios atras puedes encontrar la solucion.
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.
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.
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
Si claro amigo, pero hiciste ya todos los pasos antes mencionados y sigue igual ?
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 //
Checa el campo de telefono, si es int te va a dar problemas tiene que ser varchar.
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
Ya entraste por consola a ver si esta marcando? Como es el formato de los registros csv para tu llamadas?
Entra por el putty al servidor, te logueas y ejecutas el comando asterisk -rvvvv despues das sip show channels y ver si esta marcando.
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
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…
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) {
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
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 😅
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.
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
Que curioso, yo tengo comentado la variable de callerid y cuando marca a la persona, el callerid que le aparece es su mismo numero.
Ya me funcionó en Issabel 4.0.0-2, me faltaba una configuración en la troncal de salida. Gracias.
en serio? ahora comentame como hiciste para ingresar por interfaz web yo instale el issabel pero no puedo ingresar 😦 . No sabes?
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.
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
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
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
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.
ok revisando con mi proveedor, ya lo revisaron bien y ellos tuvieron que modificar algunos parámetros, ya funciona, gracias
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.
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.
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
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
Porque el Dialer intenta hacer las 300 llamadas a la vez y solo encuentra 4 canales disponibles. Debes limitar las llamadas simultáneas.
como le puedo hacer para limitar las llamadas de 4 en 4?
Esa es la solución corporativa, Juan Oliva la comercializa.
Juan necesito tu ayuda
Hola, alguien ha podido hacer las modificaciones para que se generen las llamadas con limitantes deacuerdo con los canales disponibles?
Hola @carlosvcabrera, y es posible que puedas compartir como lo lograste.
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.
Hola, el siguiente paso es implementar el control de llamadas simultaneas, al parecer ya algunos lo han hecho y seria bueno compartirlo.
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.
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?
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
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
Nicolas, pudiste realizar llamadas de 3 en 3?, si es así, como le hiciste? yo necesito realizar llamadas de 5 en 5
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.
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.
Debes corregir esta linea AdioElastixDialerBD.sql esa AudioElastixDialerBD.sql
Hola @carlosvcabrera, y es posible que puedas compartir como lo lograste.
luisfernando.jaramillosalazar@gmail.com
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.
Buen dia,
Alguien a podido validar cuando la llamada es contestada, cuando esta ocupado, fallida, correo de voz etc.
Hola,soy de monterrey y estoy buscando implementar este sistem en mi empresa, ¿tu me pudieras asesorar o ayudar en hacerlo?
a quien le compraste el sistema?
hola que tal inser yo tambien soy monterrey y creo que te puedo ayudar con eso
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
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.
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
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.
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
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
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
el campo de telefono lo cambias a varchar.
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.
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.
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
$tronc1=»SIP/NombredelaTroncal/prefijosiesnecesario»;
ejemplo:
$tronc1=»SIP/netelipmex/521″;
amigos, estoy tratando de configurar la fecha y hora para el inicio de la campaña pero no lo logro, alguien me puede ayudar?
Curioso mi asterisk intenta llamar a ‘2147483647’
Ese valor corresponde al máximo de un int , no es propiamente un numero telefónico.
Hola , debes entrar a tu Mysql y la casilla phone le pones Vachar y solucionado el problema
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
Es el audio conviértelo a wav en digium converter
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
Sin que sea desde el modulo de call center