<?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-06-15
FIXED: 
ISSUE-698, TA 859;
ISSUE-715, TA 147;
ISSUE-694
  point 1) TA 858
  point 2) TA 797
-->
	<!--
	Release 1.2 - 2010-10-21
	FIXED: ISSUE-736: -  connectionid="event$.connectionid" on <dialogstart> added

	Release 1.3 - 2010-11-11
	FIXED: ISSUE-735 Passed general_connid in createccxml 

	-->

	<conf:docsetup/>
	<var name="chld_reason"/>
	<var name="general_connid"/>
	<var name="general_connid2"/>
	<var name="A136_unjoin_performed" expr="false"/>
	<var name="A136_unjoin_event_seen" expr="false"/>
	<var name="A139_confid1"/>
	<var name="A139_sessionid1"/>
	<var name="A139_session_one_got_event"/>
	<var name="A139_session_two_got_event"/>
	<var name="A147_joined_event_seen" expr="false"/>
	<var name="A147_unjoined_event_seen" expr="false"/>
	<var name="A858_confid1"/>
	<var name="A858_confid2"/>
	<var name="A859_dialogid1"/>
	<var name="A859_dialogid2"/>
	<var name="A977_conference_joined_seen" expr="false"/>
	<var name="A979_confid1"/>
	<var name="A979_confid2"/>
	<var name="A979_join_event_seen" expr="false"/>
	<var name="A979_event_counter" expr="0"/>
	<var name="A978_session_one_got_event" expr="false"/>
	<script><![CDATA[
	   function GetMilliseconds() {
     var d = new Date();
     return d.getTime();  // ms from midnight on Jan 1, 2000.
   }

var t_start, t_end, t_delay = 2000, t_delta, t_delta_e = 0.05 * t_delay;
		   ]]></script>
	<script><![CDATA[

var i=0;
assertions[i++] = init_assertion('136');
assertions[i++] = init_assertion('138');
assertions[i++] = init_assertion('139'); 
assertions[i++] = init_assertion('141');
assertions[i++] = init_assertion('143');
assertions[i++] = init_assertion('144');
assertions[i++] = init_assertion('146');
assertions[i++] = init_assertion('147');
assertions[i++] = init_assertion('858'); 
assertions[i++] = init_assertion('979'); 
assertions[i++] = init_assertion('978');
assertions[i++] = init_assertion('859'); 

add_2_assert_trace('137');


var assert_last = i - 1;
var assert_index = -1;
//
// out of the loop assertions (children?)
//
//
s_ASSERTIONS_LEFT = show_remained_assertions();
var b_in_test = false;


]]></script>
	<var name="sent" expr="false"/>
	<var name="ass_859_conid_1"/>
	<var name="ass_859_conid_2"/>
	<var name="inx_859_a" expr="0"/>
	<var name="inx_859_b" expr="0"/>
	<eventprocessor statevariable="current_state">
		<conf:setup type="alerting"/>
		<transition event="connection.alerting" state="init">
			<send targettype="'ccxml'" target="session.id" name="'user.timeout'" delay="TEST_VERY_LONG_TIMEOUT"/>
			<accept connectionid="event$.connectionid"/>
		</transition>
		<transition event="connection.connected" state="init">
			<assign name="general_connid" expr="event$.connectionid"/>
			<assign name="current_state" expr="'setup'"/>
			<createcall dest="TEST_CREATECALL_DEST_ANSWER_AND_STAY_ACTIVE[2]" connectionid="general_connid2"/>
		</transition>
		<transition event="connection.connected" state="setup">
			<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>t_ASSERT_REASON = assertions[assert_index].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" sendid="cur_event_ID"/>
				<!-- log label="s_TA" expr="'Loop event: SendID=' + cur_event_ID"/ -->
			</if>
		</transition>
		<transition event="user.START_ASSERTION_136" state="ASSERTION_NMBR_136">
			<!--
