|
JRTCSDK-Java v2401.0
视频客服 API 文档
|
Public 成员函数 | |
| abstract boolean | isAutoRecord () |
| abstract int | getCallState () |
| abstract int | getCallType () |
| abstract boolean | getHoldState () |
| abstract boolean | isOnewayVideo () |
| abstract boolean | setHoldState (boolean hold) |
| abstract int | getTermState () |
| abstract void | setTermState (@AgentTermState int state) |
| abstract int | getOperatorState () |
| abstract boolean | isPause () |
| abstract boolean | isMainAgent () |
| abstract JRTCRoomParticipant | getMainGuestParticipant () |
| abstract List< JRTCRoomParticipant > | getGuestParticipants () |
| abstract JRTCRoomParticipant | getSelfParticipant () |
| abstract List< JRTCRoomParticipant > | getParticipants () |
| abstract String | getSerialNumber () |
| abstract String | getCallId () |
| abstract String | getRoomId () |
| abstract String | getStatistics () |
| abstract String | getJsonStats () |
| abstract void | setUseExternalScreenCaptureControl (boolean useExternalControl) |
| abstract List< JRTCVideoSize > | getSupportVideoSizes () |
| abstract boolean | queryAllGroups () |
| abstract int | queryAvailableAgentList (String businessNumber) |
| abstract boolean | checkin (String userId, boolean busy, JRTCAgentCheckinParam checkinParam) |
| abstract boolean | checkIn (String userId, @AgentRoleType int role, boolean busy) |
| abstract boolean | checkIn (String userId, @AgentRoleType int role) |
| abstract boolean | checkIn (@AgentRoleType int role) |
| abstract boolean | checkout () |
| abstract boolean | joinCall (String serialNumber, @PartRole int partRole) |
| abstract boolean | recall (String userId, JRTCCallCenterCallParam callParam) |
| abstract boolean | answer () |
| abstract boolean | term () |
| abstract int | applyStatePause (boolean pause) |
| abstract int | applyStatePause (boolean pause, int subState) |
| abstract int | transferCall (@TransferType int type, String id) |
| abstract void | turnCallType (@CallType int callType) |
| abstract boolean | turnCallTypeForSip (@CallType int callType, String userId, String extraInfo) |
| abstract boolean | setAcdProperty (@AcdPropertyType int key, String value, @AcdPropertyPublishType int publishType) |
| abstract boolean | confirmAcdPropertyChange (boolean accept, @AcdPropertyType int key) |
| abstract boolean | inviteThirdGuest (String userId, String extraInfo) |
| abstract boolean | inviteThirdGuest (String userId, String extraInfo, JRTCCallCenterInviteParam inviteParam) |
| abstract boolean | inviteThirdAgent (String userId) |
| abstract int | switchPartRole (@PartRole int partRole) |
| abstract int | kickParticipant (String userId) |
| abstract boolean | requestSign (String userId, String extraInfo) |
| abstract void | requestOnewayVideo (boolean turnOn) |
| abstract int | responseUrgent (String serialNumber, String callerNumber, boolean agree) |
| abstract boolean | sendMessage (String contentType, String content, String toUserId) |
| abstract boolean | sendNotifyMessage (JRTCNotifyMessage notifyMessage, String toUserId) |
| abstract boolean | enableUploadAudioStream (boolean enable) |
| abstract boolean | enableUploadVideoStream (boolean enable) |
| abstract boolean | sendAudioEmptyPack (boolean empty) |
| abstract boolean | sendVideoEmptyPack (boolean empty) |
| abstract boolean | enableScreenOrWindowShare (boolean enable, String streamId) |
| abstract boolean | enableScreenOrWindowShare (boolean enable, String streamId, int iFrameRate, int top, int bottom, int left, int right) |
| abstract boolean | suspendScreenShare (boolean suspend, String tip) |
| abstract boolean | isSuspendScreenShare () |
| abstract String | getShareStreamId () |
| abstract String | getShareUserId () |
| abstract boolean | enableAudioInputFromFile (boolean enable, String filePath, boolean loop) |
| abstract boolean | suspendAudioInputFromFile (boolean suspend) |
| abstract boolean | setRatio (float ratio) |
| abstract JRTCVideoSize | getRequestSize () |
| abstract void | setRequestSize (JRTCVideoSize requestSize) |
| abstract boolean | requestVideo (JRTCRoomParticipant participant, JRTCVideoSize videoSize) |
| abstract boolean | unRequestVideo (JRTCRoomParticipant participant) |
| abstract boolean | requestScreenVideo (JRTCVideoSize videoSize) |
| abstract boolean | unRequestScreenVideo () |
| abstract boolean | controlRecord (@AgentRecordAction int action, String watermarkText) |
| abstract boolean | controlRecord (@AgentRecordAction int action, JRTCRecordControlParam recordParam) |
| abstract boolean | enableLocalRecord (boolean enable, JRTCRecordLocalParam recordParam) |
| abstract boolean | updateLocalRecordLayout (List< JRTCRecordLocalParam.RecordLayout > layoutList) |
| abstract boolean | isLocalRecording () |
| abstract boolean | enableRemoteRecord (boolean enable, JRTCRecordRemoteParam recordParam) |
| abstract boolean | updateRemoteRecordLayout (List< JRTCRecordRemoteParam.RecordLayout > layoutList) |
| abstract boolean | updateRemoteRecordWatermark (Map< String, String > watermarkTextMap) |
| abstract boolean | setVideoDot (String timespan, String info) |
| abstract boolean | setSubScreenShare (boolean enable) |
| abstract boolean | isSubScreenShare () |
| abstract int | getRemoteRecordState () |
| abstract boolean | enableMicAgc (boolean enable) |
Public 成员函数 继承自 JRTCCallCenter | |
| default int | convertTermReason (boolean selfTerm, @JRTCEnum.ReasonCode int reason) |
静态 Public 成员函数 | |
| static JRTCAgent | create (JRTCClient client, JRTCMediaDevice mediaDevice, JRTCAgentCallback callback) |
| static void | destroy () |
Protected 成员函数 | |
| abstract void | destroyObj () |
额外继承的成员函数 | |
Public 属性 继承自 JRTCCallCenter | |
| String | MESSAGE_TYPE_NOTIFY = "Juphoon_Notify" |
| String | MESSAGE_TYPE_NORMAL = "Juphoon_Message" |
| String | MESSAGE_TYPE_SIGN = "Juphoon_Sign" |
| String | MESSAGE_TYPE_CALL_FORWARDING = "call forwarding" |
| String | KEY_MESSAGE_TYPE = "MessageType" |
| String | KEY_CONTENT_TYPE = "ContentType" |
| String | KEY_CONTENT = "Content" |
| String | KEY_TYPE = "Type" |
| String | KEY_SIGN = "Sign" |
| String | KEY_SIGN_RESULT = "SignResult" |
| String | KEY_EVENT = "event" |
| String | KEY_DESC = "desc" |
| String | KEY_EXTRA = "extra" |
| String | KEY_CALL_TYPE = "CallType" |
| String | KEY_HOLD_USER_ID = "HoldUserId" |
| String | KEY_ONE_WAY = "Oneway" |
| String | KEY_RESULT = "result" |
| int | CALL_TYPE_VIDEO = 1 |
| int | CALL_TYPE_AUDIO = 0 |
| int | CALL_STATE_IDLE = 0 |
| int | CALL_STATE_CALLING = 1 |
| int | CALL_STATE_WAITING = 2 |
| int | CALL_STATE_INCOMING = 3 |
| int | CALL_STATE_TALKING = 4 |
| int | CALL_STATE_JOINING = 5 |
| int | CALL_INCOMING_TYPE_INIT = -1 |
| int | CALL_INCOMING_TYPE_CALL = EN_MTC_CC_INVITE_EVENT_TYPE_CALLING |
| int | CALL_INCOMING_TYPE_INVITE = EN_MTC_CC_INVITE_EVENT_TYPE_INVITING |
| int | CALL_INCOMING_TYPE_FORWARD = EN_MTC_CC_INVITE_EVENT_TYPE_FORWARDING |
| int | CALL_INCOMING_TYPE_DIRECT_CALL = EN_MTC_CC_INVITE_EVENT_TYPE_DIRECT_CALLING |
| int | TERM_REASON_NONE = 0 |
| int | TERM_REASON_QUIT = 1 |
| int | TERM_REASON_OVER = 2 |
| int | TERM_REASON_OFFLINE = 3 |
| int | TERM_REASON_INCOMING_CANCEL = 4 |
| int | TERM_REASON_INCOMING_TIMEOUT = 5 |
| int | TERM_REASON_TIME_OUT = 6 |
| int | TERM_REASON_JOIN_LICENCE_LIMIT = 7 |
| int | TERM_REASON_REJECT = 8 |
| int | TERM_REASON_ROOM_ERROR = 9 |
| int | TERM_REASON_INVALID_PARAM = 97 |
| int | TERM_REASON_CALL_FUNCTION_ERROR = 98 |
| int | TERM_REASON_NOT_LOGIN = 99 |
| int | TERM_REASON_OTHER = 100 |
| int | TYPE_1TO1 = 0 |
| int | TYPE_GROUP = 1 |
| int | TRANSFER_GROUP = 0 |
| int | TRANSFER_STUFF = 1 |
| int | PART_ROLE_INIT = -1 |
| int | PART_ROLE_MAIN_AGENT = MTC_ROOM_ROLE_CALLCENTER_PRINCIPAL | MTC_ROOM_ROLE_AGENT | MTC_ROOM_ROLE_PARTP |
| int | PART_ROLE_AGENT = MTC_ROOM_ROLE_AGENT | MTC_ROOM_ROLE_PARTP |
| int | PART_ROLE_MAIN_GUEST = MTC_ROOM_ROLE_CALLCENTER_PRINCIPAL | MTC_ROOM_ROLE_GUEST | MTC_ROOM_ROLE_PARTP |
| int | PART_ROLE_GUEST = MTC_ROOM_ROLE_GUEST | MTC_ROOM_ROLE_PARTP |
| int | PART_ROLE_VIEWER_AGENT = MTC_ROOM_ROLE_AGENT | MTC_ROOM_ROLE_VIEWER |
| int | AGENT_ROLE_UNKNOWN = -1 |
| int | AGENT_ROLE_JUNIOR = 0 |
| int | AGENT_ROLE_SENIOR = 1 |
| int | AGENT_ROLE_EXPERT = 2 |
| int | AGENT_ROLE_MONITOR = 3 |
| int | AGENT_ROLE_ADMINISTRATOR = 4 |
| int | AGENT_ROLE_MANAGER = 5 |
| int | AGENT_ROLE_VIP = 6 |
| int | AGENT_ROLE_SPECIFIC = 7 |
| int | AGENT_ROLE_GENERAL = 8 |
| int | AGENT_ROLE_MAX = 9 |
| int | AGENT_CHANGE_TYPE_INCOMING = 0 |
| int | AGENT_CHANGE_TYPE_TALKING = 1 |
| int | AGENT_CHANGE_TYPE_TERMED = 2 |
| int | AGENT_CHANGE_TYPE_CALLING = 3 |
| int | AGENT_CHANGE_TYPE_JOINING = 4 |
| int | AGENT_TERM_STATE_BUSY = 0 |
| int | AGENT_TERM_STATE_FREE = 1 |
| int | AGENT_CHECK_OUT_REASON_NONE = 0 |
| int | AGENT_CHECK_OUT_REASON_LAST_ONLINE_OPERATOR = 1 |
| int | AGENT_CHECK_OUT_REASON_INVALID_PARAM = 97 |
| int | AGENT_CHECK_OUT_REASON_CALL_FUNCTION_ERROR = 98 |
| int | AGENT_CHECK_OUT_REASON_NOT_LOGIN = 99 |
| int | AGENT_CHECK_OUT_REASON_OTHER = 100 |
| int | AGENT_OPERATOR_IDLE = 0 |
| int | AGENT_OPERATOR_CHECKING_IN = 1 |
| int | AGENT_OPERATOR_CHECKING_OUT = 2 |
| int | AGENT_OPERATOR_CHECKED_IN = 3 |
| int | AGENT_RECORD_ACTION_START = 0 |
| int | AGENT_RECORD_ACTION_STOP = 1 |
| int | GUEST_CHANGE_TYPE_CALLING = 0 |
| int | GUEST_CHANGE_TYPE_WAITING = 1 |
| int | GUEST_CHANGE_TYPE_INCOMING = 2 |
| int | GUEST_CHANGE_TYPE_TALKING = 3 |
| int | GUEST_CHANGE_TYPE_TERMED = 4 |
| int | GUEST_ROLE_TYPE_UNKNOWN = -1 |
| int | GUEST_ROLE_TYPE_GENERAL = 0 |
| int | GUEST_ROLE_TYPE_VIP = 1 |
| int | ACD_PROPERTY_PUBLISH_TYPE_UNKNOWN = -1 |
| int | ACD_PROPERTY_PUBLISH_TYPE_BROADCAST = 0 |
| int | ACD_PROPERTY_PUBLISH_TYPE_DIRECT_SEND = 1 |
| int | ACD_PROPERTY_PUBLISH_TYPE_WAIT_RESPONSE = 2 |
| int | ACD_PROPERTY_TYPE_UNKNOWN = -1 |
| int | ACD_PROPERTY_TYPE_SIP_VIDEO = 0 |
座席管理
|
abstract |
接听
主座席、第三方座席或是被转接的座席,都调用此接口接听通话
onCallStateChanged 回调被 JRTCAgentImpl 重载.
|
abstract |
示忙/示闲
示忙状态下不会收到呼叫来电,示闲状态下正常呼叫进线
通话过程中调用该接口不会影响当前通话,从下个通话开始状态生效
示忙/示闲的结果通过 onApplyResult 回调上报
| pause | 示忙或是示闲
|
onApplyResult 回调的 operationId 参数被 JRTCAgentImpl 重载.
|
abstract |
示忙/示闲
示忙状态下不会收到呼叫来电,示闲状态下正常呼叫进线
通话过程中调用该接口不会影响当前通话,从下个通话开始状态生效
示忙/示闲的结果通过 onApplyResult 回调上报
| pause | 示忙或是示闲
|
| subState | 子状态,报表数据统计需要,取值[0, 9]
|
onApplyResult 回调的 operationId 参数被 JRTCAgentImpl 重载.
|
abstract |
签入
签入到排队机,签入后默认示闲状态
示闲状态下正常呼叫进线
调用接口前确定 JRTCClient 登录成功
调用该接口前需先确定 operatorState 来获取到当前的签入状态
该方法座席用户ID默认为 userId ,与业务管理平台上配置的座席staffId对应
| role | 座席角色类型,目前该参数已有服务端控制,不再通过终端设置,可忽略 |
onCheckIn 回调上报被 JRTCAgentImpl 重载.
|
abstract |
签入
签入到排队机,签入后默认示闲状态
示闲状态下正常呼叫进线
调用接口前确定 JRTCClient 登录成功
调用该接口前需先确定 operatorState 来获取到当前的签入状态
| userId | 座席用户ID,需与业务管理平台上配置的座席staffId对应 |
| role | 座席角色类型,目前该参数已有服务端控制,不再通过终端设置,可忽略 |
onCheckIn 回调上报被 JRTCAgentImpl 重载.
|
abstract |
签入
签入到排队机,签入后示忙/示闲状态由 busy 参数决定
示闲状态下正常呼叫进线
调用接口前确定 JRTCClient 登录成功
调用该接口前需先确定 operatorState 来获取到当前的签入状态
| userId | 座席用户ID,需与业务管理平台上配置的座席staffId对应 |
| role | 座席角色类型,目前该参数已有服务端控制,不再通过终端设置,可忽略 |
| busy | 签入后示忙/示闲状态
|
onCheckIn 回调上报被 JRTCAgentImpl 重载.
|
abstract |
签入
签入到排队机,签入后示忙/示闲状态由 busy 参数决定
示闲状态下正常呼叫进线
调用接口前确定 JRTCClient 登录成功
调用该接口前需先确定 operatorState 来获取到当前的签入状态
| userId | 座席用户ID,需与业务管理平台上配置的座席staffId对应,如果传空,则默认用当前登录用户ID签入 |
| busy | 签入后示忙/示闲状态
|
onCheckin 回调上报被 JRTCAgentImpl 重载.
|
abstract |
签出
签出后将不会收到排队机的呼叫分配
签出排队机不影响 JRTCClient 的登录状态
调用 operatorState 可获取当前签入状态
onCheckout 回调上报被 JRTCAgentImpl 重载.
|
abstract |
确认通话全局属性
在通话中,对端修改通话全局属性,本端会收到通知onAcdPropertyChange
当修改属性的消息发布类型为JRTCCallCenter#ACD_PROPERTY_PUBLISH_TYPE_WAIT_RESPONSE时,需要本端响应。
本端响应后,对端将会收到响应结果通知onAcdPropertyResponse
| accept | 是否同意切换通话类型
|
| key | 属性的key值,除枚举提供得key之外也可以自定义 |
被 JRTCAgentImpl 重载.
|
abstract |
开始/停止远程录制(经过排队机)
仅在 isAutoRecord == false 时调用接口有效,即访客发起呼叫时,呼叫参数 JRTCCallCenterCallParam#autoRecord 需要为 false 。
由服务器自动开启远程录制,即 isAutoRecord == true 时,水印内容由业务管理平台配置。
调用接口手动开启远程录制时,水印内容由参数 watermarkText 决定。
| action | 打开或停止录制
|
| recordParam | 录制参数对象 |
被 JRTCAgentImpl 重载.
|
abstract |
开始/停止远程录制
仅在 isAutoRecord == false 时调用接口有效,即访客发起呼叫时,呼叫参数 JRTCCallCenterCallParam#autoRecord 需要为 false 。
由服务器自动开启远程录制,即 isAutoRecord == true 时,水印内容由业务管理平台配置。
调用接口手动开启远程录制时,水印内容由参数 watermarkText 决定。
| action | 打开或停止录制
|
| watermarkText | 水印内容 |
controlRecord 替换 被 JRTCAgentImpl 重载.
|
static |
创建 JRTCAgent 对象,为单例,重复调用返回同一对象
| client | JRTCClient 对象 |
| mediaDevice | JRTCMediaDevice 对象 |
| callback | JRTCAgentCallback 回调接口,用于实现 JRTCAgentCallback 事件 |
| 初次创建时 JRTCClient、JRTCMediaDevice、JRTCAgentCallback 任意一个参数传空就会创建失败 |
JRTCClient 对象,JRTCMediaDevice 对象state 方法获取的状态值不等于 STATE_NOT_INITdestroy 方法销毁对象,然后又重复调用此方法,会直接返回第一次创建的 JRTCAgent 对象
|
static |
销毁 JRTCAgent 对象
|
abstractprotected |
销毁对象
被 JRTCAgentImpl 重载.
|
abstract |
开始/结束播放本地音频文件作为音频源输入
| enable | - true: 开始输入,当输入完成后会收到 onFileAudioInputFinish 回调通知
|
| filePath | 音频文件路径,支持pcm,wav的格式 |
| loop | 是否循环播放 |
被 JRTCAgentImpl 重载.
|
abstract |
开启/关闭本地录制
| enable | 开启或关闭本地录制
|
| recordParam | 本地录制参数配置,当 enable == true 时,JRTCRecordLocalParam#filePath 必须设置,其余参数不设置则使用默认配置;当 enable == false 时,recordParam 可传 null |
被 JRTCAgentImpl 重载.
|
abstract |
开启或关闭本地麦克风的增益(软件增益),默认开启
| enable | 回调对象 |
被 JRTCAgentImpl 重载.
|
abstract |
开启/关闭远程录制(不经过排队机),不推荐使用
当呼叫参数 autoRecord == false 时,可通过此接口开启服务端录制。
可用过 getRemoteRecordState 接口获取当前服务器录制状态。
| enable | 开启或关闭远程录制
|
| recordParam | 录制参数,当 enable == false 时,可传 null;当 enable == true 且按照默认配置进行录制可传 null |
onCallPropertyChanged 回调获得,具体可关注 remoteRecordState被 JRTCAgentImpl 重载.
|
abstract |
开启/关闭屏幕共享
setUseExternalScreenCaptureControl 为 true, 则该接口只负责信令通知,请确保开启屏幕共享前,已经开启了屏幕采集,否则远端用户收到屏幕共享画面为黑屏成员开启或关闭屏幕共享,通话中的所有成员会收到 onCallPropertyChange 或 onCallPropertyChange 回调。
| enable | 开启或关闭屏幕共享
|
| streamId | 屏幕共享视频源(窗口ID或屏幕ID) |
被 JRTCAgentImpl 重载.
|
abstract |
开启/关闭区域共享
setUseExternalScreenCaptureControl 为 true, 则该接口只负责信令通知,请确保开启屏幕共享前,已经开启了屏幕采集,否则远端用户收到屏幕共享画面为黑屏| enable | 开启或关闭区域共享
|
| streamId | 区域共享视频源(窗口ID或屏幕ID) |
| iFrameRate | 帧率 |
| top | 上边距 |
| bottom | 下边距 |
| left | 左边距 |
| right | 右边距 |
被 JRTCAgentImpl 重载.
|
abstract |
开启/关闭发送本地音频流
通话中调用该方法可开启或关闭发送本地音频流。开启后,通话中的成员将听见本端声音;关闭后,房间成员将听不见本端声音
通话中调用此方法成功后,服务器会更新状态并同步给通话中所有成员,即所有成员会收到 onMemberUpdate 或 onMemberUpdate 回调,具体可关注 audio 和 audio
通话中调用此方法不影响接收其他成员的音频流
| enable | 开启/关闭发送本地音频流
|
被 JRTCAgentImpl 重载.
|
abstract |
开启/关闭发送本地视频流
通话中调用该方法可开启或关闭发送本地视频流。开启后,通话中的成员将看见本端画面;关闭后,房间成员将看不见本端画面
通话中调用此方法成功后,服务器会更新状态并同步给通话中所有成员,即所有成员会收到 onMemberUpdate 或 onMemberUpdate 回调,具体可关注 video 和 video
通话中调用此方法不影响接收其他成员的视频流
| enable | 开启/关闭发送本地视频流
|
被 JRTCAgentImpl 重载.
|
abstract |
|
abstract |
|
abstract |
获取当前通话类型
可通过 turnCallType 接口修改当前通话类型。
CALL_TYPE_AUDIO:语音通话CALL_TYPE_VIDEO:视频通话 被 JRTCAgentImpl 重载.
|
abstract |
获取访客成员列表
被 JRTCAgentImpl 重载.
|
abstract |
获取当前通话保持状态
座席可调用 setHoldState 接口修改当前通话的保持状态。
被 JRTCAgentImpl 重载.
|
abstract |
获取实时统计信息
以Json字符串形式返回,包含以下信息:
* {
* "localActor": "[username:2333@100645.cloud.justalk.com]", // actorID
* "sendBWE": "1440", // 发送带宽估计
* "recvBWE": "929", // 接收带宽估计
* "sendBr": "16", // 发送码率
* "recvBr": "772", // 接收码率
* "sendJitter": "1", // 发送jitter
* "recvJitter": "0", // 接收jitter
* "sendLossRate": "0", // 发送丢包率
* "recvLossRate": "0", // 接收丢包率
* "encodeTime": "0", // 编码时长
* "rtt":"5", // 往返延时
* "audioSendBr": "19", // 音频发送码率
* "videoSendBr": "0", // 视频发送码率
* "audioLevel": "58", // 音量
* "event":""
* }
被 JRTCAgentImpl 重载.
|
abstract |
|
abstract |
|
abstract |
|
abstract |
获取远程视频录制状态
JRTCEnum.RemoteRecordStateRECORD_STATE_NONE : 无法进行视频录制。用户不在房间中或者加入房间时没有设置视频录制参数RECORD_STATE_READY : 可以开启视频录制。用户在加入房间时设置了录制参数,并且没有在录制视频RECORD_STATE_RUNNING : 视频录制中。用户在加入房间时设置了录制参数,并且正在视频录制中 被 JRTCAgentImpl 重载.
|
abstract |
|
abstract |
|
abstract |
|
abstract |
|
abstract |
获取屏幕共享的视频流ID
调用 startVideo 接口渲染通话中其他成员的屏幕共享画面时使用。
被 JRTCAgentImpl 重载.
|
abstract |
|
abstract |
获取统计信息
以字符串形式返回,其中包含 "Config", "Network","Transport" 和 "Participants" 4个节点:
* {
* "Config": // 音视频设置信息
* {
* "Audio Config: // 音频设置
* {
* "SRTP": off, // 是否对音频RTP数据加密,以及加密会显示使用的加密协议,加密协议两端一致才会音频互通正常
* "Codec": opus, // 本端设置的音频编码
* "Payload": 116, // 音频payload的大小
* "Bitrate": 16000, // 音频码率
* "Pkt Len": 60, // 音频包长
* "Nack": off, // 丢包是否允许数据包重传
* "RTX": off, // 是否允许RTX技术
* "FEC/RED": off, // 是否开启FEC
* "AEC": on, // 是否开启回声消除
* "Mode": OS, // AEC模式
* "HowlSupp": Auto, // AEC HowlSupp模式
* "Sts": Auto, // AEC Sts模式
* "AGC": on, // 是否开启发送端自动增益
* "Mode": Fixed, // 发送端AGC Mode
* "Target": 3, // 发送端AGC Target
* "Gain": 9, // 接收端AGC Gain
* "Rx AGC": off, // 是否开启接收端自动增益
* "Mode": Fixed, // 接收端AGC Mode
* "Target": 3, // 接收端AGC Target
* "Gain": 9, // 接收端AGC Gain
* "VAD": off, // 是否开启VAD
* "Mode": Mid, // VAD Mode
* "ANR": off, // 是否开启发送端噪音抑制
* "Mode": High, // ANR mode
* "Noise": N/A, // 噪音音量
* "SNR": N/A, // 信噪比
* "Rx ANR": off, // 是否开启接收端噪音抑制
* "Mode": Low, // 接收端ANR mode
* "ARS": off, // 是否开启音频码率控制
* "BR Min": N/A, // ARS码率最小值
* "BR Max": N/A // ARS码率最大值
* },
* "Video Config": // 视频设置
* {
* "SRTP": off, // 是否对音频RTP数据加密,以及加密会显示使用的加密协议,加密协议两端一致才会音频互通正常
* "Codec": H264-SVC, // 双方通话采用的编解码类型
* "Payload": 125, // 视频Payload的大小
* "Bitrate": 2250, // 视频码率,单位kbps
* "Framerate": 24, // 视频帧率,单位fps
* "Resolution": 1280x720, // 视频分辨率
* "FEC": on|124|123, // FEC是否打开和payload的类型号
* "FIR": off, // 是否允许重发关键帧
* "Key Interval": 0, // 允许的最小关键帧间隔
* "Repeat": 0, // 关键帧丢失是否允许重发
* "NACK": off, // 丢包是否允许数据包重传
* "RTX": off, // 是否允许RTX技术,RTX的payload类型
* "TMMBR": off, // 是否允许带宽估计
* "RPSI": off, // 是否允许RPSI技术
* "Small NALU": on, // 是否允许NALU技术
* "ARS": off, // 是否开启ARS自动码率检测
* "BR Min": 10, // ARS发送码率下限
* "BR Max": 2000, // ARS发送码率上限
* "FR Min": 1, // ARS发送帧速率下限
* "FR Max": 30, // ARS发送帧速率上限
* "Res. Ctrl": off, // 是否允许分辨率控制
* "Res. Mode": 0, // 分辨率Mode
* "Fr Ctrl": on, // 是否允许帧速率控制
* "CPU Load Ctrl": off, // 是否允许CPU控制
* "Target": 80, // CPU控制的最大使用率
* "Bw Efficient": off, // 是否采用节省带宽模式
* "Error Conceal": off, // 是否允许错误隐藏技术,在解码出错的时候采用
* "Enhance color": off, // 是否采用颜色增强技术
* "Boost bright": off, // 是否采用亮度增强技术
* "Boost contrast": off, // 是否采用对比度增强技术
* "RTP Ext": CVO, // 使用的RTP扩展的类型
* "Render Name": N/A, // 渲染图像的名字
* "SVC": "320 180 250 640 360 600 1280 720 1400", // 会议SVC配置
* "TemporalLayers": 4, // 取值1、2、3、4,会议时间层设置
* "PreferMode":Clear // 偏好设置
* }
* },
* "Network": // 网络统计信息
* {
* "Send Statistic: // 数据发送统计信息
* {
* "Packets": 181|1305|0|0, // 发送的数据包的个数。正常包个数 | 探测包个数 | RED包个数 | NACK包个数
* "RTT": 4, // 网络双向延时的时间,单位为毫秒
* "Jitter": 2, // 网络的扰动,表征数据包抖动的时间,单位毫秒
* "Lost": 2, // 丢失的数据包的个数
* "LostRate": 0, // 当前的丢包率,单位百分比
* "RelayLost": 0, // 服务器转发丢包率
* "RelayRtt": 0, // 服务器转发往返时延,单位为毫秒
* "BitRate/BWE": 16/1345, // BitRate表示当前发送的数据包的码率,单位kbps;BWE表示当前发送带宽的估计值
* "AudioSend": 0|0, // 实际发送音频包次数|估计发送音频包次数
* "VideoSend": 0|0, // 实际发送视频包次数|估计发送视频包次数
* "ScreenSend": 0|0, // 实际发送屏幕共享包次数|估计发送屏幕共享包次数
* "MaxPredKbps": 100, // 发送最大需求码率
* "Server(102679111220103708)": [2211(1): BWE(1345|697) LOSS(0|0) OUT(A:37) IN(A:0;)] // 选用的第一个服务器
* },
* "Recv Statistic": // 数据接收统计信息
* {
* "Packets": 1423|675|0|0, // 收到的数据包的个数。正常包个数 | 探测包个数 | RED包个数 | NACK包个数
* "Jitter": 1, // 网络的扰动,表征数据包乱序的时间,单位毫秒
* "Lost": 0, // 丢失的数据包的个数
* "Lost Ratio": 0, // 当前的丢包率,单位百分比
* "BitRate/BWE":178/2291, // BitRate表示当前接收的数据包的码率,单位kbps;BWE表示当前接收带宽的估计值
* "Server(102679111220103708)": [2211(3): BWE(1979|2150) LOSS(0|0) OUT(A:37;FPS:24,FEC:10,SUB:00f0=3456) IN(A:17;V:2273=2211[00f0]2273)] // 选用的第一个服务器
* },
* }
* "Transport": // 运输通道
* {
* "Local": 2.1923737535:32414, // 本地地址
* "Remote": 2:11023, // 远端地址
* "LastPaths": 2,2, // 最后使用通道
* "Path": 2 [udp], // 通道名
* "Step1": Delay/Loss(S/R): 4/0/0, // 通道质量
* "Cost": 7*(best: -1) // 通道分数
* },
* "Participants":
* {
* "2333": // 成员为自己
* {
* "Audio Sending Stats": // 音频发送数据统计
* {
* "Packets": 143, // 发送的数据包的个数
* "BitRate": 18.5, // 发送的数据包的码率,单位kbps
* "FecPrecent": 0 // 音频Fec保护百分比,N/A表示未开启FEC保护
* },
* "Video Sending Stats": // 视频发送数据统计
* {
* "Packets": 19502, // 发送的数据包的个数
* "Capture Res": 640x360, // 视频采集分辨率
* "Capture Fr": 30, // 视频采集帧率
* "FPS/IDR": [0|0|24|0]/3, // 当前视频发送帧速/已发送的视频关键帧数
* "Resolution": 1280x720[0|0|0], // 当前发送图像最大尺寸。[]中为每种尺寸的帧率,取值范围为0到f(十六进制),0表示该层视频未被发送, 值越大表示该层视频帧率越高;
* "Bitrate/Setrate": 0/2250, // Bitrate表示当前发送的数据包的码率,单位kbps; Setrate表示视频编码的目标码率,单位kbps。
* "QP": 20, // 发送当前图像的量化步长(0-51),越小图像画质越好。
* "EncodeTime": 10, // 当前编码时间,可以体现终端编码时占用的CPU性能,越大表示CPU占有越高,单位毫秒
* "Codec": H264-SVC, // 采用的编解码类型
* "FecPrecent": 20 // 视频Fec保护百分比,N/A表示未开启FEC保护
* },
* "Be Subscribed Stats": // 被订阅统计信息
* {
* "Audio": true, // 音频是否被订阅
* "Video": [0|0|F|0] // [S0|S1|S2|S3]表示4个空间层被订阅
* },
* "Publish Stats": // 当前音视频发布状态
* {
* "Audio": true, // 当前音频发布状态
* "Video": true // 当前视频发布状态
* }
* },
* "6666": // 成员不是自己
* {
* "Audio Receiving Stats": // 音频接收统计信息
* {
* "Packets": 40243, // 接收的数据包的个数
* "BitRate": 18.5, // 当前接收的数据包的码率,单位kbps。
* "EpdRate/lr/dc": 0/0/0, // expand rate/loss rate/discard rate。neteq buffer中的扩展比例/丢包比例/丢弃比例
* },
* "Video Receiving Stats": // 视频接收统计信息
* {
* "Packets": 19502, // 接收的数据包的个数
* "BitRate": 161, // 当前发送的数据包的码率,单位kbps
* "FPS/FIR": 24/0, // 当前视频接收帧率/视频关键帧请求个数
* "Resolution": 1280x720, // 当前接收分辨率
* "Render FR": 24, // 当前渲染帧速率
* "Codec": H264-SVC, // 采用的编解码类型
* "PvMos": 4.9, // 表示过去5s平均流畅度MOS分,每5s更新一次。体现视频画面的流畅程度。1到5分,1分最差,5分最好
* "SMOS": 5, // 表示当前清晰度MOS分。体现视频画面的清晰程度。1到5分,1分最差,5分最好。前5s是0,是正常现象,因为PvMos还没有值
* },
* "Subscribed Stats": // 订阅统计信息
* {
* "Channel Audio": true, // 当前是否发布音频
* "Audio": true, // 当前音频订阅状态
* "Video": [0|0|F|0] // [S0|S1|S2|S3]表示4个空间层被订阅
* }
* }
* }
* }
被 JRTCAgentImpl 重载.
|
abstract |
|
abstract |
|
abstract |
邀请第三方座席加入
被邀请的第三方座席会收到 onCallStateChanged 来电邀请回调
第三方座席接听通话后,已在通话中的成员会收到 onNewMemberJoin 或 onNewMemberJoin 成员加入回调
| userId | 要邀请的座席用户ID |
onInviteOpResult 回调上报被 JRTCAgentImpl 重载.
|
abstract |
邀请第三方访客加入
被邀请的第三方座席会收到 onCallStateChanged 来电邀请回调
第三方访客接听通话后,已在通话中的成员会收到 onMemberJoin 或 onMemberJoin 成员加入回调
| userId | 要邀请的第三方访客用户ID |
| extraInfo | 邀请携带的额外信息 |
onInviteThirdGuestResult 回调上报被 JRTCAgentImpl 重载.
|
abstract |
邀请第三方访客加入
被邀请的第三方座席会收到 onCallStateChanged 来电邀请回调
第三方访客接听通话后,已在通话中的成员会收到 onMemberJoin 或 onMemberJoin 成员加入回调
| userId | 要邀请的第三方访客用户ID |
| extraInfo | 邀请携带的额外信息 |
| inviteParam | 邀请的其他参数 |
onInviteThirdGuestResult 回调上报被 JRTCAgentImpl 重载.
|
abstract |
是否由服务器自动开启录制
由访客 autoRecord 属性决定,在通话状态为 CALL_STATE_TALKING 时可以获取
如果当前为自动录制模式,即 isAutoRecord == true,则座席的 controlRecord 远程录制接口不生效
被 JRTCAgentImpl 重载.
|
abstract |
|
abstract |
|
abstract |
获取单向视频状态
座席可调用 JRTCAgent#requestOnewayVideo 接口修改当前通话的单向视频状态。
被 JRTCAgentImpl 重载.
|
abstract |
获取示忙/示闲状态
调用 checkIn(int) 或 checkIn(String, int) 接口签入,状态为示闲
调用 checkIn(String, int, boolean) 接口签入,状态与 busy 参数一致
调用 applyStatePause 接口主动发起示忙示闲,状态与 pause 参数一致
被 JRTCAgentImpl 重载.
|
abstract |
|
abstract |
|
abstract |
加入通话
| serialNumber | 业务唯一标识 |
| partRole | 加入通话成员角色 |
onCallStateChanged 回调上报被 JRTCAgentImpl 重载.
|
abstract |
踢出通话成员
| userId | 成员用户ID |
onKickParticipantResult 回调的 operationId 参数被 JRTCAgentImpl 重载.
|
abstract |
|
abstract |
查询指定业务号的空闲座席
查询结果通过 onQueryAvailableAgentList 回调上报
| businessNumber | 业务号,例如 10087 |
onQueryAvailableAgentList 的 operationId 参数对应 被 JRTCAgentImpl 重载.
|
abstract |
座席回呼
| userId | 访客用户ID |
| callParam | 呼叫参数设置,此参数可传 null 则使用默认配置,详见 JRTCCallCenterCallParam |
onCallStateChanged 回调上报被 JRTCAgentImpl 重载.
|
abstract |
请求单向视频
座席调用此接口后,会向全体访客发送单向视频请求,访客会收到 onOnewayVideoChanged 回调
应用需要自行实现单向视频功能,例如访客用图片遮挡该座席画面,SDK不会对画面进行单向处理
| turnOn | 打开或关闭单向视频
|
被 JRTCAgentImpl 重载.
|
abstract |
订阅通话中屏幕共享的视频流
| videoSize | 视频请求的尺寸,详见 JRTCVideoSize |
被 JRTCAgentImpl 重载.
|
abstract |
请求访客签名
请求访客签名流程:
JRTCGuestCallback#onSignRequest(String, String) onSignRequest} 回调| userId | 需要请求签名的访客用户ID |
| extraInfo | 随路额外消息 |
被 JRTCAgentImpl 重载.
|
abstract |
订阅通话中其他成员的视频流
| participant | 成员对象 |
| videoSize | 视频请求的尺寸,详见 JRTCVideoSize |
被 JRTCAgentImpl 重载.
|
abstract |
处理加急请求
请求加急流程:
requestUrgent 接口发起加急请求 onUrgentRequest 回调 onUrgentResult 加急请求处理结果回调,如果座席同意加急请求,则将会插队到队列最前| serialNumber | 业务唯一标识,通过 onUrgentRequest 回调获得 |
| callerNumber | 发起加急请求的用户ID,通过 onUrgentRequest 回调获得 |
| agree | 同意或拒绝加急请求
|
onResponseUrgentResult 回调的 operationId 参数 被 JRTCAgentImpl 重载.
|
abstract |
发送音频空包
该接口不会导致成员的 audio 属性变化,发送音频空包不代表停止发送音频流。一般用于座席保持通话后使用。
| empty | 音频发送包是否为空包
|
被 JRTCAgentImpl 重载.
|
abstract |
发送消息,消息内容不能大于4K
指定成员会收到 onMessageReceived 或 onMessageReceived 回调
| contentType | 消息内容类型 |
| content | 消息内容 |
| toUserId | 指定成员的用户ID,传 null 给通话中全部成员发送消息 |
被 JRTCAgentImpl 重载.
|
abstract |
发送事件通知消息
通话中的其他成员会收到 onNotifyMessageReceived 或 onNotifyMessageReceived 回调
| notifyMessage | 事件通知实体对象 |
| toUserId | 指定成员的用户ID,传 null 即给通话中全部成员发送通知消息 |
被 JRTCAgentImpl 重载.
|
abstract |
发送视频空包
该接口不会导致成员的 video 属性变化,发送视频空包不代表停止发送视频流。一般用于座席保持通话后使用。
| empty | 视频发送包是否为空包
|
被 JRTCAgentImpl 重载.
|
abstract |
设置通话全局属性,目前用于有SIP成员通话中,改变SIP通话的属性。
| value | 属性的value值 |
| key | 属性的key值,除枚举提供得key之外也可以自定义 |
| publishType | 发布类型 |
被 JRTCAgentImpl 重载.
|
abstract |
保持/取回
可以通过 getHoldState 获取当前通话保持状态
保持通话后双方互相停止音视频流的发送与接收
| hold | 保持或取回
|
onHoldStateChanged 或 onHoldStateChanged 回调被 JRTCAgentImpl 重载.
|
abstract |
设置本端视频宽高比
将自己的视频采集根据宽高比裁剪后进行发送,通话中其他成员收到的画面将是裁剪后的比例。
该方法不影响其他成员的画面在本端的显示比例,也不影响其他成员相互之间的画面显示比例。
必须 开始通话后 设置才能生效,即收到 onCallStateChanged 回调且 type == JRTCCallCenter#GUEST_CHANGE_TYPE_TALKING 时设置才生效。
| ratio | 视频宽高比 |
被 JRTCAgentImpl 重载.
|
abstract |
|
abstract |
|
abstract |
|
abstract |
设置是否由应用层自行控制屏幕采集逻辑,默认 false,由 SDK 内部根据通话业务开始/结束自动控制屏幕采集开启/关闭逻辑,比如通话建立时开启屏幕共享自动开启屏幕采集,关闭屏幕共享或者通话结束时自动关闭屏幕采集。
| useExternalControl | 是否由应用层自行控制屏幕采集逻辑
|
被 JRTCAgentImpl 重载.
|
abstract |
|
abstract |
|
abstract |
暂停/继续屏幕共享
| suspend | true 暂停屏幕共享, false 继续屏幕共享 |
| tip | 暂停屏幕共享后提示文字 |
onCallPropertyChanged 回调,可通过isSuspendScreenShare 判断当前屏幕共享是否暂停被 JRTCAgentImpl 重载.
|
abstract |
切换自己在通话中角色
| partRole | 通话成员角色,目前只支持 |
onSwitchPartRoleResult 回调的 operationId 参数被 JRTCAgentImpl 重载.
|
abstract |
结束通话
来电过程中调用此接口拒绝接听,访客分配到其他座席继续呼叫等待不会挂断。
主座席调用此接口会结束通话,通话中所有成员都会离开,此通通话销毁,所有成员会收到 onCallStateChanged 或 onCallStateChanged 通话结束回调。
第三方座席调用此接口仅自身离开通话,通话中其他成员会收到该成员离开的回调 onMemberLeave 或 onMemberLeave 回调,通话继续进行。
onCallStateChanged 回调被 JRTCAgentImpl 重载.
|
abstract |
通话转接
| type | 转接类型,转接到具体座席或是转接到业务号
|
| id | - 当转接类型为 TRANSFER_GROUP 时,id 需传入业务号
|
onTransferCallResult 回调的 operationId 参数onTransferCallResult 回调上报 onCallForwarding 回调 被 JRTCAgentImpl 重载.
|
abstract |
音视频通话切换
可以通过 getCallType 接口获取当前的通话类型
视频客服通话: 通话中所有成员都将收到onCallTypeChanged 或 onCallTypeChanged 回调
| callType | 通话类型 当前通话类型
|
被 JRTCAgentImpl 重载.
|
abstract |
音视频通话切换(目前仅支持SIP情况下,请求切换某一个SIP成员为视频)
| callType | 通话类型 当前通话类型
|
| userId | 用户id |
| extraInfo | 随路参数 |
被 JRTCAgentImpl 重载.
|
abstract |
|
abstract |
取消订阅通话中其他成员的视频流
| participant | 成员对象 |
onMemberUpdate 回调,具体可关注 videoSize 属性被 JRTCAgentImpl 重载.
|
abstract |
|
abstract |
|
abstract |