You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-user@tomcat.apache.org by Rahul Akolkar <ra...@gmail.com> on 2006/01/12 23:01:12 UTC

Re: RDC

Aravilli -

For starters, what platform are you deploying on? Do you have a link
or pointer to the documentation for this platform? I've never used
such a stripped down platform, so it'd be good to know. Thanks. Now on
to your questions ...


On 1/11/06, Rao, Aravilli Srinivasa <ar...@sonusnet.com> wrote:
>
> Rahul,
>
> I have some issues with current RDC
>
<snip-descriptions/>
>
>
>
> So in order to overcome the above issues, I have used the following solution
>
> 1)         Remove the property elements in fsm-input.tag    [best
> option would be move these properties to the config file rather than hard
> coding in the fsm-input.tag and change the config schema such that it
> supports one more element "property" .  In this way we can specify several
> property element which  are supported by VoiceXML specification and Media
> Servers]
>
<snip/>

You can specify properties in the config file. You cannot, however,
suppress the ones in fsm-input.tag, thats true. See overall comments
below.


>
>
> 2)         Commented the script and modified the submit element in
> fsm-input.tag
>
>
> <filled>
>
>   <c:if test="${!model.skipSubmit}">
>
>   <!--
>
>     <script src="${pageContext.request.contextPath}/.grammar/nbest.js"/>
>
>     <var name="${model.id}ResultNBest" expr="serializeNBest()"/>
>
>     <submit next="${model.submit}" method="post"
> namelist="${model.id}ResultNBest"/>
>
>   -->
>
>   <submit next="${model.submit}" namelist="${model.namelist}" />
>
>   </c:if>
>
>   </filled>
>
>
> 3)           Added "namelist" property in the BaseModel.java and
> modified the builtinGrammar.tag such it takes this attribute also.  I have
> added in the BaseModel because it can be used in other tags like digits,
> date etc also.
>
>
> <rdc: builtinGrammar id="testAb" submit="http://host:8080/rdc/exit.do"
> config="/config/test.xml" namelist="testAbInput true" />
>
>
> Please provide your views/ideas in order to achieve the same?
>
<snap/>

So, to summarize:

These issues are observed in using a platform where the available
support is lesser than the minimum anticipated by the RDC taglib, i.e.

 * There is no ECMAScript (for the casual observer, this is quite
different as compared to say, graphical browsers, where the user can
just "turn it off")
 * Some VoiceXML 2.0 properties are not supported.

Now, as notes about the constraints we should work under, a couple of
"sweeping" comments -

1) We cannot break the fundamental premises in componentization.
2) We cannot break backwards compatibility (well, not drastically till
RDC 2.0 atleast)

Due to (1), it won't be prudent to have an arbitrary "namelist" on a
component and use it to return a set of values that may have nothing
to do with the internals of the component itself. However, it is quite
easy to achieve what you desire using an external VoiceXML submit tag
in your JSP, i.e. to say -

<rdc:someRDC id="myRDC" ... />

<c:if test="${not empty myRDC}">
    <submit next="url/of/choice" namelist="myRDC foo bar" />
</c:if>

where foo and bar are variables unrelated to the myRDC component.

Due to (2), we cannot change the fsm-input tag unless we can
demonstrate backwards compatibility. One way to achieve that, would be
to introduce a "minimal" RDC configuration, which caters to platforms
that don't support scripting and/or any VoiceXML properties, and
direct the input state through a fsm-input-minimal tag instead, if
that configuration is chosen. The difference can then be illustrated
as:

<rdc:date id="myDate1" />

<rdc:date id="myDate2" platform="minimal" />

(or some such well thought out attribute name and values, ones used
here for illustration only)

This approach will ensure that the changes propogate across all RDCs.
So, I would approach this by:

1) Authoring a "minimal" fsm-input
2) Modifying fsm-run to branch if "minimal"
3) Not adding a namelist, since that should be handled outside the
component boundary

If you're interested in tackling this, please file an enhancement
request in Bugzilla. I am inclined to mark it to LATER (which means it
will not be applied any time in the immediate future), but it may be
helpful to others, and it'll be nice to have this issue on file as
well.

I'm inclined to mark it LATER because:

a) There are some minimal platform requirements for any project, and
those for RDCs do imply full VoiceXML 2.0 support. At some point,
trying to support every platform just becomes code bloat.
b) You're the first to ask for this support. If indeed many users ask
for this support in the future, we can revisit this if its on file.

Finally, thanks for the rdc:builtin component you've submitted via
Bugzilla. I've looked at it, and it looks good, but I need to make a
couple of changes:

I) "type" property doesn't belong in BaseModel
II) The config file you've attached is fictitious and cannot be used

I'll make the necessary changes before adding the new component,
that'll probably be a few more days.

-Rahul


>
> Regards
>
> Aravilli
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-user-help@jakarta.apache.org