https://a.storyblok.com/f/270183/115280/6b60f6beea/blog_high-availability-apps_1200x600.jpg

Crie Applications de Voice API com alta disponibilidade

Publicado em December 9, 2020

Tempo de leitura: 3 minutos

Você pode utilizar a infraestrutura mais confiável e as melhores práticas de programação, mas isso ainda não garante que seu servidor terá 100% de disponibilidade. Para continuar oferecendo a melhor experiência possível aos seus clientes, é sempre bom considerar uma estratégia de failover. Ao aproveitar alguns dos recursos da Voice API que a Vonage disponibiliza para você, é possível melhorar facilmente a disponibilidade do seu serviço.

URL alternativa

Se ocorrer algum problema com o hardware ou o software que hospeda seu aplicativo e a URL de resposta/evento ficar inacessível, a Vonage tentará enviar a solicitação para a URL de fallback (caso você tenha definido uma). O corpo da solicitação conterá todos os mesmos dados da solicitação original, além de informações contextuais adicionais, incluindo a URL original e o motivo da falha na solicitação original.

Essa URL alternativa pode apontar para o seu data center secundário ou para um arquivo JSON estático com instruções da NCCO para o cenário de fallback, que pode ser conectar-se diretamente a um número PSTN (ou a um terminal SIP) ou reproduzir um anúncio, seja conversão de texto em fala ou áudio pré-gravado.

É claro que você pode considerar qualquer outro cenário de failover — com o poder do NCCO, é possível implementar praticamente qualquer coisa.

Tempos de espera configuráveis

Antes que a Vonage tente usar sua URL de fallback, a plataforma tentará novamente a solicitação para sua URL original de resposta/evento. A nova tentativa ocorrerá após um segundo, por padrão, e se essa solicitação também falhar após um segundo, a plataforma mudará para a URL de fallback. Isso significa que o usuário aguardará dois segundos no total. Se você sabe que seu sistema normalmente responde muito mais rápido e deseja reduzir o tempo antes do início do failover, você pode definir valores personalizados para suas URLs de resposta, de evento e de fallback.

Desconexão do WebSocket

Suponha que você esteja usando WebSockets para conectar seu cliente a um mecanismo de IA para um bot de Voice ou qualquer tipo de cenário de captura de mídia. Nesse caso, você pode considerar adicionar algumas opções alternativas aqui também.

Se a conexão WebSocket for encerrada acidentalmente, você receberá um evento específico de desconexão para sua aplicação. Essa solicitação espera um NCCO na resposta, para que você possa reconectar seu serviço ou realizar ações alternativas, como redirecionar o usuário para um atendente humano ou capturar uma mensagem de correio de voz.

O callback de evento é compatível com a URL alternativa mencionada acima; portanto, mesmo que você tenha tanto seu aplicativo de voz quanto a conexão WebSocket no mesmo servidor ou data center que esteja enfrentando problemas de disponibilidade, é possível oferecer um cenário alternativo aos seus usuários para que eles não fiquem ouvindo silêncio nem tenham a chamada interrompida repentinamente.

Callbacks assinados

Para proteger seu serviço contra solicitações potencialmente maliciosas, você pode configurar um firewall e adicionar nossos intervalos de IP publicados à lista de permissões. Essa é uma solução viável. No entanto, pode não ser muito prática e, potencialmente, causar problemas de estabilidade caso você não tenha recebido a notificação sobre a adição de novos intervalos à infraestrutura da Vonage.

Uma solução alternativa é verificar a assinatura das solicitações recebidas para garantir que elas tenham sido enviadas especificamente pela Vonage para o seu aplicativo. A Vonage oferece suporte a JWT em callbacks da Messages API, e agora a mesma abordagem foi introduzida para callbacks de Voice.

Esse recurso está na fase de Developer Preview e apresenta algumas limitações conhecidas enquanto está em desenvolvimento (consulte Guia de Webhooks Assinados para mais detalhes); mesmo assim, recomendamos que você experimente para ver como ele se adapta à sua infraestrutura ou às especificidades do seu caso de uso.

Resumo

A experiência do cliente é, sem dúvida, o aspecto mais crucial no setor de software, se não em qualquer setor. Como você pôde ver, com a Voice API da Vonage, não será preciso muito esforço para proteger seu serviço caso ocorra uma falha técnica, e seus clientes não ficarão insatisfeitos com a indisponibilidade temporária ou com falhas no funcionamento do seu aplicativo.

Compartilhe conosco suas ideias sobre os desafios que você enfrenta na sua prática ou qualquer outro comentário em nosso canal da comunidade no Slack. Fique à vontade para entrar em contato com nossa equipe de Suporte caso tenha alguma dificuldade ao usar a API da Vonage. Cuide-se e fique ligado!

Leitura complementar

Compartilhar:

https://a.storyblok.com/f/270183/250x250/a153431b0e/victorshisterov.png
Victor ShisterovGerente de Produto da Voice API

Victor é gerente de produto da Voice API da Vonage, com sete anos de experiência no setor de telecomunicações, e desenvolvedor de software desde a infância. Ele se dedica a tornar conceitos tecnicamente complexos fáceis de entender e usar, mantendo APIs poderosas de forma autoexplicativa e consistente. Quando não está criando e programando, ele constrói modelos em escala e toca instrumentos musicais folclóricos.