cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
447
Views
0
Helpful
0
Comments
cdnadmin
Level 11
Level 11
This document was generated from CDN thread

Created by: Mert Guray on 13-12-2009 02:08:28 PM
Hello,
On our ASR Call Studio application (V 6.0) we were catching hotEvents of -error.com.cisco.media.resource.unavailable.asr-. This is because gateway is receiving "speech-too-early" from ASR engine (Nuance 8.5) frequently and this reaches our VXML application as the event above. After realising that we are also receiving no-resource error as well, we added the error.noreasource as a hot event too. After that no unavailbale.asr was caught. Instead all the events appeared as error.noresource. I wouldn't think of these two events having a hierarchical relation. Is there?
Is there anyone who has an idea?

Subject: Re: New Message from Mert Guray in Customer Voice Portal (CVP) - General Di
Replied by: Janine Graves on 13-12-2009 02:26:10 PM
Here are 2 possible explanations, perhaps someone at Cisco can verify or
clarify.

Possibility 1) I would agree that in general VXML events are distinct.
But, the error.com.cisco.media.resource.unavailable.asr is a
Cisco-specific event. And it's possible that this event is only returned
to the VXMLServer if the standard events (.eg., error.noresource) aren't
handled.

Possibility 2) If you look in the 'root document' (which I'll paste
below) that VXML Server creates for each application and each phone
call, it has a <catch> handler for every possible 'event' that can occur.

In that root document, <catch event="error.noresource"> is above <catch
event="error.com.cisco.media.resource.unavailable.asr"> in 'document
order' (the order the code appears on the page). In VXML, only one catch
handler is executed when an error occurs, and it's the one with the best
match, 'in document order'.


Sample Root Document:
<vxml version="2.0">
    <script>
      <![CDATA[
        function getElapsedTime(startTime){
        var numMilliseconds = new Date().getTime();
        return numMilliseconds - startTime;
      }]]>
    </script>
    <!-- -------------this allows callers to say
'help'-------------------- -->
    <property name="universals" value="help" />
    <!-- --------------CVP
variables-------------------------------------- -->
    <var name="audium_vxmlLog" expr="''" />
    <var name="audium_element_start_time_millisecs" expr="0" />
    <var name="cisco_vxml_error_count" expr="0" />
    <var name="audium_type" />
    <!-- -------------------Custom hotlinks are defined
here---------------- -->
    <!-- -------------See bottom of this page for where they are
caught----  -->
    <link event="com.audium.hotlink.link_agent">
        <grammar xmlns="http://www.w3.org/2001/06/grammar" mode="voice"
          
           type="application/grammar+xml" version="1.0" root="ROOTVOICE">
            <rule id="ROOTVOICE" scope="public">
                <one-of>
                    <item>customer service rep</item>
                    <item>c s r</item>
                </one-of>
            </rule>
        </grammar>
        <grammar xmlns="http://www.w3.org/2001/06/grammar" mode="dtmf"
          
        type="application/grammar+xml" version="1.0" root="ROOTDTMF">
            <rule id="ROOTDTMF" scope="public">
                <one-of>
                    <item>*0</item>
                </one-of>
            </rule>
        </grammar>
    </link>
    <link event="help">
        <grammar xmlns="http://www.w3.org/2001/06/grammar" mode="voice"
          
        type="application/grammar+xml" version="1.0" root="ROOTVOICE">
            <rule id="ROOTVOICE" scope="public">
                <one-of>
                    <item>help me please</item>
                    <item>assistance</item>
                    <item>i hate you</item>
                </one-of>
            </rule>
        </grammar>
        <grammar xmlns="http://www.w3.org/2001/06/grammar" mode="dtmf"
          
        type="application/grammar+xml" version="1.0" root="ROOTDTMF">
            <rule id="ROOTDTMF" scope="public">
                <one-of>
                    <item>*2</item>
                </one-of>
            </rule>
        </grammar>
    </link>
    <!-- ------------------CVP default catch handlers appear
here---------------- -->
    <!-- -HotEvents are custom catch handlers. They replace CVP default
