Search...
Menu

Call Settings

In this module, you can:

    1. Configure the call behaviors of agents based on your business requirements, in order to improve the work efficiency of the agents.
    2. Set up the strategies for routing user inbound calls or AI auto-dialed calls to be transferred to agents, so that the system aligns better with your business needs.
    3. Enable other functionalities such as number encryption.

1. Agent Call Settings

1.1 Login Status 

You can set the default agent status after logging into the system:

  • Busy: The agent will be set to Busy by default after login. Inbound calls will only be assigned once the agent manually switches to Available.
  • Available · The agent will be set to Available by default after login. Any inbound call or AI-transferred call will be immediately routed to the agent.

 

1.2 Auto Answer

When auto-answer is enabled, if an agent is online and in available status (refer to Agent Operation Manual for agent operations), incoming calls will be automatically answered.

  • Disabled (Default): Agents can manually turn on their individual auto-answer option.
  • Enabled: All agents will have auto-answer turned on, and agents cannot disable it themselves.

1.3 After Call Work

After enabling ACW:

  • Agents will automatically enter the Post-Call Wrap-Up state after completing a call.
  • Once the post-call wrap-up time ends, the agent will automatically be set to available status. Agents can also manually change their status before the wrap-up time ends.
  • During both the call and the post-call wrap-up period, agents can manually perform business-related records and notes.

1.4 Wrap-up tags

Agents can quickly select them when recording business interactions.

  • Wrap-up tags help improve agent recording efficiency.
  • Wrap-up tags allow standardization and planning of agent records.

 

2. Inbound call strategy

2.1 Max queue wait time

When a user's call is queued waiting for an agent to answer, the maximum duration the user's call can be on hold in the queue is

2.2 Timeout for agent overflow

When an incoming call is routed to a specific agent, if that agent does not answer the call within the set time limit, the call will be transferred and routed to ring on another available agent

2.3 All agents are busy

When all agents are in a busy status or in a non-available status (e.g. on break), incoming calls can be handled in the following ways:

  • Enter the voicemail: Play the voicemail greeting prompt and allow the user to leave a message.
  • Enter the queue: Place the call in a queue to wait for the next available agent.

2.4 All agents are offline

When all agents are in a busy status or in a non-available status (e.g. on break), incoming calls can be handled in the following ways:

  1. Enter the voicemail: Play the voicemail greeting prompt and allow the user to leave a message.
  2. Enter the queue: Place the call in a queue to wait for the next available agent.

2.5 Call Allocation Strategy:

When multiple agents are available, the call allocation strategy can be set as follows (this setting is not applicable for simultaneous ringing):

  1. Random polling allocation: Randomly assign the call to an available idle agent.
  2. Prioritize allocation to agents with the longest idle time: Assign the call to the agent who has been in the available status for the longest duration.
  3. Prioritize allocation to agents with the shortest talk time: Assign the call to the agent with the shortest total talk time in the past 24 hours.

2.6 AI transfer to Agent:

When an AI-initiated outbound call is answered by the user, the prompt for transferring the call to a live agent can be set as follows:

  • Do not prompt,Go straight to the queue: directly enter queue: No prompt will be played, the user will be directly placed in the queue to wait for an agent (suitable for scenarios where agents can pick up quickly).
  • Default queue waiting audio: During the queue wait, the system will play the default light music prompt.
  • Custom queue waiting audio: Select a custom audio prompt uploaded in the Voice Management module.

2.7 Recording start time:

(1) By default, the route starts after the agent is connected

(2) For AI outbound call tasks, the recording will start after the AI dials and the user picks it up (convenient for checking the recognition results for voicemail)

 

3. Schedule Callback

When the administrator enables the Scheduled Callback feature, the following three parameters can be configured:

  • Ahead minutes: X minutes. The system will start assigning the callback task X minutes before the scheduled time.

  • Expirated Time: N minutes. If the callback task is not processed within N minutes after the scheduled time, the system will mark it as expired and stop processing it.

  • Agent Processing Expired Time: M minutes. If an agent does not handle the assigned scheduled callback within M minutes, the system will automatically withdraw it and reassign it to the next available agent. (This applies to callback tasks assigned to an agent group. For callbacks assigned to a dedicated agent, this restriction does not apply.)

 

4. Outbound Strategy

The AI predictive outbound task ringing duration can be set.

If the predictive outbound exceeds the set time, the AI will automatically abandon the call and hang up.

 

5. Access Point Management

Select the agent access point closer to the agent’s location to achieve better call quality.

 

6. Other Settings

Number encryption

Number encryption:After enabling this feature, all numbers within the system will be encrypted for use. You will need to use the encryption salt value provided by the system to encrypt the numbers when using them.

Encryption Tool :After enabling, you can choose the dialing mode for manual dialing:

1.Cipher Mode: Input the encrypted number to successfully make the call.

2.Original Mode: Input the real number, which will be automatically encrypted before the call is made.

Encryption/Decryption Code Example: 

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  Setting

(1) Configure the callback URL to be used for API callbacks.

(2) Generate an API integration token.

 

 

Previous
Call Center Management
Next
Satisfaction Survey
Last modified: 2025-10-09