Releases: Vonage/vonage-dotnet-sdk
v4.4.0
Adding new Automatic Speech Recognition (ASR) action to NCCO Action set. To start an asr input you will construct a MultiInputAction and return it from your answer webhook:
[HttpGet("/webhooks/answer")]
public string Answer([FromQuery]Answer request)
{
var host = Request.Host.ToString();
//Uncomment the next line if using ngrok with --host-header option
//host = Request.Headers["X-Original-Host"];
var eventUrl = $"{Request.Scheme}://{host}/webhooks/asr";
var speechSettings = new SpeechSettings {Language="en-US", EndOnSilence=1, Uuid = new[] { request.Uuid } };
var inputAction = new MultiInputAction { Speech = speechSettings, EventUrl = new[] { eventUrl } };
var talkAction = new TalkAction { Text = "Please speak now" };
var ncco = new Ncco(talkAction, inputAction);
return ncco.ToString();
}
This will allow a user to perform inputs with speech. After the end conditions are met for the voice input you will then get a webhook returned to you containing an ordered list of guesses for what speech your user said on the EventUrl
that you passed through the MultiInputAction. That can be handled like so:
[HttpPost("/webhooks/asr")]
public string OnInput()
{
MultiInput input;
using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
{
var result = reader.ReadToEndAsync().Result;
input = JsonConvert.DeserializeObject<MultiInput>(result);
}
var talkAction = new TalkAction();
talkAction.Text = input.Speech.SpeechResults[0].Text;
var ncco = new Ncco(talkAction);
return ncco.ToString();
}
v4.3.2
Fixed
- Fixed bug where streamUrl in where the StreamAction was set to a string rather than an array of strings
- Changed websocket endpoints
headers
type from a string to an object - the string type was injecting escape charecters into the headers object payload.
v4.3.1
Fixes
- Loop parameter would be truncated if set to 0
- Fixed bug that would cause certain User Agent's to throw errors on certain Operating Systems
v4.3.0
New
- Adding ListOwnNumbers API
- Making basic JWT generation public
v4.2.1
- Fixing NCCO serialization bug
- Setting Microsoft.Extensions.Configuration.* to version 1.1.2
V4.2.0
- The NCCO component within the CallCommand object can now be a strongly typed Ncco rather than a JArray,
for the sake of backwards compatibility Ncco is left as a JArray but there is now an option to set a strongly typed Ncco object NccoObj instead
see https://developer.nexmo.com/voice/voice-api/code-snippets/make-an-outbound-call-with-ncco for a sample - Adding type safety for NCCOs and webhook events
- Adding application_id and has_application to Numbers API
4.1.2 Signing and Validation of SMS
Release 4.1.2 Fixes hash / HMAC signing and validation of signed messages
for an example of how to manage signing / validation of signed messages visit https://developer.nexmo.com/concepts/guides/signing-messages/dotnet
4.1.1
Fixed some dependencies in the nuget package
4.1.0
v4.1 Fixes the structure of the application update API. This changed structure may require some code changes as the previous implementation created an erroneous structure for performing the update and start request. Use something along the lines of the following to create the request for the update / create:
var request = new AppRequest()
{
Name = name,
Capabilities = new Capabilities()
{
Messages = new MessagesWebhook(
new Webhook() { Address = "https://example.com/webhooks/inbound", HttpMethod = "POST" },
new Webhook() { Address = "https://example.com/webhooks/status", HttpMethod = "POST" }),
Rtc = new RtcWebhook(
new Webhook() { Address = "https://example.com/webhooks/event", HttpMethod = "POST" }),
Voice = new VoiceWebhook(
new Webhook() { Address = "https://example.com/webhooks/answer", HttpMethod = "GET" },
new Webhook() { Address = "https://example.com/webhooks/event", HttpMethod = "POST" }),
Vbc = new VbcWebhook()
}
};
v4.1 Fixes the Redact API, this can be invoked like so:
var result = client.Redact.RedactTransaction(redactRequest: new Redact.RedactRequest(NEXMO_REDACT_ID, NEXMO_REDACT_PRODUCT));
v4.1 Adds support for retrieving voice recordings using the GetRecording API
invoke like so:
var response = client.Call.GetRecording(recordingUrl);
4.0.1
Added workflow_id to verify_request