Steve Lorello

Vonage Team Member

Former .NET Developer Advocate @Vonage, full-stack polyglottic Software Engineer, AI/ML Grad Student, avid runner, and an even more avid traveler.

[Read more]
< Release />

.NET SDK Update

Last updated on May 13, 2021

The last couple of months have been a bit of a whirlwind here at Nexmo as I've been working on fixing bugs and upgrading the .NET SDK for you all.

More will be coming in the future, but we've cut a few new releases over the past couple of months, and I'd like to take some time out to tell you all about them.



In 4.0.1 we added the workflow ID parameter to verify requests. This version enables you, when sending off a Verify request to specify what process you want Nexmo to use for verification.

Those workflows are as follows—note that for our purposes an SMS message is an SMS text message and TTS refers to a text-to-speech voice call:

  • "1" - SMS -> TTS -> TTS
  • "2" - SMS -> SMS -> TTS
  • "3" - TTS -> TTS
  • "4" - SMS -> SMS
  • "5" - SMS -> TTS
  • "6" - SMS
  • "7" - TTS

For further info please check out the Verify Workflows documentation. Additionally, you can read the Flexible Workflows for Verify API article on how workflows take shape. Happy verifying!



  • Release 4.1.1 straightens out a bunch of dependencies in the NuGet package—that would have been transparent to most folks but needed to be addressed.


  • 4.1.2 adds full support for the signing of SMS messages and the validation of signed SMS messages. See our guide on leveraging this capability.


This version supports a fairly major upgrade to the SDK. We now have strongly typed NCCOs and webhook events! There is no longer a need to dynamically produce your own JSON when sending us NCCO's or to figure out on your own what the structure of an event looks like.

To create your NCCO simply create a series of actions, construct an NCCO object with those actions, and invoke NCCO.ToString() to create your ncco.

var talkAction = new TalkAction()
    Text= "Thank you for calling. You will now be joined into the conference",
    VoiceName = "Kimberly"


var conversationAction = new ConversationAction()
    Name ="A_Conference",
    Record = "True",
    EventMethod = "POST",
    EventUrl = new []{ $"{SiteBase}/webhook/record" }
var ncco = new Ncco(talkAction,conversationAction);

return ncco.ToString();

If you would like to make an outbound call with one of these strongly typed NCCOs now you can! I know many of you are still using the old CallCommand Object that just accepted a JObject, that JObject is still acceptable. You now have the option of setting a NccoObj rather than the Ncco in the CallCommand to use a strongly typed NCCO. Like so:

var talkAction = new TalkAction() { Text = "This is a text to speech call from Nexmo" };
var ncco = new Ncco(talkAction);

var results = client.Call.Do(new Call.CallCommand
    to = new[]
        new Call.Endpoint {
            type = "phone",
            number = TO_NUMBER
    from = new Call.Endpoint
        type = "phone",
        number = NEXMO_NUMBER

    NccoObj = ncco


With 4.2.1 it's now possible to track in progress NCCOs straight out of the box with the Nexmo .NET SDK.

We fixed a bug where the incorrect RSA provider was being used on newer versions of .NET core off of windows platforms. I want to give a big shout out to one of our community contributors Fauna5 for their pull request for this!

Feel free to follow the .NET SDK on GitHub for real time updates.

If you have any questions, issues, or concerns please feel free to raise them there or find me @Steve Lorello in our Community Slack Channel and I'll be more than happy to help.