Release Notes: v0.6.0¶
Release Date: 2026-06-13
Highlights¶
- Voice Gateway: Full-duplex phone conversations with STT → LLM → TTS pipeline
- MMS/RCS Support: Send and receive MMS with media attachments, RCS with rich templates
- omnivoice-core Integration: Uses global provider registry for cleaner dependency architecture
New Features¶
Voice Gateway¶
The new omnivoice/gateway package provides real-time bidirectional voice conversations:
import "github.com/plexusone/omni-twilio/omnivoice/gateway"
gw, err := gateway.New(gateway.Config{
// STT: Speech-to-text
STTProvider: "deepgram",
STTAPIKey: os.Getenv("DEEPGRAM_API_KEY"),
// LLM: Language model
LLMProvider: "anthropic",
LLMAPIKey: os.Getenv("ANTHROPIC_API_KEY"),
LLMModel: "claude-sonnet-4-20250514",
LLMSystemPrompt: "You are a helpful voice assistant...",
// TTS: Text-to-speech
TTSProvider: "elevenlabs",
TTSAPIKey: os.Getenv("ELEVENLABS_API_KEY"),
TTSVoiceID: "21m00Tcm4TlvDq8ikWAM", // Rachel
})
// Handle incoming calls
http.HandleFunc("/voice/incoming", gw.HandleIncoming)
http.HandleFunc("/voice/media", gw.HandleMediaStream)
Gateway Features¶
| Feature | Description |
|---|---|
| Full-duplex audio | User and agent can speak simultaneously |
| Real-time streaming | Low-latency audio via Twilio Media Streams |
| Provider flexibility | Mix and match STT, LLM, TTS providers |
| Tool calling | LLM can invoke functions during conversation |
| Conversation history | Maintains context across turns |
Supported Providers¶
| Type | Providers |
|---|---|
| STT | Deepgram, OpenAI Whisper, ElevenLabs |
| LLM | Anthropic Claude, OpenAI GPT |
| TTS | ElevenLabs, OpenAI, Deepgram |
MMS and RCS Support¶
The client and OmniChat provider now support rich messaging:
// Send MMS with media
client.SendSMS(ctx, &client.SendSMSParams{
To: "+15559876543",
From: "+15551234567",
Body: "Check out this image!",
MediaURLs: []string{"https://example.com/image.jpg"},
})
// Send RCS with template
client.SendSMS(ctx, &client.SendSMSParams{
To: "+15559876543",
MessagingServiceSid: "MGxxxxxxxx", // RCS-enabled service
ContentSid: "HXxxxxxxxx", // Rich content template
ContentVariables: `{"1":"John"}`,
})
MMS/RCS Features¶
| Feature | Description |
|---|---|
| MMS sending | Attach images, videos, audio via MediaURLs |
| MMS receiving | Parse media attachments from incoming messages |
| RCS templates | Use ContentSid for rich interactive content |
| Automatic fallback | RCS falls back to SMS/MMS when unavailable |
Breaking Changes¶
omnivoice-core Dependency¶
The gateway uses omnivoice-core v0.11.0's global registry instead of omnivoice. Applications must import desired provider packages for auto-registration:
import (
omnivoice "github.com/plexusone/omnivoice-core"
"github.com/plexusone/omnivoice-core/registry"
// Import providers to auto-register them
_ "github.com/plexusone/omni-deepgram"
_ "github.com/plexusone/omni-openai"
_ "github.com/plexusone/elevenlabs-go/omnivoice/tts"
)
Installation¶
Migration Guide¶
From v0.5.0¶
- Update dependency:
- If using the voice gateway, import provider packages:
import (
_ "github.com/plexusone/omni-deepgram" // For Deepgram STT/TTS
_ "github.com/plexusone/omni-openai" // For OpenAI STT/TTS
)
- MMS/RCS support is additive - existing SMS code continues to work.
Dependencies¶
- Updated
github.com/plexusone/omnivoice-corefrom v0.10.0 to v0.11.0 - Removed direct dependency on
github.com/plexusone/omnivoice
Full Changelog¶
See CHANGELOG.md for the complete list of changes.