访客相关事件回调

interface JRTCGuestCallback {
    onGetAllGroups?: (
        result: boolean,
        groups: ArrayList<JRTCCallCenterGroupItem>,
    ) => void;
    onCallStateChanged?: (
        type: JRTCCallCenterCallState,
        incomingType: JRTCCallCenterIncomingType,
        inviter: JRTCInviter,
        reason: JRTCCallCenterTermReason,
    ) => void;
    onCallQueueCount?: (
        count: number,
        time?: number,
        agentRinging?: boolean,
    ) => void;
    onCallPropertyChanged?: (propChangeParam: JRTCRoomPropChangeParam) => void;
    onMemberJoin?: (participant: JRTCRoomParticipant) => void;
    onMemberLeave?: (participant: JRTCRoomParticipant) => void;
    onMemberUpdate?: (
        participant: JRTCRoomParticipant,
        changeParam: JRTCRoomParticipantChangeParam,
    ) => void;
    onUrgentResultResponse?: (agree: boolean) => void;
    onHoldStateChanged?: (hold: boolean) => void;
    onCallTypeChanged?: (callType: JRTCCallCenterCallType) => void;
    onMessageReceived?: (
        content: string,
        contentType: string,
        messageType: JRTCCallCenterMessageType,
        fromUserId: string,
    ) => void;
    onSignRequest?: (fromUserId: string, extraInfo: string) => void;
    onOnewayVideoChanged?: (turnOn: boolean) => void;
    onDeliveryAbort?: (
        isShutDown: boolean,
        deliveryUserId: string,
        reason: string,
    ) => void;
    onCallForwarding?: () => void;
    onNotifyMessageReceived?: (
        notifyMessage: JRTCNotifyMessage,
        fromUserId: string,
    ) => void;
}

Properties

onGetAllGroups?: (
    result: boolean,
    groups: ArrayList<JRTCCallCenterGroupItem>,
) => void

获取业务号列表结果回调

访客调用 queryAllGroups 接口获取业务号列表,会收到此回调。

Type declaration

    • (result: boolean, groups: ArrayList<JRTCCallCenterGroupItem>): void
    • Parameters

      • result: boolean

        获取结果,true 表示获取成功,false 表示获取失败

      • groups: ArrayList<JRTCCallCenterGroupItem>

        座席业务实体对象列表,获取失败时为 undefined

      Returns void

onCallStateChanged?: (
    type: JRTCCallCenterCallState,
    incomingType: JRTCCallCenterIncomingType,
    inviter: JRTCInviter,
    reason: JRTCCallCenterTermReason,
) => void

通话状态改变回调

Type declaration

onCallQueueCount?: (
    count: number,
    time?: number,
    agentRinging?: boolean,
) => void

当前排队人数上报回调

在呼叫发起尚未接通的时间段每5秒上报一次,通话接通后将停止上报。

Type declaration

    • (count: number, time?: number, agentRinging?: boolean): void
    • Parameters

      • count: number

        当前排队人数,不包含已经分配座席但是未接听的访客成员

      • Optionaltime: number

        预计等待时长,单位秒

      • OptionalagentRinging: boolean

        座席是否振铃

      Returns void

onCallPropertyChanged?: (propChangeParam: JRTCRoomPropChangeParam) => void

通话属性改变回调

Type declaration

重点关注屏幕共享,即当PropChangeParam#screenShare screenShare 属性为 true 时,去处理屏幕共享相关事件。
可根据 shareRenderIdshareUserId 属性进行屏幕共享画面的渲染和停止渲染。

onMemberJoin?: (participant: JRTCRoomParticipant) => void

通话中有新成员加入回调

当第三方成员加入时,已在通话中的所有成员会收到此回调,而新加入的成员不会收到此回调。

Type declaration

onMemberLeave?: (participant: JRTCRoomParticipant) => void

通话中有成员离开回调

通话中有成员离开通话时,剩余的成员会收到此回调,而离开的成员不会收到此回调。

Type declaration

onMemberUpdate?: (
    participant: JRTCRoomParticipant,
    changeParam: JRTCRoomParticipantChangeParam,
) => void

通话中成员属性更新回调