136  	
10.5.8.1  	
<unjoin> will instruct the implementation to tear down the bridge between two connections/conferences/dialogs specified using the id1 and id2 attributes.  	
rachel.muller@aspect.com  	Accepted
-->
			<!--
137  	
10.5.8.1  	
The successful execution of<unjoin> MUST result in the generation of a conference.unjoined event.  	
rachel.muller@aspect.com  	Accepted
-->
			<conf:comment expr="'Event: ' + event$.name"/>
			<join id1="general_connid" id2="general_connid2"/>
		</transition>
		<transition event="conference.joined" state="ASSERTION_NMBR_136">
			<conf:comment expr="'Event: ' + event$.name"/>
			<if cond="!A136_unjoin_performed">
				<send targettype="'ccxml'" target="session.id" name="'user.start_unjoin_136'" delay="'1s'"/>
				<assign name="A136_unjoin_performed" expr="true"/>
			</if>
		</transition>
		<transition event="user.start_unjoin_136" state="ASSERTION_NMBR_136">
			<conf:comment expr="'Event: ' + event$.name"/>
			<unjoin id1="general_connid" id2="general_connid2"/>
		</transition>
		<transition event="conference.unjoined" state="ASSERTION_NMBR_136">
			<if cond="!A136_unjoin_event_seen">
				<assign name="A136_unjoin_event_seen" expr="true"/>
				<conf:comment expr="'Event: ' + event$.name"/>
				<script>assertions[assert_index].P_F = s_PASS;</script>
				<assign name="ASSERTION_NUM" expr="'137'"/>
				<conf:pass/>
				<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
			</if>
		</transition>
		<transition event="error.*" state="ASSERTION_NMBR_136">
			<conf:comment expr="'Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_FAIL;
					assertions[assert_index].reason = 'got an error: ' + event$.name + ' : ' + event$.reason;</script>
			<assign name="ASSERTION_NUM" expr="'137'"/>
			<conf:fail/>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_138" state="ASSERTION_NMBR_138">
			<conf:comment expr="'Event: ' + event$.name + ' State=' + current_state"/>
			<!--
138  	
10.5.8.1  	
If for any reason the implementation is unable to terminate the bridge between the specified connections, or if no such bridge exists, it MUST fail with a error.conference.unjoin event.  	
rachel.muller@aspect.com  	Accepted	
-->
			<unjoin id1="general_connid" id2="general_connid2"/>
		</transition>
		<transition event="error.conference.unjoin" state="ASSERTION_NMBR_138">
			<conf:comment expr="'Event: ' + event$.name + ' State=' + current_state"/>
			<script>assertions[assert_index].P_F = s_PASS;</script>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="error.*" state="ASSERTION_NMBR_138">
			<conf:comment expr="'Event: ' + event$.name + ' State=' + current_state"/>
			<script>
			assertions[assert_index].P_F = s_FAIL;
			assertions[assert_index].reason = 'got an error: ' + event$.name + ' : ' + event$.reason;
			</script>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new" delay="'1s'"/>
		</transition>
		<transition event="user.START_ASSERTION_139" state="ASSERTION_NMBR_139">
			<!--
