
Compartilhar:
Rabeb era Developer Advocate na Nexmo, com foco em APIs de comunicação em nuvem e em ajudar desenvolvedores a terem a melhor experiência possível ao criarem seus aplicativos. Além de ganhar a vida escrevendo código, Rabeb defende a inclusão de mais mulheres e minorias no setor de tecnologia, daí seu envolvimento com a Women Who Code e com diversas comunidades tecnológicas. Ela lidera a rede Women Who Code em Bristol.
Crie uma teleconferência com a Voice API da Vonage e o ASP.NET Core
Tempo de leitura: 6 minutos
Este é o sexto tutorial da série sobre como usar Voice APIs com ASP.NET. No tutorial anterior, aprendemos como encaminhar uma chamada por meio de um proxy de voz com o ASP.NET Core. No tutorial de hoje, aprenderemos como configurar uma teleconferência para que várias pessoas possam participar da mesma chamada.
Objetivos de aprendizagem
Neste tutorial, vamos:
Crie um aplicativo ASP.NET Core.
Use o NancyFX com o ASP.NET Core.
Crie uma aplicação de voz da Vonage.
Criar e devolver os NCCOs.
Execute e teste o código usando o Ngrok.
Pré-requisitos
Visual Studio 2017 ou versão posterior.
Um projeto criado para esta série de tutoriais, que você pode encontrar no GitHub.
Opcional: O CLI da Vonage.
Configuração
Para usar a Voice API da Vonage, precisamos criar um aplicativo de voz.
As etapas de configuração estão detalhadas no Voice API da Vonage com ASP.NET: Antes de começar .
Assim que a configuração for criada com sucesso, podemos passar à organização de uma teleconferência.
Como organizar uma teleconferência
Quando um usuário liga para o número da Vonage, a Voice API da Vonage enviará uma solicitação ao aplicativo para determinar como responder usando um Objeto de Controle de Chamadas da Vonage (NCCO).
O usuário será recebido e, em seguida, participará da teleconferência.
Para isso, vamos usar o NancyFX em conjunto com nosso projeto ASP.NET Core.
Antes de mais nada, precisamos adicionar a Nancy ao nosso projeto:
PM> Install-Package Nancy
PM> Install-Package Microsoft.AspNetCore.Owin
Para que o Nancy possa processar quaisquer solicitações HTTP, precisamos configurar o ASP.NET Core para usar o Nancy por meio de Owin no Configure método de Startup.cs.
using Microsoft.AspNetCore.Builder;
using Nancy.Owin;
namespace NexmoVoiceASPNetCoreQuickStarts
{
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseOwin(x => x.UseNancy());
}
}
}
O próximo passo é criar um módulo do Nancy no qual definiremos uma rota para /webhook/answer a qual responderá com o ncco retornado por GetConferenceCallNCCO()
using Nancy;
using Vonage.Voice.Nccos;
namespace NexmoDotnetCodeSnippets.Modules
{
public class ConferenceCallModule : NancyModule
{
public ConferenceCallModule()
{
Get("/webhook/answer/", x => {
var response = GetConferenceCallNCCO();
response.ContentType = "application/json";
return response;
});
Post("/webhook/event", x => Request.Query["status"]);
}
private Response GetConferenceCallNCCO()
{
var ncco = new Ncco();
ncco.Actions.Add(new TalkAction
{
Text = "Hello. You will now be added to the conference call.",
Language = "en-US",
Style = 2
});
ncco.Actions.Add(new ConversationAction
{
Name = "conference-call"
});
return Response.AsJson(ncco);
}
}
}
O código acima fará o seguinte:
Quando uma chamada for recebida, o usuário ouvirá: “Olá. Você será adicionado à teleconferência agora.” Em seguida, ele será adicionado à teleconferência.
É possível adicionar vários participantes à conferência até que todos tenham se desconectado.
Pronto! Para testar este aplicativo de exemplo, são necessárias mais algumas etapas de configuração.
Como conectar seu aplicativo ao Vonage
Se você está acompanhando o passo a passo até aqui, já configurou sua conta da Vonage e criou um aplicativo de voz, conforme mostrado em esta postagem. Precisamos vincular esse aplicativo a um número de telefone da Vonage para o qual vamos ligar.
Se você não tiver um número, pode adquirir um pelo painel de controle ou usando o CLI da Vonage:
Da mesma forma que para vincular o número, você pode usar o painel ou a CLI:
Precisamos informar à Vonage para qual URL enviar uma solicitação quando uma chamada for recebida — isso é chamado de answer_url. No meu caso, essa URL é http://localhost:63286/webhook/answer e ela está rodando apenas localmente.
Para disponibilizar a URL de resposta do nosso webhook, vamos usar o Ngrok.
Agora temos um novo URL (o meu é http://<SUBDOMAIN>.ngrok.io) que pode ser usada como answer_url para o aplicativo de voz.
Atualize seu aplicativo com o seu novo answer_url. Deve ficar assim http://subdomain.ngrok.io/webhook/answer. Execute o aplicativo e teste-o chamando o TO_NUMBER.
Saiba mais
Referências e ferramentas da API
Guias de introdução da Nexmo para ASP.NET
Compartilhar:
Rabeb era Developer Advocate na Nexmo, com foco em APIs de comunicação em nuvem e em ajudar desenvolvedores a terem a melhor experiência possível ao criarem seus aplicativos. Além de ganhar a vida escrevendo código, Rabeb defende a inclusão de mais mulheres e minorias no setor de tecnologia, daí seu envolvimento com a Women Who Code e com diversas comunidades tecnológicas. Ela lidera a rede Women Who Code em Bristol.