omni-twilio¶
Go SDK for Twilio with adapters for OmniChat (SMS) and OmniVoice (voice).
Features¶
- Client: Exported Twilio REST API client for calls and SMS
- Transport: Twilio Media Streams for real-time audio
- TTS: Text-to-speech via Twilio's Say verb (Alice, Polly, Google voices)
- STT: Speech recognition via Gather verb and real-time transcription
- SMS: Send/receive SMS via OmniChat provider interface
Package Structure¶
omni-twilio/
├── client/ # Exported Twilio REST API client
├── omnichat/ # SMS provider for omnichat
└── omnivoice/
├── callsystem/ # Call handling provider
├── transport/ # Media Streams provider
├── stt/ # Speech-to-text provider
└── tts/ # Text-to-speech provider
Quick Start¶
SMS (OmniChat)¶
import "github.com/plexusone/omni-twilio/omnichat"
provider, _ := omnichat.New(
omnichat.WithAccountSID("ACxxxxxxxx"),
omnichat.WithAuthToken("your-token"),
omnichat.WithPhoneNumber("+15551234567"),
)
// Connect and send SMS
provider.Connect(ctx)
provider.Send(ctx, "+15559876543", provider.OutgoingMessage{
Content: "Hello from Twilio!",
})
// Handle incoming SMS via webhook
http.Handle("/sms", provider.WebhookHandler())
Voice (OmniVoice)¶
import "github.com/plexusone/omni-twilio/omnivoice/callsystem"
provider, _ := callsystem.New(
callsystem.WithAccountSID("ACxxxxxxxx"),
callsystem.WithAuthToken("your-token"),
callsystem.WithPhoneNumber("+15551234567"),
)
// Make an outbound call
call, _ := provider.MakeCall(ctx, "+15559876543", callbackURL)