I am trying to play tones to a single ConfBridge participant without removing
them from the conference.
I have used the idea from https://stackoverflow.com/questions/8099018 and it
works fine with Playback() but not with Playtones() - there is simply no audio
from Playtones().
Does anyone know why this might be, and whether there is a way to get the
audio from Playtones() to be used by Chanspy() (or, indeed, any other way to
get Playtones() to send audio to just one ConfBridge participant, whilst they
remain in the conference)?
I am using Playtones() elsewhere in my dialplan (with the same tone “ring”
being requested) and it works fine so long as I am not trying to feed it into a
channel using Chanspy().
On Tuesday 09 December 2025 at 15:59:15, Pooh via Asterisk Community wrote:
I have used the idea from https://stackoverflow.com/questions/8099018 and
it works fine with Playback() but not with PlayTones() - there is simply
no audio from PlayTones().
For anyone who comes across this in the future, I’ve established that there is
simply “something weird” about the way PlayTones() works, but there’s a simple
workaround to make things work as you might expect.
Neither MixMonitor() nor ChanSpy() will notice the audio generated by
PlayTones(). It’s sent out on the channel, so you can hear it, but it’s not
recorded by MixMonitor, and it’s not available to ChanSpy().
If, however, you do a Dial() to a local context which then does PlayTones(),
then both MixMonitor() and ChanSpy() are aware of the audio which comes back
from the Dial() application.
So, if you need to do this sort of thing, just wrap PlayTones() into a tiny
context which you then Dial() to, and the audio becomes available to the other
applications.
I have no idea why it is like this, but I now have a working solution.
Antony.
–
A good conversation is like a miniskirt;
short enough to retain interest,
but long enough to cover the subject.