Changing IVR voice prompts for custom situations


We install UCM6102’s in doctors offices, preschools etc, and are running into a problem (especially up here in the North, in winter).
What happens when the business needs to close (or close early, or open late) due to bad weather.
Is there a way for the user to change an IVR prompt (i.e. "due to bad weather, the office will be closing at 2:30 instead of 5pm) through the phones?
Other than writing a 2 page list of instructions for recording a custom IVR prompt through the GUI, how else can we do this? I’m also hesitant to give non-technical end users access to the GUI, knowing how easy it is to mess things up.
I know we can record a generic “the office is closed today” and then toggle it (even remotely), but I’m referring to custom situations.


I believe the newest firmware allows for a feature code to change to inbound routes.
Essentially flip from day to night mode with a dial sequence. I have not tested this out yet though.


What I did for a fire department who wanted a “community info” option on the IVR so that area residents could call in a check if there were issues in the surrounding area (weather, fires, accidents causing backups etc) and we set them up with a VM box on a non-registered extension so whenever some hit “5” from the IVR it played the VM greeting that they could change as needed.

This is also how a couple schools I deal with handle the weather announcements in the Chicago area and they can record the message just like they record voicemail greetings. The only UCM intervention needed is if you want the message to automatically play instead of the IVR or whatever (since no one is there) you just have to log into the UCM and change the defualt inbound destination in the drop down box and apply.


As much as I love the Grandstream system and the beauty of it’s simplicity, this is something that has been a painful limitation. I loved how FreePBX would allow me to assign a custom feature code to directly record any announcement or ivr voice prompt I wanted. One would think this would be an easy feature to implement but I’ve had that request in for years with no love.


In 1.0.39 in Internal Options --> Feature codes --> “Enable Inbound Multiple Mode:” ON
Setup another IVR with timeout 1s to a mailbox. In Basic Call/Routs --> Inbound Routes “Inbound Multiple Mode:” ON. Default mode is the normal IVR, Mode 1 is the temporary IVR. Remotly you can change the message in mailbox, and change the IVR mode via DISA.


How do I change the IVR mode via DISA? Wha do I need to set up?

I have the incoming route to a ring group - after 5 rings if no answer the call goes to an IVR. I would like to have the ability to remotely change the IVR to play the “office is closed due to weather” message



Create a DISA access (it’s just a password, and leave the permission as “internal”), and then select it as a destination for one of the unassigned digits of the IVR.

When you need to use it, just call and press the assigned digit in the IVR. Input the password when prompted and then dial “*62” to switch to “Inbound Mode 1”.

And don’t forget to pre record your message. If you want to record a message on the spot (using a VM, which is the only way), then dial that VM (“*981234” if the VM is “1234”) to login and record the message.


[quote=“CyFo, post:7, topic:13990”]Create a DISA access (it’s just a password, and leave the permission as “internal”), and then select it as a destination for one of the unassigned digits of the IVR.

When you need to use it, just call and press the assigned digit in the IVR. Input the password when prompted and then dial “*62” to switch to “Inbound Mode 1”.

And don’t forget to pre record your message. If you want to record a message on the spot (using a VM, which is the only way), then dial that VM (“*981234” if the VM is “1234”) to login and record the message.[/quote]

Also, as this is a voicemail, how can you program it to just drop the call after the message? I’m thinking that’s not possible and you’d just have to erase any mistaken voicemails after the message. To change back to default mode, you’d have to change it through the UCM.

I noticed also in testing, (via the phone) by remotely changing the inbound mode 1 destination to voicemail, there’s not a way to change back to default mode from the phone. For instance, the next day you want to turn back on default mode, you can’t do that because the default destination in inbound mode 1 is the VM you switch to. To change back to default mode, you’d have to change it through the UCM.


I also really want the ability for users to be able to update the IVR welcome message as I’m planning to implement a UCM6104 and some phones for my wife’s medical office and they currently use several greetings (closed for lunch, closed until tomorrow, closed for the weekend and call xxx for urgent matters, closed for the weekend and call yyy for urgent matters, closed for the holiday, …) The current system has a number of greetings recorded and they can easily switch from one greeting to another. It would be great to do this from the phone, but I’d be ok having them do it through a browser if it didn’t require giving them Super-Admin rights. To that end, it would be handy if I could create a limited admin user role (and define what privileges the role has) so I could create a user in the UCM user-interface that only allows update of the IVR welcome message.

Thinking out-of-the-box, has anyone thought about scripting the update from a custom homegrown app that sends http POST transactions to change the welcome message of the IVR? I’ve done a packet capture of the update via my browser and I’m tempted to write an app that connects to UCM, gets a list of IVRs and the list of custom prompts and then allows setting the welcome message to one of the custom prompts. Just wondering if this is a wheel that someone else has already invented (I haven’t heard anyone mention it in the forum, but I’m a newbie here, so I thought I’d explicitly ask). I know it may sound extreme, but someone said they’ve been asking for this feature for years and not having this is a deal-breaker for me. A downside would be that new firmware releases could require updates to the app :frowning:


I have put into play at multiple locations the ‘day-night’ mode on the newest firmware and it functions quite well, but it doesn’t really give a great way to change that second greeting if you do an IVR. previously stated above tho, using a voice mail box to present that message would give you the ability to change it when ever you’d like with ease.


Looking at some of the other ideas before this post, none really fit my needs. So, I decided to see how difficult it would be to script the ability to control the welcome prompt of the IVR. There were a couple of hurdles I had to overcome (login and applychanges), but they weren’t too difficult to figure out.

I just finished creating an app that gives current UCM6104 trunk status, allows playing/recording/selecting welcome messages for an IVR, shows current status of inbound route when multiple mode is enabled. Next I’m going to create a service that polls the PBX on a regular basis and a system tray app that communicates with the service and displays the inbound route mode and trunk status via colored icons in the system tray.

With the app I wrote, our staff can control the IVR welcome prompt without having to re-record a message on a VM each time the message changes, they don’t have unrestricted admin rights to the PBX, and they can control whether the IVR is on by dialing *61 or *62 on their phone.


Very nice. Let me know if you need anyone to test it out.


The app sounds like a great idea. Would love to test it too!


Currently, this functionality is part of an application that enhances the functionality of the Practice Management System. I’ll consider extracting it and making it available for others to use.



If the inbound route was set to an extension user for example the reception who is ext 100 if she recorded her custom voice mail message then set the DND on her phone. It could create the desired result . No one needs access to the pbx.

Messages can be changed has often has they like an activated when required.

The only limitation with be that the call must go to an extension user first or if it goes to an IVR an option with need to be created.



This has been suggested by others as well, but it would allow people to leave a message which I don’t want. I just want to play the greeting and then hangup. Can this be done with voicemail? Also, two analog trunks both ring on two different extensions via a ringgroup. Does this mean I’d need to create the same voicemail on both phones in order to have the incoming calls hear the message?


@Sharpwiz, This can be done, just disable the voicemail on the fake extension. Also, you can have the ring group time out into the same extension, but the individual extensions won’t have voicemail then.


Thanks for your suggestions, but I still have some questions about your idea.

Using voicemail, can you select from a number of pre-recorded greetings and can they be shared between extensions? A different greeting is required at lunch versus end of day and not all end of day greetings are the same (closed until tomorrow, closed for weekend, closed for holiday, etc.) There are 3 PSTN lines that are routed to a ringgroup of 2 extensions. Is there a way to select from multiple pre-recorded voicemail greetings? If not, then they would need to record a greeting twice per day. If this is the case, it seems easier to use IVR and allow them to record the greeting once and just select which one they want as the welcome prompt.

I extracted the UCM management code into a separate Windows form application. I added a system tray NotifyIcon and added it to the user’s startup so it runs automatically at logon. The system tray icon will differentiates between inbound mode 0 and 1 (mode one has a red blinking icon as this indicates the lines are routed to IVR) and allows you to open the form to make changes and see detailed status. It would be nice if the phone had a BLF that could monitor inbound mode (green=0, red=1). Perhaps i’ll submit that as an enhancement request.

I attached a screenshot of what it currently looks like (update: checkbox added to control inbound mode).


I had a similar problem and solved it as follows.

Incoming calls are directed to ext 95 (a dummy extension) which then forwards to one of several preconfigured IVR’s. On one of the phones, ext 95 is registered to an account line. From that phone anyone in the office can forward ext 95 to an IVR or ring-group. We have several IVR’s set up (one for lunch, one for after-hours etc) and the receptionist can forward all calls to one of these IVR’s by activating the line associated with ext 95 and *72 forwarding it to the extension associated with a particular IVR (7000, 7001, 7002 etc). This can be done to forward to any extension.

It’s a work-around but works well.


If the recordings are preset and always on the same schedule you can just create multiple IVRs and point the inbound routes to the right place based on a time schedule.

With multi-inbound mode you can even have two schedules.