JCSDK-iOS
构造函数 | 类方法 | 属性 | 所有成员列表
JCAgent类 参考

座席模块 更多...

#import <JCAgent.h>

构造函数

(bool) - queryAllGroups
 
(bool) - checkin:role:
 
(bool) - checkin:
 
(bool) - checkin:role:busy:
 
(bool) - checkout
 
(bool) - answer
 
(bool) - term
 
(int) - applyStatePause:
 
(bool) - enableVideo:
 
(bool) - enableAudio:
 
(bool) - sendVideoEmptyPack:
 
(bool) - sendAudioEmptyPack:
 
(bool) - setRatio:
 
(bool) - setScreenMode:
 
(int) - queryAvailableAgents:
 
(int) - transferCall:toUserId:
 
(bool) - enableScreenShare:
 
(bool) - inviteMember:
 
(bool) - checkResult:reason:
 
(int) - responseUrgentWithSeialNumber:callerNumber:agree:
 
(bool) - enableLocalRecord:path:
 
(bool) - enableLocalRecord:recordParam:
 
(bool) - enableRemoteRecord:recordParam:
 
(bool) - sendMessage:content:
 
(bool) - sendMessage:content:toUserId:
 
(BOOL) - insertStorageRecord:fileType:fileSize:expireTime:
 
(bool) - setHoldState:
 
(bool) - getHoldState
 
(void) - turnCallType:
 
