DTD Error

Version 1
    This document was generated from CDN thread

    Created by: Patrick Hartl on 02-11-2009 10:00:56 AM
    Hello,
     
    I want to build a short IVR with vxml. When I add a second form to my vxml document I become an DTD error.
    Element <audio> is not used according to DTD
     
    The beginning of my doc:
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <vxml version="2.0">
     
    or
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE vxml
        PUBLIC "-//W3C//DTD VOICEXML 2.0//EN"
        "http://www.w3.org/TR/voicexml21/vxml.dtd">
    <vxml version="2.0">
     
     
    I want to add:
     
    <elseif cond="mycall == 'noanswer'"/>
        <goto next="#noan"/>
     
    with an link to
     
    <form id="noan">
     
    but the call will be disconnected and the error occurs.
    Have anyone a idea ?
     
    thx
    regards Patricio

    Subject: RE: DTD Error
    Replied by: ANUSHA KANNAPPAN on 02-11-2009 11:19:31 AM
    Hi Patricio,

    I don¿t see any syntax errors in the way you have added the second form in the script. Are you trying to play an audio file in the second form? If so can you please check for the correctness of that tag and also check whether the files are there in the specified location.

    Thanks,
    Anusha

    Subject: RE: DTD Error
    Replied by: Patrick Hartl on 02-11-2009 11:53:19 AM
    Hi,
    Thank you for your response. This is a sample vxml configuration. The audio files are on the flash memory.
    Without the hop "goto next" and a second section <form> the default audio is played and the script seems ok.
    But I have to use different sections...
     
     
    <?xml version="1.0"?>
    <vxml version="2.0">
    <!--
    Cisco Voicexml Default
    File Name : sdc.vxml

    -->
    <catch event="error.badfetch">
            <prompt>
                    <audio src="technical.au"></audio>
            </prompt>
            <log> Catch Handler :: Bad Fetch </log>
    </catch>

    <catch event="telephone.disconnect.transfer">
            <log> Catch Handler :: Blind Transfer </log>
    </catch>

    <catch event="telephone.disconnect.hangup">
            <log> Catch Handler :: User disconnected </log>
    </catch>


    <form id="main">

            <var name="mydur"/>
            <var name="PhoneNum" expr="session.connection.remote.uri"/>

            <!-- Play music while attempting to connect to far-end -->

            <transfer name="mycall" destexpr="'sip:'+session.connection.local.uri+'@192.168.251.2:5060'" transferaudio="moh01.wav" bridge="true" connecttimeout="10s">
     

            <filled>
            <assign name="mydur" expr="mycall$.duration"/>

            <if cond="mycall == 'busy'">
        <goto next="#busy"/>
     
            <elseif cond="mycall == 'noanswer'"/>
        <goto next="#noanswer"/>
     
        <elseif cond="mycall == 'unknown'"/>
        <goto next="#unknown"/>
     
        <elseif cond = "mycall == 'maxtime.disconnect'"/>
         <goto next="#maxtime"/>

             </if>

             </filled>
            </transfer>
    </form>

    <form id="busy">
                <audio src="busy.ulaw.wav"/>
    </form>

    <form id="noanswer">
                <audio src="noanswer.ulaw.wav"/>
    </form>

    <form id="unknown">

            <var name="phone_num"/>

            <field name="get_phone_num" type="number">
                    <grammar type="application/grammar+regex">...</grammar>
                            <prompt bargein="true">
                                    <audio src="unknown.ulaw.wav"></audio>
                            </prompt>
                    <filled>
                            <assign name="phone_num" expr="get_phone_num"/>
                    </filled>
            </field>

            <transfer name="mycall" destexpr="'tel: ' + phone_num" connecttimeout="30s" cisco-longpound ="true" bridge="true">
            </transfer>
    </form>

    <form id="maxtime">
                <audio src="goodbye.au"/>
    </form>

    </vxml>
     


    The DEBUG:
     
     
    *Nov  2 11:57:14: //2689//VXML:/Open_SetupIndication:
    *Nov  2 11:57:14: //2689//AFW_:/vapp_vxmldialog: Trusted=0, DNIS Map URI=, Code = {
                                                                                    
    }
    *Nov  2 11:57:14: //2689//AFW_:/vapp_vxmldialog: After DNIS Map URI=flash:sdc.vxml, Code = {
    <?xml version="1.0"?>
    <vxml version="2.0">
    <!--
    Cisco Voicexml Default
    File Nam
    }
    *Nov  2 11:57:14: //-1//AFW_:/AFW_VxmlModule_New: 
    *Nov  2 11:57:14: //-1//VXML:/vxml_tree_lock: 
       vxmlp=67B93F3C usage_cnt=0
    *Nov  2 11:57:14: //0/B21051F18CC0/VXML:/vxml_start_element_handler: 
       CALL_ERROR; flash:sdc.vxml
       at line 56: Element <audio> is not used according to DTD
    *Nov  2 11:57:14: //0/B21051F18CC0/VXML:/vxml_parse: 
      
    *Nov  2 11:57:14: vxml_parse: XML_Parse success err=0
    *Nov  2 11:57:14: vxml_tree_delete_for_parse_failure:mem_mgr_mempool_free: mempool=NULL
    *Nov  2 11:57:14: //0/B21051F18CC0/VXML:/vxml_session_delete: 
       
    *Nov  2 11:57:14: vxml_session_delete:mem_mgr_mempool_free: mem_refcnt(6BA9244C)=0 - mempool cleanup
    *Nov  2 11:57:14: vxml_session_delete:mem_mgr_mempool_free: mempool=NULL
    *Nov  2 11:57:14: //-1//VXML:/vxml_create: 
      
    *Nov  2 11:57:14: vxml_create: error exit
    *Nov  2 11:57:14: //-1//VXML:/vxml_create: 
       CALL_ERROR; code=ERROR vapp=VAPP_SUCCESS vxml=
    *Nov  2 11:57:14: //2689//AFW_:/vapp_terminate:
    *Nov  2 11:57:14: //2689//AFW_:/vapp_session_exit_event_name: Exit Event vxml.session.complete
    *Nov  2 11:57:14: //2689//AFW_:/AFW_M_VxmlModule_Terminate:
    *Nov  2 11:57:14: //2689//AFW_:/vapp_checksessionstate:
    *Nov  2 11:57:14: //2689//AFW_:/vapp_checkifdone: Object: 1, Leg: 1
    *Nov  2 11:57:14: //2689//AFW_:/vapp_checksessionstate:
    *Nov  2 11:57:14: //2689//AFW_:/vapp_checkifdone: Object: 0, Leg: 0
    *Nov  2 11:57:14: //-1//AFW_:HNCDD7FEFC:/AFW_M_VxmlModule_Free:
    *Nov  2 11:57:14: MOD[VxmlModule_67E7C8E0_0_3453484796] ( )
     
     
    Regards
    Patrick
     
     
     
     

    Subject: RE: DTD Error
    Replied by: ANUSHA KANNAPPAN on 02-11-2009 02:14:35 PM
    Hi Patrick,

    Place the audio tag inside the block tag. Then it would work without any issue.

    For example:
    ---------------
    Instead of

    <form id="noanswer">
                <audio src="noanswer.ulaw.wav"/>
    </form>

    Use the following:

    <form id="noanswer">
    <block>
                <audio src="noanswer.ulaw.wav"/>
    </block>
    </form>

    Thanks,
    Anusha.

    Subject: RE: DTD Error
    Replied by: Patrick Hartl on 02-11-2009 02:23:53 PM
    Hi,
     
    Now I have changed the program to:
     
    <form id="busy">
    <block>
              <audio src="busy.ulaw.wav"/>
    </block>
    </form>

     
    Now I have an other error:
     
     
    *Nov  2 14:24:07: //-1//VXML:EE66C89EFC000:/C_ServiceVxmlBase_Main: 
    *Nov  2 14:24:07: %VOICE_ELOG-4-MEM_USAGE_HI_WATERMARK: System memory on high usage (81/100). Stopping processing new event log for now.
    *Nov  2 14:24:07: //2690//VXML:/Open_SetupIndication:
    *Nov  2 14:24:07: //2690//AFW_:/vapp_vxmldialog: Trusted=0, DNIS Map URI=, Code = {
                                                                                    
    }
    *Nov  2 14:24:07: //2690//AFW_:/vapp_vxmldialog: After DNIS Map URI=flash:sdc.vxml, Code = {
    <?xml version="1.0"?>
    <vxml version="2.0">
    <!--
    Cisco Voicexml Default
    File Nam
    }
    *Nov  2 14:24:07: //-1//AFW_:/AFW_VxmlModule_New: 
    *Nov  2 14:24:07: //-1//VXML:/vxml_tree_lock: 
       vxmlp=67B93F3C usage_cnt=0
    *Nov  2 14:24:07: //0/373F49C68CC4/VXML:/vxml_character_data: 
       CALL_ERROR; flash:sdc.vxml

       at line 55: Invalid PCDATA
    *Nov  2 14:24:07: //0/373F49C68CC4/VXML:/vxml_parse: 
      
    *Nov  2 14:24:07: vxml_parse: XML_Parse success err=2
    *Nov  2 14:24:07: vxml_tree_delete_for_parse_failure:mem_mgr_mempool_free: mempool=NULL
    *Nov  2 14:24:07: //0/373F49C68CC4/VXML:/vxml_session_delete: 
       
    *Nov  2 14:24:07: vxml_session_delete:mem_mgr_mempool_free: mem_refcnt(6AC1A990)=0 - mempool cleanup
    *Nov  2 14:24:07: vxml_session_delete:mem_mgr_mempool_free: mempool=NULL
    *Nov  2 14:24:07: //-1//VXML:/vxml_create: 
      
    *Nov  2 14:24:07: vxml_create: error exit
    *Nov  2 14:24:07: //-1//VXML:/vxml_create: 
       CALL_ERROR; code=ERROR vapp=VAPP_SUCCESS vxml=

    *Nov  2 14:24:07: //2690//AFW_:/vapp_terminate:
    *Nov  2 14:24:07: //2690//AFW_:/vapp_session_exit_event_name: Exit Event vxml.session.complete
    *Nov  2 14:24:07: //2690//AFW_:/AFW_M_VxmlModule_Terminate:
    *Nov  2 14:24:07: //2690//AFW_:/vapp_checksessionstate:
    *Nov  2 14:24:07: //2690//AFW_:/vapp_checkifdone: Object: 1, Leg: 1
    *Nov  2 14:24:07: //2690//AFW_:/vapp_checksessionstate:
    *Nov  2 14:24:07: //2690//AFW_:/vapp_checkifdone: Object: 0, Leg: 0
    *Nov  2 14:24:07: //-1//AFW_:HNCE5E7A4C:/AFW_M_VxmlModule_Free:
    *Nov  2 14:24:07: MOD[VxmlModule_67E7CDE0_0_3462298188] ( )
     
     
    and after changing the form id busy to busytag - then I have the same eror as bevor:
     
    <?xml version="1.0"?>
    <vxml version="2.0">
    <!--
    Cisco Voicexml Default
    File Nam
    }
    *Nov  2 14:32:51: //-1//AFW_:/AFW_VxmlModule_New: 
    *Nov  2 14:32:51: //-1//VXML:/vxml_tree_lock: 
       vxmlp=67B93F3C usage_cnt=0
    *Nov  2 14:32:51: //0/008730EA8500/VXML:/vxml_start_element_handler: 
       CALL_ERROR; flash:sdc.vxml
       at line 74: Element <block> is not used according to DTD

    *Nov  2 14:32:51: //0/008730EA8500/VXML:/vxml_parse: 
      
    *Nov  2 14:32:51: vxml_parse: XML_Parse success err=0
    *Nov  2 14:32:51: vxml_tree_delete_for_parse_failure:mem_mgr_mempool_free: mempool=NULL
    *Nov  2 14:32:51: //0/008730EA8500/VXML:/vxml_session_delete: 
       
    *Nov  2 14:32:51: vxml_session_delete:mem_mgr_mempool_free: mem_refcnt(6A5C76E8)=0 - mempool cleanup
    *Nov  2 14:32:51: vxml_session_delete:mem_mgr_mempool_free: mempool=NULL
    *Nov  2 14:32:51: //-1//VXML:/vxml_create: 
      
    *Nov  2 14:32:51: vxml_create: error exit
    *Nov  2 14:32:51: //-1//VXML:/vxml_create: 
       CALL_ERROR; code=ERROR vapp=VAPP_SUCCESS vxml=
    *Nov  2 14:32:51: //2693//AFW_:/vapp_terminate:
    *Nov  2 14:32:51: //2693//AFW_:/vapp_session_exit_event_name: Exit Event vxml.session.complete
    *Nov  2 14:32:51: //2693//AFW_:/AFW_M_VxmlModule_Terminate:
    *Nov  2 14:32:51: //2693//AFW_:/vapp_checksessionstate:
    *Nov  2 14:32:51: //2693//AFW_:/vapp_checkifdone: Object: 1, Leg: 1
    *Nov  2 14:32:51: //2693//AFW_:/vapp_checksessionstate:
    *Nov  2 14:32:51: //2693//AFW_:/vapp_checkifdone: Object: 0, Leg: 0
    *Nov  2 14:32:51: //-1//AFW_:HNCE667764:/AFW_M_VxmlModule_Free:
    *Nov  2 14:32:51: MOD[VxmlModule_67E7E1E0_0_3462821732] ( )
    regards
    Patrick

    Subject: RE: DTD Error
    Replied by: Patrick Hartl on 03-11-2009 06:40:26 AM
    Hi,
     
    Sorry - the same error. Could it be the IOS ?
     
    Nov  3 06:43:25: //0/053981E28CD5/VXML:/vxml_start_element_handler: 
       CALL_ERROR; flash:sdc.vxml
       at line 78: Element <block> is not used according to DTD
     
    regards
    Patrick

    Subject: RE: DTD Error
    Replied by: ANUSHA KANNAPPAN on 03-11-2009 06:30:35 AM
    Hi Patrick,

    No need to modify the form item variable as it is used to store the outcome of the transfer attempt. Let that be the same as before(busy). Just include the prompt tag inbetween as follows

    <form id="busy">
       <block>
                 <prompt>
                           <audio src="flash:no_input.au"/>
                 </prompt>
       </block>
    </form>

    Thanks,
    Anusha.

    Subject: RE: DTD Error
    Replied by: Patrick Hartl on 03-11-2009 07:51:12 AM
    Hi,

    The solution is - be careful with <block> and <promt> elements in fields.
    This was the error.
     
    thank you very much for your help
     
    Patrick

    Subject: RE: DTD Error
    Replied by: ANUSHA KANNAPPAN on 03-11-2009 07:43:33 AM
    Hi Patrick,
     
    I had tried the simple call transfer with just the 'busy' and 'noansmwer' option with the specified modification and it worked very fine. Please send me your modified script along with the configurations and logs for analysing further.
     
    Thanks,
    Anusha

    Subject: RE: DTD Error
    Replied by: Patrick Hartl on 03-11-2009 12:09:48 PM
    Hi,
     
    Here is my solution. If you have a better solution - let me know :-)
     
    lg
    Patrick

    Subject: RE: DTD Error
    Replied by: ANUSHA KANNAPPAN on 03-11-2009 12:03:04 PM
    Hi Patrick,
     
    I was not able to view any attachment of the script. Please let us know whether your query was addressed?
     
    Thanks,
    Anusha.