请输入
菜单

通话设置

在此模块中您可以

  1. 根据您的业务需求来对坐席的通话行为进行设置,以提高坐席的工作效率;
  2. 设置用户呼入或者 AI 自动拨号后转接坐席的策略,以使得系统更符合您的业务;
  3. 号码加密等其它功能设置;

1. 坐席通话设置

登录状态

可以设置坐席登录系统后的默认坐席状态

  • 工作-忙碌:坐席登录后默认忙碌,需要手动切换到空闲后才会被被分配呼入来电;
  • 工作-示闲:坐席登录后默认空闲,如有来电或者 AI 转入电话,会立刻分配到坐席

自动接听

开启自动接听后,坐席在线且切换状态为示闲时(坐席操作可见坐席操作手册),会自动接起来电

  • 关闭(默认):坐席可以手动打开个人自动接听开关
  • 开启:所有坐席开启,坐席无法自主关闭

话后整理

开启话后整理后,

  • 坐席完成通话会自动进入话后整理状态
  • 话后整理时长结束后自动示闲,结束前坐席可手动切换
  • 通话及话后整理期间,坐席可以手动进行业务记录

话后整理快捷标签

可以预先定义常用的快捷标签,坐席进行业务记录时可以快速选用

  • 快捷标签可以提高坐席记录效率
  • 快捷标签可以规划坐席记录内容

2. 呼入策略设置

排队等待时长

当用户来电被加入队列等待坐席接听时间,用户电话最多在队列中挂起的时长

呼入超时转接

将呼入电话分配到某坐席,但该坐席超过设定时长未能接起时,会将该通话转接到其它坐席振铃

坐席全忙

设置当所有坐席状态全忙或者处于休息等非空闲状态时如何处理来电

  • 进入留言信箱:播放留言信箱提示音,引导用户留言
  • 进入队列:进入队列中等待坐席接听

坐席不在线

设置当所有坐席均不在线时如何处理来电

  • 进入留言信箱:播放留言信箱提示音,引导用户留言
  • 进入队列:进入队列中等待坐席接听

基础分配策略

当有多个坐席可用时,设置分配电话的策略(对于同振响铃方式该设置无效)

  • 随机轮询坐席分配:随机分配给空闲可用坐席
  • 优先分配最长空闲时间坐席:优先分配给持续最长时间空闲的坐席
  • 优先分配最短通话时间坐席:优先分配给 24 小时内通话时长最短的坐席

AI 转人工

设置 AI 外呼接通后,将用户通话转接到坐席真人接起的提示

  • 不提示,直接进入排队:不进行任何提示,进入队列中等待接听(适合坐席接起速度较快的情况)
  • 默认排队等待提示音:排队过程中为用户,播放系统默认轻音乐
  • 自定义排队提示音:选择语音管理中自主上传的音频

录音开始时间

(1)默认未坐席接通后开始路由

(2)对于 AI 外呼任务,会从AI 拨打并且用户接起后开始录音(方便检验对于语音信箱的识别结果)

3. 呼出策略

呼出策略中可以设置AI 外呼任务的振铃时长,超出设定时间后 AI能够自动放弃呼叫,挂断外呼电话;

4. 接入点管理

选择离坐席所在地区更近的坐席接入点,能够获得更好的通话质量

5. 其它设置

号码加密

开启后系统内所有号码将会加密使用,您需要按照系统提供的加密盐值进行加密使用

加密工具:

关闭时,需要输入加密后的号码才可以呼出;开启后,手动拨号时可以选择其拨号模式:

1.密文模式:输入加密后的号码可成功呼出

2.原始模式:输入真实号码后将自动加密后呼出

加解密代码示例:

public class CryptoNumberUtil {

    private static Logger logger = LoggerFactory.getLogger(CryptoNumberUtil.class);

    /**
     * 加密
     * @param phone
     * @param salt
     * @return
     */
    public static String encode(Long phone, Long salt) {
        String phoneStr = phone + "";
        int len = phoneStr.length();
        String prefix = "";
        int suffix = 0;
        if (len > 8) {
            prefix = phoneStr.substring(0, len - 8);
            phoneStr = phoneStr.substring(len - 8);
            phone = Long.valueOf(phoneStr);
            suffix = 8 - phone.toString().length();
        } else {
            phone = Long.valueOf(phoneStr);
            suffix = len - phone.toString().length();
        }
        // 假设此处phone=0x1234_5678
        Long newPhone = (phone & 0xff000000); /// newphone=0x1200_0000
        newPhone += (phone & 0x0000ff00) << 8; //(phone & 0x0000ff00) << 8 = 0x0000_5600 << 8 = 0x0056_0000
        newPhone += (phone & 0x00ff0000) >> 8; //(phone & 0x00ff0000) >> 8 = 0x0034_0000 >> 8 = 0x0000_3400
        newPhone += (phone & 0x0000000f) << 4; //(phone & 0x0000000f) << 4 = 0x0000_0008 << 4 = 0x0000_0080
        newPhone += (phone & 0x000000f0) >> 4; //(phone & 0x000000f0) >> 4 = 0x0000_0070 >> 4 = 0x0000_0007
        newPhone ^= salt;
        return prefix + "" + newPhone + "" + suffix + "" + newPhone.toString().length();
    }

    /**
     * 解密
     * @param phoneStr
     * @param salt
     * @return
     */
    public static String decode(String phoneStr, Long salt) {
        int len = phoneStr.length();
        //后面两位是附加信息
        if (len < 2) {
            return null;
        }
        int newPhoneLen = Integer.parseInt(phoneStr.substring(len - 1));
        if(newPhoneLen == 0){
            return null;
        }
        int suffix = Integer.parseInt(phoneStr.substring(len-2, len-1));
        if (2 + newPhoneLen > len) {
            return null;
        }
        Long newPhone = Long.valueOf(phoneStr.substring(len-2-newPhoneLen, len-2));
        String prefix = "";
        //获取前缀
        if (len > (newPhoneLen+2)){
            prefix = phoneStr.substring(0,len-2-newPhoneLen);
        }
        //还原后面的值,按十六进制的位数来各自还原,并将它们相加或者|
        newPhone ^= salt;
        Long phone = (newPhone & 0xff000000);
        phone += (newPhone >> 8) & 0x0000ff00;
        phone += (newPhone << 8) & 0x00ff0000;
        phone += (newPhone >> 4) & 0x0000000f;
        phone += (newPhone << 4) & 0x000000f0;
        //suffix不为0,则表示需要在中间补零
        if (suffix > 0 ){
            for (int i = 0;i < suffix;i++) {
                prefix = prefix + "0";
            }
        }
        return prefix + "" + phone;
    }

    /**
     * 字符串的盐转成long
     * @param str
     * @return
     */
    public static long djbHash(String str) {
        int hash = 0;
        for (int i = 0; i < str.length(); i++) {
            hash = (hash << 5) + hash + str.charAt(i);
        }
        return (long) (hash & ((1<<26)-1));
    }

    public static void main(String[] args) {
        System.out.println(djbHash("11111111"));
        String ss = CryptoNumberUtil.decode("13686542566", djbHash("11111111"));
        System.out.println(ss);
    }
}

API 设置

(1)配置用于API回传的回调地址;

(2)生成API对接Token

 

 

 

上一个
呼叫中心管理
下一个
语音管理
最近修改: 2025-06-05