I would recommend looking at your "Outbound Tools" page on your IVR account to see if the status of your queued IVR calls is "Running". If the status is "Stopped", hit the Start button to run your queued IVR calls.
Hope this helps.
Regards,
Plum Support
Last edited by support on Fri Feb 26, 2010 11:05 am, edited 3 times in total.
Given i have two pages Call.aspx and Result.aspx with a valid VXML.
If i initiate the outbound call by clicking on the a button in call.aspx and specifying Result.aspx as my result_url. After the call has been made will it automatically load Result.aspx or do i have to specify in the call.aspx to load result.aspx? And i would assume that i could get the parameters of the result_url by using something like Request[parameterName]
After the IVR call has been made and the IVR call session has completely ended, Result.aspx will automatically load. Keep in mind that the Plum IVR Outbound System is completely separate from the Plum Voice Platform. So, Result.aspx does not need to contain any valid VXML, since it only interacts with the Outbound IVR system.
After clicking the button the web application just stays on TestMakeCall.aspx page. It never post to the TestCallResult.aspx
Is there something else i have to turn on?
Your question does not make any sense given the architecture of the outbound IVR system. There are two distinct IVR systems at play here. First is the "outbound system" this is defined as the web application which accepts calls, determines the order in which they are dialed. Second is a VoiceXML system that execute VoiceXML scripts interacting with the caller and your application server. Hopefully this description will give you a better understanding of how the outbound IVR system works in general. This is the process for a successful call that includes both a start_url and a result_url:
1. Your code performs an HTTP POST to queuecall.php which includes a phone number, start_url and result_url.
2. The plum outbound IVR system places the call into a queue of possible calls to dial.
3. When an outbound channel on the VoiceXML systems becomes available and your call is at the top of the queue the call is placed.
4. The call is connected successfully, the callee type detection begins (if enabled).
5. The result of the callee type detection as well including all the parameters defined in the Outbound API are posted to your start_url.
6. A standard VoiceXML session continues from here.
7. The call completes, all VXML execution is completed.
8. The VoiceXML system notifies the outbound IVR system that the call is complete.
9. The outbound system posts a request to result_url including all the parameters defined in the Outbound API.
Here is a similar set of steps for an unsuccessful call:
1. Your code performs an HTTP POST to queuecall.php which includes a phone number, start_url and result_url.
2. The plum outbound system places the call into a queue of possible calls to dial.
3. When an outbound channel on the VoiceXML systems becomes available and your call is at the top of the queue the call is placed.
4. The call fails.
5. The VoiceXML system notifies the outbound system that the call has failed.
6. If the call has reached the maximum number of retries the outbound system posts a request to result_url including all the parameters defined in the Outbound API. Otherwise the call is placed back on the queue to be redialed.
Regards,
Plum Support
Last edited by support on Fri Feb 26, 2010 11:07 am, edited 3 times in total.
Is it possible to show the user of the web application the result_url?
This is the sequence i would like to implement
1) I clicks on the button to initiate a call probably to someone's cell phone (lets say i initiate a call to you )
2) If the you pickup the vxml script will transfer you to my phone.
3) After the call is complete whether it was a success or failure. I would like to have the web application to load the result_url to the user. This page will basically show the result of the call. Ie i would like to show if the call was successful, if i reached voicemail, was the line busy, or was there no answer
Because the outbound system posts to the result_url will i be able to show this page to the user of the web application right after the call is complete?
According to the Sequence diagram in 3.1 the Plum Outbound Service goes back to the Customer Application posting the result_url.
I hope that will make a little more sense on what i am trying to do.
Also note one of the things i did to check if the result_url page is being hit is i put a line that would write to the database. Basically a audit log. And what i noticed was that when the call was complete no record was written to the database. But when i open up a browser the type the url directly and it loads it does create a record.
Is there some sort of trace tool i could use to make sure that it is going to the result_url
What you are describing is not exactly what the result_url is designed to do. Of course there is always more than one way to implement something, but one possible way would be the following:
1. The user performs a request to queue an IVR call.
2. You generate a unique identifier for this call and store information about it in a database.
3. Your application server POSTs a request to queuecall.php and include that unique identifier in the message_reference (along with the phone number, start url and result url).
4. The user sees a new page indicating the IVR call is being attempted.
5. The new page starts polling your database to see when the call is completed.
6. The call completes or fails and a request is made to your result_url.
7. When result_url is called you update your database indicating that the call is complete based on the unique message_reference.
8. The polling page sees the updated data and updates the user interface to indicate that the IVR call is complete (and includes details about the call result).
Unfortunately there are no IVR trace capabilities to debug why your result_url is not being called. You mentioned that you can view it in a web browser. Are you sure it's expecting a POST rather than a GET? Rather than checking your database you should just check your web server access/error logs to see if the request came though.
Regards,
Plum Support
Last edited by support on Fri Feb 19, 2010 1:59 pm, edited 3 times in total.
I had looked at the web server log and saw that the post was happening on my result_url page. The problem is that the page has authentication and did not allow the post to execute completely.
I will need to take the authentication out of this page. The problem that this create is if i wanted to do polling as suggested this will leave my database unprotected.
I will poll on something else.
But i would like to know if there is some way to make the post to the result_url secure? Maybe use a public and private key for authentication during the post?
No, there is no shared key security (or other access restriction) capabilities in the outbound IVR system. What exactly are you worried about securing? The result_url should be an unpublished URL that the user is not given access to and it expects very specific variables that no user would actually know. When the user page is polling it should be against a different URL that is protecting the user from modifying anything in the database.
Regards,
Plum Support
Last edited by support on Fri Feb 26, 2010 11:08 am, edited 2 times in total.
I not polling against database. I have found a different way . It is now working just how i would like it.
a couple of observations.
Setup:
Calling a cell phone
Transfer to a land line
1) When i pick up the cell phone but hang up before the land line is pickup. I get a result as answeringmachine. Which in my case that is an ok result
2) If i let the cell phone go to voicemail mail. The result then becomes "voice". Did the system think that the voicemail recording was someone picking up the line?
3) if i dial a bad number (555-555-5555) the call result is "noanswer" . Would be no way for me to know that the number that was a dialed does not exists? I am assuming no since the 4 failures result are "fax|busy|noanswer|operator"
I wanted to thank support for all the help they have given me in past week and half . My IVR application is almost completely migrated over to Plum Voice Hosting. Just need to go through i a couple more use cases and i should be ready to get it to production