Without Using Announcements - Play a message to a caller, then hang up


I have a client that wants to regularly (and somewhat randomly) change their hours of operation. I’ve managed the basics with the Day/Night control. However, they want to record a message that lets them announce the new hours to customers that call in.

My original thought was to have the IVR send requests for their hours to a voicemail extension. That way, they’d just go to that extension, record a new outgoing message and then be all set. However, the voicemail wants to offer the caller the opportunity to leave a message. The client doesn’t want them to leave messages.

Any thoughts on how to pull this off? I’m not married to any one solution. The only requirement is that the end-user must be able to change the message easily. Giving them access to the FreePBX interface is not preferred.

Any thoughts?



If your FreePBX version is new enough, you can tie a feature code to the recording in system recordings. Then the user dials that feature code and re records it.

I am not sure why you don’t want to use announcement? That is what it is for.

I do this, but the setup requires a bit of linux manipulation. I’ve posted the procedure here on the forum. I’ll see if I can find it.

Bill Ford

as cosmicwombat points out, all supported versions of FreePBX allow you to tie a feature code to a system recording which can also be password protected.

That is one of the more common use cases of this, to easily change the message of an IVR by simply changing the recording it is tied to.

From within the phone system you can just call the feature code. From outside, you would have to create a Misc Destination associated with the recording’s feature code and then either point a DID at it, or add a ‘hidden’ option to your IVR that would let you choose to record the recording from outside the system.

Can’t find my origional post but here goes “from memory”…

  1. You’ll actually be using the announcements, but you’ll be updating them from a voicemail only extension.
  2. Create a VM only extension. I ususlly create this with a number that is outside the extension plan of my box.
  3. After creating the VM extension, record a unavailable announcement on it.
  4. Create a new system recording (doesn’t matter what you say in it). Give it a descriptive file name like “ChangeHours” or something.
  5. Create a new announcement using the file in #4

Now for the linux stuff

  1. Locate the voicemail directory for the extension you have created. (probably: /var/spool/asterisk/voicemail/default/xxxx/).
  2. You’ll notice within that directory there are a couple of unavail files “.wav” and “.WAV”. You’ll use the “.wav” (lower case)
  3. Make note of the full path to that file. (Probably: /var/spool/asterisk/voicemail/default/xxxx/unavail.wav). xxxx is the extension #
  4. Now locate the announcement file you created in step 4. (Probably in /var/lib/asterisk/sounds/custom). Go to that directory.
  5. I know this sounds strange, but remove the file. (rm -f ChangeHours.wav)
  6. Now link the unavail.wav from 7 to the ChangeHours.wav file…
    (ln -s ChangeHours.wav /var/spool/asterisk/voicemail/default/xxxx/unavail.wav)

Now any time the announcement is played, you’ll actually be playing the unavail message from extension xxxx.

Let me know if any of this doesn’t make sence.


Make a new system recording ( or view an old one) and look for the “Link to Feature Code” button.

If you do not see that button, then my guess is that your FreePBX version is out of date.

Philippe - I’m a little unclear as to how to tie a feature code to changing a pre-existing announcement. Can you point me to some documentation that might discuss how to implement this?

Bill - this makes great sense. I’m interested in seeing how this might be done directly from the FreePBX interface, but if that proves unworkable, then I’ll do it behind the scenes as you describe above.