通话监听
融云 calllib-uni 库提供了如下监听函数,用于处理呼叫相关的业务逻辑上报。
添加监听
1. 监听通话呼入
监听通话呼入,通过回调 CallLib.onCallReceived 监听。
方法
JavaScript
CallLib.onCallReceived();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| res | Object | 通话呼入信息,包含 targetId |
示例代码
JavaScript
CallLib.onCallReceived((res) => {
console.log("Engine:OnCallReceived=>" + "监听通话呼入, 目标id=>", res.data.targetId);
});
2. 开始呼叫通话
开始呼叫通话,电话已拨出,通过回调 CallLib.onCallOutgoing 监听。
方法
JavaScript
CallLib.onCallOutgoing();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| res | Object | 通话详细信息 |
示例代码
JavaScript
CallLib.onCallOutgoing((res) => {
console.log("主叫端拨出电话后,通过回调 onCallOutgoing,通知当前 call 的详细信息", res);
});
3. 已建立通话
已建立通话,通过回调 CallLib.onCallConnected 监听。
方法
JavaScript
CallLib.onCallConnected();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| res | Object | 通话详细信息 |
示例代码
JavaScript
CallLib.onCallConnected((res) => {
console.log("Engine:OnCallConnected=>" + "通话接通时,通过回调 onCallConnected 通知当前 call 的详细信息", res);
});
4. 通话结束
通话结束,通过回调 CallLib.OnCallDisconnected 监听。reason 表示挂断原因。具体请参见挂断通话原因。
方法
JavaScript
CallLib.onCallDisconnected();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| res | Object | 挂断信息,包含 reason |
示例代码
JavaScript
CallLib.onCallDisconnected((res) => {
console.log("Engine:OnCallDisconnected=>" + "挂断成功, 挂断原因=>", res.data.reason);
});
5. 被叫端正在振铃
被叫端正在振铃,通过回调 CallLib.onRemoteUserRinging 监听。
方法
JavaScript
CallLib.onRemoteUserRinging();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| res | Object | 振铃信息,包含 userId |
示例代码
JavaScript
CallLib.onRemoteUserRinging((res) => {
console.log("主叫端拨出电话,被叫端收到请求,发出振铃响应时触发,对端Id为=>", res.data.userId);
});
6. 对端用户加入通话
对端用户加入了通话,通过回调 CallLib.onRemoteUserJoined 监听。
方法
JavaScript
CallLib.onRemoteUserJoined();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| res | Object | 远端用户信息,包含 userId |
示例代码
JavaScript
CallLib.onRemoteUserJoined((res) => {
console.log("Engine:OnRemoteUserJoined=>" + "主叫端拨出电话,被叫端收到请求后,加入通话,被叫端Id为=>", res.data.userId);
});
7. 用户被邀请加入通话
通话中的某一个参与者,邀请好友加入通话,通过回调 CallLib.OnRemoteUserInvited 监听。
方法
JavaScript
CallLib.onRemoteUserInvited();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| res | Object | 邀请信息,包含 userId |
示例代码
JavaScript
CallLib.onRemoteUserInvited((res) => {
console.log("Engine:OnRemoteUserInvited=>" + "通话中的某一个参与者,邀请好友加入通话,发出邀请请求后,远端Id为=>", res.data.userId);
});
8. 远端参与者离开
通话中的远端参与者离开,通过回调 CallLib.OnRemoteUserLeft 监听。reason 表示挂断原因。具体请参见挂断通话原因。
方法
JavaScript
CallLib.onRemoteUserLeft();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| res | Object | 远端用户离开信息,包含 reason |
示例代码
JavaScript
CallLib.onRemoteUserLeft((res) => {
console.log("Engine:OnRemoteUserLeft=>" + "远端用户挂断,远端Id为=>", res.data.reason);
});
9. 远端用户切换媒体类型
通话中某一个参与者切换通话类型,通过回调 CallLib.onRemoteUserMediaTypeChanged 监听。
方法
JavaScript
CallLib.onRemoteUserMediaTypeChanged();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| res | Object | 媒体类型变化信息,包含 user.userId |
示例代码
JavaScript
CallLib.onRemoteUserMediaTypeChanged((res) => {
console.log("当通话中的某一个参与者切换通话类型,例如由 audio 切换至 video,回调 onRemoteUserMediaTypeChanged,切换媒体类型的Id为=>", res.data.user.userId);
});
10. 通话异常
通话过程中发生异常,通过回调 CallLib.onError 监听。reason原因详情
方法
JavaScript
CallLib.onError();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| res | Object | 错误信息,包含 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();