handlers- -->
    <catch event="vxml.session.error">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog           
        audium_action audium_type audium_message" />
    </catch>
    <catch event="telephone.disconnect.transfer">
        <var name="audium_action" expr="'call_transfer'" />
        <assign name="audium_type" expr="'telephone.disconnect.transfer'" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type" />
    </catch>
    <catch event="telephone.disconnect.hangup">
        <var name="audium_action" expr="'hangup'" />
        <assign name="audium_type" expr="'telephone.disconnect'" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type" />
    </catch>
    <catch event="telephone.disconnect">
        <var name="audium_action" expr="'hangup'" />
        <assign name="audium_type" expr="'telephone.disconnect'" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type" />
    </catch>
    <catch event="help">
        <throw event="nomatch" />
    </catch>
    <catch event="error.unsupported.object">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.unsupported.language">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.unsupported.format">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.unsupported.element">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.unsupported.builtin">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.unsupported">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.semantic">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.noresource">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.noauthorization">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.eventhandler.notfound">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.connection.noroute">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.connection.noresource">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.connection.nolicense">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.connection.noauthorization">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog       
        audium_action audium_type audium_message" />
    </catch>
    <catch event="error.connection.baddestination">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action
        audium_type audium_message" />
    </catch>
    <catch event="error.condition.baddestination">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action
        audium_type audium_message" />
    </catch>
    <catch event="error.com.cisco.media.resource.unavailable">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action
        audium_type audium_message" />
    </catch>
    <catch event="error.com.cisco.handoff.failure">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action audium_type audium_message" />
    </catch>
    <catch event="error.com.cisco.callhandoff.failure">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action audium_type audium_message" />
    </catch>
    <catch event="error.com.cisco.aaa.authorize.failure">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action audium_type audium_message" />
    </catch>
    <catch event="error.com.cisco.aaa.authenticate.failure">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action audium_type audium_message" />
    </catch>
    <catch event="error.badfetch.https">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action
        audium_type audium_message" />
    </catch>
    <catch event="error.badfetch.http">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action
        audium_type audium_message" />
    </catch>
    <catch event="error.badfetch">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action
        audium_type audium_message" />
    </catch>
    <catch event="error">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action
        audium_type audium_message" />
    </catch>
    <catch event="disconnect.com.cisco.handoff">
        <if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">
            <var name="caller_input" expr="'system_unavailable'" />
            <return namelist="caller_input" />
        </if>
        <var name="audium_action" expr="'error'" />
        <assign name="audium_type" expr="_event" />
        <var name="audium_message" expr="_message" />
        <assign name="cisco_vxml_error_count"
expr="cisco_vxml_error_count + 1" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action
        audium_type audium_message" />
    </catch>
    <catch event="connection.disconnect.transfer">
        <var name="audium_action" expr="'call_transfer'" />
        <assign name="audium_type"
expr="'connection.disconnect.transfer'" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action
        audium_type" />
    </catch>
    <catch event="connection.disconnect.hangup">
        <var name="audium_action" expr="'hangup'" />
        <assign name="audium_type" expr="'connection.disconnect'" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action
        audium_type" />
    </catch>
    <catch event="connection.disconnect">
        <var name="audium_action" expr="'hangup'" />
        <assign name="audium_type" expr="'connection.disconnect'" />
        <submit next="/CVP/Server" method="post" namelist="
audium_vxmlLog audium_action
        audium_type" />
    </catch>
    <catch event="com.audium.vxml.event">
        <var name="audium_action" expr="'vxml_event'" />
        <var name="audium_error" expr="_message" />
        <assign name="audium_type" expr="_message" />
        <submit next="/CVP/Server" method="post" namelist="
audium_action audium_error
        audium_type" />
    </catch>
    <!--  --------------------Custom HotLinks are caught
here------------------  -->
    <catch event="com.audium.hotlink.link_mainmenu">
        <var name="audium_hotlink" expr="'link_mainmenu'" />
        <submit next="/CVP/Server" method="post" namelist=" audium_hotlink
        audium_vxmlLog" />
    </catch>
    <catch event="com.audium.hotlink.link_agent">
        <var name="audium_hotlink" expr="'link_agent'" />
        <submit next="/CVP/Server" method="post" namelist=" audium_hotlink
        audium_vxmlLog" />
    </catch>
    <catch event="com.audium.error">
        <var name="audium_action" expr="'custom_disconnect'" />
        <submit next="/CVP/Server" method="post" namelist=" audium_action
        audium_type" />
    </catch>
    <catch event="com.audium.disconnect">
        <var name="audium_action" expr="'custom_disconnect'" />
        <assign name="audium_type" expr="'disconnect.audium'" />
        <submit next="/CVP/Server" method="post" namelist=" audium_action
        audium_type" />
    </catch>
</vxml>



Cisco Developer Community Forums wrote:
> Mert Guray has created a new message in the forum "General Discussion
> - All Versions":
>
> --------------------------------------------------------------
> Hello,
> On our ASR Call Studio application (V 6.0) we were catching hotEvents
> of -error.com.cisco.media.resource.unavailable.asr-. This is because
> gateway is receiving "speech-too-early" from ASR engine (Nuance 8.5)
> frequently and this reaches our VXML application as the event above.
> After realising that we are also receiving no-resource error as well,
> we added the error.noreasource as a hot event too. After that no
> unavailbale.asr was caught. Instead all the events appeared as
> error.noresource. I wouldn't think of these two events having a
> hierarchical relation. Is there?
> Is there anyone who has an idea?
> --
> To respond to this post, please click the following link:
>
> <http://developer.cisco.com/web/cvp/forums/-/message_boards/message/1837757>
>
> or simply reply to this email.

