Skip to content

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

  • CallSystemProviderFactory type for CallSystem provider creation
  • RegisterCallSystemProvider and GetCallSystemProvider for runtime provider discovery
  • ListCallSystemProviders and HasCallSystemProvider to query registered providers
  • Convenience options: WithAccountSID, WithAuthToken, WithPhoneNumber, WithWebhookURL, WithRegion
  • CallSystemClient type alias for multi-provider management with failover
  • NewCallSystemClient function 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

go get github.com/plexusone/omnivoice@v0.7.0

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.