forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
5.2 KiB
76 lines
5.2 KiB
Discador Semiautomático. |
|
|
|
Objetivo: |
|
Melhorar o processo de discagem ativa para pequenas operações de callcenter, o discador suporta "n" Campanhas com listas de até 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ção da campanha adicionar os agentes que poderã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ção discador no mó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úmeros e inicia a discagem selecionando o primeiro da lista. |
|
3 - O agente deve indicar uma classificaçã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 último número discado e discar o proximo número da lista. |
|
4 - A lista para ser encerrada deve ter todos os registros classificados, contatos que por problemas eventualmente não tenham sido classifi- |
|
cados poderão ser por meio da interface diponível para o supervisor da fila. |
|
|
|
Tabelas e fluxo no sistema. |
|
|
|
Tabelas usadas para controle de discagem. |
|
select * from pbx_campanha; -- Informações da Campanha. |
|
select * from pbx_campanha_lista; -- Informações da Lista. |
|
select * from pbx_campanha_contato; -- Informações dos contatos que compõem uma lista. |
|
select * from pbx_campanha_contato_display; -- Label para identificar informaçõ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ão utilizada no momento. |
|
select * from pbx_campanha_canais_discando; -- Não utilizada no momento. |
|
select * from pbx_campanha_complemento; -- Não utilizada no momento. |
|
select * from pbx_campanha_contato_status; -- Lista de status(classificações) padrão, podem ser adicionados outros. |
|
select * from pbx_campanha_grupos; -- Não utilizada no momento. |
|
select * from pbx_campanha_modelos; -- Nã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ão utilizada. |
|
select * from pbx_campanha_usuarios; -- Usuarios habilitados a receber registros da campanha. |
|
|
|
|
|
1 -> Verifica se já existe um registro para o agente na tabela "pbx_campanha_operacao", como a atualização da tela do agente é feita por "periodic refresh" |
|
as informações são constantemente verificadas, quando o campo "cmpo_status" da "pbx_campanha_operacao" tem valor 0 indica que o agente ainda não concluiu a |
|
operaçã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ão existe um registro não esta disponível em "pbx_campanha_operacao" é 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á 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ção "GetDadosDiscador($dac, $idCampanha = 0)" é responsável por prover os dados do contato para os agentes logados em uma fila e registrados em uma campanha ativa. |
|
|
|
|
|
|
|
|