- From: Robert Keiller <robert.keiller@voxsurf.com>
- Date: Fri, 22 Sep 2006 09:45:58 +0100
- To: <harbhanu@huawei.com>, <www-voice@w3.org>, "'Dan Evans'" <devans@invores.com>
- Message-ID: <DEEGIBIDCHOCDKMBLBMJAEHBCOAA.robert.keiller@voxsurf.com>
Hi, There certainly are or were differences in implementation for this between different VoiceXML implementations. I have worked with two or three that would give a 1s timeout and I know another implementation that would give a 7s timeout. Although I was initially very surprised by the 7s interpretation, being already familiar with the 1s interpretation, I believe now that it is correct. The timeout property simply defines the default value of the prompt timeout attribute. Since there is no prompt in the field itself the timeout property of 1s is irrelevant. The only prompt is in the block where the default value of the timeout attribute is set by the root document property to 7s. It is an error (albeit a common one) to believe that the timeout property defined in a field applies to the behaviour of the field itself rather than to any prompts, if defined, within that field. You can obviously fix this by putting a timeout attribute on the <block>'s prompt. If there are implementational reasons why this is not possible (eg the application element that creates the prompt does not have access to the timeout) an ugly fix is to put an empty prompt in the field. Robert -----Original Message----- From: www-voice-request@w3.org [mailto:www-voice-request@w3.org]On Behalf Of harbhanu Sent: 22 September 2006 06:50 To: www-voice@w3.org; 'Dan Evans' Subject: RE: Timeout property or timeout attribute? Hi, I think as per the VoiceXML 2.0 specification also, the value for timeout must be 1s. Excerpts from the spec. Section 4.1.7 (Prompt element) The timeout attribute specifies the interval of silence allowed while waiting for user input after the end of the last prompt. If this interval is exceeded, the platform will throw a noinput event. >>"This attribute defaults to the value specified by the timeout property"<< Section 6.3 (Property element) Properties may be defined for the whole application, for the whole document at the <vxml> level, for a particular dialog at the <form> or <menu> level, or for a particular form item. >>>"Properties apply to their parent element and all the descendants of the parent."<<< A property at a lower level overrides a property at a higher level. When different values for a property are specified at the same level, the last one in document order applies. Properties specified in the application root document provide default values for properties in every document in the application; properties specified in an individual document override property values specified in the application root document. From the above two highlighted text, it is expected that the field 'forcePlay' will wait for 1sec before throwing the noinput event. Please let me know about your inputs on this. Regards, Harbhanu Ps;>Please ignore the text that follows. **************************************************************************** *********** This e-mail and attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient's) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it! -----Original Message----- From: www-voice-request@w3.org [mailto:www-voice-request@w3.org] On Behalf Of Dan Evans Sent: Thursday, September 21, 2006 8:36 PM To: www-voice@w3.org Subject: Timeout property or timeout attribute? The following document (extracted from a larger one) produced a surprising result which seems to highlight an omission in the spec. <vxml application="root.vxml"> <property name="inputmodes" value="dtmf"/> <form> <block> <prompt>some prompt</prompt> <block> <field name="forcePlay" type="boolean"> <property name="timeout" value="1s"/> <catch event="noinput nomatch"> <assign name="forcePlay" expr="true"/> </catch> </field> </form> </vxml> root.vxml <vxml application="root.vxml"> <property name="timeout" value="7s"/> </vxml> The question is: how long does the field forcePlay wait before throwing noinput? The answer: 7 seconds. But if the field timeout property is moved to the dialog scope, the answer is: 1 second. The justification supplied by the vendor of the VoiceXML interpreter I was using was that the prompt: since it did not specify a timeout attribute, defaults to the timeout property in scope (spec 4.1.7) when the prompt is queued (the root timeout). The same section also says that the prompt timeout attribute is for supporting tapered prompts. The spec appears to be silent on the relative precedence of a prompt timeout versus an explicit property timeout for a field. I think the local scope property timeout should have precedence when there is a conflict. This would make timeout specification explicit instead of an inadvertent, and potentially unexpected, side effect. As an alternative, the prompt timeout attribute could define an empty value to allow the developer to indicate that the prompt should not carry an inherited timeout: <prompt timeout=""> or <prompt timeout="none">. Dan Evans
Received on Friday, 22 September 2006 08:46:31 UTC