# 智能排队
Juphoon提供的智能排队服务是纯软件解决方案,相较于传统的排队机,智能排队服务轻量化的纯软件灵活部署模式、完美兼容行方现有的集中作业平台、呼叫中心等系统。 智能排队服务是在座席管理后台里通过对业务组、技能组和座席进行灵活配置,将座席资源按照实际的业务所需进行分组,再通过智能调度中心按照不同调度策略结合当前座席资源使用情况,合理的将来自访客终端的呼叫请求分配至相应的座席。实现大流量访客的合理分流,降低排队流失,优化顾客体验。
# 1. 排队人数
排队人数通过实现 JRTCAgentCallback (opens new window) 中的 onCallQueryWaitCount (opens new window) 接口上报,每5s自动回调一次。
/**
* 排队人数回调
* @param count 当前排队人数
*/
- (void)onCallQueryWaitCount:(int)count;
# 2. 处理加急
加急流程:
- 访客通过调用 JRTCGuest (opens new window) 的 requestUrgent (opens new window) 方法发起加急请求;
- 座席通过实现 JRTCAgentCallback (opens new window) 的 onUrgentRequest (opens new window) 接口接收访客的加急请求;
- 座席处理加急的结果通过实现 JRTCAgentCallback (opens new window) 的 onResponseUrgentResult (opens new window)获取;
- 座席通过调用 JRTCAgent (opens new window) 的 responseUrgent (opens new window) 方法处理是否同意加急请求;
- 访客通过实现 JRTCGuestCallback (opens new window) 的 onUrgentResultResponse (opens new window) 获取作息处理加急结果;
- 座席同意加急请求后,访客可以优先被分配座席进行通话;
注:只有管理员权限的座席才能收到加急请求,可以在业务管理平台上配置座席权限。
/**
* 收到加急请求回调
*
* 访客在排队过程中调用 {@link JRTCGuest.requestUrgent requestUrgent} 接口发起加急请求成功后,管理员权限的座席(业务管理平台配置)会收到此回调。<br>
* 座席收到回调后可调用 {@link JRTCAgent.responseUrgent:callerNumber:agree: responseUrgent} 接口对加急请求进行处理,接口的参数从此回调中获得。
* @param serialNumber 业务唯一标识
* @param callerNumber 发起加急请求的用户ID
*/
- (void)onUrgentRequest:(NSString *)serialNumber callerNumber:(NSString *)callerNumber;
/**
* 处理加急请求
*
* 请求加急流程: <br>
* 1. 访客在排队过程中调用 {@link JRTCGuest.requestUrgent requestUrgent} 接口发起加急请求 <br>
* 2. 管理员权限的座席(业务管理平台配置)收到 {@link JRTCAgentCallback.onUrgentRequest:callerNumber: onUrgentRequest} 回调 <br>
* 3. 座席收到回调后调用此接口对加急请求进行处理 <br>
* 4. 座席处理后,访客会收到 {@link JRTCGuestCallback.onUrgentResultResponse: onUrgentResultResponse} 加急请求处理结果回调,如果座席同意加急请求,则将会插队到队列最前
* @param serialNumber 业务唯一标识,通过 {@link JRTCAgentCallback.onUrgentRequest:callerNumber: onUrgentRequest} 回调获得
* @param callerNumber 发起加急请求的用户ID,通过 {@link JRTCAgentCallback.onUrgentRequest:callerNumber: onUrgentRequest} 回调获得
* @param agree 同意或拒绝加急请求
* - true: 同意加急请求
* - false: 拒绝加急请求
* @return 操作ID,对应 {@link JRTCAgentCallback.onResponseUrgentResult:cookie: onResponseUrgentResult} 回调的 cookie 参数
*/
- (int)responseUrgent:(NSString *)serialNumber callerNumber:(NSString *)callerNumber agree:(BOOL)agree;
/**
* 座席处理加急的结果回调
*
* 访客调用 {@link JRTCGuest.requestUrgent requestUrgent} 接口请求加急后,座席可调用 {@link JRTCAgent.responseUrgent:callerNumber:agree: responseUrgent} 接口同意或拒绝加急请求,然后访客会收到此回调获得加急请求应答结果。
* @param agree 加急是否通过,true 表示座席同意了访客的加急请求,false 表示不同意
*/
- (void)onUrgentResultResponse:(bool)agree;
示例代码:
// 访客发起加急请求
[_guest requestUrgent];
// 坐席收到加急请求回调
- (void)onUrgentRequest:(NSString *)serialNumber callerNumber:(NSString *)callerNumber {
// 同意加急请求
[_agent responseUrgent:serialNumber callerNumber:callerNumber agree:true];
// 不同意加急请求
[_agent responseUrgent:serialNumber callerNumber:callerNumber agree:false];
}
//访客接收到座席处理加急结果
- (void)onUrgentResultResponse:(bool)agree {
if (agree) {
//座席同意加急请求
} else {
//座席不同意加急请求
}
}