139  	
10.5.8.1  	
When 'id1', 'id2', or both reference to a Conference, the 'conference.unjoined' event MUST be posted to all session that are attached to the affected Conference(s).  	
rachel.muller@aspect.com  	Accepted
-->
			<conf:comment expr="'Event: ' + event$.name + ' State=' + current_state"/>
			<assign name="A139_sessionid1" expr="session.id"/>
			<createconference conferenceid="A139_confid1" confname="'A139_confid1'"/>
		</transition>
		<transition event="conference.created" state="ASSERTION_NMBR_139">
			<conf:comment expr="'Event: ' + event$.name"/>
			<createccxml next="'10_5_8_A_139.ccxml'" parameters="A139_confid1"/>
		</transition>
		<transition event="conference.joined" state="ASSERTION_NMBR_139">
			<conf:comment expr="'Event: ' + event$.name"/>
		</transition>
		<transition event="conference.unjoined" state="ASSERTION_NMBR_139">
			<conf:comment expr="'Event: ' + event$.name"/>
			<assign name="A139_session_one_got_event" expr="true"/>
		</transition>
		<transition event="user.session_two_unjoined_conference" state="ASSERTION_NMBR_139">
			<conf:comment expr="'Event: ' + event$.name"/>
			<assign name="A139_session_two_got_event" expr="true"/>
		</transition>
		<transition event="user.checkA139" state="ASSERTION_NMBR_139">
			<conf:comment expr="'Event: ' + event$.name"/>
			<if cond="A139_session_one_got_event &amp;&amp; A139_session_two_got_event">
				<script>assertions[assert_index].P_F = s_PASS;</script>
				<else/>
				<script>assertions[assert_index].P_F = s_FAIL;
                        assertions[assert_index].reason = 'conference.unjoined event was not thrown in both sessions that were connected to the conference.';</script>
			</if>
		</transition>
		<transition event="ccxml.exit" state="ASSERTION_NMBR_139">
			<conf:comment expr="'Event: ' + event$.name"/>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new" delay="'1s'"/>
		</transition>
		<transition event="user.START_ASSERTION_141" state="ASSERTION_NMBR_141">
			<!-- 
141  	
10.5.8.2  	
<unjoin> must have an id1 attribute which is an ECMAScript expression which returns a string that is the identifier of a Connection, Dialog or Conference.  	
rachel.muller@aspect.com  	Accepted
-->
			<!-- FIXED: ISSUE-735 Passed general_connid in createccxml -->
			<createccxml next="'10_5_8_A_141.ccxml'" parameters="general_connid2"/>
		</transition>
		<transition event="error.createccxml" state="ASSERTION_NMBR_141">
			<conf:comment expr="'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="ccxml.created" state="ASSERTION_NMBR_141">
			<conf:comment expr="'Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_FAIL;
					assertions[assert_index].reason = 'unjoin element with a missing id1 attribute was parsed successfully.';</script>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_143" state="ASSERTION_NMBR_143">
			<!--
143  	
10.5.8.2  	
If the id1 attribute value is invalid an error.semantic event must be thrown.  	
rachel.muller@aspect.com  	Accepted
-->
			<unjoin id1="invalid" id2="general_connid"/>
		</transition>
		<transition event="error.semantic" state="ASSERTION_NMBR_143">
			<conf:comment expr="'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="conference.unjoined" state="ASSERTION_NMBR_143">
			<conf:comment expr="'Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_FAIL;
					assertions[assert_index].reason = 'unjoin succeeded with an invalid id1 attribute value.';</script>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_144" state="ASSERTION_NMBR_144">
			<!-- 
144  	
10.5.8.2  	
<unjoin> must have an id2 attribute which is an ECMAScript expression which returns a string that is the identifier of a Connection, Dialog or Conference.  	
rachel.muller@aspect.com  	Accepted
-->
			<!-- FIXED: ISSUE-735 Passed general_connid in createccxml -->
			<createccxml next="'10_5_8_A_144.ccxml'" parameters="general_connid2"/>
					
		</transition>
		<transition event="error.createccxml" state="ASSERTION_NMBR_144">
			<conf:comment expr="'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="ccxml.created" state="ASSERTION_NMBR_144">
			<conf:comment expr="'Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_FAIL;
					assertions[assert_index].reason = 'unjoin element with a missing id2 attribute was parsed successfully.';</script>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_146" state="ASSERTION_NMBR_146">
			<!--
