{"id":19519128,"url":"https://github.com/cmdotcom/talk-sdk-dotnet","last_synced_at":"2025-06-23T17:05:18.775Z","repository":{"id":48786157,"uuid":"138555677","full_name":"cmdotcom/talk-sdk-dotnet","owner":"cmdotcom","description":"SDK for use with the CM VoiceAPI","archived":false,"fork":false,"pushed_at":"2024-07-15T10:48:46.000Z","size":78,"stargazers_count":3,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-16T07:07:12.142Z","etag":null,"topics":["dotnet","dtmf","netstandard","nuget","otp","sdk","talk"],"latest_commit_sha":null,"homepage":"https://docs.cmtelecom.com/voice-api-apps/v2.0","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cmdotcom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-25T07:01:57.000Z","updated_at":"2024-07-15T10:47:47.000Z","dependencies_parsed_at":"2024-02-16T09:23:45.585Z","dependency_job_id":"c777385c-3bd6-4498-ad91-3208e459865e","html_url":"https://github.com/cmdotcom/talk-sdk-dotnet","commit_stats":null,"previous_names":["cmtelecom/voiceapisdk"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmdotcom%2Ftalk-sdk-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmdotcom%2Ftalk-sdk-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmdotcom%2Ftalk-sdk-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmdotcom%2Ftalk-sdk-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cmdotcom","download_url":"https://codeload.github.com/cmdotcom/talk-sdk-dotnet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250953347,"owners_count":21513300,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotnet","dtmf","netstandard","nuget","otp","sdk","talk"],"created_at":"2024-11-11T00:16:28.457Z","updated_at":"2025-04-26T07:31:07.422Z","avatar_url":"https://github.com/cmdotcom.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build](https://img.shields.io/appveyor/ci/cmdotcom/voiceapisdk/master.svg \"Build Status\")](https://ci.appveyor.com/project/cmdotcom/voiceapisdk/branch/master)\n[![Test](https://img.shields.io/appveyor/tests/cmdotcom/voiceapisdk/master.svg \"Test Status\")](https://ci.appveyor.com/project/cmdotcom/voiceapisdk/branch/master/tests)\n[![NuGetV](https://img.shields.io/nuget/v/CM.Voice.VoiceApi.Sdk.svg \"Nuget Version\")](https://www.nuget.org/packages/CM.Voice.VoiceApi.Sdk)\n[![NuGetDownloads](https://img.shields.io/nuget/dt/CM.Voice.VoiceApi.Sdk.svg \"Nuget downloads\")](https://www.nuget.org/packages/CM.Voice.VoiceApi.Sdk)\n\n# VoiceApiSdk\nSDK for use with the CM VoiceAPI\n\n## API Documentation\n\nhttps://docs.cmtelecom.com/voice-api-apps/v2.0\n\n# Usage\n\n## Instantiate a client\n\n```cs\nvar httpClient = new HttpClient();\nvar voiceApiClient = new VoiceApiClient(httpClient, myApiKey);\n```\n\n`httpClient` is requested as a parameter, such that you can use a single instance throughout your application, as is highly recommended.\nIdeally you would have it injected by Dependency Injection.\n\n`myApiKey` is your unique api key (or product token) which authorizes you on the CM platform. Always keep this key secret!\n\n## Send an instruction\n\nBefore we can send an instruction, we need to create one.\n\n```cs\nvar instruction = new NotificationInstruction\n{\n    Caller = \"+1234567890\",\n    Callee = \"+9876543210\",\n    Prompt = \"This is a test call.\"\n};\n```\n\nThis is an example Notification instruction, which will simply call the `Callee` while showing the `Caller`. \nWhen picked up, it will read the prompt using the default voice (en-GB, Female, nr. 1) and hang up.\n\nThe other instructions are the `OtpInstruction` (for sending a One Time Password) and the `RequestDtmfInstruction` (for calling and requesting numerical input from the callee).\nMore information on the various fields and their uses can be found in the docs (https://docs.cmtelecom.com/voice-api-apps/v2.0), as well as the list of possible voices.\n\nTo send the instruction, simply call `SendAsync()`  on the client and the call should take place shortly after.\n\n```cs\nvar result = await voiceApiClient.SendAsync(instruction).ConfigureAwait(false);\n```\n\nFinally, the result will have a `HttpStatusCode`, `Content` (as string), a boolean indicating `Success` and a call `DeserializeEvent()` to Deserialize the result into a `CallQueuedEvent`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmdotcom%2Ftalk-sdk-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcmdotcom%2Ftalk-sdk-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmdotcom%2Ftalk-sdk-dotnet/lists"}