예제 #1
0
 $cia_res = $A2B->callingcard_ivr_authenticate($agi);
 $A2B->debug(DEBUG, $agi, __FILE__, __LINE__, "[TRY : callingcard_ivr_authenticate]");
 // CALL AUTHENTICATE AND WE HAVE ENOUGH CREDIT TO GO AHEAD
 if ($cia_res == 0) {
     // RE-SET THE CALLERID
     $A2B->callingcard_auto_setcallerid($agi);
     for ($i = 0; $i < $A2B->agiconfig['number_try']; $i++) {
         $RateEngine->Reinit();
         $A2B->Reinit();
         // RETRIEVE THE CHANNEL STATUS AND LOG : STATUS - CREIT - MIN_CREDIT_2CALL
         $stat_channel = $agi->channel_status($A2B->channel);
         $A2B->debug(INFO, $agi, __FILE__, __LINE__, '[CHANNEL STATUS : ' . $stat_channel["result"] . ' = ' . $stat_channel["data"] . ']' . "\n[CREDIT : " . $A2B->credit . "][CREDIT MIN_CREDIT_2CALL : " . $A2B->agiconfig['min_credit_2call'] . "]");
         // CHECK IF THE CHANNEL IS UP
         if ($A2B->agiconfig['answer_call'] == 1 && $stat_channel["result"] != $status_channel && $A2B->CC_TESTING != 1) {
             if ($A2B->set_inuse == 1) {
                 $A2B->callingcard_acct_start_inuse($agi, 0);
             }
             $A2B->write_log("[STOP - EXIT]", 0);
             exit;
         }
         // CREATE A DIFFERENT UNIQUEID FOR EACH TRY
         if ($i > 0) {
             $A2B->uniqueid = $A2B->uniqueid + 1000000000;
         }
         if ($A2B->agiconfig['ivr_enable_locking_option'] == 1) {
             $QUERY = "SELECT block, lock_pin FROM cc_card WHERE username = '******'";
             $A2B->debug(DEBUG, $agi, __FILE__, __LINE__, "[QUERY] : " . $QUERY);
             $result = $A2B->instance_table->SQLExec($A2B->DBHandle, $QUERY);
             // Check if the locking option is enabled for this account
             if ($result[0][0] == 1 && strlen($result[0][1]) > 0) {
                 $try = 0;