d. Base de Datos
Vamos a explicar algunos datos importantes sobre las tablas que pueden ser usadas para obtener información para Reportes. Estas tablas se encuentran en la Base ccrepo.
QUEUE_LOG_REPO
Se encuentra la información de los estados de las llamadas de las campañas entrantes y salientes.
origid: Id de tabla origen (puede repetirse).
datetime: Fecha hora del estado.
callid: Si corresponde al evento id de la llamada (no es el guid).
queuename: Nombre de la campaña si corresponde al evento.
event: Ver lista de evenos.
data a data5: Dependiendo del evento que valor tengan.
Evento | Descripcion | data1 | data2 | data3 | data4 | data5 |
AGENTLOGIN | Un agente se logueo. | N/A | N/A | N/A | N/A | N/A |
AGENTLOGOFF | Agente que salio, logoff. Cantidad de segundos pasados desde que se logueo. | logintime | N/A | N/A | N/A | |
ABANDON | El cliente abandonó en una cola antes que lo atendieran. position es donde estaba en el momento de cortar, origposition es en la posición que entro inicialmente, waittime es el tiempo que espero hasta cortar. | position | origposition | waittime | ||
COMPLETEAGENT | El que llamó fue conectado a un agente, y la llamada fue terminada normalmente por el agente. El holdtime del agente y la duración de la llamada son guardadas al igual que la posición inicial donde entró la llamada a la cola. | holdtime | calltime | origposition | N/A | N/A |
COMPLETECALLER | El que llamó fue conectado a un agente, y la llamada fue terminada normalmente por el que llamó. El holdtime del agente y la duración de la llamada son guardadas al igual que la posición inicial donde entro la llamada a la cola. | holdtime | calltime | origposition | N/A | N/A |
CONNECT | El que llamó fue conectado a un agente, se graba el tiempo que espero en ser atendido, uniqueid del agente que atendió la llamada. ringtime el tiempo que el teléfono del agente sonó antes de atender la llamada. | holdtime | bridgedchanneluniqueid | ringtime | N/A | N/A |
ENTERQUEUE | Entro una llamada a la cola. | N/A | callerid | N/A | N/A | |
EXITEMPTY | El que llamó fue forzado a salir de la cola, porque la cola no tenia miembros que pudieran ser alcanzados. Se graba la posición en la cola cuando se corto, la posición orginal que entro la llamada a la cola, cuanto espero la llamada antes de ser cortada. | position | origposition | waittime | N/A | N/A |
EXITWITHKEY | El que llamó uso una tecla para salir de la cola, la tecla y la posición en la cola son grabadas, también la posición original que entro a la cola y el tiempo que espero. | key | position | origposition | N/A | N/A |
EXITWITHTIMEOUT | El que llamó espero en la cola mucho tiempo y dio timeout. La posición en la cola cuando paso el timeout es grabada al igual que la posición en que entro y la cantidad de tiempo que espero. | position | origposition | waittime | N/A | N/A |
RINGNOANSWER | Luego de x ms ringueando en un agente, este no atendió y se fue la llamada, se guarda el tiempo que ringueo sin ser atendida. | ringtime | N/A | N/A | N/A | N/A |
REALPAUSE/REALUNPAUSE | El agente fue puesto en pausa (Evento de Pausa de Integra), si es un unpause se guarda la cantidad de segundos entre que se pauso y despauso (pausetime). | pausetime | N/A | N/A | N/A | N/A |
UNBREAK/BREAK | El agente fue puesto en break en data , se pone el motivo por el cual se puso en break (descanso), tener en cuenta que entre BREAK y UNBREAK están las pausas también correspondientes al estado de BREAK para que no le entren llamadas: estados predefinidos de motivo: BATHROOM, TRAINING, LUNCH, PERSONAL, OTHER. breaktime se guarda la cantidad de segundos entre que fue a break y volvio. | motivo | comentario | breaktime | N/A | N/A |
OUTCALL | Llamada saliente de los agentes, se utiliza para colas salientes, para poder tener estadísticas de las llamadas salientes y su estado. Para poder utilizar este evento es necesario armar el flujo como corresponde el el dialplan. | dialstatus | duration | totaltime | dialednumber | guid |
PAUSE/UNPAUSE | Evento de pausa de telefonía no lo usamos en reportes. | |||||
PAUSEALL/UNPAUSEALL | Evento de pausar en todas las colas de telefonía no lo usamos en reportes. | |||||
ATTENDEDTRANSFER BLINDTRANSFER TRANSFER | Llamada Completada por Agente hasta ser transferida | extension | context | holdtime | calltime | origposition |
HOLD | Agente pone llamada en Espera | channel | calleridname | calleridnum | connectedlinename | connectedlinenum |
UNHOLD | Agente saca llamada de Espera, si cortan antes puede no estar el evento de UNHOLD | channel | calleridname | calleridnum | connectedlinename | connectedlinenum |
CDR_REPO
Detalle de llamadas un registro por llamada.
calldate: Fecha y hora inicio de llamada.
clid: Callerid completo.
src: Origen llamada.
dst: Destino llamada.
dcontext: Contexto destino.
channel: Canal origen.
dstchannel: Canal destino.
lastapp: Última actividad del workflow ejecutada.
duration: Duración total de la llamda.
billsec: Duración desde que fue atendida la llamada.
disposition: Resultado de la llamda.
amaflags: No la usamos.
accountcode: Set setea el agente u otros datos de la llamada.
userfield: Donde se hace el tag de la llamada la marca.
uniqueid: Id de la llamada.
type: Si se grabo la llamada.
guid: Id única de la llamada y nombre de la grabación .
causecode: Número del proveedor del resultado de la llamada.
campaign: Campaña de la llamada.
charged_balance: Para tarificacion pbx virtual.
real_balance: Para tarificacion pbx virtual.
note: Para tarificacion.
contact: Id del contacto de discador.
finishtime: Si estamos tageando las grabaciones fecha/hora de tipificación.
rating: Calificación media de la llamada.
dialerbase: Nombre de la base de discador.
SMS_REPO
Mensajes de texto.
id: Id único del mensaje.
idm: Dependiendo de la api usada id del mensaje.
campaign: Campaña.
dateprocessed: Fecha de envio o llegada.
direction: I o O (entrante o saliente).
callerid: Destino u origen.
message: Mensaje de texto.
agent: Agente de envio.
smsbase: Nombre base discador.
result: Dependiendo la API resultado del mensaje.
readsms: si fue leido
sessionid: guid para session con agente
WEBCHAT_LOG_REPO
Evento | Descripción | data1 | data2 | data3 | data4 | data5 |
ABANDON | El cliente abandonó en una cola antes que lo atendieran. position es donde estaba en el momento de cortar, origposition es en la posición que entro inicialmente, waittime es el tiempo que espero hasta cortar. | position | origposition | waittime | ||
COMPLETEAGENT | El que solicito fue conectado a un agente, y el chat fue terminado normalmente por el agente. El holdtime del agente y la duración de la llamada son guardadas al igual que la posición inicial donde entró la llamada a la cola. | holdtime | chattime | origposition | messageqt | N/A |
COMPLETECALLER | El que llamó fue conectado a un agente, y el webchat fue terminado normalmente por el que llamó. El holdtime del agente y la duración del webchat son guardadas al igual que la posición inicial donde entro el webchat a la cola. | holdtime | chattime | origposition | messageqt | N/A |
CONNECT | El solito el chat fue conectado a un agente, se graba el tiempo que espero en ser atendido, nombre del agente que atendió la llamada. | holdtime | agent | N/A | N/A | |
ENTERQUEUE | Entro un webchat a la cola | name | phonenumber | N/A | N/A | |
REENTERQUEUE | Se recuperó un chat al iniciar el servidor | name | phonenumber | N/A | N/A | |
TRANSFER | --- | -- | -- | -- | -- | -- |
OUTOFTIME | El cliente solicito un chat pero la campana no estaba en hora | -- | -- | |||
OUTCALL | Una llamada por web chat fue terminada | audio/video | duration | dialednumber | webchatguid | |
NOAGENTS | El cliente entra a chatear pero no hay agentes disponibles para la campaña. (Los campos de data1 y data2 se guardaran en caso de que se conozcan) | name | ||||
MAXQUEUE | La cantadidad de chat activos para la campaña (esperando y atendidos) supera el valor establecido (Max chats) (Los campos de data1 y data2 se guardaran en caso de que se conozcan) | name | ||||
TRANSFERRED | La interacción fue transferida desde un agente a otro. 'de' es el nombre del agente que transfirió la interaccioón y 'para' el agente al que fue transferida | de | para | |||
ATTENDED | La interacción fue atendida por el agente al que se le transfiró | de | para |
SMS_LOG_REPO
Evento | Descripción | data1 | data2 | data3 | data4 | data5 |
COMPLETEAGENTOUT | Una interacción iniciada por un agente finalizó. | chattime | messageqt | number | ||
COMPLETEAGENT | El que solicito fue conectado a un agente, y el chat fue terminado normalmente por el agente. El holdtime del agente y la duración de la llamada son guardadas al igual que la posición inicial donde entró la llamada a la cola. | holdtime | chattime | origposition | messageqt | N/A |
CONNECT | El SMS se conecto con un agente. Se guardan tiempo de espera, agente que fue conectado y numero de celular | holdtime | agent | number | ||
ENTERQUEUE | Un cliente envio un SMS que pertenecia a una campaña y esta se encontraba en hora. Se guarda el numero de telefono del cliente. | number | ||||
REENTERQUEUE | Se recuperó un chat al iniciar el servidor | number | ||||
HOLIDAYMESSAGE | Se le envío sms de dia feriado. | number | message | |||
OUTOFTIME | Un cliente enviio un SMS que pertenecia a una campaña y esta se encontraba fuera de hora. Se guarda el numero de telefono del cliente. | number | ||||
OUTSMS | Se genera cuando un agente inicia una interaccion de sms. | number | ||||
TRANSFERRED | La interacción fue transferida desde un agente a otro. 'de' es el nombre del agente que transfirió la interaccioón y 'para' el agente al que fue transferida | de | para | |||
ATTENDED | La interacción fue atendida por el agente al que se le transfiró | de | para |
EMAIL_LOG_REPO
Evento | Descripción | data1 | data2 | data3 | data4 | data5 |
COMPLETEAGENTOUT | Una interacción iniciada por un agente finalizó. | chattime | messageqt | adress | ||
COMPLETEAGENT | El mail fue conectado a un agente, y el chat fue terminado normalmente por el agente. El holdtime del agente y la duración de la interaccion son guardadas al igual que la posición inicial donde entró la llamada a la cola. | holdtime | chattime | origposition | messageqt | N/A |
CONNECT | El Email se conecto con un agente. Se guardan tiempo de espera, agente que fue conectado y direccion de email | holdtime | agent | address | N/A | N/A |
HOLIDAYMESSAGE | Se envió mail de feriado. | address | message | N/A | N/A | N/A |
ENTERQUEUE | Un cliente envio un Email que pertenecia a una campaña. Se guarda el numero de dirección de mail del cliente. | address | subject | N/A | N/A | N/A |
REENTERQUEUE | Se recuperó un chat al iniciar el servidor | address | subject | N/A | N/A | N/A |
OUTEMAIL | Se genera cuando un agente inicia una interaccion de email. | address | subject | N/A | N/A | N/A |
STARTEMAILDIALER | Se genera cuando comienza a ejecutarse un dialer | spool length | N/A | N/A | N/A | N/A |
FINISHEMAILDIALER | Se genera cuando se termina de ejecutar el dialer | spool length | N/A | N/A | N/A | N/A |
STOPEMAILDIALER | Se genera cuando se detiene el dialer en ejecucion | spool length | N/A | N/A | N/A | N/A |
TRANSFERRED | La interacción fue transferida desde un agente a otro. 'de' es el nombre del agente que transfirió la interaccioón y 'para' el agente al que fue transferida | de | para | |||
ATTENDED | La interacción fue atendida por el agente al que se le transfiró | de | para | |||
BLACKLIST | Se genera cuando un email entrante pertenece a una blacklist. No se genera una interacción. Se guarda dirección de email, asunto y el email_id del email (que matchea con el email guardado en email_repo). Si es una interacción que inicia el agente, se registra el nombre del agente. | adress | subject | email_id |
TWITTER_LOG_REPO
Evento | Descripción | data1 | data2 | data3 | data4 | data5 |
COMPLETEAGENT | El que solicito fue conectado a un agente, y el chat fue terminado normalmente por el agente. El holdtime del agente y la duración de la interaccion son guardadas al igual que la posición inicial donde entró la llamada a la cola. | holdtime | chattime | origposition | messageqt | N/A |
CONNECT | La interaccion se conecto con un agente. Se guardan tiempo de espera, agente que fue conectado y el cliente | holdtime | agent | id client | client username | |
ENTERQUEUE | Un cliente envio un Tweet que pertenecia a una campaña. Se guarda el nombre del cliente. | address | subject | |||
REENTERQUEUE | Se recuperó un chat al iniciar el servidor. | address | subject | |||
HOLIDAYMESSAGE | Se envió respuesta a la publicacion o direct message con el mensaje de feriado | address | message | |||
OUTTWEET | Se genera cuando un agente inicia una interaccion de twitter. | address | subject | |||
TRANSFERRED | La interacción fue transferida desde un agente a otro. 'de' es el nombre del agente que transfirió la interaccioón y 'para' el agente al que fue transferida | de | para | |||
ATTENDED | La interacción fue atendida por el agente al que se le transfiró | de | para |
MESSENGER_LOG_REPO
Evento | Descripción | data1 | data2 | data3 | data4 | data5 |
COMPLETEAGENT | El que solicito fue conectado a un agente, y el chat fue terminado normalmente por el agente. El holdtime del agente y la duración de la interacción son guardadas al igual que la posición inicial donde entró la llamada a la cola. | holdtime | chattime | origposition | messageqt | N/A |
CONNECT | La interacción se conecto con un agente. Se guardan tiempo de espera, agente que fue conectado y el cliente | holdtime | agent | id client | client name | |
ENTERQUEUE | Un cliente envio un mensaje que pertenecía a una campaña. Se guarda el nombre del cliente. | address | message | |||
ENTERQUEUE | Se recueró un chat al iniciar el servidor. | address | message | |||
HOLIDAYMESSAGE | Se respondió mensaje de feriado | address | message | |||
TRANSFERRED | La interacción fue transferida desde un agente a otro. 'de' es el nombre del agente que transfirió la interaccioón y 'para' el agente al que fue transferida | de | para | |||
ATTENDED | La interacción fue atendida por el agente al que se le transfiró | de | para |
FACEBOOK_LOG_REPO
Evento | Descripción | data1 | data2 | data3 | data4 | data5 |
COMPLETEAGENT | El que solicito fue conectado a un agente, y el chat fue terminado normalmente por el agente. El holdtime del agente y la duración de la interacción son guardadas al igual que la posición inicial donde entró la llamada a la cola. | holdtime | chattime | origposition | messageqt | N/A |
CONNECT | La interacción se conecto con un agente. Se guardan tiempo de espera, agente que fue conectado y el cliente | holdtime | agent | id client | client name | |
ENTERQUEUE | Un cliente envió un mensaje que pertenecía a una campaña. Se guarda el nombre del cliente. | post id | message | |||
REENTERQUEUE | Se recuperó un chat al iniciar el servidor. | post id | message | |||
HOLIDAYMESSAGE | Se respondio con un comentario el texto del dia feriado, | post id | message | |||
OUTFACEBOOK | Se genera cuando un agente inicia una interacción de facebook, genera un nuevo post. | |||||
TRANSFERRED | La interacción fue transferida desde un agente a otro. 'de' es el nombre del agente que transfirió la interaccioón y 'para' el agente al que fue transferida | de | para | |||
ATTENDED | La interacción fue atendida por el agente al que se le transfiró | de | para |
TAGS
Marcas de llamadas.
id: Autogenerado.
datetime: Fecha hora de la marca.
user: Quien realizo la marca.
guid: Id único de la grabación.
time: Tiempo en segundos de donde es la marca.
comment: Comentario de la marca.
SIPCHAT
Chat entre agentes y supervisores.
id: Autogenerado.
datecreated: Fecha hora del mensaje.
src: Origen.
dest: Destino.
message: Mensaje de texto.
srcagent: Agente origen.
dstagent: Agente destino.
status: Estado del mensaje (SUCCESS, FAILURE).
AUDITORY
Auditoría general del sistema.
id: Autogenerado.
datetime: Fecha del evento.
userid: Usuario que ejecuto.
host: Ip desde donde se ejecuto.
action: Acción que se realizó.
BLACK_LIST_HISTORY
Histórico de números marcados en lista de no marcado o que intentaron ingresar.
id: Autogenerado.
calldate: Fecha hora del intento.
src: Agente que intento marcar .
dst: Número marcado o que intento ingresar.
MARCADORES
Para cargar los marcadores desde base de datos primero se carga calls_spool y luego el dialer_base, tener en cuenta de ver en dialer_base si ya hay alguna lista activa para esa campaña para no activar dos. Siempre debe existir una activa por campaña.
CALLS_SPOOL
campaign: Campaña de marcador.
destination: Teléfono a marcar.
status: Estado (1 pronto para ser marcado, 0 en proceso, 3 bloqueado por la lista de no marcado).
data: Variables a pasar al workflow y forms.
alternatives: Lista separada por : de telefonos alternativos del cliente.
contact: Id del contacto para seguimiento en CDR.
dialerbase: Nombre de la base (lista) que pertenece el contacto.
priority: Prioridad (9999 habitualmente, nunca 1 pero se puede cambiar a > 1 para que los mas pequeños se ejecuten antes).
agentphone: Para progresivo teléfono del agente que pertenece el contacto.
DIALER_BASE
id: Autonumerico.
campaign: Nombre de la campaña de discador.
name: Nombre de la lista subida.
records: Cantidad de registros de la lista.
active: Si esta activada actualmente.
percentage: que porcentaje de cada lista obtener en cada vuelta.