Correio de voz
Introdução
O Voice API da Vonage é a maneira mais fácil de criar aplicativos de voz de alta qualidade na nuvem. Neste guia, você aprenderá a gravar áudio de chamadas recebidas usando .NET e a Voice API da Vonage.
Este guia traz instruções passo a passo que mostram como:
- Criar um account na Vonage
- Criar uma aplicação da Vonage
- Configurar uma aplicação da Vonage
- Criar um aplicativo ASP.NET Core
- Adicione o pacote da Vonage a ele
- Receber uma ligação e gravá-la
- Recuperar a gravação da Vonage
Pré-requisitos
Existem alguns pré-requisitos que você precisa cumprir antes de seguir este guia. Se você já tiver cumprido algum deles, fique à vontade para pular essa etapa.
Criar Account na Vonage
Você pode criar um account na Vonage pelo Painel de controle. No Painel de Controle, você pode criar Applications e adquirir Numbers da Vonage. Você também pode realizar essas tarefas usando o CLI da Vonage.
Instale o CLI da Vonage
O CLI da Vonage permite que você execute diversas operações na linha de comando. Entre os exemplos estão a criação de Applications, a compra de Numbers e a vinculação de um número a uma Application.
Para instalar a CLI com o NPM, execute:
Configure o CLI da Vonage para usar sua chave API e seu segredo API da Vonage. Você pode obtê-los no página de configurações no Painel.
Execute o seguinte comando em um terminal, substituindo API_KEY e API_SECRET com o seu próprio:
Como executar o Ngrok
Você deve tornar seu webhook acessível às APIs da Vonage pela Internet pública. Uma maneira simples de fazer isso durante o desenvolvimento, sem precisar configurar seu próprio servidor, é usar Ngrok. Para saber mais, leia nossa documentação sobre o Ngrok.
Baixe e instale o ngrok e, em seguida, execute o comando a seguir para expor seu aplicativo na porta 3000 para a Internet pública:
Se você for um assinante pago, pode digitar:
NOTA: Neste exemplo, o Ngrok redirecionará os webhooks do Vonage que você especificou ao criar seu aplicativo do Vonage para localhost:3000. Embora a porta 3000 seja mostrada aqui, você pode usar qualquer porta livre que seja conveniente.
Criar um aplicativo de voz
Existem dois métodos para criar um aplicativo Voice:
- Como usar a CLI da Vonage
- Como usar o painel
Cada um desses métodos é descrito nas seções a seguir.
Como criar um aplicativo de voz usando a CLI da Vonage
Para criar seu aplicativo usando a CLI da Vonage, digite o seguinte comando no shell, substituindo NGROK_HOST_NAME com o host do ngrok que você obteve ao configurar o ngrok:
Este comando cria uma aplicação da Vonage com recursos de voz capacidade. Ele configura as Applications com as URLs de resposta e de webhook de eventos e gera um arquivo de chave privada private.key, que você deve salvar no diretório do seu projeto.
O comando retorna um ID de aplicativo exclusivo. Use esse ID de aplicativo para vincular seu número virtual da Vonage ao seu aplicativo, executando o seguinte:
Isso vinculará esse Número Virtual da Vonage ao seu aplicativo, fazendo com que todas as chamadas recebidas nesse número sejam encaminhadas para os URLs que você indicar.
Como criar um aplicativo de voz usando o Painel de Controle
Você pode criar Applications de voz no Painel de controle.
Para criar seu aplicativo usando o Painel:
-
Sob Applications No Painel, clique no Criar um novo aplicativo botão.
-
Sob Nome, digite o nome da Application. Escolha um nome que facilite a identificação futura.
-
Clique no botão Gerar chave pública e chave privada. Isso criará um par de chaves pública/privada, e a chave privada será baixada pelo seu navegador. Salve a chave privada que foi gerada.
-
Sob Recursos selecione o Voz botão.
-
No URL da resposta na caixa, digite a URL do seu webhook de chamadas recebidas, por exemplo,
http://example.com/webhooks/answer. -
No URL do evento na caixa, digite a URL do seu webhook de status de chamada, por exemplo,
http://example.com/webhooks/events. -
Clique no Criar um novo pedido botão.
-
Agora você será direcionado para a próxima etapa do procedimento de criação do aplicativo, na qual deverá vincular seu número da Vonage ao aplicativo.
Você já criou seu aplicativo.
NOTA: Antes de testar seu aplicativo, certifique-se de que seus webhooks estejam configurados e que seu servidor de webhooks esteja em funcionamento.
Criar o arquivo do projeto de voz
Para começar, você vai criar uma voz csproj arquivo. Para facilitar os testes, configure o Kestrel com o HTTPS desativado.
No seu terminal, execute o seguinte comando:
Instalar o pacote da Vonage
Para instalar o pacote NuGet da Vonage, mude para o diretório VonageVoice repositório e execute o seguinte comando:
Agora você pode abrir o VonageVoice.csproj arquivo no Visual Studio.
Nota: Este guia pressupõe que você esteja usando o Visual Studio. Como alternativa, você pode abrir o VonageVoice pasta no Visual Studio Code ou em outro editor, mas talvez você precise criar parte da estrutura que o Visual Studio gera para você.
Adicionar controlador de voz
Clique com o botão direito do mouse no Controllers pasta e selecione “Adicionar” → “Controlador”. Selecione “Adicionar controlador MVC vazio” e nomeie-o VoiceController.
Adicionar using declarações sobre Vonage.Voice, Vonage.Voice.Nccos, Vonage.Voice.Nccos.Endpoints, Vonage.Request, e Microsoft.Extensions.Configuration no início deste arquivo.
Injetar configuração
Injetar dependência em um IConfiguration objeto por meio do construtor:
private readonly IConfiguration _config { get; set; }
public VoiceController(IConfiguration config)
{
_config = config;
}
Adicionar rota de resposta para correio de voz
Adicione uma rota ao seu VoiceController para atender a chamada recebida. Isso ficará localizado em /webhooks/answer e retornará um NCCO com um record ação que instrui a Vonage a iniciar a gravação da ligação.
Você também deve especificar a URL de outro webhook - /webhooks/recording - ao qual a Vonage enviará uma solicitação quando a gravação estiver pronta para download. Você programará esse webhook na próxima etapa.
[HttpGet("/webhooks/answer")]
public string Answer()
{
var talkAction = new TalkAction
{
Text = "Hello, you have reached Steve's number," +
" he cannot come to the phone right now. " +
"Please leave a message after the tone."
};
var recordAction = new RecordAction
{
EndOnSilence = "3",
BeepStart = "true",
EventUrl = new[] { $"{Request.Scheme}://{Request.Host}/webhooks/recording" },
EventMethod = "POST"
};
var ncco = new Ncco(talkAction, recordAction);
return ncco.ToString();
}
Adicionar rota de gravação
Após o término da gravação da chamada, a Vonage enviará uma solicitação para a URL do webhook que você configurou no record ação no seu NCCO. Essa solicitação conterá a URL na qual você poderá baixar o arquivo de áudio.
Neste guia, você vai usar o GetRecording API para baixar a gravação para o seu computador:
[HttpPost("/webhooks/recording")]
public async Task<IActionResult> Recording()
{
var appId = _config["APPLICATION_ID"];
var privateKeyPath = _config["PRIVATE_KEY_PATH"];
var credentials = Credentials.FromAppIdAndPrivateKeyPath(appId, privateKeyPath);
var voiceClient = new VoiceClient(credentials);
var record = await Vonage.Utility.WebhookParser.ParseWebhookAsync<Record>(Request.Body, Request.ContentType);
var recording = await voiceClient.GetRecordingAsync(record.RecordingUrl);
await System.IO.File.WriteAllBytesAsync("your_recording.mp3", recording.ResultStream);
return StatusCode(204);
}
Configurar o aplicativo ASP.NET
Abra seu appsettings.json arquivo e adicione os dois campos a seguir a ele:
APPLICATION_ID: O identificador exclusivo do seu aplicativo da Voice API.PRIVATE_KEY_PATH: A localização do seu aplicativoprivate.keyarquivo.
Execute seu aplicativo
No seu console, acesse o csproj diretório e execute o comando dotnet run --urls=http://localhost:3000. Isso iniciará o aplicativo no http://localhost:3000. Abra essa URL no seu navegador.
E agora?
Saiba mais sobre os recursos da Voice API da Vonage: