- From: Skip Cave <Skip.Cave@intervoice.com>
- Date: Wed, 2 Aug 2006 11:56:15 -0500
- To: <www-voice@w3.org>
- Message-ID: <6E80E3E8D788BA4DB7EEFC88FBE9B01307A6440F@SRV-EXVS01-DAL.intervoice.int>
All, Here are some comments and scenarios that will hopefully help suggest some features for VXML 3.0 1) Be able to handle an external event (such as an incoming call or other concurrent process) that can suspend a current dialog thread (including in the middle of a play ore recognize state), take the call, and resume the play where it left off, before the interruption. 2) Similar function except allow a user to to spawn an asynchronous task (such as starting a recording from a key-press) during a play or recognize state, without affecting the current dialog thread - ie. the current recognize command and grammars remain active, even if a touch-tone command spawns some other process. 3) Initialize a database lookup, email list send, etc. or other concurrent process at anytime from a user's command (such as a touch-tone key-press), without interrupting main dialog flow. 4) Be able to deal with external async events such as a concurrent ask completion. Be able to make a decision whether external task has enough priority to interrupt the current dialog. Concurrency/Interrupt Scenarios: I'm listening to my voicemail. I listen to a message from Joe, saying that he wants me to call him. I tell the system to call Joe and connect him to me, if he can be reached. The system places concurrent calls to all of Joe's numbers - cell, office, home. Meanwhile, I continue to listen to my voicemails. If Joe answers, the system will tell Joe to hold while it gets me on the line. In the middle of a long voice message, Joe answers his call, and I get an announcement that interrupts the current voicemail message I am listening to. The interrupt message tells me that Joe is on the line. I tell the voicemail application to suspend, and to connect Joe to me. Joe & I talk, and when the conversation is completed, I tell the system to return to the suspended voicemail message. The system returns to the voicemail application and begins playing the last message I was listening to, where it left off before the interruption. Alternatively, Joe can't be reached. In that case, I do not want to be interrupted in the middle of my voicemail process. but I do want to be notified that Joe didn't answer, when I finish the voicemail session. Same scenario, except when Joe calls, I want to play a voicemail message to Joe that I received a couple of days ago. I talk to Joe briefly, then I tell the system to put Joe on hold, and return to the voicemail system. I tell the voicemail system to remember where I was in my voicemail review, but I want to find a message that I received two days ago. Once I find the message I want, I want to skip the first 30 seconds of the message, and play Joe the rest. I skip to the part I want Joe to hear, and pause the message. Then I tell the voicemail system that I want to conference Joe in, so he can hear the message. Once Joe is back on the line, I unpause/play the message. I use touch-tone keys to speed up/ slow down, and replay parts of the message. Once the conversation with Joe is completed, I want to return to the voicemail system, and start listening to the new voicemail messages, where I left off. Non-Call Control Concurrency In the middle of a banking application, I ask to find out how many checks I wrote to my Dentist over the last 10 years, and what is the sum total of all of those checks. This process may have to access slow storage, so it may take some time. While I am waiting for the answer, I ask for the list of checks that have cleared this month, in my checking account. While the cleared check list is being read to me, the original database query is completed. I get an interrupt announcement that my query is completed, in the middle of reading the list of cleared checks. I tell the cleared check application to suspend. And I listen to the results of my query on dental spending. After the query is completed, I return to the listening to the list of cleared checks, where I left off. Generally VXML needs a way to spawn concurrent tasks, or probably more practically, send asynchronous events or messages to other external processes. However, the key requirement for a next-gen VXML isn't sending messages, it is handling the asynchronous events and announcements that can come from external concurrent processes. Processes need a way to send asynchronous events to a VXML dialog thread process. These events should be dealt with in an async event handler within the VXML interpreter. The VXML event handler should be able to determine whether a specific event has high enough priority to interrupt the current dialog thread. If it does, the event handler should be able to suspend the current dialog (in a play, or recognize state), and launch a new dialog thread. The VXML event handler should have the option to save the state of the initial dialog thread, so that it can be returned to just where it left off, after the interrupt thread has completed. Or, the handler can not save the state if returning where one left off is not required. Other options could be to return to a specific point in the suspended thread, predetermined by the original VXML script, or the last dialog prompt before the interruption. Interrupt Masks VXML scripts need a way to define the level of interrupt mask that each dialog step holds. Incoming async events below the mask threshold will be queued until the mask is lowered enough that they can be serviced. Incoming events with priorities above the mask threshold will immediately suspend the current dialog thread and (optionally) save the dialog state, and launch a new dialog thread. The new dialog thread can also be interrupted with a sufficiently high priority event, so there will need to be a dialog state stack to keep track of all suspended dialog threads. These are some of the functions that we find we need most often when writing voice scripts. Hopefully these capabilities will be added to VXML 3.0 so it can be used in these more feature-rich applications. ________________________________ <http://www.intervoice.com> Ellis K. "Skip" Cave CHIEF SCIENTIST RESEARCH & DEVELOPMENT INTERVOICE, INC. P: (972) 454-8800 M: (214) 460-4861 skip.cave@intervoice.com ________________________________ Intervoice: Connecting People and Information. This e-mail transmission may contain information that is proprietary, privileged and/or confidential and is intended exclusively for the person(s) to whom it is addressed. Any use, copying, retention or disclosure by any person other than the intended recipient or the intended recipient's designees is strictly prohibited. If you are the intended recipient, you must treat the information in confidence and in accordance with all laws related to the privacy and confidentiality of such information. If you are not the intended recipient or their designee, please notify the sender immediately by return e-mail and delete all copies of this email, including all attachments.
Attachments
- image/jpeg attachment: image001.jpg
Received on Wednesday, 2 August 2006 17:03:14 UTC