146  	
10.5.8.2  	
If the id2 attribute value is invalid an error.semantic event must be thrown.  	
rachel.muller@aspect.com  	Accepted
-->
			<unjoin id1="general_connid" id2="invalid"/>
		</transition>
		<transition event="error.semantic" state="ASSERTION_NMBR_146">
			<conf:comment expr="'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="conference.unjoined" state="ASSERTION_NMBR_146">
			<conf:comment expr="'Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_FAIL;
					assertions[assert_index].reason = 'unjoin succeeded with an invalid id2 attribute value.';</script>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="user.START_ASSERTION_147" state="ASSERTION_NMBR_147">
			<!--
147  	
10.5.8.2  	
<unjoin> may have a hints attribute which is an ECMAScript object that contains information which may be used by the implementing platform or passed to the network when the two specified Connections, Dialogs or Conferences (id1 and id2) are unjoined.  	
rachel.muller@aspect.com  	Accepted
-->
			<join id1="general_connid" id2="general_connid2"/>
		</transition>
		<transition event="conference.joined" state="ASSERTION_NMBR_147">
			<if cond="!A147_joined_event_seen">
				<assign name="A147_joined_event_seen" expr="true"/>
				<conf:comment expr="'Event: ' + event$.name"/>
				<!-- FIXED ISSUE-715: declaration of "hints" variable -->
				<script>var hints = new Object();
					hints.string = "thisIsAString"
					hints.string2 = "this may or may not be ignored";
					hints.number = 42;</script>
				<unjoin id1="general_connid" id2="general_connid2" hints="hints"/>
			</if>
		</transition>
		<transition event="conference.unjoined" state="ASSERTION_NMBR_147">
			<if cond="!A147_unjoined_event_seen">
				<assign name="A147_unjoined_event_seen" expr="true"/>
				<conf:comment expr="'Event: ' + event$.name"/>
				<script>assertions[assert_index].P_F = s_PASS;</script>
				<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
			</if>
		</transition>
		<transition event="user.START_ASSERTION_858" state="ASSERTION_NMBR_858">
			<!--
858  	
10.5.8.1  	
If for any reason the implementation is unable to terminate the bridge between the specified conferences, or if no such bridge exists, it MUST fail with a error.conference.unjoin event.  	
rachel.muller@aspect.com  	Accepted	
-->
			<conf:comment expr="'Event: ' + event$.name"/>
			<createconference conferenceid="A858_confid1" confname="'A858_confid1'"/>
		</transition>
		<transition event="conference.created" state="ASSERTION_NMBR_858">
			<conf:comment expr="'Event: ' + event$.name"/>
			<assign name="current_state" expr="'ASSERTION_NMBR_858_IN_PROGRESS'"/>
			<createconference conferenceid="A858_confid2" confname="'A858_confid2'"/>
		</transition>
		<transition event="conference.created" state="ASSERTION_NMBR_858_IN_PROGRESS">
			<conf:comment expr="'Event: ' + event$.name"/>
			<unjoin id1="A858_confid1" id2="A858_confid2"/>
		</transition>
		<transition event="error.conference.unjoin" state="ASSERTION_NMBR_858_IN_PROGRESS">
			<conf:comment expr="'Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_PASS;</script>
			<destroyconference conferenceid="A858_confid1"/>
		</transition>
		<transition event="error.*" state="ASSERTION_NMBR_858_IN_PROGRESS">
			<conf:comment expr="'Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_FAIL;
					assertions[assert_index].reason = 'expected error.conference.unjoin, got ' + event$.name +   ' : ' + event$.reason;</script>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new" delay="'1s'"/>
		</transition>
		<transition event="conference.destroyed" state="ASSERTION_NMBR_858_IN_PROGRESS">
			<conf:comment expr="'Event: ' + event$.name"/>
			<!-- FIXED ISSUE-694 1):  added tick marks in ASSERTION_NMBR_858_DESTROYING_CONFERENCES -->
			<assign name="current_state" expr="'ASSERTION_NMBR_858_DESTROYING_CONFERENCES'"/>
			<destroyconference conferenceid="A858_confid2"/>
		</transition>
		<transition event="conference.destroyed" state="ASSERTION_NMBR_858_DESTROYING_CONFERENCES">
			<conf:comment expr="'Event: ' + event$.name"/>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new" delay="'1s'"/>
		</transition>
		<transition event="user.START_ASSERTION_979" state="ASSERTION_NMBR_979">
			<!--
