android 排队进度控件,排队 | Android

# 排队

功能简介:

在呼叫中心的业务场景下,有多个客户呼叫进来,有多个坐席提供服务,简单的一对一呼叫无法满足业务需求。此时可以使用我们的排队功能,客户不再直接呼叫某个坐席,而是呼叫到一个坐席队列,由系统自动给客户分配一个空闲的坐席。 当坐席提供的是通用型服务时,多个坐席可以服务于一个队列,客户呼叫这个队列,系统就会自动给客户分配一个空闲坐席。

如果是业务高峰期没有空闲的坐席了,客户将在队列中等待,一旦有坐席空闲了就会自动被分配给最先开始等待的客户。

坐席可以同时服务多个队列,队列有优先级,当坐席从忙变成空闲时,优先被分配给高优先级的队列里的客户。

同一个队列内的坐席可以配置不同的坐席优先级,客户接入时如果同时存在多个空闲坐席,会把客户分配给优先级更高的坐席。

注意:在登录成功后才可以使用排队功能。

排队流程如下:

1.初始化队列,获取队列数据

在登录成功后初始化队列数据 调用接口

// 设置队列回调

CloudroomQueue.getInstance().registerCallback(mQueueCallback);回调通知

//可在登录成功后初始化队列数据

void onLoginSuccess() {

// 初始化专家坐席用户队列

CloudroomQueue.getInstance().initQueue("");

}

//队列初始化响应

void initQueueDatRslt(CRVIDEOSDK_ERR_DEF sdkErr, String cookie) {

// TODO Auto-generated method stub

ArrayList queueInfos = CloudroomQueue.getInstance().getAllQueueInfo();

}

相关API请参考:

相关结构定义请参考:

2.坐席队列操作

坐席角色开始和停止服务队列,以及操作后队列状态的变化 调用接口:

//开始服务队列

CloudroomQueue.getInstance().startService(queID, "");

//停止服务队列

CloudroomQueue.getInstance().stopService(queID, "");

//获取服务的所有队列

ArrayList queIDs = CloudroomQueue.getInstance().getServiceQueues();回调通知:

//开始队列服务结果

@Override

void startServiceRslt(int queID, CRVIDEOSDK_ERR_DEF sdkErr, String cookie) {

// TODO Auto-generated method stub

}

//停止队列服务结果

@Override

void stopServiceRslt(int queID, CRVIDEOSDK_ERR_DEF sdkErr, String cookie) {

// TODO Auto-generated method stub

}

//队列状态变化通知

@Override

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, "");回调通知:

//请求用户的结果

@Override

void reqAssignUserRslt(CRVIDEOSDK_ERR_DEF sdkErr, UserInfo usr, String cookie) {

// TODO Auto-generated method stub

if (sdkErr == CRVIDEOSDK_ERR_DEF.CRVIDEOSDK_NOERR){

// 请求用户成功

}else if(sdkErr == CRVIDEOSDK_ERR_DEF.CRVIDEOSDK_QUE_NOUSER){

// 队列中没有排队人员

}else{

// 手动请求用户失败,代码:sdkErr

}

}

相关API请参考:

4.系统自动给坐席分配用户

系统自动分配的用户在坐席还未选择接受或拒绝时,系统可以撤回分配 调用接口:

// 设置队列回调

CloudroomQueue.getInstance().registerCallback(mQueueCallback);回调通知:

//系统自动分配用户通知

@Override

void autoAssignUser(UserInfo usr) {

// TODO Auto-generated method stub

//...

}

//接受或拒绝分配的用户操作响应

@Override

void responseAssignUserRslt(CRVIDEOSDK_ERR_DEF sdkErr, String cookie) {

// TODO Auto-generated method stub

//...

}

//系统撤回分配此用户通知

@Override

void cancelAssignUser(int queID, String usrID) {

// TODO Auto-generated method stub

//取消分配用户的弹框

}

相关API请参考:

5.客户排队操作

客户选择一个队列进行排队,每次只能排一个队列 调用接口:

//开始排队

int queID = 1;

CloudroomQueue.getInstance().startQueuing(queID, "");

//停止排队

CloudroomQueue.getInstance().stopQueuing("");回调通知:

//开始排队结果

@Override

void startQueuingRslt(CRVIDEOSDK_ERR_DEF sdkErr, String cookie) {

// TODO Auto-generated method stub

}

//停止排队结果

@Override

void stopQueuingRslt(CRVIDEOSDK_ERR_DEF sdkErr, String cookie) {

// TODO Auto-generated method stub

}

//队列状态变化通知

@Override

void queueStatusChanged(QueueStatus queStatus) {

// TODO Auto-generated method stub

}

//排队信息更新

@Override

void queuingInfoChanged(QueuingInfo queuingInfo) {

// TODO Auto-generated method stub

}

相关API请参考:

相关结构定义请参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值