跳到主要内容

通话监听

融云 calllib-uni 库提供了如下监听函数,用于处理呼叫相关的业务逻辑上报。

添加监听

1. 监听通话呼入

监听通话呼入,通过回调 CallLib.onCallReceived 监听。

方法

JavaScript
CallLib.onCallReceived();

回调参数

参数类型说明
resObject通话呼入信息,包含 targetId

示例代码

JavaScript
CallLib.onCallReceived((res) => {
console.log("Engine:OnCallReceived=>" + "监听通话呼入, 目标id=>", res.data.targetId);
});

2. 开始呼叫通话

开始呼叫通话,电话已拨出,通过回调 CallLib.onCallOutgoing 监听。

方法

JavaScript
CallLib.onCallOutgoing();

回调参数

参数类型说明
resObject通话详细信息

示例代码

JavaScript
CallLib.onCallOutgoing((res) => {
console.log("主叫端拨出电话后,通过回调 onCallOutgoing,通知当前 call 的详细信息", res);
});

3. 已建立通话

已建立通话,通过回调 CallLib.onCallConnected 监听。

方法

JavaScript
CallLib.onCallConnected();

回调参数

参数类型说明
resObject通话详细信息

示例代码

JavaScript
CallLib.onCallConnected((res) => {
console.log("Engine:OnCallConnected=>" + "通话接通时,通过回调 onCallConnected 通知当前 call 的详细信息", res);
});

4. 通话结束

通话结束,通过回调 CallLib.OnCallDisconnected 监听。reason 表示挂断原因。具体请参见挂断通话原因

方法

JavaScript
CallLib.onCallDisconnected();

回调参数

参数类型说明
resObject挂断信息,包含 reason

示例代码

JavaScript
CallLib.onCallDisconnected((res) => {
console.log("Engine:OnCallDisconnected=>" + "挂断成功, 挂断原因=>", res.data.reason);
});

5. 被叫端正在振铃

被叫端正在振铃,通过回调 CallLib.onRemoteUserRinging 监听。

方法

JavaScript
CallLib.onRemoteUserRinging();

回调参数

参数类型说明
resObject振铃信息,包含 userId

示例代码

JavaScript
CallLib.onRemoteUserRinging((res) => {
console.log("主叫端拨出电话,被叫端收到请求,发出振铃响应时触发,对端Id为=>", res.data.userId);
});

6. 对端用户加入通话

对端用户加入了通话,通过回调 CallLib.onRemoteUserJoined 监听。

方法

JavaScript
CallLib.onRemoteUserJoined();

回调参数

参数类型说明
resObject远端用户信息,包含 userId

示例代码

JavaScript
CallLib.onRemoteUserJoined((res) => {
console.log("Engine:OnRemoteUserJoined=>" + "主叫端拨出电话,被叫端收到请求后,加入通话,被叫端Id为=>", res.data.userId);
});

7. 用户被邀请加入通话

通话中的某一个参与者,邀请好友加入通话,通过回调 CallLib.OnRemoteUserInvited 监听。

方法

JavaScript
CallLib.onRemoteUserInvited();

回调参数

参数类型说明
resObject邀请信息,包含 userId

示例代码

JavaScript
CallLib.onRemoteUserInvited((res) => {
console.log("Engine:OnRemoteUserInvited=>" + "通话中的某一个参与者,邀请好友加入通话,发出邀请请求后,远端Id为=>", res.data.userId);
});

8. 远端参与者离开

通话中的远端参与者离开,通过回调 CallLib.OnRemoteUserLeft 监听。reason 表示挂断原因。具体请参见挂断通话原因

方法

JavaScript
CallLib.onRemoteUserLeft();

回调参数

参数类型说明
resObject远端用户离开信息,包含 reason

示例代码

JavaScript
CallLib.onRemoteUserLeft((res) => {
console.log("Engine:OnRemoteUserLeft=>" + "远端用户挂断,远端Id为=>", res.data.reason);
});

9. 远端用户切换媒体类型

通话中某一个参与者切换通话类型,通过回调 CallLib.onRemoteUserMediaTypeChanged 监听。

方法

JavaScript
CallLib.onRemoteUserMediaTypeChanged();

回调参数

参数类型说明
resObject媒体类型变化信息,包含 user.userId

示例代码

JavaScript
CallLib.onRemoteUserMediaTypeChanged((res) => {
console.log("当通话中的某一个参与者切换通话类型,例如由 audio 切换至 video,回调 onRemoteUserMediaTypeChanged,切换媒体类型的Id为=>", res.data.user.userId);
});

10. 通话异常

通话过程中发生异常,通过回调 CallLib.onError 监听。reason原因详情

方法

JavaScript
CallLib.onError();

回调参数

参数类型说明
resObject错误信息,包含 reason

示例代码

JavaScript
CallLib.onError((res) => {
console.log("通话过程中,发生异常,异常原因=>", res.data.reason);
});

移除监听

1. 移除监听-接收到通话呼入

方法

JavaScript
CallLib.removeCallReceivedListener();

示例代码

JavaScript
CallLib.removeCallReceivedListener();

2. 移除监听-开始呼叫通话的回调

方法

JavaScript
CallLib.removeCallOutgoingListener();

示例代码

JavaScript
CallLib.removeCallOutgoingListener();

3. 移除监听-通话已接通

方法

JavaScript
CallLib.removeCallReceivedListener();

示例代码

JavaScript
CallLib.removeCallReceivedListener();

4. 移除监听-通话已结束

方法

JavaScript
CallLib.removeCallDisconnectedListener();

示例代码

JavaScript
CallLib.removeCallDisconnectedListener();

5. 移除监听-对端用户正在振铃

方法

JavaScript
CallLib.removeRemoteUserRingingListener();

示例代码

JavaScript
CallLib.removeRemoteUserRingingListener();

6. 移除监听-对端用户加入了通话

方法

JavaScript
CallLib.removeRemoteUserJoinedListener();

示例代码

JavaScript
CallLib.removeRemoteUserJoinedListener();

7. 移除监听-有用户被邀请加入通话

方法

JavaScript
CallLib.removeRemoteUserInvited();

示例代码

JavaScript
CallLib.removeRemoteUserInvited();

8. 移除监听-对端用户挂断

方法

JavaScript
CallLib.removeRemoteUserLeftListener();

示例代码

JavaScript
CallLib.removeRemoteUserLeftListener();

9. 移除监听-对端用户切换了媒体类型

方法

JavaScript
CallLib.removeRemoteUserMediaTypeChangedListener();

示例代码

JavaScript
CallLib.removeRemoteUserMediaTypeChangedListener();

10. 移除监听-通话出现错误的回调

方法

JavaScript
CallLib.removeErrorListener();

示例代码

JavaScript
CallLib.removeErrorListener();