
Compartilhar:
Alex Lakatos é um Developer Advocate de JavaScript na Nexmo. Em seu tempo livre, ele atua como voluntário na Mozilla como palestrante técnico e mentor do programa Reps. Como desenvolvedor de JavaScript que trabalha na web aberta, ele vem ampliando seus limites a cada dia. Quando não está programando em Londres, ele gosta de viajar pelo mundo; por isso, é provável que você o encontre em um lounge de aeroporto.
Como conectar uma chamada telefônica ao serviço In-App Voice da Nexmo
Tempo de leitura: 3 minutos
A Voice API da Nexmo permite que você desenvolva aplicativos de voz programáveis de alta qualidade na nuvem. Com a Voice API, você pode gerenciar chamadas de saída e de entrada em JSON, gravar e armazenar chamadas, criar uma teleconferência, enviar mensagens de conversão de texto em fala em 23 idiomas com diversas vozes e sotaques, entre outras funcionalidades.
Nexmo Stitch, um novo produto atualmente em fase de Developer Preview, permite a comunicação por diversos canais, incluindo In-App Messaging e In-App Voice.
Nesta postagem, vamos aprender como redirecionar uma chamada recebida de um número de telefone da Nexmo para um usuário do Stitch, implementando um Webhook e vinculando-o a um aplicativo do Nexmo Voice.
Antes de começarmos, você vai precisar de algumas coisas:
Node.js instalado no seu computador
Instale a CLI do Nexmo Beta:
Configure a CLI para usar sua chave de API e seu segredo de API da Nexmo. Você pode obtê-los na página de configurações no painel do Nexmo:
$ nexmo setup api_key api_secret
Encaminhamento de uma chamada para um usuário do Stitch
Quando um usuário liga para um número de telefone virtual da Nexmo associado a um aplicativo de voz, a Nexmo recupera os Objetos de Controle de Chamadas da Nexmo (NCCO) do seu answer_url ponto de extremidade do Webhook. Tentaremos atender a chamada com uma voz sintetizada que lerá um texto e, em seguida, encaminhará a chamada para um usuário do Stitch. Usaremos o NCCO para criar o fluxo da chamada.
Criação de um endpoint de webhook
Sou especialista em JavaScript, então vou escrever o Webhook usando o Node e ExpressJS. Se você preferir uma linguagem diferente, fique à vontade para usar outra — existem bibliotecas de cliente da Nexmo para JavaScript, Java, Python, PHP, Rubye .NET!
Precisaremos instalar algumas coisas:
$ npm install express body-parser --saveCrie um index.js arquivo, instancie o Express e o Body-Parser e escute o servidor na porta 3000.
'use strict';
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
const server = app.listen(3000, () => {
console.log('Express server listening on port %d in %s mode', server.address().port, app.settings.env);
});
Vamos adicionar um endpoint para /event que registre todos os eventos provenientes do aplicativo Nexmo:
app.post('/event', (req, res) => {
console.log(req.body);
res.status(200).end();
});
Também precisamos de um endpoint para /answer, que responda a solicitações HTTP GET e forneça o NCCO quando o aplicativo Nexmo recuperar o answer_url. Usaremos um talk bloco de construção para que a chamada gere uma mensagem de conversão de texto em fala, informando ao usuário que ele está ligando Jamie, seguido por um connect bloco. Precisaremos adicionar um rtc ao endpoint para conectar a chamada a um usuário existente do Stitch. Você pode adicionar seu próprio número de telefone no from campo.
app.get('/answer', (req, res) => {
var ncco = [
{
action: "talk",
text: "Thank you for calling Jamie"
},
{
"action": "connect",
"from": "449876543210",
"endpoint": [
{
"type": "rtc",
"user": "jamie"
}
]
}
];
res.json(ncco);
})
Agora vamos executar o servidor:
$ node index.jsEnquanto estiver desenvolvendo, você pode executar o servidor localmente e usar o ngrok para torná-lo publicamente acessível na internet, para que a Nexmo possa acessá-lo. Temos um tutorial sobre como fazer isso!
Agora, vamos ter que conectar o Webhook a uma Application da Nexmo. Vou partir do princípio de que você já tem uma e vou mostrar como atualizar essa Application para usar o Webhook que acabamos de criar.
Atualize seu aplicativo atual com URLs de Webhook
Você precisa do ID do aplicativo para atualizar as informações. Você pode usar o app:list comando na CLI do Nexmo:
$ nexmo app:listA CLI deve retornar uma lista com cada ID de aplicativo e o nome do aplicativo. Agora, use o ID de aplicativo correto para atualizar o aplicativo com as URLs dos webhooks:
$ nexmo app:update aaaaaaaa-bbbb-cccc-dddd-0123456789ab "My Voice App" https://6e5c2f7a.ngrok.io/answer https://6e5c2f7a.ngrok.io/eventPor fim, você precisa associar seu aplicativo ao número virtual que você aluga da Nexmo. Vamos usar a CLI da Nexmo novamente. Use o comando nexmo link:app seguido do número de telefone, que deve começar com o código do país e, em seguida, o ID do aplicativo. Portanto, o comando deve ficar assim:
$ nexmo link:app 449876543210 aaaaaaaa-bbbb-cccc-dddd-0123456789abQuando a vinculação é bem-sucedida, a CLI exibe a mensagem “Número atualizado”.
Conclusão
Agora que você vinculou seu número ao seu aplicativo, sempre que alguém ligar para o seu número Nexmo, será conectado a um usuário do Stitch por meio do recurso In-App Voice. Se quiser testar isso, confira o guia em JavaScript que detalha como você pode implementar chamadas usando os SDKs do Stitch.
E agora?
Se você quiser continuar aprendendo a usar o SDK do Nexmo Stitch para JavaScript, confira nossos guias de início rápido sobre In-App Messaging, nos quais mostramos como criar uma conversa simples, convidar e conversar com outro usuário e usar mais ouvintes de eventos para mostrar o histórico do bate-papo e quando um usuário está digitando. Se você tiver mais dúvidas sobre como usar o Stitch, recomendamos que participe da Slack da comunidade Nexmo e conferir nossa #stitch ou nos envie um e-mail diretamente para ea-support@nexmo.com.
Compartilhar:
Alex Lakatos é um Developer Advocate de JavaScript na Nexmo. Em seu tempo livre, ele atua como voluntário na Mozilla como palestrante técnico e mentor do programa Reps. Como desenvolvedor de JavaScript que trabalha na web aberta, ele vem ampliando seus limites a cada dia. Quando não está programando em Londres, ele gosta de viajar pelo mundo; por isso, é provável que você o encontre em um lounge de aeroporto.