예제 #1
0
				if (!$A2B -> enough_credit_to_call()) break;

				if ($A2B->agiconfig['sip_iax_friends']==1) {
				    if ( (strlen($A2B -> destination)>0)
					&& ( strlen($A2B -> agiconfig['sip_iax_pstn_direct_call_prefix']) > 0)
					&& (strncmp($A2B -> agiconfig['sip_iax_pstn_direct_call_prefix'], $A2B -> destination,strlen($A2B -> agiconfig['sip_iax_pstn_direct_call_prefix'])) == 0) ) {

					    $A2B -> sip_iax_buddy = $A2B->agiconfig['sip_iax_pstn_direct_call_prefix'];
					    $A2B -> dnid = substr($A2B -> dnid,strlen($A2B -> agiconfig['sip_iax_pstn_direct_call_prefix']));
				    }
				}
				if ( strlen($A2B-> sip_iax_buddy) > 0 || ($A2B-> sip_iax_buddy == $A2B->agiconfig['sip_iax_pstn_direct_call_prefix'])) {
					$cia_res = $A2B-> call_sip_iax_buddy($agi, $RateEngine, 0);
				} else {
					$ans = $A2B-> callingcard_ivr_authorize($agi, $RateEngine, 0);

					// PERFORM THE CALL
					$result_callperf = $RateEngine->rate_engine_performcall($agi, $A2B -> destination, $A2B);

					if (!$result_callperf) {
						$prompt="prepaid-dest-unreachable";
						$agi-> stream_file($prompt, '#');
					}
					// INSERT CDR  & UPDATE SYSTEM
					$RateEngine->rate_engine_updatesystem($A2B, $agi, $A2B -> destination);
					if ($result[0][3] && $RateEngine->dialstatus != "ANSWER") {
						$A2B -> mode = $mode = 'did';
						$A2B -> agiconfig['cid_enable']=0;
						$A2B -> agiconfig['number_try']=1;
					}
예제 #2
0
파일: callshop.php 프로젝트: ljhcj/IRISCC
         } elseif (strlen($A2B->destination) > 0) {
             $A2B->dnid = $A2B->destination;
             $A2B->agiconfig['use_dnid'] = 1;
             $A2B->debug(VERBOSE | WRITELOG, $agi, __FILE__, __LINE__, "TRUNK - dnid : " . $A2B->dnid . " (" . $A2B->agiconfig['use_dnid'] . ")");
         }
     } else {
         $res_dtmf = $agi->get_data('prepaid-sipiax-press9', 4000, 1);
         $A2B->debug(VERBOSE | WRITELOG, $agi, __FILE__, __LINE__, "RES SIP_IAX_FRIEND DTMF : " . $res_dtmf["result"]);
         $A2B->sip_iax_buddy = $res_dtmf["result"];
     }
 }
 if (strlen($A2B->sip_iax_buddy) > 0 || $A2B->sip_iax_buddy == $A2B->agiconfig['sip_iax_pstn_direct_call_prefix']) {
     $A2B->debug(VERBOSE | WRITELOG, $agi, __FILE__, __LINE__, 'CALL SIP_IAX_BUDDY');
     $cia_res = $A2B->call_sip_iax_buddy($agi, $RateEngine, $i);
 } else {
     if ($A2B->callingcard_ivr_authorize($agi, $RateEngine, $i) == 1) {
         // PERFORM THE CALL
         $result_callperf = $RateEngine->rate_engine_performcall($agi, $A2B->destination, $A2B);
         if (!$result_callperf) {
             $prompt = "prepaid-dest-unreachable";
             //$agi->agi_exec("STREAM FILE $prompt #");
             $agi->stream_file($prompt, '#');
         }
         // INSERT CDR  & UPDATE SYSTEM
         $RateEngine->rate_engine_updatesystem($A2B, $agi, $A2B->destination);
         if ($A2B->agiconfig['say_balance_after_call'] == 1) {
             $A2B->fct_say_balance($agi, $A2B->credit);
         }
         $A2B->debug(VERBOSE | WRITELOG, $agi, __FILE__, __LINE__, '[a2billing account stop]');
     }
 }