|
|
|
|
Discador Semiautom<EFBFBD>tico.
|
|
|
|
|
|
|
|
|
|
Objetivo:
|
|
|
|
|
Melhorar o processo de discagem ativa para pequenas opera<EFBFBD><EFBFBD>es de callcenter, o discador suporta "n" Campanhas com listas de at<EFBFBD> 10.000 contatos.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Regras para ativar o discador:
|
|
|
|
|
1 - Cadastrar uma campaha ou carregar uma nova lista de contatos para uma campanha.
|
|
|
|
|
2 - Na configura<EFBFBD><EFBFBD>o da campanha adicionar os agentes que poder<EFBFBD>o receber contatos da lista ativa.
|
|
|
|
|
3 - Ativar uma campanha observando que podemos ter apenas uma campanha ativa para cada fila.
|
|
|
|
|
4 - O agente deve ativar a op<EFBFBD><EFBFBD>o discador no m<EFBFBD>dulo de atendimento para esta apto a receber contatos.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fluxo discador no agente.
|
|
|
|
|
|
|
|
|
|
1 - Se o agente estiver habilitado para receber contatos o sistema seleciona um registro da campanha e o marca como utilizado para o mesmo.
|
|
|
|
|
2 - Importa este contato e seus n<EFBFBD>meros e inicia a discagem selecionando o primeiro da lista.
|
|
|
|
|
3 - O agente deve indicar uma classifica<EFBFBD><EFBFBD>o para o registro discado, podendo se a discagem doi bem sucedida gravar o status e uma mensagem
|
|
|
|
|
para o contato e liberar o registro recebendo um novo, ou classificar o <EFBFBD>ltimo n<EFBFBD>mero discado e discar o proximo n<EFBFBD>mero da lista.
|
|
|
|
|
4 - A lista para ser encerrada deve ter todos os registros classificados, contatos que por problemas eventualmente n<EFBFBD>o tenham sido classifi-
|
|
|
|
|
cados poder<EFBFBD>o ser por meio da interface dipon<EFBFBD>vel para o supervisor da fila.
|
|
|
|
|
|
|
|
|
|
Tabelas e fluxo no sistema.
|
|
|
|
|
|
|
|
|
|
Tabelas usadas para controle de discagem.
|
|
|
|
|
select * from pbx_campanha; -- Informa<EFBFBD><EFBFBD>es da Campanha.
|
|
|
|
|
select * from pbx_campanha_lista; -- Informa<EFBFBD><EFBFBD>es da Lista.
|
|
|
|
|
select * from pbx_campanha_contato; -- Informa<EFBFBD><EFBFBD>es dos contatos que comp<EFBFBD>em uma lista.
|
|
|
|
|
select * from pbx_campanha_contato_display; -- Label para identificar informa<EFBFBD><EFBFBD>es do contatos.
|
|
|
|
|
select * from pbx_campanha_contato_fone; -- Lista de telefones de um contato.
|
|
|
|
|
select * from pbx_campanha_agendamento; -- Gravar agendamentos futuros.
|
|
|
|
|
select * from pbx_campanha_audio; -- N<EFBFBD>o utilizada no momento.
|
|
|
|
|
select * from pbx_campanha_canais_discando; -- N<EFBFBD>o utilizada no momento.
|
|
|
|
|
select * from pbx_campanha_complemento; -- N<EFBFBD>o utilizada no momento.
|
|
|
|
|
select * from pbx_campanha_contato_status; -- Lista de status(classifica<EFBFBD><EFBFBD>es) padr<EFBFBD>o, podem ser adicionados outros.
|
|
|
|
|
select * from pbx_campanha_grupos; -- N<EFBFBD>o utilizada no momento.
|
|
|
|
|
select * from pbx_campanha_modelos; -- N<EFBFBD>o utilizada no momento.
|
|
|
|
|
select * from pbx_campanha_operacao; -- Contatos procesados quando atribuidos a um agente.
|
|
|
|
|
select * from pbx_campanha_status; -- Status permitidos para uma campanha.
|
|
|
|
|
select * from pbx_campanha_troncos; -- N<EFBFBD>o utilizada.
|
|
|
|
|
select * from pbx_campanha_usuarios; -- Usuarios habilitados a receber registros da campanha.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 -> Verifica se j<EFBFBD> existe um registro para o agente na tabela "pbx_campanha_operacao", como a atualiza<EFBFBD><EFBFBD>o da tela do agente <EFBFBD> feita por "periodic refresh"
|
|
|
|
|
as informa<EFBFBD><EFBFBD>es s<EFBFBD>o constantemente verificadas, quando o campo "cmpo_status" da "pbx_campanha_operacao" tem valor 0 indica que o agente ainda n<EFBFBD>o concluiu a
|
|
|
|
|
opera<EFBFBD><EFBFBD>o para este contato.
|
|
|
|
|
|
|
|
|
|
select cmpo_id, cmp_id, list_id, cont_id, conf_id, cmp_descricao, list_nome, cont_identificador,
|
|
|
|
|
cont_param1, cont_param2, cont_param3, cont_param4, cont_param5,
|
|
|
|
|
disp_param1, disp_param2, disp_param3, disp_param4, disp_param5,
|
|
|
|
|
conf_fone, lista_fones_discador, matricula, cmpo_status, carrega_fone, discagem_inicial
|
|
|
|
|
from pbx_campanha_operacao
|
|
|
|
|
where matricula = '$matricula'
|
|
|
|
|
and cmpo_status = 0
|
|
|
|
|
|
|
|
|
|
2 -> Quando n<EFBFBD>o existe um registro n<EFBFBD>o esta dispon<EFBFBD>vel em "pbx_campanha_operacao" <EFBFBD> verificado se existe uma campanha ativa para o dac e uma fila ativa,
|
|
|
|
|
se o agente estiver registrado na campanha podera requisitar um contato, que ser<EFBFBD> entao importado para a tabela "pbx_campanha_operacao".
|
|
|
|
|
|
|
|
|
|
select a.cmp_id, b.list_id,d.cont_id, d.conf_id, a.cmp_descricao, b.list_nome, c.cont_identificador,
|
|
|
|
|
c.cont_param1, c.cont_param2, c.cont_param3, c.cont_param4, c.cont_param5,
|
|
|
|
|
coalesce(e.disp_param1, 'Param1') as disp_param1, coalesce(e.disp_param2, '-') as disp_param2,
|
|
|
|
|
coalesce(e.disp_param3, '-') as disp_param3, coalesce(e.disp_param4, '-') as disp_param4, coalesce(e.disp_param5, '-') as disp_param5,
|
|
|
|
|
d.conf_fone, '' as lista_fones_discador, '$matricula' as matricula, 0 as cmpo_status, 0 as carrega_fone, 0 as discagem_inicial
|
|
|
|
|
from pbx_campanha a
|
|
|
|
|
inner join pbx_campanha_usuarios u on u.cmp_id = a.cmp_id and u.matricula = '$matricula'
|
|
|
|
|
inner join pbx_campanha_lista b on b.cmp_id = a.cmp_id and b.list_status = 1
|
|
|
|
|
inner join pbx_campanha_contato c on c.list_id = b.list_id and c.cont_id = (select min(cont_id) from pbx_campanha_contato where list_id = b.list_id and cont_discado = 0 and matricula is null and cont_status = 0)
|
|
|
|
|
inner join pbx_campanha_contato_fone d on d.cont_id = c.cont_id and d.conf_id = (select min(conf_id) from pbx_campanha_contato_fone where cont_id = c.cont_id and conf_discado = 0 and matricula is null)
|
|
|
|
|
inner join pbx_campanha_contato_display e on e.list_id = b.list_id
|
|
|
|
|
where a.cmp_status = 1
|
|
|
|
|
and a.id_dac = '$dac'";
|
|
|
|
|
|
|
|
|
|
A fun<EFBFBD><EFBFBD>o "GetDadosDiscador($dac, $idCampanha = 0)" <EFBFBD> respons<EFBFBD>vel por prover os dados do contato para os agentes logados em uma fila e registrados em uma campanha ativa.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|