Integração CTI

Configuração

Antes de iniciar a configuração da integração com o CTI, é importante configurar a base de dados do cliente. Para isto, é necessário preencher os campos da tabela EMPRESAS:

CampoDescrição
usa_ctiHabilita os botões de ligar no CRM
cti_autenticacao

Informa qual é a forma de autenticação do usuário no CTI (não é o socket), sendo:

  1. CURLOPT_USERPWD $agente:$senha informações cadastradas no usuário;
  2. token_auth: $token token no header http da requisição, informações cadastradas no usuário;
  3. token=$token token na URL da requisição, informações cadastradas no usuário;
  4. CURLOPT_USERPWD $agente:$senha + token_auth: $token token no header http da requisição, informações cadastradas no usuário.
cti_tipoInforma ao ‘ModuloCti.php’ que é para gerar uma requisição do socket para o web socket, o valor tem que ser 10
cti_protocolo Informa qual é o protocolo que vai ser feito a requisição
cti_ipInforma o endereço do CTI do cliente
cti_portaInforma a porta do CTI do cliente
cti_caminhoInforma o resto do endereço da API do CTI do cliente
cti_usa_linhaNão utilizado
cti_numero_linhaNão utilizado
cti_usa_zero_dddDefine que se o valor for igual a 1 então adiciona o tom de discagem (0 zero antes do número de telefone) quando não for ramal interno
cti_nome_origemVvariável que vai na URL que diz que é o número de origem, número que tá ligando, no caso ramal que tá ligando
cti_nome_destinoVariável que vai na URL que diz que é o número de destino, número que tá recebendo

Nota

É possível que os campos da tabela EMPRESAS ainda não estejam disponíveis na base do cliente.

Exemplo:
  • Campo usa_cti: 1
  • Campo cti_autenticacao: 1
  • Campo cti_tipo: 10
  • Campo cti_protocolo: https
  • Campo cti_ip: demo…
  • Campo cti_porta: 8.080
  • Campo cti_caminho: api/clicktodial
  • Campo cti_usa_linha: 0
  • Campo cti_numero_linha: 0
  • Campo cti_usa_zero_ddd: 0
  • Campo cti_nome_origem: origem
  • Campo cti_nome_destino: destino

Formato da URL: $protocolo://$ip:$porta/$caminho?$nomeOrigem=$ramal&$nomeDestino=$phone$tokenUrl

URL com os dados: https://demo.integracaocto.com.br:8080/api/clicktodial?origem=3501&destino=4732100123

Como o CRM na plataforma também utilizará o Web Socket, logo são alteradas as informações da tabela ‘empresas’ para a tabela ‘configuracao_cti’. Isso significa que, os arquivos mais novos já utilizam para configurar o recebimento da ligação conforme necessidade, sem alterar código nos arquivos:

CampoDescrição
autenticacao

Informa qual é a forma de autenticação do usuário no CTI (não é o socket), sendo: 1. CURLOPT_USERPWD $agente:$senha informações cadastradas no usuário;

  1. token_auth: $token token no header http da requisição, informações cadastradas no usuário;
  2. token=$token token na URL da requisição, informações cadastradas no usuário;
  3. CURLOPT_USERPWD $agente:$senha + token_auth: $token token no header http da requisição, informações cadastradas no usuário.
tipo Informa ao ‘ModuloCti.php’ que é para gerar uma requisição do socket para o web socket, o valor tem que ser 10
protocolo Informa qual é o protocolo que vai ser feito a requisição
ip Informa o endereço do CTI do cliente
porta Informa a porta do CTI do cliente
caminho Informa o resto do endereço da API do CTI do cliente
usa_linhaNão utilizado, porém vai utilizado para dar o tom de discagem, quando 1 ativa a função
numero_linha

Não utilizado, porém será o número do tom de discagem, o valor presente será usado direto no número do telefone

metodo_chamadaInforma o método da chamada para o CTI
nome_variavel_origem_sainteVariável que vai na URL que diz que é o número de origem. Número/ramal que está ligando, no caso das ligações realizadas
nome_variavel_destino_sainteVariável que vai na URL que diz que é o número de destino. Número que está recebendo a ligação, no caso das ligações realizadas
nome_variavel_origemVariável que vai na URL que diz que é o número que está ligando, no caso das ligações recebidas
nome_variavel_destino

Variável que vai na URL que diz que é o número que está recebendo a ligação, no caso das ligações recebidas

nome_variavel_audioVariável que vai na URL que diz que é o endereço onde está disponível o áudio da ligação

Depois de configurar o banco, devem ser substituídos os arquivos /sistema.php e /modulos/ModuloCti.php pela versão atual do sistema. Feito isso, o arquivo de /sistema.php será capaz de se conectar via protocolo WS no Web Socket, e iniciar ações, como a exibição do pop-up de inicio, recebimento e final de ligação. Ao trocar o arquivo do /modulos/ModuloCti.php, este será capaz de iniciar ligações, quando o cti_tipo for igual a 10.

Arquivos que devem ser colocados na base desse cliente na pasta /wconnect/:

Nota

Somente o arquivo WConnect_MonitoraRamal.php precisa ser alterado por causa dos acessos do banco de dados, ou alterar como os demais arquivos.

Também é necessário configurar a tabela WL_chamados_empresa do banco de dados do Gestão de Relacionamento | CRM com os dados corretos do cliente em questão. Os dados do cliente a serem informados nesta tabela são: nome_banco, senha_banco e tenant.

CampoTipo de dados
empresa_idInt
nomeVarchar
nome_bancoVarchar
senha_bancoVarchar
senha_padraoVarchar
ativoInt
versao_ambienteVarchar
data_versaoDate
hostVarchar
vipInt
tenantVarchar
curva_health_scoreVarchar
health_scoreInt

Funcionamento da comunicação entre o CRM, Web Socket e CTI do Cliente:

Imagem

Ao iniciar uma ligação através do CRM são verificadas as informações do cliente e, tendo os dados de conexão com o Web Socket configurados corretamente, é enviado uma chamada para o Web Socket de início de ligação. Ao mesmo tempo completa as ações do módulo, salva os dados da ligação para histórico e exibe o pop-up p de início de ligação. Enquanto isso, o Web Scoket recebe a chamada, processa e consulta os valores, e, tendo todos os dados válidos, envia uma requisição para o CTI do cliente que inicia a ligação.

Quando a ligação encerra, o CTI do cliente envia uma requisição para o Web Scoket do CRM que, recebe a chamada, processa a requisição e consulta as informações para se conectar ao usuário. Com as informações, salva os dados da ligação para histórico e verifica se o mesmo está logado no CRM naquele momento e, caso esteja, envia a chamada para o cliente do Web Socket, que recebe a chamada e exibe o pop-up de final de ligação.

Este artigo ajudou você?