(JCAgentCallType- getCallType
 
(void) - sendTextMessage:toUserId:
 
(void) - requestSign
 
(BOOL) - controlRecord:watermarkText:
 

类方法

(JCAgent *) + create:mediaDevice:callback:
 
(void) + destroy
 

属性

JCAgentCallState callState
 
JCMediaChannelParticipantguestParticipant
 
NSArray< JCMediaChannelParticipant * > * participants
 
NSString * statistic
 获取媒体统计信息
 
bool pause
 当前是否是示忙状态
 
JCAgentOperatorState operatorState
 
NSString * shareRenderId
 屏幕共享时的渲染id,无屏幕共享时为空
 
NSString * shareUserId
 屏幕共享时的共享成员id,无屏幕共享时为空
 
JCMediaChannelPictureSize requestSize
 
NSString * serialNumber
 该次服务唯一标识
 
NSString * extraStr
 电额外参数,由访客呼叫的时候携带
 
JCAgentTermState termState
 
int callerWaitTime
 访客呼叫等待时长,即访客发起呼叫到座席接起的时长,单位秒
 
bool isAutoRecord
 

详细描述

座席模块

函数文档

◆ answer

- (bool) answer

座席端在收到邀请后,调用该接口来接听

注解
返回
接口调用成功失败
  • true :接口调用成功,结果通过onCallStateChanged事件
  • false :接口调用失败

◆ applyStatePause:

- (int) applyStatePause: (bool)  pause

主动发起示忙示闲

注解
  • 示忙状态下不会收到呼叫来电,示闲状态下正常呼叫进线
  • 通话过程中调用该接口不会影响当前通话,从下个通话开始状态生效
  • 示忙示闲的结果通过onApply上报
参数
pausetrue示忙,false示闲
返回
操作id,对应onApply的第一个参数

◆ checkin:

- (bool) checkin: (JCAgentRoleType role

签入 签入到排队机,签入后默认示闲状态

注解
参数
role座席角色,目前该参数已有服务端控制,不再通过终端设置,可忽略
参见
JCAgentRoleType
返回
接口调用成功失败
  • true : 接口调用成功,登录结果触发 onCheckinResult 上报
  • false :接口调用失败

◆ checkin:role:

- (bool) checkin: (NSString *)  userId
role: (JCAgentRoleType role 

签入 签入到排队机,签入后默认示闲状态

注解
参数
userId座席ID,需与portal上配置的坐席staffId对应
role座席角色,目前该参数已有服务端控制,不再通过终端设置,可忽略
参见
JCAgentRoleType
返回
接口调用成功失败
  • true : 接口调用成功,登录结果触发 onCheckinResult 上报
  • false :接口调用失败

◆ checkin:role:busy:

- (bool) checkin: (NSString *)  userId
role: (JCAgentRoleType role
busy: (bool)  busy 

签入 签入到排队机,签入后后的示忙示闲状态由busy参数决定

注解
参数
userId座席ID,需与portal上配置的坐席staffId对应
role座席角色,目前该参数已有服务端控制,不再通过终端设置,可忽略 -
参见
JCAgentRoleType
参数
busytrue签入后默认示忙,false签入后默认示闲
返回
接口调用成功失败
  • true : 接口调用成功,登录结果触发 onCheckinResult 上报
  • false :接口调用失败

◆ checkout

- (bool) checkout

签出排队机,签出后将不会收到排队机的呼叫分配

注解
返回
接口调用成功失败
  • true :接口调用成功,签出结果通过onCheckoutResult 上报
  • false :接口调用失败

◆ checkResult:reason:

- (bool) checkResult: (bool)  pass
reason: (NSString *)  reason 

通知访客服务的结果

注解
参数
pass是否办理成功 结果会触发 onCheckVerifyResult回调
reason办理失败的原因
返回
成功返回 true,失败返回 false

◆ controlRecord:watermarkText:

- (BOOL) controlRecord: (JCAgentReocrdAction action
watermarkText: (NSString *)  watermarkText 

控制远程录制

注解
仅在isAutoRecord为false的情况下生效
参数
action打开或关闭录制
watermarkText水印内容,需跟portal配置对应使用
返回
接口调用成功失败

◆ create:mediaDevice:callback:

+ (JCAgent *) create: (JCClient *)  client
mediaDevice: (JCMediaDevice *)  mediaDevice
callback: (id<JCAgentCallback>)  callback 

创建JCAgent对象 为单例,重复调用返回同一对象

注解
  • JCAgent的所有接口函数,如无特殊说明,都建议再主线程调用
  • 请确保在调用其他 API 前先调用该方法创建并初始化 JCClient 对象,JCMediaDevice 对象,JCAgentCallback 对象
  • 调用此方法前确保 JCClient 已完成初始化,即 state 方法获取的状态值不等于 JCClientStateNotInit : 未初始化
  • 调用此方法创建 JCAgent 对象后,期间没有调用过 destroy 方法销毁对象,然后又重复调用此方法,会直接返回第一次创建的 JCAgent 对象
参数
clientJCClient 对象
mediaDeviceJCMediaDevice 对象
callbackJCAgentCallback 回调
返回
JCAgent 对象

◆ destroy

+ (void) destroy

销毁 JCAgent 对象

注解
  • 该方法为同步调用,需要等待 JCAgent 实例资源释放后才能执行其他操作,调用此方法后,你将无法再使用 JCAgent 的其他方法和回调
  • 我们不建议再JCSDK的回调中调用此方法销毁 JCAgent 对象,否则会出现崩溃
  • 如需在销毁后再次创建 JCAgent 实例,需要等待 destroy方法执行结束后再创建实例

◆ enableAudio:

- (bool) enableAudio: (bool)  enable

开启关闭发送本地音频流 并修改自己的audio属性

注解
结果通过回调onMemberUpdate通知
参数
enable是否开启本地音频流
返回
接口调用成功或失败
  • true :接口调用成功,结果通过回调onMemberUpdate事件
  • false : 接口调用失败

◆ enableLocalRecord:path:

- (bool) enableLocalRecord: (bool)  enable
path: (NSString *)  path 

开关本地通话录制

参数
enable开启关闭
path录制路径
返回
返回 true 表示正常执行调用流程,false 表示调用异常

◆ enableLocalRecord:recordParam:

- (bool) enableLocalRecord: (bool)  enable
recordParam: (JCMediaChannelRecordLocalParams *)  recordParam 

开关本地通话录制

参数
enable开启关闭
recordParam录制参数对象
参见
JCMediaChannelRecordLocalParams
返回
返回 true 表示正常执行调用流程,false 表示调用异常

◆ enableRemoteRecord:recordParam:

- (bool) enableRemoteRecord: (bool)  enable
recordParam: (JCMediaChannelRecordRemoteParams *)  recordParam 

开关远程视频通话录制

注解
视频客服场景下由CD自动开启录制,即无特殊情况无需调用此接口即可在服务器生成录制文件
参数
enable是否开启屏幕录制
recordParam录制参数,当 enable 为 true 时,可以更改由 join 时传入的录制参数,不需更改则填 nil
参见
JCMediaChannelRecordRemoteParams
返回
返回 true 表示正常执行调用流程,false 表示调用异常

◆ enableScreenShare:

- (bool) enableScreenShare: (bool)  enable

屏幕/窗口共享

注解
参数
enabletrue开启共享,false关闭共享
返回
接口调用成功失败

◆ enableVideo:

- (bool) enableVideo: (bool)  enable

开启关闭发送本地视频流 并修改自己的video属性

注解
- 结果通过回调onMemberUpdate通知
参数
enable是否开启本地视频流
返回
接口调用成功或失败
  • true :接口调用成功,结果通过回调onMemberUpdate事件
  • false : 接口调用失败

◆ getCallType

- (JCAgentCallType) getCallType

获取当前通话类型

返回
当前通话类型
参见
JCAgentCallType

◆ getHoldState

- (bool) getHoldState

当前通话是否保持

返回
当前通话是否保持
  • true:当前通话状态为保持
  • false:当前通话状态为正常

◆ insertStorageRecord:fileType:fileSize:expireTime:

- (BOOL) insertStorageRecord: (NSString *)  url
fileType: (JCAgentStorageFileType fileType
fileSize: (int)  fileSize
expireTime: (int)  expireTime 

把文件绑定到当前的服务,以便通过 portal 查看文件

参数
url文件路径,在文件通过uploadFile上传至文件服务后,由onFileResult
fileType文件类型
参见
JCAgentStorageFileType
参数
fileSize文件大小
expireTime超时时间
返回
接口调用结果

◆ inviteMember:

- (bool) inviteMember: (NSString *)  userId

邀请其他座席加入

注解
参数
userId要邀请的座席userId
返回
接口调用成功失败

◆ queryAllGroups

- (bool) queryAllGroups

查询业务组号 结果通过onGetAllGroups上报

返回
接口调用成功失败

◆ queryAvailableAgents:

- (int) queryAvailableAgents: (NSString *)  groupId

查询指定组号的空闲座席

注解
结果通过onQueryAvailableAgentsListResult上报
参数
groupId指定组号
返回
操作id,与onQueryAvailableAgentsListResult的第一个参数对应

◆ requestSign

- (void) requestSign

请求访客签名

注解
访客会收到onSignRequestRecvNotify事件

◆ responseUrgentWithSeialNumber:callerNumber:agree:

- (int) responseUrgentWithSeialNumber: (NSString *)  serilaNumber
callerNumber: (NSString *)  callerNumber
agree: (BOOL)  agree 

应答加急请求

注解
参数
serilaNumberserialNumber,随onUrgentRequestRecv携带
callerNumbercallerNumber,随onUrgentRequestRecv携带
agreetrue同意加急,false拒绝加急
返回
操作id,与onUrgentResponseResult的第二个参数对应

◆ sendAudioEmptyPack:

- (bool) sendAudioEmptyPack: (bool)  empty

音频发送空包 该接口不会导致成员的audio属性变化

参数
empty音频发送包是否空包
  • true:发送音频空包
  • false:发送正常音频包
返回
接口调用成功失败

◆ sendMessage:content:

- (bool) sendMessage: (NSString *)  type
content: (NSString *)  content 

透明通道发送全员消息,消息内容不能大于4K

注解
收端会触发onMessageReceive事件
参数
type消息类型
content消息内容
返回
接口调用结果

◆ sendMessage:content:toUserId:

- (bool) sendMessage: (NSString *)  type
content: (NSString *)  content
toUserId: (nullable NSString *)  userId 

透明通道发送消息给某个成员,toUserId传空则发送给所有成员,消息内容不能大于4K

注解
收端会触发onMessageReceive事件
参数
type消息类型
content消息内容
userId对象id
返回
接口调用结果

◆ sendTextMessage:toUserId:

- (void) sendTextMessage: (NSString *)  content
toUserId: (NSString *)  userId 

发送文本消息,消息内容不能大于4K

注解
通话中的其他成员会收到onTextMessageRecvNotify事件
参数
content消息内容
userId三人及三人以上时可以指定要发送的ID,传空即发送给所有人

◆ sendVideoEmptyPack:

- (bool) sendVideoEmptyPack: (bool)  empty

视频发送空包 该接口不会导致成员的video属性变化

参数
empty视频发送包是否空包
  • true:发送视频空包
  • false:发送正常视频包
返回
接口调用成功失败

◆ setHoldState:

- (bool) setHoldState: (bool)  hold

保持取回

注解
  • 可以通过 getHoldState 获取当前通话是否保持
  • 保持通话后双方互相停止音视频流收发
  • 其他通话中的成员将会收到onHeldNotify 事件
参数
holdtrue:保持;false:取回
返回
调用是否成功

◆ setRatio:

- (bool) setRatio: (float)  ratio

设置视频本地宽高比,会将自己的视频采集根据宽高比裁剪后进行发送

注解
需要在通话开始后调用,即收到onCallStateChanged的type为 JCGuestCallStateChangeType.JCGuestCallStateChangeTypeTalking
参数
ratio视频本地宽高比
返回
接口调用是否成功

◆ setScreenMode:

- (bool) setScreenMode: (JCMediaChannelConfMergeModeParam *)  param

设置分屏模式

参数
param媒体推流的视频合并模式参数
参见
JCMediaChannelConfMergeModeParam
返回
返回 true 表示成功,false 表示失败

◆ term

- (bool) term

结束通话

注解
  • 通话过程中调用结束通话
  • 来电过程中调用拒绝接听,访客分配到其他坐席继续呼叫等待不会挂断
返回
接口调用成功失败
  • true : 接口调用成功,挂断结果将会触发onCallStateChanged事件
  • false :接口调用失败

◆ transferCall:toUserId:

- (int) transferCall: (JCAgentTransferType type
toUserId: (NSString *)  toUserId 

转接,支持转接到具体坐席和转接到某个业务组

注解
结果通过onTransferResult上报
参数
type转接类型,具体坐席或是业务组
参见
JCAgentTransferType
参数
toUserId当type为JCAgentTransferType.JCAgentTransferTypeGroup,id需传入业务组号;当type为JCAgentTransferType.JCAgentTransferTypeStuff,id需传入坐席id
返回
操作id,与onTransferResult第一个参数对应

◆ turnCallType:

- (void) turnCallType: (JCAgentCallType calltype

音视频通话切换

注解
参数
calltype
参见
JCAgentCallType

属性说明

◆ callState

- (JCAgentCallState) callState
readnonatomicassign

当前的通话状态

◆ guestParticipant

- (JCMediaChannelParticipant *) guestParticipant
readnonatomicstrong

当前的访客成员对象

◆ isAutoRecord

- (bool) isAutoRecord
readnonatomicassign

是否开启了CD自动录制

注解
由访客autoRecord属性决定,在通话状态为JCAgentCallStateTalking之后可以获取, 如果当前为自动录制模式,则坐席的controlRecord不生效

◆ operatorState

- (JCAgentOperatorState) operatorState
readnonatomicassign

坐席签入状态

◆ participants

- (NSArray< JCMediaChannelParticipant * > *) participants
readnonatomicstrong

当前通话中的所有成员对象 可以获取到 userId userId, renderId renderId

◆ requestSize

- (JCMediaChannelPictureSize) requestSize
readnonatomicassign

视频请求质量,影响自己看其他成员的视频分辨率

◆ termState

- (JCAgentTermState) termState
readwritenonatomicassign

通话结束后默认状态,目前支持通话结束后默认示忙与通话结束后默认示闲