979  	
10.5.8.1  	
This MUST NOT result in multiple 'conference.unjoined' events if the session performing the <unjoin> is attached to the conference, or if any session owns both conferences when two conferences are being unjoined.  	
rachel.muller@aspect.com  	Accepted	
-->
			<createconference conferenceid="A979_confid1" confname="'A979_confid1'"/>
		</transition>
		<transition event="conference.created" state="ASSERTION_NMBR_979">
			<conf:comment expr="'Event: ' + event$.name"/>
			<join id1="general_connid" id2="A979_confid1"/>
		</transition>
		<transition event="conference.joined" state="ASSERTION_NMBR_979">
			<conf:comment expr="'Event: ' + event$.name"/>
			<assign name="current_state" expr="'ASSERTION_NMBR_979_IN_PROGRESS'"/>
			<createconference conferenceid="A979_confid2" confname="'A979_confid2'"/>
		</transition>
		<transition event="conference.created" state="ASSERTION_NMBR_979_IN_PROGRESS">
			<conf:comment expr="'Event: ' + event$.name"/>
			<join id1="A979_confid1" id2="A979_confid2"/>
		</transition>
		<transition event="conference.joined" state="ASSERTION_NMBR_979_IN_PROGRESS">
			<conf:comment expr="'Event: ' + event$.name"/>
			<if cond="!A979_join_event_seen">
				<assign name="A979_join_event_seen" expr="true"/>
				<conf:comment expr="'Event: ' + event$.name"/>
				<unjoin id1="A979_confid1" id2="A979_confid2"/>
				<!-- FIXED ISSUE-694 2):  added tick marks in user.A979_finish -->
				<send targettype="'ccxml'" target="session.id" name="'user.A979_finish'" delay="'3s'"/>
			</if>
		</transition>
		<transition event="error.*" state="ASSERTION_NMBR_979_IN_PROGRESS">
			<conf:comment expr="'Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_FAIL;
						assertions[assert_index].reason = ' unexpected event: ' + event$.name +  ' : ' + event$.reason;</script>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new" delay="'1s'"/>
		</transition>
		<transition event="conference.unjoined" state="ASSERTION_NMBR_979_IN_PROGRESS">
			<conf:comment expr="'Event: ' + event$.name"/>
			<script>A979_event_counter++;</script>
			<if cond="A979_event_counter > 1">
				<script>assertions[assert_index].P_F = s_FAIL;
						assertions[assert_index].reason = "multiple conference.unjoined events were received when a session unjoined two conferences that it owned.";</script>
				<else/>
				<script>assertions[assert_index].P_F = s_PASS;</script>
			</if>
		</transition>
		<transition event="user.A979_finish" state="ASSERTION_NMBR_979_IN_PROGRESS">
			<conf:comment expr="'Event: ' + event$.name"/>
			<destroyconference conferenceid="A979_confid1"/>
		</transition>
		<transition event="conference.destroyed" state="ASSERTION_NMBR_979_IN_PROGRESS">
			<conf:comment expr="'Event: ' + event$.name"/>
			<assign name="current_state" expr="'ASSERTION_NMBR_979_DESTROYING_CONFERENCES'"/>
			<destroyconference conferenceid="A979_confid2"/>
		</transition>
		<transition event="conference.destroyed" state="ASSERTION_NMBR_979_DESTROYING_CONFERNCES">
			<conf:comment expr="'Event: ' + event$.name"/>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>
		<transition event="error.conference.destroy" state="ASSERTION_NMBR_979_DESTROYING_CONFERENCES">
			<conf:comment expr="'Event: ' + event$.name"/>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new" delay="'1s'"/>
		</transition>
		<transition event="user.START_ASSERTION_978" state="ASSERTION_NMBR_978">
			<!--
