Page 1 of 1
Session state management
Posted: Fri Sep 28, 2007 12:59 pm
by JeffBeard
I have a question that I wasn’t able to find an immediate answer to which is how to pass a variable around to maintain the state of a call within my system.
The use case is this: I initiate a call in my application and create a unique call session ID within my system. That ID gets embedded in the URL which is sent to the queuecall.php application.
That ID gets passed back my VoiceXML application by the Plum system so that my VoiceXML generator can embed it in the say, for example, a <submit> function URL. That way I can update the UI with the current status (i.e. end user pushed “1” or did not). Let me know if I need to clarify that (I'm a little sick and not think too clearly).
Thanks in advance for your help.
--Jeff
more details needed to resolve IVR issue
Posted: Fri Sep 28, 2007 2:05 pm
by support
Jeff,
It is unclear exactly what you are asking. Are you asking how to maintain persistent IVR session variables in VoiceXML or on your IVR application server? Please provide more detail about exactly where you are getting stuck in your IVR application.
Regards,
Plum Support
Posted: Fri Sep 28, 2007 4:21 pm
by JeffBeard
Thanks for your response and sorry for not being clear.
The requirement is to provide accurate and up to date feedback in a user interface on the status of a call.
My solution is a queue on which CallSession objects are loaded for the duration of a call. In order to make it work I need a unique session ID that can be passed between the IVR system and my application so that I can find the CallSession objects and update the state.
Since the IVR system makes a request to my application for the VoiceXML, I believe that my session ID needs to:
1. Be passed as a parameter in the initial request to queuecall.php
2. Be passed as a parameter to my application that generates VoiceXML
Once a person answers the call, my application will use a <submit> with the ID encoded as a parameter so that when the end user presses "1", my application can again update the state of the CallSession on the queue then the UI can be updated, informing the end user that the person they called pressed "1".
I hope that makes more sense.
Thanks,
Jeff
IVR outbound system
Posted: Fri Sep 28, 2007 4:35 pm
by support
Jeff,
The description you are providing about how to solve the problem sounds correct. When you queue the IVR calls into our IVR outbound system you can pass in a session ID in the "message_reference" parameter. That data will be sent to your "start_url" when the call is connected. The start_url will be written in the scripting language for your IVR application server and at that point you can store the call state in a database. Every time you want to track something you should be passing the session ID back to your application server using the
<submit> tag so that your IVR server can update the database again. The user interface on the web side would also be driven by this same database so it could provide access to information about call states.
Is there something in the above description that you are having problems coding?
Regards,
Plum Support
Posted: Fri Sep 28, 2007 4:51 pm
by JeffBeard
Sorry. That was my bad. I just wasn't seeing that message_reference parameter in the documentation for some reason. Thanks for the help and also for vetting my solution.
Thanks,
Jeff