llamadas salientes de marcador progresivo no funcionan

smariscal

New User
Registrado
25 Jun 2024
Mensajes
7
Hola cree un flujo para un marcador en el CFD siguiendo la documentación: https://www.3cx.com/docs/cfd-creating-outbound-dialer/
las llamadas las asigno a una cola con extensión 8001
cuando lo subo al portal de 3CX en Avanzados - "Call Processing Script" le asigno los digitos a marcar 1111 para activarlo. luego en un asisten virtual le digo que al marcar 5 llame al script.
Marco a mi número de troncal y luego me contesta el asisten virtual y marco 5, la llamada se cuelga y no hace ninguna llamada,
revisando el código encuentro que primero marca al numero que quiero llamar para luego asignarlo a la extension de la cola.

doMakeCall.OriginHandler = () =>
{
int callIndex = Convert.ToInt32(getCallIndex.ReturnValue);
return Convert.ToString(CFDFunctions.TRIM(Convert.ToString(numbersToCall[callIndex])));
};
doMakeCall.DestinationHandler = () => { return Convert.ToString("8001"); };

Por alguna razón que desconozco la llamada saliente no hace, pero si cambio el orden del componente para que primero marque a la cola y luego al número que quiero llamar las llamadas si se hacen
Comente la parte del codigo como lo genero el CFD e invertí las propiedades OriginHandler y DestinationHandler
//doMakeCall.OriginHandler = () =>
//{
// int callIndex = Convert.ToInt32(getCallIndex.ReturnValue);
// return Convert.ToString(CFDFunctions.TRIM(Convert.ToString(numbersToCall[callIndex])));
//};
//doMakeCall.DestinationHandler = () => { return Convert.ToString("8001"); };
doMakeCall.OriginHandler = () => { return Convert.ToString("8001"); };
doMakeCall.DestinationHandler = () =>
{
int callIndex = Convert.ToInt32(getCallIndex.ReturnValue);
return Convert.ToString(CFDFunctions.TRIM(Convert.ToString(numbersToCall[callIndex])));
};


Si bien esto funciona, necesito que funcione como viene en la documentación, es decir que primero llame al número y cuando conteste lo mande a la cola ¿Porque esto no funciona? y porque si funciona cuando primero marco a la cola y luego al numero saliente?
¿Como soluciono este asunto?


Otro detalle que tengo es que este script solo se ejecuta una vez, es decir así como lo modifique marca a la cola y luego hace las llamadas, pero al terminar todas las llamadas e intentar volver a probar ya no funciona, es como si las llamadas se quedaran colgadas o no se que pase.
 

Attachments

Hola @smariscal,

En 3CX v20, el componente Make Call solo puede especificar una entidad interna (extensión, cola, grupo de timbre) como origen de la llamada. El número externo debe ser especificado como destinatario. Esto limita bastante las posibilidades de crear un discador con el CFD, ya que los agentes perderán tiempo esperando a que se conecten llamadas que podrían no conectarse, ir a un contestador automático, etc.

El problema que tienes respecto a que el script se ejecuta solo una vez, es que probablemente estas creando un callflow en lugar de un dialer. El callflow está diseñado para ejecutarse al recibir una llamada entrante. Un dialer queda corriendo en segundo plano cuando recibe la llamada que lo inicia, sin embargo esto también tiene sus limitaciones, porque cada vez que necesitas crear una nueva versión, o iniciar las llamadas a una nueva lista de números, deberás reiniciar el servicio 3CX Call Flow Server. Esto es particularmente problemático en v20 porque el Call Flow Server no solo se ocupa de ejecutar las apps del CFD, sino que también es responsable de ejecutar la lógica de enrutamiento, colas, y más.

Como alternativa, te recomiendo que pruebes SIP Caller, un discador basado en la nube que está diseñado para integrarse fácilmente con 3CX, y no tiene ninguno de los problemas que vas a encontrar con un discador del CFD. En esta página puedes ver una comparativa detallada para conocer mejor qué ventajas tendrías.

Al utilizar SIP Caller:
  • Podrás llamar primero al número externo, para luego transferir a una cola solo las llamadas que necesitas, mejorando el rendimiento de tus agentes.
  • Podrás detectar automáticamente si la llamada es atendida por un contestador o por un humano, y transferir a la cola solo las que estén conectadas a un humano.
  • Configurando campañas en modo de discador predictivo, podrás ajustar el ritmo de generación de llamadas de acuerdo a los agentes que tengas disponibles en la cola.
  • Tendrás una interfaz sencilla para crear tus campañas, subir números, iniciar y pausar campañas, definir horarios de funcionamiento, ver reportes en tiempo real y reportes históricos, y mucho más.

No dudes en contactarme si quieres conocer más o necesitas ayuda con la configuración inicial.

Saludos.
 
@edossantos_sipcaller ¿Cómo transfiero en SIP Dialer una llamada a varios agentes al mismo tiempo? para que la conteste el primer agente disponible, y luego marque otra llamada para que la conteste otro agente y que no marque otra llamada hasta que este un agente desocupado...
 
@edossantos_sipcaller ¿Cómo transfiero en SIP Dialer una llamada a varios agentes al mismo tiempo? para que la conteste el primer agente disponible, y luego marque otra llamada para que la conteste otro agente y que no marque otra llamada hasta que este un agente desocupado...
Hola Saúl,

Para eso SIP Caller debe transferir la llamada a una cola. De ese modo, la cola de 3CX será la responsable de enviar la llamada al próximo agente disponible. Incluso pueden configurar la estrategia de timbrado que les resulte más conveniente, ya sea que timbre un agente en forma aleatoria, que timbren de a 3 agentes, etc.

Para que SIP Caller solo haga llamadas cuando haya agentes disponibles, deben utilizar una campaña en modo "Discador Predictivo", y configurar la cola que desean monitorear. Para esto, es necesario que instalen el módulo "SIP Caller Proxy" en el servidor 3CX, que reporta el estado de las colas, y de esa forma permite que SIP Caller sepa cuando debe hacer llamadas. La campaña debería configurarse para transferir las llamadas a esa misma cola.

Algo a tener en cuenta es la configuración del valor "Nivel de Intensidad de Llamadas":
1720125645040.png

Para asegurarse de que nunca se hagan llamadas si no hay agentes disponibles, es recomendable configurar ese valor en el rango de números negativos. En ese caso, SIP Caller intentará que siempre haya agentes disponibles. Cuanto más bajo a la izquierda esté el valor seleccionado, menos llamadas hará SIP Caller para dejar más agentes disponibles. En cambio, si configuran ese valor en el rango de números positivos, SIP Caller hará más llamadas, para que siempre haya llamadas esperando, y todos los agentes estén ocupados. Cuanto más a la derecha sea el valor elegido, más llamadas hará SIP Caller. Este valor puede modificarse una vez que la campaña arranca, por lo que pueden comenzar con un valor bajo, y luego ajustarlo hasta alcanzar el comportamiento deseado.

Por cualquier otra consulta, estamos a tu disposición.

Saludos.
 

Estadísticas del Foro

Temas
44.439
Mensajes
232.807
Miembros
78.338
Último miembro
neil.marsura