api_spool_callback.php

来自「asterisk用 的voip记费软件」· PHP 代码 · 共 128 行

PHP
128
字号
<?php/*Result :    * 200 -- successful query    * 400 -- malformed query    * 500 -- error processing query or fetching data	%transaction_id/OutboundEventSchedulerID% : Error description		Paremeters :	security_key	phone_number	callerid	callback_time *  -> callback_time=2006-09-20+19%3A30%3A00	id_server_group	http://hostname/api/api_spool_callback.php?security_key=XXXX&phone_number=XXX&callerid=XXXX*/include ("../lib/defines.php");			//$phone_number = '34650784355';	$phone_number = $_GET['phone_number']; // 01132473510969	$callerid = $_GET['callerid'];	$security_key = $_GET['security_key'];	$id_server_group = $_GET['id_server_group']; // id_server_group	$callback_time = urldecode($_GET['callback_time']);		$ans = Service_Callback($security_key, $phone_number, $callerid, $transaction_id, $callback_time, $id_server_group);	echo $ans[1]."\n";	echo $ans[0]." : ".$ans[2]."\n";		 /*	  *		Function for the Service Callback : it will call a phonenumber and redirect it into the BCB application	  */     function Service_Callback($security_key, $phone_number, $callerid, $transaction_id, $callback_time, $id_server_group){				$uniqueid 	=  MDP(10).'-'.$transaction_id;		$status = 'PENDING';		$server_ip = 'localhost';		$num_attempt = 0;				$exten = $phone_number;		$context = 'a2billing-callback';		$priority = 1;		//$timeout	callerid				// USE RATE_ENGINE_FINDRATES - RATE_ENGINE_ALL_CALCULTIMEOUT - CALL PLAN BY DEFAULT TO FIND OUT THE CORRECT CHANNEL		$channel = 'SIP/'.$phone_number.'@toreplace';		$variable = "mode=callback|phonenumber=$phone_number|callerid=$callerid|transaction_id=$transaction_id|id_server_group=$id_server_group";				$FG_regular[]  = array( "^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})$"   ,"(YYYY-MM-DD HH:MM:SS)");				// The wrapper variables for security		// $security_key = API_SECURITY_KEY;		write_log(LOGFILE_API_CALLBACK,"Service_Callback( security_key=$security_key, transaction_id=$transaction_id, phonenumber=$phone_number, callerid=$callerid, callerid=$callerid, callback_time=$callback_time, id_server_group=$id_server_group)");				$mysecurity_key = API_SECURITY_KEY;				$mail_content = "[" . date("Y/m/d G:i:s", mktime()) . "] "." API - Request asked: Callback [security_key=$security_key, transaction_id=$transaction_id, phonenumber=$phone_number, callerid=$callerid, callerid=$callerid, callback_time=$callback_time, id_server_group=$id_server_group]";				if (!is_numeric($id_server_group)){			$id_server_group = 1;		}				// CHECK CALLERID		if (strlen($callerid)<1)		{			write_log(LOGFILE_API_CALLBACK, basename(__FILE__).' line:'.__LINE__." ERROR FORMAT CALLERID AT LEAST 1 DIGIT ");			sleep(2);			return array($transaction_id, '400 -- malformed query', " ERROR - FORMAT CALLERID AT LEAST 1 DIGIT ");		}				// CHECK PHONE_NUMBER		if (strlen($phone_number)<10)		{			write_log(LOGFILE_API_CALLBACK, basename(__FILE__).' line:'.__LINE__." ERROR FORMAT PHONENUMBER AT LEAST 10 DIGITS ");			sleep(2);			return array($transaction_id, '400 -- malformed query', " ERROR - FORMAT PHONENUMBER AT LEAST 10 DIGITS ");		}				// CHECK CALLBACK TIME		if (strlen($callback_time)>1 && !(ereg( $FG_regular[0][0], $callback_time)))		{			write_log(LOGFILE_API_CALLBACK, basename(__FILE__).' line:'.__LINE__." ERROR FORMAT CALLBACKTIME : ".$FG_regular[0][0]);			sleep(2);			return array($transaction_id, '400 -- malformed query', " ERROR - FORMAT CALLBACKTIME : ".$FG_regular[0][0]);		}				// CHECK SECURITY KEY		if (md5($mysecurity_key) !== $security_key  || strlen($security_key)==0)		{			write_log(LOGFILE_API_CALLBACK, basename(__FILE__).' line:'.__LINE__." CODE_ERROR SECURITY_KEY");			sleep(2);			return array($transaction_id, '400 -- malformed query', ' KEY - BAD PARAMETER ');		}				$DBHandle = DbConnect();		if (!$DBHandle){						write_log(LOGFILE_API_CALLBACK, basename(__FILE__).' line:'.__LINE__." ERROR CONNECT DB");			sleep(2);			return array($transaction_id, '500 -- error processing query or fetching data', ' ERROR - CONNECT DB ');		}				if (strlen($callback_time)>1){			$QUERY = " INSERT INTO cc_callback_spool (uniqueid, status, server_ip, num_attempt, channel, exten, context, priority, variable, callback_time, id_server_group ) VALUES ('$uniqueid', '$status', '$server_ip', '$num_attempt', '$channel', '$exten', '$context', '$priority', '$variable', '$callback_time', '$id_server_group')";		}else{			$QUERY = " INSERT INTO cc_callback_spool (uniqueid, status, server_ip, num_attempt, channel, exten, context, priority, variable, id_server_group ) ".				 " VALUES ('$uniqueid', '$status', '$server_ip', '$num_attempt', '$channel', '$exten', '$context', '$priority', '$variable', '$id_server_group')";		}		$res = $DBHandle -> Execute($QUERY);				if (!$res){			write_log(LOGFILE_API_CALLBACK, basename(__FILE__).' line:'.__LINE__." ERROR INSERT INTO DB");			sleep(2);			return array($transaction_id, '500 -- error processing query or fetching data', ' ERROR - INSERT CALLBACK INTO DB');		}						return array($transaction_id, '200 -- successful query', " Success - Callback request has been accepted ");}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?