1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
[]
= "0.0.0.0"
= 8443
# Public URL where Twilio can reach this server (behind nginx)
= "https://your-server.example.com"
[]
# Secrets loaded from .env (TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)
= ""
= ""
= "+1..."
[]
# Secret loaded from .env (GROQ_API_KEY)
= ""
= "whisper-large-v3-turbo"
[]
# Secret loaded from .env (INWORLD_API_KEY)
= ""
= "Olivia"
= "inworld-tts-1.5-max"
[]
# Your assistant's name — used in greetings and identity
= "Echo"
# Primary caller's name — used in outbound greetings and bridge sender
= "User"
[]
# Inbound call greetings — one is picked at random. {name} is replaced with identity.name.
= [
"Hello, this is {name}",
"Hi there",
"{name} here",
"Hey, {name} speaking",
"Hi, this is {name}",
]
# Outbound call greeting template. {caller} = identity.caller_name, {reason} = from call API.
= "Hey {caller}, {reason}"
# Fallback when outbound call has no reason provided
= "Hey {caller}, I wanted to talk to you about something"
[]
# Session timeout for voice conversations (seconds)
= 300
# Entity name used in greetings (default: "Echo")
= "Echo"
# Static greeting override. Leave empty to use rotating time-aware greetings.
= ""
# Path to self document injected as system prompt on every turn
# self_path = "/path/to/SELF.md"
# Max tokens for LLM responses (default: 1024, appropriate for voice)
= 1024
# URL of bridge-echo multiplexer. When set, voice-echo forwards
# transcripts to bridge-echo instead of using a local LLM provider.
# bridge_url = "http://localhost:8445"
[]
# Secret loaded from .env (ECHO_API_TOKEN)
= ""
[]
= 1500
= 50
# [hold_music]
# file = "/path/to/hold-music.wav"
# volume = 0.3