⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 functions.inc.php

📁 最近在做软交换时研究的一个软交换的东东
💻 PHP
📖 第 1 页 / 共 5 页
字号:
	//script to write iax2 conf file from mysql	//$wScript = rtrim($_SERVER['SCRIPT_FILENAME'],$currentFile).'retrieve_iax_conf_from_mysql.pl';	//exec($wScript);	//script to write op_server.cfg file from mysql 	//$wOpScript = rtrim($_SERVER['SCRIPT_FILENAME'],$currentFile).'retrieve_op_conf_from_mysql.pl';	//exec($wOpScript);}function core_devices_deliax2($account) {	global $db;	global $currentFile;    $sql = "DELETE FROM iax WHERE id = '$account'";    $result = $db->query($sql);    if(DB::IsError($result)) {        die($result->getMessage().$sql);	}		//script to write iax2 conf file from mysql	//$wScript = rtrim($_SERVER['SCRIPT_FILENAME'],$currentFile).'retrieve_iax_conf_from_mysql.pl';	//exec($wScript);	//script to write op_server.cfg file from mysql 	//$wOpScript = rtrim($_SERVER['SCRIPT_FILENAME'],$currentFile).'retrieve_op_conf_from_mysql.pl';	//exec($wOpScript);}function core_devices_getiax2($account) {	global $db;	$sql = "SELECT keyword,data FROM iax WHERE id = '$account'";	$results = $db->getAssoc($sql);	if(DB::IsError($results)) {		$results = null;	}	return $results;}function core_devices_addzap($account) {	global $db;	global $currentFile;	$zapfields = array(	array($account,'account',$account),	array($account,'context',($_REQUEST['context'])?$_REQUEST['context']:'from-internal'),	array($account,'mailbox',($_REQUEST['mailbox'])?$_REQUEST['mailbox']:$account.'@device'),	array($account,'callerid',($_REQUEST['description'])?$_REQUEST['description']." <".$account.'>':'device'." <".$account.'>'),	array($account,'signalling',($_REQUEST['signalling'])?$_REQUEST['signalling']:'fxo_ks'),	array($account,'echocancel',($_REQUEST['echocancel'])?$_REQUEST['echocancel']:'yes'),	array($account,'echocancelwhenbridged',($_REQUEST['echocancelwhenbridged'])?$_REQUEST['echocancelwhenbridged']:'no'),	array($account,'echotraining',($_REQUEST['echotraining'])?$_REQUEST['echotraining']:'800'),	array($account,'busydetect',($_REQUEST['busydetect'])?$_REQUEST['busydetect']:'no'),	array($account,'busycount',($_REQUEST['busycount'])?$_REQUEST['busycount']:'7'),	array($account,'callprogress',($_REQUEST['callprogress'])?$_REQUEST['callprogress']:'no'),	array($account,'record_in',($_REQUEST['record_in'])?$_REQUEST['record_in']:'On-Demand'),	array($account,'record_out',($_REQUEST['record_out'])?$_REQUEST['record_out']:'On-Demand'),	array($account,'accountcode',(isset($_REQUEST['accountcode']))?$_REQUEST['accountcode']:''),	array($account,'channel',($_REQUEST['channel'])?$_REQUEST['channel']:''));	$compiled = $db->prepare('INSERT INTO zap (id, keyword, data) values (?,?,?)');	$result = $db->executeMultiple($compiled,$zapfields);	if(DB::IsError($result)) {		die($result->getMessage()."<br><br>error adding to ZAP table");		}		//script to write zap conf file from mysql	//$wScript = rtrim($_SERVER['SCRIPT_FILENAME'],$currentFile).'retrieve_zap_conf_from_mysql.pl';	//exec($wScript);	//script to write op_server.cfg file from mysql 	//$wOpScript = rtrim($_SERVER['SCRIPT_FILENAME'],$currentFile).'retrieve_op_conf_from_mysql.pl';	//exec($wOpScript);}function core_devices_delzap($account) {	global $db;	global $currentFile;    $sql = "DELETE FROM zap WHERE id = '$account'";    $result = $db->query($sql);    if(DB::IsError($result)) {        die($result->getMessage().$sql);	}		//script to write zap conf file from mysql	//$wScript = rtrim($_SERVER['SCRIPT_FILENAME'],$currentFile).'retrieve_zap_conf_from_mysql.pl';	//exec($wScript);	//script to write op_server.cfg file from mysql 	//$wOpScript = rtrim($_SERVER['SCRIPT_FILENAME'],$currentFile).'retrieve_op_conf_from_mysql.pl';	//exec($wOpScript);}function core_devices_getzap($account) {	global $db;	$sql = "SELECT keyword,data FROM zap WHERE id = '$account'";	$results = $db->getAssoc($sql);	if(DB::IsError($results)) {		$results = null;	}	return $results;}/* end page.devices.php functions */function core_hint_get($account){	//determine what devices this user is associated with	$sql = "SELECT dial from devices where user = '{$account}'";	$results = sql($sql,"getAll",DB_FETCHMODE_ASSOC);	//print_r($results);		//create an array of strings	if (is_array($results)){		foreach ($results as $result) {			$dial[] = $result['dial'];		}	}		//create a string with & delimiter	if (isset($dial) && is_array($dial)){		$hint = implode($dial,"&");	} else {		if (isset($results[0]['dial'])) {			$hint = $results[0]['dial'];		} else {			$hint = null;		}	}		return $hint;}/* begin page.users.php functions */// get the existing extensions// the returned arrays contain [0]:extension [1]:namefunction core_users_list() {	$results = sql("SELECT extension,name,voicemail FROM users ORDER BY extension","getAll");	//only allow extensions that are within administrator's allowed range	foreach($results as $result){		if (checkRange($result[0])){			$extens[] = array($result[0],$result[1]);		}	}	if (isset($extens)) {		sort($extens);		return $extens;	} else {		return null;	}}function core_users_add($vars,$vmcontext) {	extract($vars);		global $db;	global $amp_conf;	//ensure this id is not already in use	$extens = core_users_list();	if(is_array($extens)) {		foreach($extens as $exten) {			if ($exten===$extension) {				echo "<script>javascript:alert('"._("This user {$thisexten}/{$extension} extension is already in use")."');</script>";				return false;			}		}	}		//build the recording variable	$recording = "out=".$record_out."|in=".$record_in;		//escape quotes and any other bad chars:	if(!get_magic_quotes_gpc()) {		$outboundcid = addslashes($outboundcid);		$name = addslashes($name);	}	//if voicemail is enabled, set the box@context to use	if(isset($vm) && $vm == "enabled") {		$voicemail = $vmcontext;	} else {		$voicemail = "disabled";	}	// MODIFICATION: (PL)	// Added for directdid and didalert l for Alert Info distinctive ring)	//	// cleanup any non dial pattern characters prior to inserting into the database	// then add directdid to the insert command.	//        $directdid = preg_replace("/[^0-9._XxNnZz\[\]\-]/" ,"", trim($directdid));		//insert into users table	$sql="INSERT INTO users (extension,password,name,voicemail,ringtimer,noanswer,recording,outboundcid,directdid,didalert) values (\"";	$sql.= "$extension\", \"";	$sql.= isset($password)?$password:'';	$sql.= "\", \"";	$sql.= isset($name)?$name:'';	$sql.= "\", \"";	$sql.= isset($voicemail)?$voicemail:'default';	$sql.= "\", \"";	$sql.= isset($ringtimer)?$ringtimer:'';	$sql.= "\", \"";	$sql.= isset($noanswer)?$noanswer:'';	$sql.= "\", \"";	$sql.= isset($recording)?$recording:'';	$sql.= "\", \"";	$sql.= isset($outboundcid)?$outboundcid:'';	$sql.= "\", \"";	$sql.= isset($directdid)?$directdid:'';	$sql.= "\", \"";	$sql.= isset($didalert)?$didalert:'';	$sql.= "\")";	sql($sql);		//write to astdb	$astman = new AGI_AsteriskManager();	if ($res = $astman->connect("127.0.0.1", $amp_conf["AMPMGRUSER"] , $amp_conf["AMPMGRPASS"])) {			$astman->database_put("AMPUSER",$extension."/password",isset($password)?$password:'');		$astman->database_put("AMPUSER",$extension."/ringtimer",isset($ringtimer)?$ringtimer:'');		$astman->database_put("AMPUSER",$extension."/noanswer",isset($noanswer)?$noanswer:'');		$astman->database_put("AMPUSER",$extension."/recording",isset($recording)?$recording:'');		$astman->database_put("AMPUSER",$extension."/outboundcid",isset($outboundcid)?"\"".$outboundcid."\"":'');		$astman->database_put("AMPUSER",$extension."/cidname",isset($name)?"\"".$name."\"":'');		$astman->database_put("AMPUSER",$extension."/voicemail","\"".isset($voicemail)?$voicemail:''."\"");		$astman->database_put("AMPUSER",$extension."/device","\"".isset($device)?$device:''."\"");		if (isset($amp_conf['ENABLECW']) && $amp_conf['ENABLECW'] == "yes") {			$astman->database_put("CW",$extension,"\"ENABLED\"");		}		$astman->disconnect();	} else {		fatal("Cannot connect to Asterisk Manager with ".$amp_conf["AMPMGRUSER"]."/".$amp_conf["AMPMGRPASS"]);	}	/*	//write to extensions table - AMP2 will not do this	//update ext-local context in extensions.conf		//warning: as of 009 we aren't allowing a user to use any mailbox but their own 	//This may affect some upgraders as it is possible in previous versions!	//$mailb = ($vm == 'disabled' || $mailbox == '') ? 'novm' : $mailbox;	$mailb = ($vm == 'disabled') ? 'novm' : $extension;		addaccount($extension,$mailb);*/		/*core_hint_add($extension);*/			//take care of voicemail.conf if using voicemail	$uservm = getVoicemail();	unset($uservm[$incontext][$account]);		if ($vm != 'disabled')	{ 		// need to check if there are any options entered in the text field		if ($_REQUEST['options']!=''){			$options = explode("|",$_REQUEST['options']);			foreach($options as $option) {				$vmoption = explode("=",$option);				$vmoptions[$vmoption[0]] = $vmoption[1];			}		}		$vmoption = explode("=",$attach);			$vmoptions[$vmoption[0]] = $vmoption[1];		$vmoption = explode("=",$saycid);			$vmoptions[$vmoption[0]] = $vmoption[1];		$vmoption = explode("=",$envelope);			$vmoptions[$vmoption[0]] = $vmoption[1];		$vmoption = explode("=",$delete);			$vmoptions[$vmoption[0]] = $vmoption[1];		$uservm[$vmcontext][$extension] = array(									'mailbox' => $extension, 									'pwd' => $vmpwd,									'name' => $name,									'email' => $email,									'pager' => $pager,									'options' => $vmoptions);	}	saveVoicemail($uservm);}function core_users_get($extension){	global $db;	//get all the variables for the meetme	$sql = "SELECT * FROM users WHERE extension = '$extension'";	$results = $db->getRow($sql,DB_FETCHMODE_ASSOC);	if(DB::IsError($results)) {        die($results->getMessage().$sql);	}	//explode recording vars	$recording = explode("|",$results['recording']);	$recout = substr($recording[0],4);	$recin = substr($recording[1],3);	$results['record_in']=$recin;	$results['record_out']=$recout;	return $results;}function core_users_del($extension,$incontext,$uservm){	global $db;	global $amp_conf;		//delete from devices table	$sql="DELETE FROM users WHERE extension = \"$extension\"";	$results = $db->query($sql);	if(DB::IsError($results)) {        die($results->getMessage().$sql);	}	//delete details to astdb	$astman = new AGI_AsteriskManager();	if ($res = $astman->connect("127.0.0.1", $amp_conf["AMPMGRUSER"] , $amp_conf["AMPMGRPASS"])) {			$astman->database_del("AMPUSER",$extension."/password");		$astman->database_del("AMPUSER",$extension."/ringtimer");		$astman->database_del("AMPUSER",$extension."/noanswer");		$astman->database_del("AMPUSER",$extension."/recording");		$astman->database_del("AMPUSER",$extension."/outboundcid");		$astman->database_del("AMPUSER",$extension."/cidname");		$astman->database_del("AMPUSER",$extension."/voicemail");		$astman->database_del("AMPUSER",$extension."/device");		$astman->disconnect();	} else {		fatal("Cannot connect to Asterisk Manager with ".$amp_conf["AMPMGRUSER"]."/".$amp_conf["AMPMGRPASS"]);	}		//take care of voicemail.conf	unset($uservm[$incontext][$extension]);	saveVoicemail($uservm);	/*		//delete the extension info from extensions table	delextensions('ext-local',$extension);	*/	/*//delete hint	core_hint_del($extension);*/}function core_users_cleanastdb($extension) {	// This is called to remove any ASTDB traces of the user after a deletion. Otherwise,	// call forwarding, call waiting settings could hang around and bite someone if they	// recycle an extension. Is called from page.xtns and page.users.	global $amp_conf;	$astman = new AGI_AsteriskManager();	if ($res = $astman->connect("127.0.0.1", $amp_conf["AMPMGRUSER"] , $amp_conf["AMPMGRPASS"])) {			$astman->database_del("CW",$extension);		$astman->database_del("CF",$extension);		$astman->database_del("CFB",$extension);		$astman->database_del("CFU",$extension);	} else {		fatal("Cannot connect to Asterisk Manager with ".$amp_conf["AMPMGRUSER"]."/".$amp_conf["AMPMGRPASS"]);	}}function core_users_edit($extension,$vars,$vmcontext,$incontext,$uservm){	global $db;	global $amp_conf;		//I we are editing, we need to remember existing user<->device mapping, so we can delete and re-add	$astman = new AGI_AsteriskManager();	if ($res = $astman->connect("127.0.0.1", $amp_conf["AMPMGRUSER"] , $amp_conf["AMPMGRPASS"])) {		$ud = $astman->database_get("AMPUSER",$extension."/device");		$vars['device'] = $ud;	} else {		fatal("Cannot connect to Asterisk Manager with ".$amp_conf["AMPMGRUSER"]."/".$amp_conf["AMPMGRPASS"]);	}		//delete and re-add	core_users_del($extension,$incontext,$uservm);	core_users_add($vars,$vmcontext);	}function core_directdid_list(){	$sql = "SELECT extension, directdid, didalert FROM users WHERE directdid IS NOT NULL AND directdid != ''";	return sql($sql,"getAll",DB_FETCHMODE_ASSOC);}

⌨️ 快捷键说明

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