We've Moved! Please visit our new and improved forum over at our new portal: https://portal.plumvoice.com/hc/en-us/community/topics

Session state management

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
JeffBeard
Posts: 3
Joined: Fri Sep 28, 2007 12:52 pm

Session state management

Post 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

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

more details needed to resolve IVR issue

Post 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
Last edited by support on Wed Feb 24, 2010 4:36 pm, edited 3 times in total.

JeffBeard
Posts: 3
Joined: Fri Sep 28, 2007 12:52 pm

Post 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

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

IVR outbound system

Post 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
Last edited by support on Fri Feb 19, 2010 4:22 pm, edited 3 times in total.

JeffBeard
Posts: 3
Joined: Fri Sep 28, 2007 12:52 pm

Post 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

Post Reply