var TestID = Argv[0]; Verbose(0, "We're here.. with TestID " + TestID + "\n"); TestProcedures = sp_ast_test_GetDTMFINPUT(TestID); Verbose(0, "Getting TestProcedures.... get length of " +TestProcedures.length + "\n" ); if ( ! TestProcedures > 0 ) { Verbose(0, "TestProcedures Length was great not greater then zero! exiting\n"); sp_ast_test_SetOUTPUT(TestID, 0, "Invalid TestID passed!"); Chan.Hangup(); Die(); } TestLength = TestProcedures - 1; Verbose(0, "TestLength is " + TestLength + "\n"); while ( Chan.Up(true) ) { for ( i = 0; i < TestLength; i++ ) { Verbose(0, "Loop # " + i + "\n"); //TestProcedures[i].ID //TestProcedures[i].Priority //TestProcedures[i].DTMF //TestProcedures[i].MS_WAIT if ( ! Chan.Up(true) ) { Verbose(0, "Channel hung up for TestID : " + TestID + "\n"); sp_ast_test_SetOUTPUT(TestID, TestProcedures[i].ID, 'Channel down, exiting'); break; } if ( TestProcedures[i].DTMF != "" ) { for ( x = 0 ; x < TestProcedures[i].DTMF.length; x++) { Chan.Wait(500); Chan.Exec("SendDTMF", TestProcedures[i].DTMF[x]); Verbose(0, "Sending DTMF : " + TestProcedures[i].DTMF[x] + "\n"); } // Chan.Exec("SendDTMF", TestProcedures[i].DTMF); } if ( TestProcedures[i].MS_WAIT != "" ) { Verbose(0, "Waiting on channel for : " + TestProcedures[i].MS_WAIT + "\n"); Chan.Wait(parseInt(TestProcedures[i].MS_WAIT)); // For some reason, parseInt is needed here. BUG Verbose(0, "Done waiting\n"); }