digit collection causes erorr due to previous non-terminated digit collect

Version 1
    This document was generated from CDN thread

    Created by: Travis May on 25-05-2010 03:23:07 AM
    Cisco as5350xm with IOS c5350-jk9su2_ivs-mz.150-1.M1.bin
     
    I am receiving the following error after transitioning to a new form after a <catch event="customTimer">
         CALL_ERROR; http://luann/test/dtmfTest.vxml
         at line 35: fail with vapp error 2
     
    This only occurs if the interpreter was in a form that is collecting digits and the catch tries to transition to a 2nd form that also collects digits.  In the debugs, you can see the above error is a result of digit collection on a leg that already has digit collection enabled (from the previous form).


    If I change bargein="false" this error does not occur, because the first form isn't yet collecting digits when the EVENT is throw and sends the interpreter to the second form.
     
    Is there a way to explicity tell the vxml interpreter to stop collecting digits in the previous form?
    If not, how can I transition between two forms that both collect digits using a <catch> ?

     
    What else have I already tried?
    I have tried combining the fields, grammars, and catch into a single form using  <goto nextitem="fieldname">
    modal="true"
    moving the <catch> to scopes document and dialog
     
    See error output at bottom of this post.

     
    The following dtmfTest.TCL and dtmfTest.VXML are run as a hybrid script.  The TCL throws a simple EVENT to the vXML after a timer expires.
     
    ------------- dtmfTest.VXML -------------------
    <?xml version="1.0" encoding="UTF-8"?>
    <vxml version="2.0">

    <property name="timeout" value="600s"/>
    <property name="interdigittimeout" value="1s"/>
    <property name="bargein" value="true"/>

    <catch event="timerStartRing">
        <goto next="#formPlayRingback" />
    </catch>

    <form>
        <field>
            <grammar type="application/grammar+regex">.</grammar>       
            <prompt>
                <audio src="/media/tones/silence60000ms.au"/>
            </prompt>       
            <filled>
                <goto next="#formPlayRingback" />
            </filled>   
            <noinput>
                <reprompt />
            </noinput>   
            <nomatch>
                <reprompt />
            </nomatch>
        </field>
    </form>

    <form id="formPlayRingback">
        <field>
            <grammar type="application/grammar+regex">.</grammar>       
            <prompt>
                <audio src="/media/ringBack/US.wav"/>
            </prompt>       
            <filled>
                <goto next="#formPlayRingback" />
            </filled>   
            <noinput>
                <reprompt />
            </noinput>   
            <nomatch>
                <reprompt />
            </nomatch>
        </field>    
    </form>

    </vxml>

    --------------  dtmfTest.TCL  -----------------------------------
     
    proc fnEventHandler { } {
        switch [infotag get evt_event] {
        "ev_disconnected" { proc_disconnected }
            "ev_named_timer" { proc_named_timer }
        "ev_setup_indication" { proc_setup_indication }
      }
    }

    proc proc_disconnected { } {
        call close
    }

    proc proc_named_timer { } {
        leg vxmlsend leg_incoming "timerStartRing"
    }

    proc proc_setup_indication { } {

        leg proceeding leg_incoming
        leg connect leg_incoming
        leg vxmldialog leg_incoming -u "http://luann/test/dtmfTest.vxml"
       
        timer start named_timer 7 timerStartRing
    }

    requiredversion 2.1

    set fsm(any_state,ev_any_event) "fnEventHandler,same_state"
    fsm define fsm SINGLESTATE

     
    *******************   DEBUG OUTPUT  ***********************
     
    cube2#sh deb
    APPLICATION:
      debug voip application error is ON
      debug voip application digit collect is ON (filter is OFF)

    VXML:
      debug voip application vxml error software is ON
      debug voip application vxml error call is ON (filter is OFF)
      debug voip application vxml application is ON (filter is OFF)
      debug voip application vxml inout is ON (filter is OFF)
      debug voip application vxml event is ON (filter is OFF)
      debug voip application vxml trace is ON (filter is OFF)
      debug voip application vxml log is ON (filter is OFF)
      debug voip application vxml warning is ON (filter is OFF)
      debug voip application vxml background is ON (filter is OFF)
      debug voip application vxml gtd is ON (filter is OFF)
    cube2#
    cube2#
    May 25 03:13:24.873: //4620//AFW_:/vapp_vxmldialog: Trusted=0, DNIS Map URI=http://luann/test/dtmfTest.vxml, Code = {
                                                                                    
    }
    May 25 03:13:24.873: //-1//AFW_:/AFW_VxmlModule_New: 
    May 25 03:13:24.873: //4620//AFW_:/vapp_internal_bgload: url=http://luann/test/dtmfTest.vxml
    May 25 03:13:24.873: //4620//HIFS:/hifs_http_cb: hifs http read succeeded. size=979, url=http://luann/test/dtmfTest.vxml
    May 25 03:13:24.873: //4620//AFW_:/vapp_internal_bgload_done: status=No Error
    May 25 03:13:24.873: //4620//HIFS:/hifs_http_cb: hifs ifs file read succeeded. size=979, url=http://luann/test/dtmfTest.vxml
    May 25 03:13:24.873: //4620//HIFS:/hifs_free_idata: hifs_free_idata: 0xC32F996C
    May 25 03:13:24.873: //4620//HIFS:/hifs_hold_idata: hifs_hold_idata: 0xC32F996C
    May 25 03:13:24.877: //4620//AFW_:/vapp_driver: evtID: 237 vapp record state: 0
    May 25 03:13:24.877: //4620//AFW_:/vapp_internal_bgload_done_event:
    May 25 03:13:24.877: //4620//AFW_:/vapp_internal_bgload_done_event: length=979, page loaded=
    <?xml version="1.0" encoding="UTF-8"?>
    <vxml version="2.0">

    <property name="timeout" value="600s"/>
    <property name="interdigittimeout" value="1s"/>
    <property name="bargein" value="true"/>

    <ca
    May 25 03:13:24.877: //-1//VXML:/vxml_tree_lock: 
       vxmlp=71F95220 usage_cnt=1 url=http://luann/test/dtmfTest.vxml
    May 25 03:13:24.877: //-1//AFW_:/vapp_get_parse_tree: REUSE hvxmltree=71F95220

    May 25 03:13:24.877: //-1//VXML:/vxml_create: 
       enter url=http://luann/test/dtmfTest.vxml tree_handle=71F95220
       return_handle_add=C3CE1390
    May 25 03:13:24.881: //4620//AFW_:/vapp_get_type_detail: 
    May 25 03:13:24.881: //4620/50CB17F6B3EB/VXML:/vxml_offramp_mailhdrs_get: 
       
    May 25 03:13:24.881: //4620//AFW_:/vapp_get_incoming_gtd_list:
    May 25 03:13:24.881: //4620/50CB17F6B3EB/VXML:/vxml_start: 
       vxmlhandle=71F94E64 vapphandle=658E1F38 status=0 async_status=0
    May 25 03:13:24.881: //4620/50CB17F6B3EB/VXML:/vxml_vxml_proc:   
    <vxml>
       URI(abs):http://luann/test/dtmfTest.vxml
       scheme=http
       host=luann
       path=/test/dtmfTest.vxml
       base=
       URI(abs):http://luann/test/dtmfTest.vxml
       scheme=http
       host=luann
       path=/test/dtmfTest.vxml lang=none version=2.0
    May 25 03:13:24.881: //4620/50CB17F6B3EB/VXML:/vxml_form_proc:
    May 25 03:13:24.881:  <form>: scope=dialog
    May 25 03:13:24.885: //4620/50CB17F6B3EB/VXML:/vxml_form_init: 
       current scope: dialog
       vxml_counter_reset:
    May 25 03:13:24.885: //4620/50CB17F6B3EB/VXML:/vxml_expr_eval: 
       expr=(var _in96)
    May 25 03:13:24.885: //4620/50CB17F6B3EB/VXML:/vxml_jse_global_switch: 
       switch to scope(dialog)
    May 25 03:13:24.885: //4620/50CB17F6B3EB/VXML:/vxml_formitem_select: 
       Status=VXML_STATUS_OK,
    May 25 03:13:24.885: //4620/50CB17F6B3EB/VXML:/vxml_formitem_select: 
        AsyncStatus=VXML_STATUS_OK
    May 25 03:13:24.885: //4620/50CB17F6B3EB/VXML:/vxml_field_proc:
    May 25 03:13:24.885:   <field>: type=invalid
    May 25 03:13:24.885: //4620/50CB17F6B3EB/VXML:/vxml_item_attrs_proc: 
       name=_in96 modal=aai prompt_counter=1
    May 25 03:13:24.885: //4620/50CB17F6B3EB/VXML:/vxml_prompt_proc: 
             <prompt>: timeout=600000 typeaheadflush=0 alternative=0
    May 25 03:13:24.885: //4620/50CB17F6B3EB/VXML:/vxml_audio_proc: 
             <audio>:
       URI(abs):/media/tones/silence60000ms.au
       scheme=http
       host=luann
       path=/media/tones/silence60000ms.au caching=fast fetchhint=invalid fetchtimeout=0 maxage=-1 maxstale=-1
    May 25 03:13:24.885: //4620/50CB17F6B3EB/VXML:/vxml_vapp_media_play: 
       bargein=1 timeout=600000 typeaheadflush=0 vcr=0 rate=0 alternative=0 hotword=0 maxtime=0
    May 25 03:13:24.885: //4620/50CB17F6B3EB/VXML:/vxml_vapp_media_play: 
       str=http://luann/media/tones/silence60000ms.au cachable=1 timeout0 maxage=-1 maxstale=-1 codec=-1
    May 25 03:13:24.885: //4620//AFW_:/vapp_media_play:
    May 25 03:13:24.885: //4620//AFW_:/vapp_media_play: prompt=http://luann/media/tones/silence60000ms.au:
    May 25 03:13:24.885: //4620/50CB17F6B3EB/VXML:/vxml_vapp_digit_collect: 
       termchar # minlength 0 maxlength 0 timeout 600000 interdigittimeout 1000 numPatterns=1hotword 0 abortKey
    May 25 03:13:24.885: //4620//AFW_:/vapp_digit_collect:
    May 25 03:13:24.885: //4620//AFW_:/vapp_digit_collect:  numPatterns 1, minlength 0, maxlength 0, timeout 600000, interDigitTimeout 1000 hotword 0
    May 25 03:13:24.885: //4620//Digi:/C_DigitCollect_Start: Leg=4620, Dialplan=False, Diaplanterm=False, DigitReport=False, DigitConsume=False IgnoreInitialKey=False, IgnoreDTMFacceptINFO=False, Abortkey=, Terminationkey=#, Numpatterns=1, Maxdigits=0, Mindigits=0, Interruptprompt=False, InterTimeout=1000, Initialtimeout=600000, Mask=0 Hotword=0
    May 25 03:13:24.885: //-1//Digi:/AFW_DigitCollect_New: 
    May 25 03:13:24.885: //-1//Digi:HN03CCFAE4:/AFW_DigitCollect_New: DialPlan=FALSE AbortKey= TermKey=# NumPatts=1
                  Enable=FALSE Consume=FALSE InterruptPrompt=FALSE minDigits=0 maxDigits=0 DialPlanTerm=FALSE hotword=0
    May 25 03:13:24.885: //4620/50CB17F6B3EB/Digi:/DigitCollectStart_UpdateStats: 
    May 25 03:13:24.885: //4620//Digi:/DigitCollect_MLPPTuning: 
    May 25 03:13:24.885: //4620//Digi:/DigitCollect_MLPPTuning: Precednece Digit Collect not enabled
    May 25 03:13:24.885: //4620/50CB17F6B3EB/VXML:/vxml_load_immediate_done: 
       sidp->status=300000000
    May 25 03:13:24.885: //4620//AFW_:/vapp_checksessionstate:
    May 25 03:13:24.885: //4620//AFW_:/vapp_checkifdone: Object: 2, Leg: 1
    May 25 03:13:24.885: //4620//Digi:/AFW_M_DigitCollect_Action: 
    May 25 03:13:24.885: //4620//Digi:/act_DCRunning_RDone: callid=4620 Enable succeeded.enable=0 matchDialplan=0 numPatterns=1matchDialplanTerm=0
    cube2#
    cube2#
    cube2#
    cube2#
    cube2#
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_event_async: 
       event_name timerStartRing
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_event_proc: 
             <event>: event=timerStartRing status=0
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_expr_eval: 
       expr=(var _event='timerStartRing')
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_expr_eval: 
       expr=(var _message=undefined)
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_catch_proc: 
             <catch>:
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_nmtokens_proc: 
       name=timerStartRing count=1
       script_loading=0
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_asynceventparams_get: 
      
    May 25 03:13:31.873: vxml_asynceventparams_get:
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_goto_proc: 
                <goto>: caching=fast fetchhint=invalid fetchtimeout=0 maxage=-1 maxstale=-1
       URIformPlayRingback
       fragmentp=formPlayRingback
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_leave_scope: 
       scope=anonymous
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_load_immediate_done: 
       sidp->status=400
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_start: 
       vxmlhandle=71F94E64 vapphandle=658E1F38 status=400 async_status=400
                vxml_dialog_reset:
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_vxml_proc:   
    <vxml>
       URI(abs):http://luann/test/dtmfTest.vxml
       scheme=http
       host=luann
       path=/test/dtmfTest.vxml
       base=
       URI(abs):http://luann/test/dtmfTest.vxml
       scheme=http
       host=luann
       path=/test/dtmfTest.vxml lang=none version=2.0
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_form_proc:
    May 25 03:13:31.873:  <form>: id=formPlayRingback   scope=dialog
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_form_init: 
       current scope: dialog
       vxml_counter_reset:
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_expr_eval: 
       expr=(var _in97)
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_jse_global_switch: 
       switch to scope(dialog)
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_formitem_select: 
       Status=VXML_STATUS_OK,
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_formitem_select: 
        AsyncStatus=VXML_STATUS_OK
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_field_proc:
    May 25 03:13:31.873:   <field>: type=invalid
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_item_attrs_proc: 
       name=_in97 modal=aai prompt_counter=1
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_prompt_proc: 
             <prompt>: timeout=600000 typeaheadflush=0 alternative=0
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_audio_proc: 
             <audio>:
       URI(abs):/media/ringBack/US.wav
       scheme=http
       host=luann
       path=/media/ringBack/US.wav caching=fast fetchhint=invalid fetchtimeout=0 maxage=-1 maxstale=-1
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_vapp_media_play: 
       bargein=1 timeout=600000 typeaheadflush=0 vcr=0 rate=0 alternative=0 hotword=0 maxtime=0
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_vapp_media_play: 
       str=http://luann/media/ringBack/US.wav cachable=1 timeout0 maxage=-1 maxstale=-1 codec=-1
    May 25 03:13:31.873: //4620//AFW_:/vapp_media_play:
    May 25 03:13:31.873: //4620//AFW_:/vapp_media_play: prompt=http://luann/media/ringBack/US.wav:
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_vapp_digit_collect: 
       termchar # minlength 0 maxlength 0 timeout 600000 interdigittimeout 1000 numPatterns=2hotword 0 abortKey
    May 25 03:13:31.873: //4620//AFW_:/vapp_digit_collect:
    May 25 03:13:31.873: //4620//AFW_:/vapp_digit_collect:  numPatterns 2, minlength 0, maxlength 0, timeout 600000, interDigitTimeout 1000 hotword 0
    May 25 03:13:31.873: //4620//Digi:/C_DigitCollect_Start: Leg=4620, Dialplan=False, Diaplanterm=False, DigitReport=False, DigitConsume=False IgnoreInitialKey=False, IgnoreDTMFacceptINFO=False, Abortkey=, Terminationkey=#, Numpatterns=2, Maxdigits=0, Mindigits=0, Interruptprompt=False, InterTimeout=1000, Initialtimeout=600000, Mask=0 Hotword=0
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_vapp_digit_collect: 
       CALL_ERROR; http://luann/test/dtmfTest.vxml
       at line 35: fail with vapp error 2

    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_load_immediate_done: 
       sidp->status=4
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_throw_error_session_event: 
       async_status=4
    May 25 03:13:31.873: //4620//AFW_:/vapp_session_exit_event_name: Exit Event vxml.session.error
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_vapp_terminate: 
       vapp_status=0 ref_count 0
    May 25 03:13:31.873: //4620/50CB17F6B3EB/VXML:/vxml_vapp_terminate: 
       CALL_ERROR; http://luann/test/dtmfTest.vxml
       
       vxml session terminating with code=ERROR
       vapp status=VAPP_SUCCESS  vxml async status=VXML_ERROR_INVALID
    May 25 03:13:31.873: //4620//AFW_:/vapp_terminate:
    May 25 03:13:31.873: //4620//AFW_:/AFW_M_VxmlModule_Terminate:
    May 25 03:13:31.873: //4620//Digi:/DigitCollect_Complete: Status 11=NA. Digits=
    May 25 03:13:31.873: //4620//AFW_:/vapp_checksessionstate:
    May 25 03:13:31.873: //4620//AFW_:/vapp_checkifdone: Object: 2, Leg: 1
    May 25 03:13:31.877: //4620/50CB17F6B3EB/VXML:/vxml_tree_delete: 
       vxmlp=71F95220, usage_cnt=2 url=http://luann/test/dtmfTest.vxml
    May 25 03:13:31.877: //4620/50CB17F6B3EB/VXML:/vxml_session_delete: 
       
    May 25 03:13:31.877: vxml_session_delete:mem_mgr_mempool_free: mem_refcnt(67633FF0)=0 - mempool cleanup
    May 25 03:13:31.877: vxml_session_delete:mem_mgr_mempool_free: mempool=NULL
    May 25 03:13:31.877: //4620//Digi:/AFW_M_DigitCollect_EventPreProcess: 
    May 25 03:13:31.877: //4620//Digi:/DigitCollectEnd_UpdateStats: 
    May 25 03:13:31.877: //4620//AFW_:/vapp_return_cleaner:
    May 25 03:13:31.877: //4620//AFW_:/vapp_checksessionstate:
    May 25 03:13:31.877: //4620//AFW_:/vapp_checkifdone: Object: 1, Leg: 1
    May 25 03:13:31.877: //-1//AFW_:HN03CCFAD8:/AFW_M_VxmlModule_Free:
    May 25 03:13:31.877: MOD[VxmlModule_658E1F38_0_63765208]        ( )

    Subject: RE: digit collection causes erorr due to previous non-terminated digit coll
    Replied by: Travis May on 25-05-2010 04:27:28 AM
    The same thing happens when a custom <catch event="goToNewURL"> occurs and transitions to a new document that collects digits.  When the field/grammar loads on the new document, an error occurs becuase of the digit collection.
     
    Travis

    Subject: RE: digit collection causes erorr due to previous non-terminated digit coll
    Replied by: Yawming Chen on 26-05-2010 09:11:41 PM
    This scenario is not supported. Vxml can not stop the digit collect for the first field.
     
    Thanks.