integrations.yml and point
your provider at it.
Before you start
- A license with voice enabled. Telephony channels check for it at startup. The Inspector’s voice mode does not need it.
- A public URL for your agent. The provider must reach your server over the internet. For local testing, use a tunnel such as ngrok.
- A speech provider API key:
DEEPGRAM_API_KEYfor the Deepgram default, orAZURE_SPEECH_API_KEY,CARTESIA_API_KEY, orRIME_API_KEYfor the other supported providers.
Add the channel
Every telephony channel takes the same core settings:integrations.yml
server_url is the public host name of your agent, and asr and tts choose the
speech providers (see Speech providers). All three are
required. Callers can talk over the agent only if you turn on interruptions,
which are off by default on telephony channels. To play office or call-centre
noise under the call, add background_audio. These options and silence_timeout
are described under
Voice channels.
Restart the agent after changing integrations.yml. Every channel’s URLs start
with https://<server_url>/webhooks/<channel>/.
Choose your provider
Twilio
Usetwilio_media_streams. Optional username and password protect the
webhook with HTTP basic authentication.
In the Twilio console, set your phone number’s incoming-call webhook to
https://<server_url>/webhooks/twilio_media_streams/webhook (HTTP POST). The
webhook answers with TwiML that connects the call’s audio to your agent.
Twilio channels need the channels extra: pip install "rasa-pro[channels]".
jambonz
Usejambonz_stream. Optional username and password protect the webhook
with HTTP basic authentication, and must be set together.
In jambonz, create an application whose calling webhook is
https://<server_url>/webhooks/jambonz_stream/webhook and whose call status
webhook is https://<server_url>/webhooks/jambonz_stream/call_status, then
route your number to it.
AudioCodes
Useaudiocodes_stream (beta), and set token to a shared secret.
In AudioCodes VoiceAI Connect, configure a bot connection that streams audio to
wss://<server_url>/webhooks/audiocodes_stream/websocket, with the same token.
Genesys Cloud
Usegenesys, which connects through Genesys AudioHook. Set api_key, and
optionally client_secret to verify request signatures.
In Genesys Cloud, configure an AudioHook integration that connects to
wss://<server_url>/webhooks/genesys/websocket with the same credentials.
On Genesys, an accepted interruption ends the agent’s turn, but audio already
sent to Genesys still plays.
Keypad input (DTMF)
Twilio, jambonz, AudioCodes, and Genesys pass keypad presses (DTMF) to your agent. To collect digits, adddtmf: to a collect step. See
DTMF collect steps.
The Inspector does not send keypad input, so test those steps on a real call.
Caller details
Channels can pass metadata about the call, such as the caller’s number, when the conversation starts. To use a value in your skills, declare a project memory field withseed: true. See
Seeding from session start.
Test the line
- Start the agent with
rasa run, and make sure the provider can reachserver_url. - Call your number. With a greeting skill, you hear the agent first; otherwise speak first.
- Watch the call in your traces and metrics. See Test and monitor voice.
Reference
All channel keys, including the Inspector’s voice settings, are onintegrations.yml → Voice channels.