#!/usr/bin/php -q verbose("ura Ramais: $lstrSql"); $agi->verbose("ura Ramais: $lstrRamais"); $agi->verbose("ura Comando: $lstrComandos"); $agi->verbose("ura Comando TimeOut: $lstComandoTo"); $agi->verbose("ura Arquivo Saudacao: $lstrArqSaudacao"); $agi->verbose("ura Arquivo Feriado: $lstrArqFeriado"); $agi->verbose("ura Arquivo Rind: $lstrArqRing"); $agi->verbose("ura Arquivo Ocupado: $lstrArqOcupado"); $agi->verbose("ura Tipo: $lstrTipo"); $agi->verbose("ura Aleatorio: $lstrAleatorio"); $agi->verbose("ura Origem: $lstrRamaisCount"); if ($lstrArqSaudacao != '' || $lstrArqRing != '' || $lstrArqFeriado != '' || $lstrArqOcupado != '' ){ $agi->Answer(); $lbolcallPending =false; } if (valida_feriado($lstrUraFeriado1,$lstrUraFeriado2,$lstrUraSabado,$lstrUraDomingo,$lstrUraSegundaSexta) !== false) { if ( $lstrArqFeriado != '') { $agi->exec('Playback',$lstrArqFeriado); } $agi->hangup(); } if ($lstrAleatorio == 'SIM') { $lintCount=RAND(0,$lstrRamaisCount-1); } else { $lintCount = 1; } $lbolTrava = true; $input=''; $lboltimeOut=true; While($lbolTrava){ if ($lstrTipo == '1') { if($input == '') { $agi->exec('Background',$lstrArqSaudacao); $input = $agi->wait_for_digit(6000); $input = $input['result']; if ( $input != 0 && $input != -1) { $input = $input - 48; } } if (($input == '' || $input == 0 || $input == -1) && $lboltimeOut === true) { $input=$lstComandoTo; $lboltimeOut=false; } $lstrRamal = 'error'; $i=0; while ($i <= count($larrComandos) -1 ) { $lstrComandoA=$larrComandos[$i]; if(trim($input) == trim($lstrComandoA)) { $lstrComando=$i; $i=count($larrComandos) + 1; } $i=$i + 1; }; if( is_numeric($lstrComando)) { $lstrRamal=$larrRamais[$lstrComando]; }else { $lstrRamal=''; } if ($lstrRamal != 'error' || $lstrRamal != '') { $lboltimeOut = true; } } if ($lstrTipo == '2') { $lstrRamal=$larrRamais[$lintCount]; $lintCount=$lintCount + 1; ///se for maior cair fora if( $lstrRamal == '' ){ $lbolTrava=false; } } if ($lstrTipo == '3') { $lstrRamal=$larrRamais[$lintCount]; if( $lstrRamal == '' ){ $lbolTrava = false; } } $input=''; if ($lbolTrava == false) { Exit; } if ( $lstrRamal != '' ) { $agi->exec('Dial','Local/'.$lstrRamal.'@ramais'); } if ($lstrTipo == '2' || $lstrTipo == '3') { $lstrDialStatus = $agi->get_variable('DIALSTATUS',TRUE); if ($lstrDialStatus == 'BUSY') { $agi->hangup(); } if ( $lstrTipo == '3' && $lstrDialStatus != 'BUSY' && $lstrArqOcupado != '') { $agi->exec('Playback',$lstrArqOcupado); $agi->exec('Wait','4'); } } } return true; } function valida_feriado($lstrFeriados1,$lstrFeriados2, $lstrSabados, $lstrDomingos, $lstrSegSexs) { $larrFeriados1 = split(',',$lstrFeriados1); $larrFeriados2 = split(',',$lstrFeriados2); $larrSabados = split(',',$lstrSabados); $larrDomingos = split(',',$lstrDomingos); $larrSegSexs = split(',',$lstrSegSexs); $ldtaHoje=getdate(); $dias_semana = array('SUN', 'MON', 'TUE','WED', 'THU', 'FRI', 'SAT'); $lintHora = date('G',$ldtaHoje[0]) ; $lstrDiaSemana = $dias_semana[date('w',$ldtaHoje[0])]; $lstrData = date('d/m/Y',$ldtaHoje[0]) ; $lbolNotFeriado = false; IF (count($larrFeriados1) > 0) { $i = 0; while ($i <= count($larrFeriados1) -1) { $lstrDataFeriado1 = $larrFeriados1[$i]; $lintHoraInicial = Substr($lstrDataFeriado1,11,2); $lintHoraFinal = Substr($lstrDataFeriado1,14,2); IF (Substr($lstrDataFeriado1,0,10) == $lstrData) { if ($lintHora >= $lintHoraInicial && $lintHora < $lintHoraFinal) { $lbolNotFeriado = true; } } $i = $i + 1; } if ($lbolNotFeriado) { return false; } } $lbolNotFeriado = false; IF (count($larrFeriados2) > 0) { $i = 0; while ($i <= count($larrFeriados2) - 1) { $lstrDataFeriado2 = $larrFeriados2[$i]; $lintHoraInicial = Substr($lstrDataFeriado2,11,2); $lintHoraFinal = Substr($lstrDataFeriado2,14,2); IF (Substr($lstrDataFeriado2,0,10) == $lstrData) { if ($lintHora >= $lintHoraInicial && $lintHora < $lintHoraFinal) { $lbolNotFeriado = true; } } $i = $i + 1; } if ($lbolNotFeriado) { return false; } } $lbolNotFeriado = false; IF (count($larrSabados) > 0) { if ($lstrDiaSemana == 'SAT') { $i = 0; while ($i <= count($larrSabados) -1) { $lstrDataSabado = $larrSabados[$i]; if ($lstrDataSabado != '' && $lstrDataSabado != null) { $lintHoraInicial = Substr($lstrDataSabado,0,2); $lintHoraFinal = Substr($lstrDataSabado,3,2); if ($lintHora >= $lintHoraInicial && $lintHora < $lintHoraFinal) { $lbolNotFeriado = true; } } $i = $i + 1; } if ($lbolNotFeriado) { return false; } else { return true; } } } $lbolNotFeriado = false; IF (count($larrDomingos) > 0) { if ($lstrDiaSemana == 'SUN') { $i = 0; while ($i <= count(larrDomingos) -1) { $lstrDataDomingo = $larrDomingos[$i]; if ($lstrDataDomingo != '' && $lstrDataDomingo != null) { $lintHoraInicial = Substr($lstrDataDomingo,0,2); $lintHoraFinal = Substr($lstrDataDomingo,3,2); if ($lintHora >= $lintHoraInicial && $lintHora < $lintHoraFinal) { $lbolNotFeriado = true; } } $i = $i + 1; } if ($lbolNotFeriado) { return false; } else { return true; } } } $lbolNotFeriado = false; IF (count($larrSegSexs) > 0) { if (strpos('|MON|TUE|WED|THU|FRI|',$lstrDiaSemana) !== false) { $i = 0; while ($i <= count($larrSegSexs) -1) { $lstrDataSegSex = $larrSegSexs[$i]; if ($lstrDataSegSex != '' && $lstrDataSegSex != null) { $lintHoraInicial = Substr($lstrDataSegSex,0,2); $lintHoraFinal = Substr($lstrDataSegSex,3,2); if ($lintHora >= $lintHoraInicial && $lintHora < $lintHoraFinal) { $lbolNotFeriado = true; } } $i = $i + 1; } if ($lbolNotFeriado) { return false; } else { return true; } } } return false; } ?>