RE: April CCXML: 3 errors in 10_5_7_A.txml - [cc] ISSUE-703

Chris,

in attachment is an updated version of 10_5_7/10_5_7_A.txml as a resolution
of ISSUE-703, points #2 and #3. 

May I gently ask a quick review? We are close to publish again CCXML-IR
after the resolution of all the IR ISSUES.

Regards,
Paolo Baggia
Author of CCXML-IR Plan
________________________________________
From: Chris Davis [mailto:davisc@iivip.com] 
Sent: venerd́ 2 luglio 2010 15.44
To: Baggia Paolo
Cc: www-voice@w3.org
Subject: Re: April CCXML: 3 errors in 10_5_7_A.txml - [cc] ISSUE-703

For 2 & 3, sure send me the test to double-check. I am happy to help.

Regards,
Chris

Baggia Paolo wrote: 
Chris,

We are in the process to address all ISSUES related to IR. The goal is to re-publish the CCXML-IR in a short term.
Please explicitly confirm that you accept the proposed resolution or after one week we will consider implicitly accepted the resolution. If you need clarification, please ask them very soon.

Paolo Baggia
Author of CCXML-IR Plan

ISSUE-703:

Here are the resolutions for your four issues:

1. Right, it will be fixed.

2./3. You are right, the difficult point is to test these features that have been declared 'at risk'. If you want, we might send you the test fixed to be double-checked before publication, but we have to be in synch about timings.

=================================
This thread is tracked as ISSUE-703. 

---
RJ Auburn
CTO, Voxeo Corporation
tel:+1-407-418-1800 

On May 18, 2010, at 4:28 PM, Chris Davis wrote:

  
Hello www-voice,

Here are the errors:

1) <if cond="sessions.conferences[A854_confid1].bridges.length == 1

There is no sessions scope. That needs to be session with no s

2) Assertion #854 as written will never work (see above fragment). The bridges property of the
Conference object is defined in 10.3.1 as "an ECMAScript associative array". It is referenced
by conference ids which are by definition URIs. The ECMA .length of an associative array
is always zero.

When you account for breaks 1) and 2), the broken segment:
<if cond="sessions.conferences[A854_confid1].bridges.length == 1 &amp;&amp; sessions.conferences[A854_confid2].bridges.length == 1">

thus becomes
<if cond="session.conferences[A854_confid1].bridges[A854_confid2] != undefined &amp;&amp; session.conferences[A854_confid2].bridges[A854_confid1] != undefined">

3) TC#855 tries to look at the dialog objects to make sure the switching is correct.
However, as written it doesn't account for all the switching. Specifically, the switching
picture by the time #855 rolls around is:

A855_dialogid1 <====> A855_dialogid2
A855_dialogid1 --> general_connid
A855_dialogid2 --> A855_connid1

yet the check is written like this:
<script><![CDATA[A855_passed = (session.dialogs[A855_dialogid1].input == A855_dialogid2 &&
                      session.dialogs[A855_dialogid2].input == A855_dialogid1 &&
                      session.dialogs[A855_dialogid1].outputs[0] == A855_dialogid2 &&
                      session.dialogs[A855_dialogid2].outputs[0] == A855_dialogid1);

  ]]></script>

To check everything, the test should be something like this:
       <script><![CDATA[
          function outputpresent( haystack, needle, numElements )
          {
              var rc = false;
              for(i=0; i< numElements; i++ )
              {
                  if( haystack[i] == needle )
                  {
                      rc = true;
                      break;
                  }
              }
              return rc;
          }

          A855_passed = false;
          if( session.dialogs[A855_dialogid1].outputs.length == 2 && session.dialogs[A855_dialogid2].outputs.length == 2)
          {
              if( session.dialogs[A855_dialogid1].input == A855_dialogid2 && session.dialogs[A855_dialogid2].input == A855_dialogid1 )
              {
                  if( true == outputpresent( session.dialogs[A855_dialogid1].outputs, general_connid, 2 ))
                  {
                      if( true == outputpresent( session.dialogs[A855_dialogid1].outputs, A855_dialogid2, 2 ))
                      {
                          if( true == outputpresent( session.dialogs[A855_dialogid2].outputs, A855_connid1, 2 ))
                          {
                              if(true == outputpresent( session.dialogs[A855_dialogid2].outputs, A855_dialogid1, 2 ))
                              {
                                  A855_passed = true;
                              }
                          }
                      }
                  }
              }
          }
      ]]></script>
//------------

Note that as written, the check currently leaves off some of the switch paths and assumes the secondary switch
paths are in index position 0. Our browser adds new paths to the END of the array. If other behavior is desired
we suggest it be placed in the Recommendation.

Regards,
Chris


-- 
Chris Davis
Interact Incorporated R&D
512-502-9969x117
    


  



-- 
Chris Davis
Interact Incorporated R&D
512-502-9969x117

Received on Wednesday, 7 July 2010 14:13:10 UTC