Being in an IVR, how I can "force" via an external action to move to another?

Hi all,
I posted several questions setting up an IVR … ( for reference : IVR - Execute Shell Script / PHP file ) .
I would need now to have an external action ( external to Freepbx / asterisk ) to make an IVR move to another one. I found that there is a REST API available ( but I don’t know which one ( AGI ou ARI ) and how to perform the following :

the user already went through several steps through IVRs… one announcement is saying that the caller must wait for an external validation…
From another system, completely unliked, someone performs an API call which will make the user currently on the IVR workflow waiting, moving to a next step.
any hints /suggestions?

There are various factors that would need to be considered.

  1. How does the remote system know exactly where the caller is in the IVR so they can move them to the next step.
  2. Which next step are they going to send them to? How many options are available at this point?
  3. IVRs have timeouts and will go to the timeout option if nothing is pressed. How are your agents going to handle the call before the timeout is hit?

So basically, how is the remote system going to know anything about this call?

1 : the remote system will be “a person”, so no issues on synch, it will be 100% under control
2 : just need to play a recording for exemple, very basic. idea was to move to another IVR as it is generic action. Only 1 options for ex ( remote operator validate or do not validate the move to next step )
3 : I will put a longer timeout and if we reach the timeout, then… too bad, but they will have to redo the workflow …

You still haven’t answered the question. If the remote system is a person, then how will that PERSON know where the call is in the call or where they are in the IVR menu? How can that person move the call along?

IVR’s require DTMF responses for action to be taken. So, again, how is this person going to push those DTMF options or move that channel to another context?

sorry, my bad, it was obvious for me.
at the previous IVR step, I trigger a script shell which perform an alert to the remote operator.
Having that said, I’m not at all sticked to move to another IVR, it could be to play a recording , move to a voicemail …
thx !

You’re going to need to write something with AMI so you can use it to control the call. Send DTMF, transfer the call to the new location (voicemail, recording). Which means you’ll need all the channel information for the call in order to control it.

The oblique answer is through a Misc App or Misc Dest, both of which can be destinations for IVR options and both of which can make things “external” to the local machine happen.

If it were that simple. The logic so far seems to be Caller A in IVR 1, User X gets notified and can select an option or action for Caller A if they don’t do anything.

@blazeStudio : yes , on the paper, very simple. But how can I do this ?
caller A calls -> IVR1 ->IVR2 which trigger the “notification” -> caller A waiting -> remote operator with notification trigger somehting remotely for caller A
That’s for this last step I need help

@cynjut : you mean by another shell script ?

Your system can access shell scripts and other “external” items by using a custom-context and connecting it to the system through a MISC-APP (Miscellaneous Application). You establish this, and it becomes something an IVR can connect to through the normal setup process.

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