978  	
10.5.8.1  	
If the implementation is unable to unjoin the objects an error.conference.unjoin MUST only be sent to the session that issued the <unjoin>.  	
rachel.muller@aspect.com  	Accepted
-->
			<conf:comment expr="'Event: ' + event$.name"/>
			<var name="A978_connid1" expr="general_connid"/>
			<var name="A978_sessionid1" expr="session.id"/>
			<createccxml next="'10_5_8_A_978.ccxml'" parameters="A978_connid1 A978_sessionid1"/>
		</transition>
		<transition event="conference.unjoined" state="ASSERTION_NMBR_978">
			<conf:comment expr="'Event: ' + event$.name"/>
			<assign name="A978_session_one_got_event" expr="true"/>
		</transition>
		<transition event="user.A978_failed" state="ASSERTION_NMBR_978">
			<conf:comment expr="'Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_FAIL;
					assertions[assert_index].reason = 'unjoin did not behave correctly when reporting an error.';</script>
		</transition>
		<transition event="user.A978_check" state="ASSERTION_NMBR_978">
			<conf:comment expr="'Event: ' + event$.name"/>
			<if cond="A978_session_one_got_event">
				<script>assertions[assert_index].P_F = s_FAIL;
						assertions[assert_index].reason = 'a session that did not use an unjoin element got an error.conference.unjoined event.';</script>
				<else/>
				<script>assertions[assert_index].P_F = s_PASS;</script>
			</if>
		</transition>
		<transition event="ccxml.exit" state="ASSERTION_NMBR_978">
			<conf:comment expr="'Event: ' + event$.name"/>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new" delay="'1s'"/>
		</transition>
		<transition event="user.START_ASSERTION_859" state="ASSERTION_NMBR_859">
			<!--
859  	
10.5.8.1  	
If for any reason the implementation is unable to terminate the bridge between the specified dialogs, or if no such bridge exists, it MUST fail with a error.conference.unjoin event.  	
rachel.muller@aspect.com  	Accepted	
-->
			<conf:comment expr="'Event: ' + event$.name"/>
			<createcall dest="TEST_CREATECALL_DEST_ANSWER_AND_STAY_ACTIVE[2]" connectionid="ass_859_conid_1"/>
		</transition>
		<transition event="connection.connected" state="ASSERTION_NMBR_859">
			<conf:comment expr="'Event: ' + event$.name + ' inx_859_a='+ inx_859_a"/>
			<assign name="inx_859_a" expr="inx_859_a + 1"/>
			<if cond="inx_859_a==1">
				<!-- FIXED ISSUE-736:  connectionid="event$.connectionid" on <dialogstart> added  -->
				<dialogstart dialogid="A859_dialogid1" src="'dialog.vxml'" connectionid="event$.connectionid"/>
				<createcall dest="TEST_CREATECALL_DEST_ANSWER_AND_STAY_ACTIVE[2]" connectionid="ass_859_conid_2"/>
			</if>
			<if cond="inx_859_a==2">
				<!-- FIXED ISSUE-736:  connectionid="event$.connectionid" on <dialogstart> added  -->
				<dialogstart dialogid="A859_dialogid2" src="'dialog.vxml'" connectionid="event$.connectionid"/>
			</if>
		</transition>
		<transition event="dialog.started" state="ASSERTION_NMBR_859">
			<conf:comment expr="'Event: ' + event$.name + ' inx_859_b=' + inx_859_b"/>
			<assign name="inx_859_b" expr="inx_859_b + 1"/>
			<if cond="inx_859_b==2">
			<send targettype="'ccxml'" target="session.id" name="'user.try_unjoin'" delay="'1s'"/>

			</if>
		</transition>
		<transition event="user.try_unjoin" state="ASSERTION_NMBR_859">
			<conf:comment expr="'Event: ' + event$.name"/>
			<unjoin id1="A859_dialogid1" id2="A859_dialogid2"/>
		</transition>
		<transition event="error.conference.unjoin" state="ASSERTION_NMBR_859">
			<conf:comment expr="'Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_PASS;</script>

			<send targettype="'ccxml'" target="session.id" name="'user.try_977'" delay="'1s'"/>
		</transition>
		<transition event="error.*" state="ASSERTION_NMBR_859">
			<conf:comment expr="'Event: ' + event$.name"/>
			<script>assertions[assert_index].P_F = s_FAIL;
					assertions[assert_index].reason = "expected error.conference.unjoin, got " + event$.name
					</script>
			<send targettype="'ccxml'" target="session.id" name="'user.try_977'" delay="'1s'"/>
					
		</transition>
		<transition event="user.try_977" state="ASSERTION_NMBR_859">
