dm_php扩展,DM_ivr.php

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

$menuHtml

$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标签。

IVR菜单 » 基础概要 » 呼叫中心

$showinfo
$gwold $submitbutton

HTML;

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值