<?xml version="1.0" encoding="UTF-8"?>
<ccxml xmlns="http://www.w3.org/2002/09/ccxml" xmlns:conf="http://www.w3.org/2005/ccxml-conformance" version="1.0">
<!--
Release 1.1 - 2010-07-05
FIXED:
ISSUE-697#1: TA 456 (quotes on maxage&maxstale)
ISSUE-697#3: conference.unjoined added 
-->
	<!--
Serguei's infrastructure performs a loop on the 'assertions' Ecma array, based on "name_prepare_new" event for doing the "loop".

Mainly we have to different levels of assertions: 

- Main assertions, stored in 'assertions' array
- Children assertions, stored into 'assert_trace'

An assertion is a child assertion if it does not need to perform any action, but it is sufficient to test its father assertion result to determine if it passes or fails.

The test finishes when all the main assertions have been tested. Children assertions are tested after the father itself.

If an unexpected event is caught by the <transition event"*"/> a comment is printed and the loop continues with the next iteration.

An hang up event causes the interruption of test: session exits.

All the send.successful events are caught and ignored (they are generated by the loop mechanism).
-->
	<conf:docsetup/>
	<var name="DialogID" expr="undefined"/>
	<var name="ConferenceID" expr="undefined"/>
	<var name="ConnectionID" expr="undefined"/>

	<var name="VxmlFile" expr="'7_1_1'"/>
	<var name="VxmlFile2" expr="'7_1_2.vxml'"/>
	<var name="VxmlFile3" expr="'7_1_3.vxml'"/>
	<var name="myConfName" expr="'SimpleConference'"/>
	<var name="param1" expr="'goodness'"/>
	<var name="param2" expr="333"/>
	<var name="param3" expr="'A wonderful day'"/> <!-- parameter with blanks -->
	<var name="chld_reason"/>
	<var name="WrongCCXML" expr="'7_1_Wrong.ccxml'"/>
	
	<!--Boolean value -->
	<var name="bIsOK" expr="false"/>
	
	<script><![CDATA[
		var i=0;
		assertions[i++] = init_assertion('1233');
		assertions[i++] = init_assertion('326');
		assertions[i++] = init_assertion('328');
		assertions[i++] = init_assertion('463');
		assertions[i++] = init_assertion('317');
		assertions[i++] = init_assertion('456');
		assertions[i++] = init_assertion('389');
		assertions[i++] = init_assertion('467');
		assertions[i++] = init_assertion('460');
		assertions[i++] = init_assertion('376');
		assertions[i++] = init_assertion('313');

		
		var assert_last = i - 1;
		var assert_index = -1;
		//
		// out of the loop assertions (children)
		
		// Children of 463 error.dialog.notprepared
		add_2_assert_trace('465');
		add_2_assert_trace('466');
		add_2_assert_trace('469');
		add_2_assert_trace('470');
		add_2_assert_trace('1208');
		
		// Children of 456
		// To verify something about dialogprepare 
		add_2_assert_trace('315');
		add_2_assert_trace('318');
		add_2_assert_trace('319');
		add_2_assert_trace('322');
		add_2_assert_trace('323');
		add_2_assert_trace('332');
		add_2_assert_trace('333');
		add_2_assert_trace('336');
		// Test on dialog.prepared event
		add_2_assert_trace('458');
		add_2_assert_trace('459');
		add_2_assert_trace('462');
		add_2_assert_trace('1206');
		// Test on dialog object
		add_2_assert_trace('473');
		add_2_assert_trace('474');
		add_2_assert_trace('480');
		add_2_assert_trace('481');
		add_2_assert_trace('1297');

		// Children of 389
		add_2_assert_trace('310');
		add_2_assert_trace('311');
		add_2_assert_trace('375');
		add_2_assert_trace('1181');
		add_2_assert_trace('335');
		add_2_assert_trace('1182');

		
		//
		// Children of 467
		add_2_assert_trace('468');
		
		// Children of 460
		add_2_assert_trace('461');
		
		// Children of 376
		add_2_assert_trace('393');
		add_2_assert_trace('394');
		
		// Children of 313
		add_2_assert_trace('388');
		add_2_assert_trace('391');
		add_2_assert_trace('392');
		add_2_assert_trace('395');
		add_2_assert_trace('397');
		add_2_assert_trace('1191');
		
		s_ASSERTIONS_LEFT = show_remained_assertions();
		var b_in_test = false;
	]]></script>
	<eventprocessor statevariable="current_state">
		<conf:setup type="alerting"/>
		<transition event="connection.alerting" state="init">
			<assign name="ConnectionID" expr="event$.connectionid"/>
			<send targettype="'ccxml'" target="session.id" name="'user.timeout'" delay="TEST_LONG_TIMEOUT"/>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.PREPARE_NEW">
			<conf:comment expr="'Event: ' + event$.name"/>
			<if cond="assert_index &gt;= 0">
				<assign name="ASSERTION_NUM" expr="assertions[assert_index].number"/>
				<assign name="t_ASSERT_RESULT" expr="assertions[assert_index].P_F"/>
				<script>assertions[assert_index].reason = t_ASSERT_REASON;</script>
				<if cond="t_ASSERT_RESULT == s_PASS">
					<conf:pass reason="t_ASSERT_REASON"/>
					<elseif cond="t_ASSERT_RESULT == s_FAIL"/>
					<conf:fail reason="t_ASSERT_REASON"/>
					<else/>
					<conf:not_exec reason="t_ASSERT_REASON"/>
				</if>
			</if>
			<assign name="assert_index" expr="assert_index + 1"/>
			<if cond="assert_index &gt; assert_last">
				<log label="s_TA" expr="s_ASSERTIONS_LEFT"/>
				<conf:uncond_exit expr="'DONE'"/>
				<else/>
				<log label="s_TA" expr="s_ASSERTIONS_LEFT"/>
				<assign name="ASSERTION_NUM" expr=" assertions[assert_index].number"/>
				<assign name="t_ASSERT_REASON" expr="''"/>
				<script>assertions[assert_index].P_F = s_FAIL;</script>
				<assign name="current_state" expr="state_prefix + ASSERTION_NUM"/>
				<send targettype="'ccxml'" target="session.id" name="start_name_prefix + ASSERTION_NUM"/>
			</if>
		</transition>
		<transition event="user.START_ASSERTION_1233" state="ASSERTION_NMBR_1233">
			<dialogprepare  src="'7_1_1.vxml'" dialogid="InvalidDialogID" connectionid="ConnectionID"/>
		</transition>
		<transition event="error.semantic" state="ASSERTION_NMBR_1233">
			<conf:comment expr=" 'Current state : ' + current_state + ' , Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_PASS;</script>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_326" state="ASSERTION_NMBR_326">
			<dialogprepare  src="'7_1_1.vxml'" connectionid="InvalidConnectionID"/>
		</transition>
		<transition event="error.semantic" state="ASSERTION_NMBR_326">
			<conf:comment expr=" 'Current state : ' + current_state + ' , Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_PASS;</script>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_328" state="ASSERTION_NMBR_328">
			<dialogprepare  src="'7_1_1.vxml'" conferenceid="InvalidConferenceID"/>
		</transition>
		<transition event="error.semantic" state="ASSERTION_NMBR_328">
			<conf:comment expr=" 'Current state : ' + current_state + ' , Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_PASS;</script>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_463" state="ASSERTION_NMBR_463">
			<dialogprepare src="'DoesntExist.vxml'" dialogid="DialogID" connectionid="ConnectionID"/>
		</transition>
		<transition event="error.dialog.notprepared" state="ASSERTION_NMBR_463">
			<conf:comment expr=" 'Current state : ' + current_state + ' , Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_PASS;</script>
			<!-- Children management -->
			<assign name="ASSERTION_NUM" expr="'465'"/>
			<if cond="event$.dialogid == DialogID">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid dialogid : ' + event$.dialogid + ', expected value was ' + DialogID"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'466'"/>
			<if cond="event$.connectionid == ConnectionID">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid connectionid : ' + event$.connectionid + ', expected value was ' + ConnectionID"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'469'"/>
			<if cond="event$.conferenceid == undefined">
				<conf:pass/>
				<else/>
				<conf:fail reason="'conferenceid must be undefined but is not :  ' + event$.conferenceid"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'470'"/>
			<if cond="event$.reason != undefined">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Reason must be defined while its value is  ' + event$.reason"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'1208'"/>
			<if cond="typeof(event$.dialog) == 'object' &amp;&amp; event$.dialog == session.dialogs[DialogID]">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid dialog object and/or dialogid' "/>
			</if>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_317" state="ASSERTION_NMBR_317">
			<fetch next="WrongCCXML"/>
		</transition>
		<transition event="error.fetch" state="ASSERTION_NMBR_317">
			<conf:comment expr=" 'Current state : ' + current_state + ' , Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_PASS;</script>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_456" state="ASSERTION_NMBR_456">
			<assign name="DialogID" expr="undefined"/>
				<!-- FIXED ISSUE-697:  quotes added on maxage/maxstale attributes-->
			<dialogprepare src="VxmlFile + '.' + 'vxml' " dialogid="DialogID" connectionid="ConnectionID" maxage="'5'" maxstale="'10'" type="'application/voicexml+xml'" method="'GE' + 'T'"  enctype="'application/x-www-form' + '-urlencoded'"  parameters="param1 param2 param3"/>
		</transition>
		<transition event="dialog.prepared" state="ASSERTION_NMBR_456">
			<conf:comment expr=" 'Current state : ' + current_state + ' , Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_PASS;</script>
			<!-- Children management -->
			<assign name="ASSERTION_NUM" expr="'315'"/>
			<if cond="session.dialogs[event$.dialogid] != undefined">
				<conf:pass/>
			</if>
			<assign name="ASSERTION_NUM" expr="'318'"/>
			<if cond="event$.dialog.src.search(/7_1_1.vxml/) > -1 ">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid event$.dialog.src : ' +  event$.dialog.src"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'319'"/>
			<conf:pass/>
			<assign name="ASSERTION_NUM" expr="'322'"/>
			<if cond="DialogID != undefined">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Dialogid cannot be undefined '"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'323'"/>
			<if cond="DialogID != undefined &amp;&amp; event$.dialogid == DialogID">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid dialogid : ' + event$.dialogid + ', expected value was ' + DialogID"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'332'"/>
			<conf:pass/>
			<assign name="ASSERTION_NUM" expr="'333'"/>
			<conf:pass/>
			<assign name="ASSERTION_NUM" expr="'336'"/>
			<conf:pass/>  
			<assign name="ASSERTION_NUM" expr="'458'"/>
			<if cond="event$.dialogid == DialogID">
				<conf:pass/>
				<else/>
				<conf:fail reason="'event$.dialogid is different from DialogID: ' + event$.dialogid"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'459'"/>
			<if cond="event$.connectionid == ConnectionID">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid event$.connectionid : ' + event$.connectionid"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'462'"/>
			<if cond="event$.conferenceid == undefined">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid event$.conferenceid, it must be undefined :  ' + event$.conferenceid"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'1206'"/>
			<if cond="typeof(event$.dialog) == 'object' &amp;&amp; event$.dialog == session.dialogs[DialogID]">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid dialog type and dialogid on dialog object ! ' "/>
			</if>
			<assign name="ASSERTION_NUM" expr="'473'"/>
			<if cond="session.dialogs[event$.dialogid].dialogid == event$.dialogid &amp;&amp; session.dialogs[event$.dialogid].objecttype == 'dialog'">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid session.dialogs array on current dialogid: ' + event$.dialogid + ' objecttype:' + session.dialogs[event$.dialogid].objecttype + '  :' + ' dialogid:' + session.dialogs[event$.dialogid].dialogid"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'474'"/>
			<if cond="typeof(event$.dialog) == 'object' &amp;&amp; event$.dialog.dialogid == DialogID">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid dialog type and dialogid on dialog object ! ' "/>
			</if>
			<assign name="ASSERTION_NUM" expr="'480'"/>
			<if cond="session.dialogs[event$.dialogid].type == 'application/voicexml+xml'">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid type on session.dialogs ! ' "/>
			</if>
			<assign name="ASSERTION_NUM" expr="'481'"/>
			<if cond="session.dialogs[event$.dialogid].src.search(/7_1_1.vxml/) > -1">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid src on session.dialogs ! ' "/>
			</if>
			<assign name="ASSERTION_NUM" expr="'1297'"/>
			<if cond="session.dialogs[event$.dialogid].objecttype == 'dialog'">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid objecttype on session.dialogs: ' +  session.dialogs[event$.dialogid].objecttype"/>
			</if>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_389" state="ASSERTION_NMBR_389">
			<accept connectionid="ConnectionID"/>
		</transition>
		<transition event="connection.connected" state="ASSERTION_NMBR_389">
			<dialogstart prepareddialogid="DialogID"/>
		</transition>
		<transition event="dialog.started" state="ASSERTION_NMBR_389">
			<dialogterminate dialogid="DialogID" immediate="false"/>
		</transition>
		<transition event="dialog.exit" state="ASSERTION_NMBR_389">
			<conf:comment expr=" 'Current state : ' + current_state + ' , Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_PASS;</script>
			<!-- Children management-->
			<assign name="ASSERTION_NUM" expr="'310'"/>
			<conf:pass/>
			<assign name="ASSERTION_NUM" expr="'311'"/>
			<conf:pass/>
			<assign name="ASSERTION_NUM" expr="'375'"/>
			<if cond="event$.values != undefined">
				<conf:pass/>
				<else/>
				<conf:fail reason="'undefined  event$.values on dialog.exit ' "/>
			</if>
			<!-- Children management -->
			<assign name="ASSERTION_NUM" expr="'1181'"/>
			<if cond="event$.values != undefined &amp;&amp; event$.values.data1 == 'goodness' &amp;&amp; event$.values.data2 == 333">
				<assign name="bIsOK" expr="true"/>
				<conf:pass/>
			<else/>
				<conf:fail reason="'Invalid event$.values on dialog.exit ' "/>
			</if>
			<assign name="ASSERTION_NUM" expr="'335'"/> 
			<if cond="event$.values != undefined &amp;&amp; event$.values.data3 == param3">
				<conf:pass/>
			<else/>
				<conf:fail reason="'Invalid event$.values.data3 on dialog.exit : it should be urlencoded! ' "/>
			</if>
			<assign name="ASSERTION_NUM" expr="'1182'"/>
			<if cond="bIsOK">
				<assign name="bIsOK" expr="false"/>
				<conf:pass/>
			<else/>
				<conf:fail reason="'Some problems found on sending/receiving parameters ' "/>
			</if> 		
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_467" state="ASSERTION_NMBR_467">
			<createconference conferenceid="ConferenceID" confname="myConfName"/>
		</transition>
		<transition event="conference.created" state="ASSERTION_NMBR_467">
			<dialogprepare src="'DoesntExist.vxml'" dialogid="DialogID" conferenceid="ConferenceID"/>
		</transition>
		<transition event="error.dialog.notprepared" state="ASSERTION_NMBR_467">
			<conf:comment expr=" 'Current state : ' + current_state + ' , Event: ' + event$.name"/>
			<if cond="event$.connectionid == undefined">
				<script>assertions[assert_index].P_F = s_PASS;				
				</script>
				<else/>
				<assign name="t_ASSERT_REASON" expr="'Invalid connectionid value: ' + event$.connectionid + ' in ' +  event$.name + ' event , STATE ' + current_state"/>
				<script>
			assertions[assert_index].P_F = s_FAIL;
			assertions[assert_index].reason = t_ASSERT_REASON;  
