1. High-CPS bulk dialer
package main
import (
"log"
"time"
telequick "github.com/telequick/telequick-sdk/go/pkg"
)
func main() {{
client, err := telequick.NewClient("quic://engine.telequick.dev:9090", "")
if err != nil {{ log.Fatal(err) }}
var dialed, hungup int
client.OnCallEvent = func(p []byte) {{
sid, status := client.DeserializeCallEvent(p)
switch status {{
case "INITIATED":
dialed++
case "COMPLETED", "FAILED", "BUSY", "NO_ANSWER":
hungup++
log.Printf("end %s -> %s (running: dialed=%d done=%d)", sid, status, dialed, hungup)
}}
}}
if err := client.OriginateBulk(
"https://files.example.com/numbers.csv",
"default",
"campaign-2026-04",
50, // cps
1, // PARK
"",
"",
"",
false,
250,
); err != nil {{ log.Fatal(err) }}
time.Sleep(30 * time.Minute)
}}
2. Outbound voicebot
A loop reading audio from the trunk, transcribing it, and pushing TTS back.package main
import (
"log"
"sync"
telequick "github.com/telequick/telequick-sdk/go/pkg"
)
func main() {{
client, _ := telequick.NewClient("quic://engine.telequick.dev:9090", "")
var seqMu sync.Mutex
seq := uint64(0)
client.OnAudioFrame = func(p []byte) {{
sid, pcm := client.DeserializeAudioFrame(p)
text := streamingASR(pcm) // your STT
if text == "" {{ return }}
reply := llm(text) // your LLM
ttsPCM := tts(reply) // your TTS, returns PCMU bytes
const frame = 160
for i := 0; i < len(ttsPCM); i += frame {{
end := i + frame
if end > len(ttsPCM) {{ end = len(ttsPCM) }}
seqMu.Lock()
mySeq := seq
seq++
seqMu.Unlock()
_ = client.PushAudio(sid, ttsPCM[i:end], "PCMU", mySeq, false)
}}
}}
_ = client.Dial(
"sip:+15551234567@example.sip.livekit.cloud",
"default", "+18005550100", 60_000, 1, "", "", "", false, 250, "",
)
select {{}}
}}
3. Inbound queue worker
Service inbound calls from a queue manager:ticker := time.NewTicker(2 * time.Second)
for range ticker.C {{
if err := client.GetIncomingCalls("inbound-trunk"); err != nil {{
log.Println("poll:", err)
continue
}}
select {{
case sid := <-pendingCallChan: // populated by your event handler
if err := client.AnswerIncomingCall(
sid,
"wss://api.openai.com/v1/realtime?model=gpt-realtime",
"",
); err != nil {{
log.Println("answer:", err)
}}
default:
}}
}}
4. Bucket sweep — hang up everything in “abandoned”
client.OnCallEvent = func(p []byte) {{
sid, status := client.DeserializeCallEvent(p)
log.Printf("event %s %s", sid, status)
}}
if err := client.GetActiveBuckets(); err != nil {{ log.Fatal(err) }}
// …assume your event handler stashed bucket_ids it heard about
if err := client.ExecuteBucketAction("abandoned", 0); err != nil {{ // 0 = HANGUP
log.Fatal(err)
}}
5. Dialplan override mid-call
// Caller is parked. Move them to hold music for 30 s, then bridge:
_ = client.ExecuteBucketAction("queue-1", 0) // sweep some queue first
time.Sleep(30 * time.Second)
// or per-call:
// Currently the SDK doesn't wrap ExecuteDialplan; build it via the
// auto-generated FFI symbol if you need it today.