
Uma das últimas tendências são os bots de bate-papo online. Mas o que fazer com os clientes que estão offline? Uma grande porcentagem de pessoas prefere ligar. Eles precisam de uma grande equipe de operadores ou de uma solução para automatizar o trabalho de voz. Oferecemos uma solução para reduzir o trabalho e os custos (e quase não carregam o programador).
Como programar com rapidez e facilidade qualquer menu de voz, autoinformer, robô de secretária com referência à sua base de clientes?
Spoiler: Tudo é implementado em webhooks e um exemplo é dado em PHP.
Discutimos sob o corte.
O que e porque?
Por exemplo, você tem um serviço de entrega ou uma loja online com seu próprio serviço de logística. Alguns clientes ligam para descobrir como estão indo com o pacote / produto e isso pode ser facilmente automatizado. Da mesma forma - a geolocalização de um táxi, a coleta de dados dos medidores, em geral, qualquer informação on-line individual que você possa fornecer a um cliente e não gastar tempo no tempo de "ajuda" dos operadores ativos.
Automatizando isso é muito simples, descreveremos um exemplo abaixo. E, ah, tudo isso pode ser feito absolutamente de graça.
Por que não o seu asterisco?
Obviamente, tudo pode ser feito no Asterisk, mas aqui, além do desenvolvedor, também é necessário um administrador e com conhecimento da segurança das redes de voz (já que elas gostam muito de cracking).
Consideramos a implementação mais simples da solução para o problema - nos webhooks.
Lista de métodos
Para o trabalho, precisamos de apenas 2 métodos novos, mas cada um deles oferece muitas oportunidades e, o mais importante, ciclos ilimitados. Graças aos ciclos, você pode obter um menu de voz de qualquer profundidade e um informante sobre qualquer assunto.
Os principais métodos:
- NOTIFY_START - início de uma chamada recebida no PBX
- NOTIFY_IVR - resposta do assinante à ação especificada
Uma descrição detalhada dos métodos para copiar e colar está disponível
na descrição da API .
Para solicitações NOTIFY_START e NOTIFY_IVR, é possível alterar "on the fly" o cenário da chamada atual enviando em resposta uma das seguintes opções:





De fato, o cliente liga e ouve a saudação e, em seguida, disca um número específico (por exemplo, número do pedido), enviamos uma notificação com os números que ele discou, o script do assinante verifica o banco de dados e envia uma resposta para a notificação. A resposta pode conter o ID do arquivo de voz ou uma variante da mensagem de voz padrão.
Temos um sistema padrão para reproduzir números, portanto, não há necessidade de gravar uma mensagem de voz preliminar, ou seja, a notificação desejada é retirada do banco de dados e é reproduzida pelo robô como um número. Ou você pode criar até 100 variantes de notificações por voz de modelo e enviá-las em resposta a uma solicitação do cliente (suas mercadorias estão em estoque, você pode recebê-las das 9:00 às 22:00 diariamente, exceto domingo, seu pacote está no ponto de coleta - metrô Belorusskaya) .
Mínimo para implementação
Para que a secretária possa atender, você precisa de pelo menos um número de telefone e uma central telefônica. Também vale a pena fazer o download antecipado ou ler automaticamente as respostas da secretária.
Personalizar

- Um PBX gratuito para nossa tarefa é configurado em três cliques (selecione o número desejado de funcionários, o menu de voz pode ser configurado posteriormente).
- Os números de telefone para trocas telefônicas automáticas podem ser conectados em qualquer cidade grande da Federação Russa ou em 90 países do mundo. O número é incluído imediatamente após a verificação dos documentos (se você precisar de documentos para esta região). Você também pode conectar um de seus números gratuitamente.
- Para ler as saudações de voz, vá para a seção "Chamadas recebidas e menu de voz" e selecione a opção mais adequada. Você pode enviar seus arquivos ou simplesmente imprimir o texto e o robô o lerá automaticamente. Existem 16 idiomas e várias vozes disponíveis para cada idioma (14 votos em inglês). Você pode salvar até 100 saudações de voz em sua conta pessoal.

Exemplo PHP
Para mostrar possibilidades diferentes, criamos 4 exemplos de trabalho com IVR em PHP.
- O sistema determina os três últimos dígitos do CallerID (um exemplo de como trabalhar com dados no número e pronunciar os dígitos)
- O usuário digita a data de nascimento do DTMF e o sistema informa quantos dias antes de seu DR. (Trabalhando com DTMF e pronunciando números)
- Menu infinito de vários níveis: o usuário pode clicar em números e acessar o menu seguinte ou anterior (um exemplo de como você pode criar qualquer número de menus de voz com um ciclo simples).
- Um exemplo de autorização para obter um equilíbrio (útil para muitos exemplos da vida).
Os três primeiros exemplos estão disponíveis no
Github . No exemplo, todos os elementos necessários estão detalhados, você só precisa substituir os arquivos por um encadeamento (que você deve pré-carregar ou ler na troca).
Tarefa 4 : o usuário faz uma saudação de voz e é solicitado a digitar seu número de identificação. Após digitar o número, o sistema pronuncia a balança, despede-se usando uma frase da lista de populares e encerra a chamada.
Damos um exemplo de código para a tarefa descrita.
Código PHP :
$request = new Request(); $notify = self::getEvent([AbstractNotify::EVENT_START, AbstractNotify::EVENT_IVR]); if (!$notify) { return; } switch ($notify->event){ case AbstractNotify::EVENT_START: $request ->setIvrPlay(self::INFO_FILE_ID) ->setWaitDtmf(TIMEOUT , ATTEMPTS, MAXDIGITS, DTMF_NAME, DEFAULT_BEHAVIOUR); break; case AbstractNotify::EVENT_IVR: if (!empty($notify->wait_dtmf->digits)) { $balance = getBalance($notify->wait_dtmf->digits); $request->setIvrSayNumber($balance, 'en'); } elseif (!empty($notify->ivr_saynumber)) { $request->setIvrSayPopular(POPULAR_PHRASE_NUM, 'en'); } else { $request->setHangup(); } } $request->send();
Investigamos a necessidade de expandir ainda mais a funcionalidade dos métodos e coletar feedback; sugestões nos comentários são bem-vindas. Além disso, muitos outros métodos webhook e api estão disponíveis. Uma lista completa está
no site .