THE BLOG

27
out

Como filtrar ligações improdutivas no call center?

Problema

Em operações de call center com discagem automática, cerca de 70% das ligações são atendidas de maneira mecânica, por caixas de mensagem, mensagem de operadora, secretária eletrônica, etc. Imagina enviar todas estas chamadas para a operação do call center? Além do custo destas ligações, que são tarifadas pela operadora de telefonia, isso também gera improdutividade gigantesca, e uma insatisfação muito grande para o operador de call center que odeia receber este tipo de chamada, onde não consegue se falar com ninguém.

A telefonia brasileira infelizmente não respeita nenhum padrão para esse tipo de atendimento automático. Cada operadora usa uma gravação diferente e um comportamento também diferente. Por exemplo: Algumas atendem a ligação e iniciam a reprodução do audio “Oi… O número que você ligou está fora de área”. Outras reproduzem parte da gravação ainda no estado de “chamando”, antes de atender a chamada, atendendo a chamada quando restam exatos 3 segundos pra que a gravação finaliza. Algo assim: [CHAMANDO] Sua chamada esta sendo encaminhada para a caixa de mensagens e será tarifada após o BIP. [ATENDEU] Deixe seu recado após o tom… BIP. Enfim, a complexidade de identificar estes diversos padrões é muito alta e ainda por cima, as operadoras constantemente modificam estes comportamentos em seus sistemas, gerando demanda de ajustar parâmetros pra que o novo padrão seja também filtrado.

Existem soluções amplamente usadas pelos sistemas de discagem automática, com índices de assertividade variados. A maioria consegue filtrar corretamente cerca de 65~75% das chamadas ruins. Ainda sobrando uma grande parte pra operação perder tempo e descartar de forma manual.

O índice de acerto destas soluções não é alto pois a maioria delas foi desenvolvida fora do país, focada em analisar chamadas com padrão daquele determinado país, e quando usada na telefonia brasileira, infelizmente acaba falhando muito.

Solução

Usando conceitos e tecnologias de última geração como MACHINE LEARNING e DEEP LEARNING, a FluxoTI desenvolveu um robô capaz de identificar os diversos padrões existentes nas operadoras e filtrar muito melhor as chamadas improdutivas, que não devem ser enviadas para a operação. Nosso filtro está constantemente aprendendo com as chamadas analisadas e por isso está sempre atualizado, consegue passar a detectar novos padrões e filtra-los corretamente cerca de apenas 2 horas após um novo padrão ter aparecido.

Como funciona

No sistema de telefonia onde roda a discagem preditiva das chamadas, os primeiros 2 segundos da ligação devem ser gravados e analisados em tempo real por nosso serviço. Isso é feito pela implantação de um CLIENT no serviço, que é responsável por conectar-se ao nosso serviço de webservice, enviar o audio e obter a resposta da análise. O sistema de telefonia agora sabendo se a chamada é HUMAN, SILENCE ou MACHINE, pode decidir o destino da ligação de acordo.

25
mar

Consulta da Portabilidade no Elastix

Veja neste tutorial a forma mais simples de configurar o Elastix para consultar a operadora de um numero antes de discar e rotear a chamada corretamente.

Após adquirir um de nossos pacotes de acesso á base da portabilidade FluxoTI, disponível em http://portabilidade.fluxoti.com, siga os passos abaixo!

1) Clonar e instalar o projeto:

Acesse seu servidor Elastix via SSH e execute os seguintes comandos:
cd /root
git clone https://github.com/diogodhh/agi-consulta-operadora.git
cd agi-consulta-operadora
mv var-lib-asterisk-agi-bin/portabilidade.php /var/lib/asterisk/agi-bin/.
chmod +x /var/lib/asterisk/agi-bin/portabilidade.php

Agora, edite o arquivo /var/lib/asterisk/agi-bin/portabilidade.php e configure-o com o seu token da API:
#!/usr/bin/php -q
<?php
# Definir Token:
$token_api = ''; <- #### INSIRA AQUI SEU TOKEN #####
# Validação do numero:
...


2) Adicionar o contexto da consulta ao plano de discagem

Abra o arquivo /etc/asterisk/extensions_custom.conf e adicione as seguintes linhas ao final do arquivo:
[consulta-operadora]
exten => _X.,1,NoOp(---------Consulta Operadora FluxoTI------------)
same => n,Agi(portabilidade_elastix.php,${EXTEN}) ; Esta linha irá criar a variável RN1
same => n,Goto(from-internal,${RN1}${EXTEN},1) ; Aqui o RN1 é adicionado como prefixo às ligações.


3) Configurar o tronco de consulta no Elastix

Acesse a interface web de seu servidor Elastix, vá até: PBX ~> Trunks ~> Add Custom Trunk e crie um tronco:

create-custom-trunk

  • Trunk Name: consulta-operadora
  • Custom Dial String: Local/$OUTNUM$@consulta-operadora

4) Configurar a rota de saída para a consulta

Vá até PBX ~> Outbound Routes ~> Add Route e crie uma rota:
create-route-to-custom-trunk

  • Route Name: consulta-operadora
  • prepend: deixar em branco
  • prefix: deixar em branco
  • match pattern: 0ZX[6-9].
  • CallerID: deixar em branco
  • Trunk Sequence for Matched Routes: consulta-operadora

5) Criar os troncos pra onde as ligações serão enviadas

Vá até PBX ~> Trunks ~> Add SIP Trunk e crie todos os troncos destinos das ligações.


6) Criar rotas de saída para cada operadora após a consulta.

Vá até PBX ~> Outbound Routes ~> Add Route e crie uma rota para cada destino.
Por exemplo, criando a rota para números OI:
create-route-to-final-trunk

  • Route Name: operadora-oi
  • prepend: deixar em branco
  • prefix: 55314
  • match pattern: X.
  • CallerID: deixar em branco
  • Trunk Sequence for Matched Routes: tronco-oi