Hi all,
I’m working on an ARI application where I need to play a background sound (like office noise) constantly to the caller only, for the entire duration of the call.
This sound is purely decorative, and should not interfere with recordings, speech detection, or other audio interactions.
Here’s what I want:
- The caller hears a looping background sound the entire time.
- The bot (my ARI app) plays audio instructions and records responses via
channel.play()
andchannel.record()
. - The background sound should never stop, even when the bot isn’t playing anything or is recording.
- The background sound should not be recorded, and should not require bridges.
I’ve tried:
- Using a
snoopChannel
withwhisper="out"
to play the background sound — this works, but it stops being heard as soon as the main channel stops playing audio (like during silence before recording). - Adding a second
snoopChannel
withspy="out"
playing silence to keep RTP flowing — works partially but feels very hacky and unstable. - Using a Local channel with a looping
Playback
to inject RTP — same issue, unstable and feels like a workaround. - Tried
MixMonitor
,BackgroundDetect
, andBridge
methods, but none satisfy the constraint of continuous background sound without audio interruption or capture.
I feel like I’m hacking around a very basic need.
Isn’t there a simple, reliable way in ARI to inject a continuous, non-blocking sound into the caller’s audio stream that survives silence, recordings, and bot playback?
Any suggestions or best practices would be greatly appreciated.
Thanks!