define('APPID', 'lmxcc');
set_time_limit(60);
session_start();
date_default_timezone_set('Asia/Shanghai');
header("Content-type: text/html; charset=utf-8");
$phpFileUploadErrors = array(
0 => '文件上传成功!',
1 => '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。',
2 => '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 ',
3 => '文件只有部分被上传。 ',
4 => '没有文件被上传。',
6 => '找不到临时文件夹。',
7 => '文件写入失败。',
8 => '一个PHP的扩展库终止了文件上传操作。',
);
if (empty($_SESSION['domainid']))
die("没有登录!请先登录系统!");
$DIR = strstr(PHP_OS, 'WIN') ? str_replace( array('\\\\','\\') , '/', __DIR__ ) : __DIR__ ;
include_once 'DM_db.php';
$adm_level = is_adm();
function xmlentities($string){ //不允许 < > " 三种符号
$value = str_replace(array("",'"'),'_', $string);
return $value;
}
$id = $_SESSION['domainid'];
$showinfo = ' 设定并启用IVR后,所有呼入均被自动接入IVR!IVR不设定操作提示语音或菜单是不能生效的!
';
if ($id){
$result = $mysqli->query("select ivr_config,domain_id,id from fs_domains where domain_id = '$id'");
$sql = "update fs_domains set ";
$sql_end = " where domain_id = '$id'";
}else{
die("错误ID");
}
$fail = 0;
if ($result)
$row = $result->fetch_array();
else
die("数据无效!");
if ($row['domain_id'] != $_SESSION['domainid']) //避免操作者数据异常动了其他人的数据
die("数据非法!不可操作!");
if ($adm_level >4 && !empty($_POST)){
$_POST['greet-long'] = $_POST['greet-short'] = $_POST['invalid-sound'] = $_POST['exit-sound'] = 0;
$file_changed = 0;
if (!empty($_FILES)){ //若数据可用,保存上传文件
if (!file_exists ( $DIR."/$_SESSION[domainid]"))
mkdir( $DIR."/$_SESSION[domainid]");
if (!empty($_FILES["greet-long"]["size"])){
$size= $_FILES["greet-long"]["size"];
$temp= $_FILES["greet-long"]["tmp_name"];
$error= $phpFileUploadErrors[$_FILES["greet-long"]["error"]];
$showinfo .= "IVR操作提示上传 $error
";
if ($size<12000000 && $_FILES["greet-long"]["type"]=="audio/wav")
$re = move_uploaded_file($temp, $DIR."/$_SESSION[domainid]/greet_long.wav");
else $re = 0;
if ($re){
$_POST['greet-long'] = $DIR."/$_SESSION[domainid]/greet_long.wav";
$file_changed = 1;
}
}
if (!empty($_FILES["greet-short"]["size"])){
$size= $_FILES["greet-short"]["size"];
$temp= $_FILES["greet-short"]["tmp_name"];
$error= $phpFileUploadErrors[$_FILES["greet-short"]["error"]];
$showinfo .= "IVR输入提示上传 $error
";
if ($size<12000000 && $_FILES["greet-short"]["type"]=="audio/wav")
$re = move_uploaded_file($temp, $DIR."/$_SESSION[domainid]/greet_short.wav");
else $re = 0;
if ($re){
$_POST['greet-short'] = $DIR."/$_SESSION[domainid]/greet_short.wav";
$file_changed = 1;
}
}
if (!empty($_FILES["invalid-sound"]["size"])){
$size= $_FILES["invalid-sound"]["size"];
$temp= $_FILES["invalid-sound"]["tmp_name"];
$error= $phpFileUploadErrors[$_FILES["invalid-sound"]["error"]];
$showinfo .= "IVR输入错误提示上传 $error
";
if ($size<12000000 && $_FILES["invalid-sound"]["type"]=="audio/wav")
$re = move_uploaded_file($temp, $DIR."/$_SESSION[domainid]/invalid_sound.wav");
else $re = 0;
if ($re){
$_POST['invalid-sound'] = $DIR."/$_SESSION[domainid]/invalid_sound.wav";
$file_changed = 1;
}
}
if (!empty($_FILES["exit-sound"]["size"])){
$size= $_FILES["exit-sound"]["size"];
$temp= $_FILES["exit-sound"]["tmp_name"];
$error= $phpFileUploadErrors[$_FILES["exit-sound"]["error"]];
$showinfo .= "IVR退出提示上传 $error
";
if ($size<12000000 && $_FILES["exit-sound"]["type"]=="audio/wav")
$re = move_uploaded_file($temp, $DIR."/$_SESSION[domainid]/exit_sound.wav");
else $re = 0;
if ($re){
$_POST['exit-sound'] = $DIR."/$_SESSION[domainid]/exit_sound.wav";
$file_changed = 1;
}
}
}
$ivr = $row['ivr_config'];
if ($ivr)
$ivr1 = json_decode($ivr,true);
if ($_POST['greet-long'] ===0)
$_POST['greet-long'] = $ivr1['greet-long'];
if ($_POST['greet-short'] ===0)
$_POST['greet-short'] = $ivr1['greet-short'];
if ($_POST['invalid-sound'] ===0)
$_POST['invalid-sound'] = $ivr1['invalid-sound'];
if ($_POST['exit-sound'] === 0)
$_POST['exit-sound'] = $ivr1['exit-sound'];
$menu = [];
if (is_array(@$_POST['menu'])){
foreach ($_POST['menu'] as $k=>$one){
if ($one['d'] != ''){
$one['d'] = xmlentities($one['d']);
if ($one['a'] == 'menu-play-sound'){
if (!empty($_FILES["menu$k"]["size"])){
$size= $_FILES["menu$k"]["size"];
$temp= $_FILES["menu$k"]["tmp_name"];
$error= $phpFileUploadErrors[$_FILES["menu$k"]["error"]];
$showinfo .= "IVR菜单语音上传 $error
";
$tname = $DIR."/$_SESSION[domainid]/menu$k.wav";
if ($size<12000000 && $_FILES["menu$k"]["type"]=="audio/wav")
$re = move_uploaded_file($temp, $tname);
else $re = 0;
if ($re){
$one['p'] = $tname;
$file_changed = 1;
}else continue;
}else
$one['p'] = xmlentities($one['p']);
}elseif(isset($one['p']))
$one['p'] = xmlentities($one['p']);
$menu[] = $one;
}
}
if ($menu)
$_POST['menu'] = $menu;
}else $_POST['menu'] = [];
$ivr =['greet-long' =>xmlentities($_POST['greet-long']),'timeout' => intval($_POST['timeout']),'greet-short' => xmlentities($_POST['greet-short']),'max-timeouts' => intval($_POST['max-timeouts']),'invalid-sound' => xmlentities($_POST['invalid-sound']),'exit-sound' => xmlentities($_POST['exit-sound']),'digit-len' => $_POST['digit-len'],'inter-digit-timeout' =>intval($_POST['inter-digit-timeout']),'confirm-key'=>$_POST['confirm-key'],'max-failures'=>intval($_POST['max-failures']),'menu'=>$_POST['menu']];
$ivr1 = $ivr;
$ivr = json_encode($ivr);
$dmold = crc32($ivr.$file_changed);
$ivr = $mysqli->real_escape_string($ivr);
$sql .= "`last_date`=now(),`ivr_config`='$ivr'";
$gwold= "";
}else{
$ivr = @$row['ivr_config'];
$dmold = crc32($ivr."0");
$ivr1= false;
if ($ivr)
$ivr1 = json_decode($ivr,true);
if (!is_array($ivr1))
$ivr1 =['greet-long' =>'','timeout' => '30000','greet-short' => 'ivr/ivr-enter_ext.wav','max-timeouts' => '','invalid-sound' => 'ivr/ivr-please_check_number_try_again.wav','exit-sound' => 'voicemail/vm-goodbye.wav','digit-len' =>4,'inter-digit-timeout' =>3000,'confirm-key'=>'','max-failures'=>3];
$menu = isset($ivr1['menu'])?$ivr1['menu']:[];
$gwold = "";
}
$domain_id = $row['domain_id'];
$menuHtml = $maDefault = "";
$menucount = count($menu);
if ($menu){
foreach ($menu as $k =>$one){
$k++;
if ( $one['a'] =='menu-play-sound' ){
if (empty($one['p']))
continue;
$pos = strpos($one['p'], "/$domain_id/");
if ($pos)
$msound = " 【已上传,试听】 ";
else
$msound = "【当前默认】";
$input = " 按键: 播放的声音上传: 按下相应键值后即播放所设定的声音 $msound";
}elseif ($one['a']=='menu-exec-app'){
if (empty($one['p']))
continue;
$input = " 按键: 转分机: 按下相应键值后跳转设定分机,对应固定分机!";
}elseif ( $one['a'] =='menu-exec-app1' )
$input = " 分机号码长度: 填写分机号码的长度,如输入4,表示连续输入4位分机号后即跳转此分机!";
elseif ( $one['a'] =='menu-exec-app2' )
$input = " 按键: 按下相应键值后跳转到坐席队列,由坐席按队列顺序自动接听!";
else $input = " 按键: ";
$menuHtml .="
指定分机拨分机号坐席自动播放声音回主菜单退出菜单 $input ⊗
";$maDefault .= "\$(\"#s$k option[value=$one[a]]\").attr(\"selected\", \"selected\");";
}
}
if (!empty($ivr1['greet-long'])){
$pos = strpos($ivr1['greet-long'], "/$domain_id/");
if ($pos)
$greetlongsound = " 【已上传,试听】 ";
else
$greetlongsound = "【当前默认】";
}else
$greetlongsound = "【未设置】";
if (!empty($ivr1['greet-short'])){
$pos = strpos($ivr1['greet-short'], "/$domain_id/");
if ($pos)
$greetshortsound = " 【已上传,试听】 ";
else
$greetshortsound = "【当前默认】";
}else
$greetshortsound = "【未设置】";
if (!empty($ivr1['invalid-sound'])){
$pos = strpos($ivr1['invalid-sound'], "/$domain_id/");
if ($pos)
$invalidsound = " 【已上传,试听】 ";
else
$invalidsound = "【当前默认】";
}else
$invalidsound = "【未设置】";
if (!empty($ivr1['exit-sound'])){
$pos = strpos($ivr1['exit-sound'], "/$domain_id/");
if ($pos)
$exitsound = " 【已上传,试听】 ";
else
$exitsound = "【当前默认】";
}else
$exitsound = "【未设置】";
$c_key = empty($ivr1['confirm-key'])?"#":$ivr1['confirm-key'];
$html = <<
操作提示语音: $greetlongsound ,若在 毫秒内未输入,播放待输入提示语音: $greetshortsound ,若未输入,系统再播放 -1次待输入提示后退出;
若输入错误,系统播放输入错误语音: $invalidsound ,
最多允许输入错误 次;菜单最长{$ivr1['digit-len']}位数字,等待输入超时 毫秒 ,按 $c_key 键结束 ,结束语音: $exitsound
->>>> <<< 按键是数值如 1、5、23
$maDefault
//添加一行
function add() {
num++;
var content = "
";
content += "指定分机拨分机号坐席自动播放声音回主菜单退出菜单 按键: 转分机: 按下相应键值后跳转设定的分机,对应固定分机! ⊗";
content +="
"$("#menu_area").append(content);
}
//删除当前行
function remove(obj) {
$(obj).parent().remove();
}
function changeinput(sid) {
getv = $('#s'+sid).val();
if ( getv =='menu-play-sound' )
$('#p'+sid).html(" 按键: 播放的声音上传: 按下相应键值后即播放所设定的声音");
else
if (getv =='menu-exec-app')
$('#p'+sid).html(" 按键: 转分机: 按下相应键值后跳转设定分机,对应固定分机!");
else
if ( getv =='menu-exec-app1' )
$('#p'+sid).html(" 分机号码长度: 填写分机号码的长度,如输入4,表示连续输入4位分机号后即跳转此分机!");
else
if (getv =='menu-exec-app2')
$('#p'+sid).html(" 按键: 按下相应键值后跳转到坐席队列,由坐席按队列顺序自动接听!");
else
$('#p'+sid).html(" 按键: ");
}
function limitnum(a){
a.value=a.value.replace(/[^\\d]/g,'');
}
HTML;
if ($adm_level>4)
$submitbutton = " ";
else
$submitbutton = "";
if ($adm_level>4 && !empty($_POST)){
$submitbutton = '
';$sql .= $sql_end;
$result = false;
if ($dmold ==$_POST['dmold']){
$showinfo .= "未修改数据不会提交更新!
";
}elseif (!$fail)
$result = $mysqli->query($sql);
if ($result)
$showinfo .= "操作成功!";
else
$showinfo .= "操作失败!{$mysqli->error}";
}
echo <<
function en80(sid,lab){ $.post( "DM_domain_func.php", { yid: sid, en0: "80", en1: lab}) .done(function( data ) { alert( "IVR应用部署 " + data);$('#info'+sid).html(data+'
');});}
×
你的浏览器不支持audio标签。$showinfo |
---|
$gwold $submitbutton |
HTML;
一键复制
编辑
Web IDE
原始数据
按行查看
历史