Profiles
Profiles define the call experience.
A profile combines the parts needed to run a call:
- persona
- policy
- modality (realtime, tts, stt, llm)
Profiles are declared under [profiles].
[profiles.main]
persona = "concierge"
policy = "concierge"
realtime = "deepgram_rt"
[profiles.openai_realtime_profile]
persona = "concierge"
policy = "default"
realtime = "openai_realtime_voice"
Profile names
Profile names are the keys below [profiles].
In this example:
mainopenai_realtime_profile
Routing rules select profiles by name.
[[routing.sip]]
profile = "main"
Persona
The persona field selects the assistant behavior.
persona = "concierge"
This references:
[personas.concierge]
The persona controls how the assistant speaks, what tone it uses, and what welcome message it may use.
Policy
The policy field selects the permissions and runtime behavior.
policy = "default"
This references:
[policies.default]
The policy controls which functions and adapters are available.
Realtime modality
The realtime field selects the realtime voice capability.
realtime = "openai_realtime_voice"
This references:
[realtime]
openai_realtime_voice = { provider = "openai", transport = "openai_realtime_ws" }
The realtime modality connects the profile to a provider and transport.