Platform
Specifications and getting started.
What VoipSDK supports today, what you need to run it, and how to place your first call.
Specifications
Signalling, media and security
| Frameworks | .NET 8, 9 and 10. Server, worker and WinUI controls target .NET 10. |
|---|---|
| SIP signalling | UDP, TCP and TLS for clients. Digest authentication, registration refresh with backoff, keep-alives. The embeddable server listens on UDP. |
| Call control | Incoming and outgoing calls, answer, decline, busy, cancel, hang-up, local and remote hold, mute, blind and attended REFER transfer, concurrent calls with configurable limits. |
| DTMF | RFC 4733 RTP telephone events and SIP INFO. |
| Codecs | Opus, G.722, G.711 ยต-law and A-law, G.729, GSM 06.10 and L16, negotiated in your priority order. |
| Media security | SDES-SRTP, optional or required. TLS for signalling. |
| NAT traversal | Off, STUN (public address in SDP), or ICE with STUN and TURN candidates, including relay-only. |
| Audio | 48 kHz 16-bit PCM in 20 ms frames. Windows WASAPI built in, a silent backend for headless hosts, or your own device port. |
| Prompts and IVR | Shared audio cache bank, playback with loop and DTMF barge-in, WAV at 8 to 192 kHz, generated audio such as TTS. |
| Diagnostics | Per-call codec, jitter, packet loss and round-trip time; call history in SQLite or your own store. |
| Server | Registrar, internal call routing, registered UDP carrier trunks, built-in audio test extension, HTTP and server-sent-events control API. |
| Softphone | Headless engine, WinUI 3 controls (Windows 10 version 1809 or later), tray reference app with MSI and white-label MSI builds. |
Getting started
Your first call in four steps.
- Reference the packages:
VoipSdk,VoipSdk.Sip.SipsorceryandVoipSdk.Audio.Windows(plusVoipSdk.Storage.Sqlitefor history). - Configure an account with your PBX domain, extension and password.
- Start the client to register, and handle
IncomingCall. - Dial and follow
CallStateChangedto Active before hold, mute or DTMF.
The SDK ships with a technical manual and sample applications: a console client, the WinUI softphone, a server dashboard and a worker test client.
using Microsoft.Extensions.DependencyInjection;
using VoipSdk;
using VoipSdk.Audio.Windows;
using VoipSdk.Sip.Sipsorcery;
var sipPassword = Environment.GetEnvironmentVariable("SIP_PASSWORD")!;
var services = new ServiceCollection();
services.AddVoipSdk(new VoipClientOptions
{
Accounts = [new SipAccountOptions
{
Id = "work", Domain = "pbx.example.net",
Username = "1001", Password = sipPassword
}]
}).AddSipsorcery().AddWindowsAudio();
await using var provider = services.BuildServiceProvider();
var client = provider.GetRequiredService<IVoipClient>();
client.IncomingCall += async (_, e) => await e.Call.AcceptAsync();
await client.StartAsync(); // register
var call = await client.DialAsync("1002"); // send INVITEPackages
Take only what you need.
VoipSdk
Public API, call states, events, limits and the audio cache. No UI dependency.
VoipSdk.Sip.Sipsorcery
SIP, SDP, RTP/RTCP, codecs, SRTP and ICE.
VoipSdk.Audio.Windows
WASAPI microphone and speaker streams with device enumeration.
VoipSdk.Storage.Sqlite
Call history with schema versioning and bounded retention.
VoipSdk.Softphone
Phone engine, view models, branding and Windows integration.
VoipSdk.Softphone.WinUI
Dialler, call list, contacts, history, settings and tray controls.