Release Notes - v0.7.0¶
Release Date: 2026-03-22
Overview¶
OmniVoice v0.7.0 introduces the CallSystem provider registry, enabling runtime discovery and instantiation of telephony providers. This release adds Twilio and Telnyx as registered CallSystem providers with multi-provider failover support.
Highlights¶
- CallSystem Provider Registry: Runtime provider discovery for telephony, matching the existing TTS/STT registry pattern
- CallSystemClient: Multi-provider management with automatic failover
- Twilio Provider: Full CallSystem and SMSProvider support
- Telnyx Provider: Full CallSystem and SMSProvider support
What's New¶
CallSystem Provider Registry¶
Register and retrieve telephony providers at runtime:
import (
"github.com/plexusone/omnivoice"
_ "github.com/plexusone/omnivoice/providers/all"
)
// Get Twilio provider
twilio, _ := omnivoice.GetCallSystemProvider("twilio",
omnivoice.WithAccountSID(os.Getenv("TWILIO_ACCOUNT_SID")),
omnivoice.WithAuthToken(os.Getenv("TWILIO_AUTH_TOKEN")),
omnivoice.WithPhoneNumber("+15551234567"),
)
// Get Telnyx provider
telnyx, _ := omnivoice.GetCallSystemProvider("telnyx",
omnivoice.WithAPIKey(os.Getenv("TELNYX_API_KEY")),
omnivoice.WithPhoneNumber("+15551234567"),
)
// List available providers
providers := omnivoice.ListCallSystemProviders()
// ["twilio", "telnyx"]
CallSystemClient with Failover¶
Manage multiple providers with automatic failover:
// Create client with multiple providers
client := omnivoice.NewCallSystemClient(twilioProvider, telnyxProvider)
client.SetPrimary("twilio")
client.SetFallbacks("telnyx")
// MakeCall automatically fails over on error
call, err := client.MakeCall(ctx, "+15559876543")
Registry Functions¶
| Function | Description |
|---|---|
GetCallSystemProvider(name, opts...) |
Get CallSystem provider by name |
RegisterCallSystemProvider(name, factory) |
Register a custom provider |
ListCallSystemProviders() |
List registered provider names |
HasCallSystemProvider(name) |
Check if provider is registered |
New Provider Options¶
| Option | Description |
|---|---|
WithAccountSID(sid) |
Twilio Account SID |
WithAuthToken(token) |
Twilio Auth Token |
WithPhoneNumber(number) |
Default phone number |
WithWebhookURL(url) |
Webhook endpoint URL |
WithRegion(region) |
Provider region |
Added¶
CallSystemProviderFactorytype for CallSystem provider creationRegisterCallSystemProviderandGetCallSystemProviderfor runtime provider discoveryListCallSystemProvidersandHasCallSystemProviderto query registered providers- Convenience options:
WithAccountSID,WithAuthToken,WithPhoneNumber,WithWebhookURL,WithRegion CallSystemClienttype alias for multi-provider management with failoverNewCallSystemClientfunction to create clients with multiple providers- Twilio CallSystem provider registration (requires accountSID, authToken)
- Telnyx CallSystem provider registration (requires apiKey)
Documentation¶
- Add UTF-8 icons to Features section in README
- Add Telnyx to list of supported providers
- MkDocs documentation site with guides for TTS, STT, voice calls, SMS, streaming, and voice agents
Dependencies¶
| Package | Previous | New |
|---|---|---|
omnivoice-core |
v0.5.0 | v0.6.0 |
omnivoice-twilio |
v0.2.0 | v0.3.0 |
elevenlabs-go |
v0.9.0 | v0.9.1 |
omnivoice-deepgram |
v0.4.0 | v0.4.1 |
omnivoice-openai |
v0.1.0 | v0.1.1 |
omnivoice-telnyx |
- | v0.1.0 (new) |
Installation¶
Upgrade Notes¶
This is a backward-compatible release. No breaking changes from v0.6.0.
Migration¶
If you were using CallSystem providers directly:
// Before: Direct import
import "github.com/plexusone/omnivoice-twilio/callsystem"
provider, _ := callsystem.New(cfg)
// After: Use registry
import (
"github.com/plexusone/omnivoice"
_ "github.com/plexusone/omnivoice/providers/all"
)
provider, _ := omnivoice.GetCallSystemProvider("twilio", opts...)
Both approaches continue to work. The registry pattern is recommended for new code.