Best way to trigger an audio file to be played over an extension

Hey guys. Using FreePBX Distro 10.13.66-20, latest modules.

My client wants to be able to call a number or feature code, and have a sound file get played over their paging system. I have this working right now, but the implementation feels awkward, especially to the client.

I set up a ‘call back’ that calls the paging system, and after it’s done making the call it plays the recording. I then set up a virtual extension that fails over to the “callback” that I made. This works! The sound file plays just fine over the page, except the caller hears a busy signal on the receiver instead of something that doesn’t sound like an error happened. It would be best if the caller could hear the sound being played, or could hear a message like “Thank you, goodbye.” Even a beep.

Is there a better way to approach this?

Thinking a bit more… would be nice if I could loop the sound as well; maybe have the audio play in a loop until the caller hangs up. edit: the more I look the more I think some external software will be required. My client is also asking to be able to add their voice in the middle of the alarm, or to be able to interrupt the page with their voice. We’re currently using a valcom pagepro vip 201 to send our audio.

Is it possible to trigger a bash script via a call to an extension?

There are any number of posts here as to how to use “call files” in your case use applications (playback) and your prerecorded file

I can see how I can loop audio with a call file, but not “until user intervention,” just a set number of times or for a set duration for it to play. Also, how do I trigger a call file by calling an extension? It looks like I need to edit the dial plan manually in order to accomplish the looping, as well, which I haven’t done with FreePBX.

Imagine I set up a 10 minute loop, and somebody ‘accidentally’ sets off the alarm. Using call files as I know them, the sound would just play for 10 minutes with a loud alarm and nobody would be able to cancel it.

create x callfiles each “touched” incrementally y seconds apart, each playing the message of z seconds length, where z < y, have a feature code that deletes any remaining callfiles

ugly but it should work.

I settled on using the callback module for this. It’s acceptable for the client. I tried using other methods but I would have had to invest more development time than I have available.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.