<!-- -->
			<conf:comment expr="'Event: ' + event$.name"/>
			<dialogterminate dialogid="A859_dialogid1"/>
			<dialogterminate dialogid="A859_dialogid2"/>
			<assign name="inx_859_b" expr="0"/>

		</transition>

		<!-- FIXED ISSUE-698: conference.unjoined added -->
		<transition event="conference.unjoined" state="ASSERTION_NMBR_859">
			<conf:comment expr="'Event: ' + event$.name"/>
		</transition>

		<transition event="dialog.exit" state="ASSERTION_NMBR_859">
			<conf:comment expr="'Event: ' + event$.name"/>
			<assign name="inx_859_b" expr="inx_859_b + 1"/>
			<if cond="inx_859_b==2">
			<send targettype="'ccxml'" target="session.id" name="'user.try_977_B'" delay="'1s'"/>
			</if>
		</transition>
		<transition event="user.try_977_B" state="ASSERTION_NMBR_859">
			<!--
977  	
10.5.8.1  	
Any Connections or Dialogs referenced by the 'id1' and 'id2' attributes of <unjoin> MUST be owned by the session performing the <unjoin>.  	
rachel.muller@aspect.com  	Accepted
In a separate doc.
-->
<!-- -->
			<conf:comment expr="'Event: ' + event$.name"/>
			<join id1="ass_859_conid_1" id2="ass_859_conid_2"/>

		</transition>


		<transition event="conference.joined" state="ASSERTION_NMBR_859">
			<conf:comment expr="'Event: ' + event$.name"/>
			<if cond="!A977_conference_joined_seen">
				<conf:comment expr="'Event: ' + event$.name"/>
				<assign name="A977_conference_joined_seen" expr="true"/>
				<var name="A977_connid1" expr="ass_859_conid_1"/>
				<var name="A977_connid2" expr="ass_859_conid_2"/>
				<createccxml next="'10_5_8_A_977.ccxml'" parameters="A977_connid1 A977_connid2"/>
			</if>
		</transition>
		<transition event="ccxml.exit" state="ASSERTION_NMBR_859">
			<conf:comment expr="'Event: ' + event$.name"/>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new" delay="'1s'"/>
		</transition>
		<!--======================================================== All-purpose handlers ========================================================-->
		<transition event="ccxml.created">
			<conf:comment expr="'Event: ' + event$.name"/>
		</transition>
		<transition event="ccxml.exit">
			<conf:comment expr="'Event: ' + event$.name"/>
		</transition>
		<transition event="connection.progressing">
			<conf:comment expr="'Event: ' + event$.name"/>
		</transition>
		<transition event="conference.created">
			<conf:comment expr="'Event: ' + event$.name"/>
		</transition>
		<transition event="conference.destroyed">
			<conf:comment expr="'Event: ' + event$.name"/>
		</transition>
		<transition event="error.conference.destroy">
			<conf:comment expr="'Event: ' + event$.name"/>
		</transition>
		<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="*">
			<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>