Subject: RE: Re: New Message from Mert Guray in Customer Voice Portal (CVP) - Genera
Replied by: Mert Guray on 13-12-2009 03:42:48 PM
I understand the first explanation. So according to that there is nothing to be done. If we want to catch a cisco specific event then we have to take off all the standart event handlers. It doesn't sound good to me.
For the second explanation, i couldn't see the "<catch event="error.com.cisco.media.resource.unavailable.asr">" expression. sorry if i am missing something. And is this root documentation a general one or is it being specified with the application.

Subject: Re: New Message from Mert Guray in Customer Voice Portal (CVP) - General Di
Replied by: Janine Graves on 13-12-2009 04:34:10 PM
As part of the VXML Specification, it says that if an event like
error.com.cisco.media.resource.unavailable.asr is also eligible to be
handled by a <catch> handler that specifies any prefix (up to a dot in
the event name) of the event that occurs.

So, if error.com.cisco.media.resource.unavailable.asr occurs, then all
of the following event handlers are eligible to catch that event:
<catch event="error.com.cisco.media.resource.unavailable.asr">
<catch event="error.com.cisco.media.resource.unavailable">
<catch event="error.com.cisco.media.resource">
<catch event="error.com.cisco.media">
<catch event="error.com.cisco">
<catch event="error">

And the first one in document order (assuming they're all listed in the
root document) will be the one that 'wins' and handles that event when
it occurs.

Here's a link to the VXML Specification where it talks about its 'catch'
algorithm:http://www.w3.org/TR/voicexml20/#dml5.2.4

The RootDocument that I pasted is standard for all Studio applications.
It's created by VxmlServer.

But, if you have HotLinks or HotEvents in your application, or if you
set Root Docuement Properties (under Project/Properties of the Studio
app) then the root doc is altered.

The sample that you saw showed some custom HotLinks that I had in my
Studio application (and the documentation notes were mine).

Similarly, if you have a custom handling for a HotEvent (like to
re-direct the code to send the caller back to ICM or to an agent), then
you'd see your HotEvent show up as a specific handler (eg, <catch
event="error.noresource">), rather than seeing Cisco's  handler.

What you'd actually see is something that does a <submit> back to
'/CVP/Server' the name of your HotEvent element which handles that event.
Then Vxml Server knows to jump to your HotEvent element.

Again, I don't work for Cisco and don't know how its voice browser
decides which event to handle or which event name to return to the
application. I'm hoping someone at Cisco can fill in more details.


Cisco Developer Community Forums wrote:
> Mert Guray has created a new message in the forum "General Discussion
> - All Versions":
>
> --------------------------------------------------------------
> I understand the first explanation. So according to that there is
> nothing to be done. If we want to catch a cisco specific event then we
> have to take off all the standart event handlers. It doesn't sound
> good to me.
> For the second explanation, i couldn't see the "<catch
> event="error.com.cisco.media.resource.unavailable.asr">" expression.
> sorry if i am missing something. And is this root documentation a
> general one or is it being specified with the application.
> --
> To respond to this post, please click the following link:
>
> <http://developer.cisco.com/web/cvp/forums/-/message_boards/message/1837797>
>
> or simply reply to this email.

Subject: RE: Re: New Message from Mert Guray in Customer Voice Portal (CVP) - Genera
Replied by: Mert Guray on 14-12-2009 07:42:48 AM
Thanks Janine.
I got your point. One last question, where can i get my own root document? Did you get it from debugger log? I would like to check how is it like on our side.

Subject: RE: Re: New Message from Mert Guray in Customer Voice Portal (CVP) - Genera
Replied by: Ranjana Narayan on 14-12-2009 10:26:40 AM
Mert,
 
Yes, you can look at the Root doc by enabling Debugger. With certain ES applied, the root doc content might vary.
 
Hth,
Ranjana.

Subject: Re: New Message from Mert Guray in Customer Voice Portal (CVP) - General Di
Replied by: Janine Graves on 14-12-2009 06:23:10 PM
you have to turn on debug logging. the root document will be near the
top of the log.

Cisco Developer Community Forums wrote:
> Mert Guray has created a new message in the forum "General Discussion
> - All Versions":
>
> --------------------------------------------------------------
> Thanks Janine.
> I got your point. One last question, where can i get my own root
> document? Did you get it from debugger log? I would like to check how
> is it like on our side.
> --
> To respond to this post, please click the following link:
>
> <http://developer.cisco.com/web/cvp/forums/-/message_boards/message/1838371>
>
> or simply reply to this email.
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Quick Links