排队
功能简介 : 在呼叫中心的业务场景下,有多个客户呼叫进来,有多个坐席提供服务,简单的一对一呼叫无法满足业务需求。
- 当坐席提供的是通用型服务时,多个坐席可以服务于一个队列,客户呼叫这个队列,系统就会自动给客户分配一个空闲坐席。
- 如果是业务高峰期没有空闲的坐席了,客户将在队列中等待,一旦有坐席空闲了就会自动被分配给最先开始等待的客户。
队列管理使用流程如下:
1.初始化队列,获取队列数据
在登录成功后初始化队列数据
- 调用接口
// 设置队列回调
[[CloudroomQueue shareInstance] setQueueCallback:self];
- 回调通知
//可在登录成功后初始化队列数据
- (void)loginSuccess:(NSString *)usrID cookie:(NSString *)cookie {
// 初始化专家坐席用户队列
[[CloudroomQueue shareInstance] initQueueDat:@""];
}
//队列初始化响应
- (void)initQueueDatRslt:(CRVIDEOSDK_ERR_DEF)errCode cookie:(NSString *)cookie {
// TODO Auto-generated method stub
NSMutableArray <QueueInfo *> * queueInfos = [[CloudroomQueue shareInstance] getQueueInfo];
}
相关API请参考:
相关结构定义请参考:
2.坐席队列操作
坐席角色开始和停止服务队列,以及操作后队列状态的变化
- 调用接口:
//开始服务队列
[[CloudroomQueue shareInstance] startService:queID cookie:@""];
//停止服务队列
[[CloudroomQueue shareInstance] stopQueuing:queID];
//获取服务的所有队列
NSMutableArray <NSNumber *> *queIDs = [[CloudroomQueue shareInstance] getServiceQueues];
- 回调通知:
//开始队列服务结果
- (void)startServiceRslt:(int)queID errCode:(CRVIDEOSDK_ERR_DEF)errCode cookie:(NSString *)cookie {
// TODO Auto-generated method stub
}
//停止队列服务结果
- (void)stopServiceRslt:(int)queID errCode:(CRVIDEOSDK_ERR_DEF)errCode cookie:(NSString *)cookie {
// TODO Auto-generated method stub
}
//队列状态变化通知
- (void)queueStatusChanged:(QueueStatus *)queStatus {
// TODO Auto-generated method stub
}
相关API请参考:
相关结构定义请参考:
3.坐席请求用户
在设置DND免打扰状下态,系统不再自动分配,需要手动申请用户
- 调用接口:
// 设置队列回调
CloudroomQueue.getInstance().registerCallback(mQueueCallback);
//设置免打扰状态,关掉系统自动推送
CloudroomVideoMgr.getInstance().setDNDStatus(1, "");
//手动请求一个用户
CloudroomQueue.getInstance().reqAssignUser("");
//取消免打扰,开启系统自动推送
CloudroomVideoMgr.getInstance().setDNDStatus(0, "");
- 回调通知:
//请求用户的结果
- (void)reqAssignUserRslt:(CRVIDEOSDK_ERR_DEF)errCode userInfo:(UserInfo *)usr cookie:(NSString *)cookie {
// TODO Auto-generated method stub
if (sdkErr == CRVIDEOSDK_NOERR){
// 请求用户成功
}else if(sdkErr == CRVIDEOSDK_QUE_NOUSER){
// 队列中没有排队人员
}else{
// 手动请求用户失败,代码:sdkErr
}
}
相关API请参考:
4.系统自动给坐席分配用户
系统自动分配的用户在坐席还未选择接受或拒绝时,系统可以撤回分配
- 调用接口:
// 设置队列回调
[[CloudroomQueue shareInstance] setQueueCallback:self];
- 回调通知:
//系统自动分配用户通知
- (void)autoAssignUser:(UserInfo *)usr {
// TODO Auto-generated method stub
//...
}
//接受或拒绝分配的用户操作响应
- (void)responseAssignUserRslt:(CRVIDEOSDK_ERR_DEF)errCode cookie:(NSString *)cookie {
// TODO Auto-generated method stub
//...
}
//系统撤回分配此用户通知
- (void)cancelAssignUser:(int)queID usrID:(NSString *)usrID {
// TODO Auto-generated method stub
//取消分配用户的弹框
}
相关API请参考:
5.客户排队操作
客户选择一个队列进行排队,每次只能排一个队列
- 调用接口:
//开始排队
int queID = 1;
[[CloudroomQueue shareInstance] startQueuing:queID cookie:@""];
//停止排队
[[CloudroomQueue shareInstance] stopQueuing:queID];
- 回调通知:
//开始排队结果
- (void)startQueuingRslt:(CRVIDEOSDK_ERR_DEF)errCode cookie:(NSString *)cookie {
// TODO Auto-generated method stub
}
//停止排队结果
- (void)stopQueuingRslt:(CRVIDEOSDK_ERR_DEF)errCode cookie:(NSString *)cookie {
// TODO Auto-generated method stub
}
//队列状态变化通知
- (void)queueStatusChanged:(QueueStatus *)queStatus {
// TODO Auto-generated method stub
}
//排队信息更新
- (void)queuingInfoChanged:(QueuingInfo *)queuingInfo {
// TODO Auto-generated method stub
}
相关API请参考:
相关结构定义请参考: