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

this is tracked as ISSUE-703. 

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

Come join us at our Voxeo Customer Summit
June 21st – June 23rd at the Hard Rock Hotel
Register today for your All Access Pass:  
http://www.voxeo.com/summits/customer




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
> 
> 

Received on Wednesday, 26 May 2010 05:05:40 UTC