Periodic_Hook audio is played but not heard on mixmoniter recording

same => n,Set(BEEPID=${PERIODIC_HOOK(hooks,beep,180)})

I use the “b” option in the Queue application to set a periodic hook to play a beep every 30 seconds. Both the caller and the agent hear the audio beep.

However, I can’t hear the beep on the mixmonitor recording.

Any ideas on how I can get the beep to be heard on the audio recording?

exten => _XXXXXXXXXX,n,Queue(${queuename},tTb(setup-recording-beep-hooks^1^1),${timeout},${overflow})

[setup-recording-beep-hooks]
exten => 1,1,Set(BEEPID=${PERIODIC_HOOK(hooks,99,${BEEPFREQ})})

[hooks]
exten => 99,1,NoOp(hello)
exten => 99,n,Playback(${BEEPAUDIO})
exten => 99,n,NoOp(Done)

The code would have to be modified. There is a fixed order of operations on the API that the beeping and MixMonitor uses, with MixMonitor receiving the media before the beep is inserted.

Is there any way to get a periodic beep on the recording? Anyway to put the beep on the media?

I can’t think of a way off the top of my head for that specific beep, without code modification. Someone else may have a clever idea but anything using ChanSpy() won’t be inserted before MixMonitor.

Someone told me that Playtones(record) will work for what you want and that it will be audible on the recording. However, I am not able to get it on the recording. Do you know off hand if Playtones() also fits in with the Chanspy(), PERIODIC_HOOK() not able to be on the recording?

I don’t, but PlayTones plays a tone to a channel. I’m not sure how that is equivalent to the beep functionality.

Playtones(record) as defined in the indications.conf will play beep every 15 seconds. Once playtones is called it will move on to the next line in the dial plan. Then continuously playing a beep every 15 minutes on the channel it ran on until StopPlaytones() is called (or channel hung up).

This results in the beep being recorded and played on the caller channel but the agent can’t hear the beep (which is what our business wants, don’t know exactly why).

After playing around with Playtones(record) it seems that it can only be called on one channel that has two channels bridged. Therefere, if I run Playtones(record) on the agent channel, it will shut down the one on the caller channel.

On another note (that is close but no cigar), since we use AgentLogin and AgentRequest for handling our queued calls, there is nowhere to place Playtones(record) in the dialplan after the call connects (which is required for Playtone() to work and the Queue application has no option to run something when calls are connected). I can call this from the features.conf functionality, but we don’t want the agents to have to do something like this on every call ( i.e. pressing #7). PlayDTMF from the AMI can play this for the agent, but it does not get picked up by “features.conf”, sending to the ;1 channel or ;2 channel of the agent.

On further review the Playtones(record) blocks the caller speech. This is not a viable solution.