iOS

# 智能排队

Juphoon 提供的智能排队服务是纯软件解决方案,相较于传统的排队机,智能排队服务轻量化的纯软件灵活部署模式、完美兼容行方现有的集中作业平台、呼叫中心等系统。

智能排队服务是在座席管理后台里通过对业务组、技能组和座席进行灵活配置,将座席资源按照实际的业务所需进行分组,再通过智能调度中心按照不同调度策略结合当前座席资源使用情况,合理的将来自访客终端的呼叫请求分配至相应的座席。实现大流量访客的合理分流,降低排队流失,优化顾客体验。 

# 1. 排队人数

通过实现 JRTCAgentCallback (opens new window) 中的 onCallQueueCount (opens new window) 接口上报:

/**
 * 排队人数上报
 *
 * @param count 当前排队人数
 */
void onCallQueueCount(int count);

示例代码:

@Override
public void onCallQueueCount(int count) {
    //count 当前人数
}

# 2. 处理加急

加急流程:

  1. 访客通过调用 JRTCGuest (opens new window)requestUrgent (opens new window) 方法发起加急请求;
  2. 座席通过实现 JRTCAgentCallback (opens new window)onUrgentRequest (opens new window) 接口接收访客的加急请求;
  3. 座席处理加急的结果通过实现 JRTCAgentCallback (opens new window)onResponseUrgentResult (opens new window)获取;
  4. 座席通过调用 JRTCAgent (opens new window)responseUrgent (opens new window) 方法处理是否同意加急请求;
  5. 访客通过实现 JRTCGuestCallback (opens new window)onUrgentResultResponse (opens new window) 获取作息处理加急结果;
  6. 座席同意加急请求后,访客可以优先被分配座席进行通话;

注:只有管理员权限的座席才能收到加急请求,可以在业务管理平台上配置座席权限。

/**
 * 收到加急请求回调
 *
 * 访客在排队过程中调用 {@link JRTCGuest#requestUrgent requestUrgent} 接口发起加急请求成功后,管理员权限的座席(业务管理平台配置)会收到此回调。<br>
 * 座席收到回调后可调用 {@link JRTCAgent#responseUrgent responseUrgent} 接口对加急请求进行处理,接口的参数从此回调中获得。
 * @param serialNumber 业务唯一标识
 * @param callerNumber 发起加急请求的用户ID
 */
void onUrgentRequest(String serialNumber, String callerNumber);
/**
 * 处理加急请求
 *
 * 请求加急流程: <br>
 * 1. 访客在排队过程中调用 {@link JRTCGuest#requestUrgent requestUrgent} 接口发起加急请求 <br>
 * 2. 管理员权限的座席(业务管理平台配置)收到 {@link JRTCAgentCallback#onUrgentRequest onUrgentRequest} 回调 <br>
 * 3. 座席收到回调后调用此接口对加急请求进行处理 <br>
 * 4. 座席处理后,访客会收到 {@link JRTCGuestCallback#onUrgentResultResponse onUrgentResult} 加急请求处理结果回调,如果座席同意加急请求,则将会插队到队列最前
 * @param serialNumber 业务唯一标识,通过 {@link JRTCAgentCallback#onUrgentRequest onUrgentRequest} 回调获得
 * @param callerNumber 发起加急请求的用户ID,通过 {@link JRTCAgentCallback#onUrgentRequest onUrgentRequest} 回调获得
 * @param agree 同意或拒绝加急请求
 * - true: 同意加急请求
 * - false: 拒绝加急请求
 * @return 操作id,对应 {@link JRTCAgentCallback#onResponseUrgentResult onResponseUrgentResult} 回调的 operationId 参数
 */
public abstract int responseUrgent(String serialNumber, String callerNumber, boolean agree);
/**
 * 处理加急结果回调
 *
 * @param result 处理结果
 * - true: 处理成功
 * - false: 处理失败
 * @param operationId 操作id,对应 {@link JRTCAgent#responseUrgent responseUrgent} 接口的返回值
 */
void onResponseUrgentResult(boolean result, int operationId);

示例代码:

int operationId;
//访客请求加急
guest.requestUrgent();
//座席收到访客加急请求
void onUrgentRequest(String serialNumber, String callerNumber) {
    //座席同意方可加急请求
    operationId = agent.responseUrgent("", "guest", true);
}
//座席收到处理加急结果
void onResponseUrgentResult(boolean result, int operationId) {
    if (this.operationId == operationId && result) {
        //座席处理加急结果成功
    }
}

//访客接收到座席处理加急结果
void onUrgentResultResponse(boolean agree) {
    if (agree) {
      	//座席同意加急请求
     } else {
      	//座席不同意加急请求
     }
}