常用的有 JRTCRoomParticipant.ChangeParam#volume 音量值、JRTCRoomParticipant.ChangeParam#audio 音频上传状态、JRTCRoomParticipant.ChangeParam#video 视频上传状态等。
例如当通话中有成员关闭视频传输,通话中所有成员都会收到此回调。

Type declaration

onUrgentResultResponse?: (agree: boolean) => void

座席处理加急的结果回调

访客调用 requestUrgent 接口请求加急后,座席可调用 JRTCAgent#responseUrgent responseUrgent 接口同意或拒绝加急请求,然后访客会收到此回调获得加急请求应答结果。

Type declaration

    • (agree: boolean): void
    • Parameters

      • agree: boolean

        加急是否通过,true 表示座席同意了访客的加急请求,false 表示不同意

      Returns void

onHoldStateChanged?: (hold: boolean) => void

收到通话保持或取回的回调

通话中座席可调用 JRTCAgent#setHoldState setHoldState 接口保持通话或取回通话,通话中所有成员都会收到此回调。

Type declaration

    • (hold: boolean): void
    • Parameters

      • hold: boolean

        true 表示通话被保持,false 表示通话取回

      Returns void

onCallTypeChanged?: (callType: JRTCCallCenterCallType) => void

音视频通话切换回调

通话中的访客和座席可分别调用 turnCallType 和 JRTCAgent#turnCallType turnCallType 方法切换音视频通话模式,通话中所有成员都会收到此回调。

Type declaration

onMessageReceived?: (
    content: string,
    contentType: string,
    messageType: JRTCCallCenterMessageType,
    fromUserId: string,
) => void

收到消息回调

通话中的访客和座席可分别调用 (string,string,string) sendMessage} 和 JRTCAgent#sendMessage(string,string,string) sendMessage} 接口给通话中的指定成员或全体成员发送文本消息,接收消息的成员会收到此回调,由此获取消息具体信息。

Type declaration

onSignRequest?: (fromUserId: string, extraInfo: string) => void

收到签名请求回调

通话中座席调用 JRTCAgent#requestSign requestSign 接口给访客发送签名请求,访客会收到此回调。

Type declaration

    • (fromUserId: string, extraInfo: string): void
    • Parameters

      • fromUserId: string

        发起签名请求的座席用户ID

      • extraInfo: string

        随路额外消息

      Returns void

onOnewayVideoChanged?: (turnOn: boolean) => void

收到单向视频状态变化回调

通话中座席调用 JRTCAgent#requestOnewayVideo requestOnewayVideo 请求单向视频,所有成员都会收到此回调。
收到此回调后,应用需要自行实现单向视频功能,例如用图片遮挡该座席画面,SDK不会对画面进行单向处理。

Type declaration

    • (turnOn: boolean): void
    • Parameters

      • turnOn: boolean

        是否单向视频

      Returns void

onDeliveryAbort?: (
    isShutDown: boolean,
    deliveryUserId: string,
    reason: string,
) => void

录制异常回调

远程录制异常退出时会上报此回调。

Type declaration

    • (isShutDown: boolean, deliveryUserId: string, reason: string): void
    • Parameters

      • isShutDown: boolean

        录制异常时服务器是否自动结束通话

        • true: 自动结束通话
        • false: 不自动结束通话
      • deliveryUserId: string

        录制异常的用户ID

      • reason: string

        录制异常的原因

      Returns void

onCallForwarding?: () => void

座席通话转接回调

通话中座席调用 JRTCAgent#transferCall transferCall 接口将通话转接到某个座席或转接到某个业务组后,访客会收到此回调,然后访客需等待新的座席接听该通话。
该过程中,访客通话状态不变,新的座席接听通话后,访客可通过 onMemberJoin 回调得知。

onNotifyMessageReceived?: (
    notifyMessage: JRTCNotifyMessage,
    fromUserId: string,
) => void

收到事件通知消息回调

通话中的访客和座席可分别调用 sendNotifyMessage 和 JRTCAgent#sendNotifyMessage sendNotifyMessage 接口给通话中的指定成员或全体成员发送通知消息,接收消息的成员会收到此回调,由此获取消息具体信息。

Type declaration

    • (notifyMessage: JRTCNotifyMessage, fromUserId: string): void
    • Parameters

      • notifyMessage: JRTCNotifyMessage

        事件通知实体类

      • fromUserId: string

        发送方的用户ID

      Returns void