</script>
			</if>
			<!-- Children management -->
			<assign name="ASSERTION_NUM" expr="'468'"/>
			<if cond="event$.conferenceid == ConferenceID">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid conferenceid on error.dialog.notprepared expected:' + ConferenceID + ' got:' +  event$.conferenceid"/>
			</if>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_460" state="ASSERTION_NMBR_460">
			<dialogprepare src="VxmlFile2" dialogid="DialogID" conferenceid="ConferenceID"/>
		</transition>
		<transition event="dialog.prepared" state="ASSERTION_NMBR_460">
			<conf:comment expr=" 'Current state : ' + current_state + ' , Event: ' + event$.name"/>
			<if cond="event$.connectionid == undefined">
				<script>assertions[assert_index].P_F = s_PASS;</script>
				<else/>
				<assign name="t_ASSERT_REASON" expr="'Invalid connectionid value:' + event$.connectionid + ' event:' +  event$.name  + ' , STATE ' + current_state"/>
				<script>
			assertions[assert_index].P_F = s_FAIL;
			assertions[assert_index].reason = t_ASSERT_REASON;  
</script>
			</if>
			<!-- Children management -->
			<assign name="ASSERTION_NUM" expr="'461'"/>
			<if cond="event$.conferenceid == ConferenceID">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid conferenceid on dialog.prepared'"/>
			</if>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_376" state="ASSERTION_NMBR_376">
			<dialogterminate dialogid="DialogID" immediate="true"/>
		</transition>
		<transition event="dialog.exit" state="ASSERTION_NMBR_376">
			<conf:comment expr=" 'Current state : ' + current_state + ' , Event: ' + event$.name"/>
			<if cond="event$.values == undefined">
				<script>assertions[assert_index].P_F = s_PASS;</script>
				<else/>
				<script>assertions[assert_index].P_F = s_FAIL;</script>
			</if>
			<!-- Children management -->
			<assign name="ASSERTION_NUM" expr="'393'"/>
			<if cond="event$.connectionid == undefined">
				<conf:pass/>
				<else/>
				<conf:fail reason="'connectionid: ' + event$.connectionid + ' expected: undefined'"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'394'"/>
			<if cond="event$.conferenceid == ConferenceID">
				<conf:pass/>
				<else/>
				<conf:fail reason="'conferenceid: ' + event$.conferenceid + ' expected: ' + ConferenceID"/>
			</if>
			<destroyconference conferenceid="ConferenceID"/>
		</transition>
		<transition event="conference.destroyed" state="ASSERTION_NMBR_376">
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_313" state="ASSERTION_NMBR_313">
			<dialogstart src="VxmlFile3" dialogid="DialogID" connectionid="ConnectionID"/>
		</transition>
		<transition event="dialog.started" state="ASSERTION_NMBR_313">
			<conf:comment expr=" 'Current state : ' + current_state + ' , Event: ' + event$.name + ' event$.connectionid:' + event$.connectionid"/>
			<script>assertions[assert_index].P_F = s_PASS;</script>
		</transition>
		<!-- Waiting for a normal termination of a started dialog -->
		<transition event="dialog.exit" state="ASSERTION_NMBR_313">
			<conf:comment expr=" 'Current state : ' + current_state + ' , Event: ' + event$.name"/>
			<!-- This dialog has been terminated by itself -->
			<!-- Children management -->
			<assign name="ASSERTION_NUM" expr="'388'"/>
			<conf:pass/>
			<assign name="ASSERTION_NUM" expr="'391'"/>
			<if cond="event$.dialogid == DialogID">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid dialogid on dialog.exit'"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'392'"/>
			<if cond="event$.connectionid != undefined &amp;&amp; event$.connectionid== ConnectionID">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid connectionid on dialog.exit : ' + event$.connectionid + ' expected:' + ConnectionID"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'395'"/>
			<if cond="event$.conferenceid == undefined">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid conferenceid on dialog.exit'"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'397'"/>
			<if cond="event$.values != undefined &amp;&amp; event$.values.data == 'HiFolks'">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid values on dialog.exit:' + JSON.stringify(event$.values)"/>
			</if>
			<assign name="ASSERTION_NUM" expr="'1191'"/>
			<if cond="typeof(event$.dialog) == 'object' &amp;&amp; event$.dialog == session.dialogs[DialogID]">
				<conf:pass/>
				<else/>
				<conf:fail reason="'Invalid dialog object on dialog.exit'"/>
			</if>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>


		<!-- FIXED ISSUE-697#3:  conference.unjoined added -->
		<transition event="conference.unjoined" >		
			<conf:comment expr=" 'Current state : ' + current_state + ' , Event: ' + event$.name"/>								
		</transition>
		
		<!-- Safety timeout -->					
		 <transition event="user.timeout">
			<assign name="current_state" expr="'GEN'"/>
			<conf:uncond_exit expr="'TEST-TIMEOUT.' + show_remained_assertions()"/>
        </transition>
        			
		<transition event="send.successful">
		</transition>
		<transition event="connection.disconnected">
			<conf:uncond_exit expr="'CONNECTION-DISCONNECTED'"/>
		</transition>
		<transition event="*">
			<assign name="t_ASSERT_REASON" expr="'UNEXPECTED EVENT ' + event$.name + ' IN STATE ' + current_state"/>
			<conf:comment expr="t_ASSERT_REASON"/>
			<if cond="current_state == 'init'">
				<conf:uncond_exit expr="'Did not come out from init state.'"/>
				<else/>
				<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
			</if>
		</transition>
	</eventprocessor>
</ccxml>
