Skip to content

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

go get github.com/plexusone/omni-twilio@v0.6.0

Migration Guide

From v0.5.0

  1. Update dependency:
go get github.com/plexusone/omni-twilio@v0.6.0
  1. 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
)
  1. MMS/RCS support is additive - existing SMS code continues to work.

Dependencies

  • Updated github.com/plexusone/omnivoice-core from 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.