声网 RTM SDK 支持呼叫邀请功能,包含通用呼叫场景中的以下行为:
声网 RTM SDK 提供的呼叫邀请功能仅实现了呼叫邀请的基本控制逻辑,即发送、取消、接受和拒绝呼叫邀请。声网 RTM SDK 不会处理邀请接通之后的动作,也不会管理整个会话的生命周期。你需要根据自己的业务逻辑自行实现。
呼叫邀请可应用于以下场景:
在一个完整的呼叫邀请过程中,主叫和被叫的呼叫邀请状态分别由 LocalInvitation 和 RemoteInvitation 来定义。
发送呼叫邀请的步骤如下:
createLocalInvitation 创建 LocalInvitation。此时 LocalInvitation 生命周期开始。sendLocalInvitation 发送呼叫邀请。被叫收到 onRemoteInvitationReceived 回调,此时 RemoteInvitation 生命周期开始。主叫收到 onLocalInvitationReceivedByPeer 回调。发送呼叫邀请的示例代码如下:
// 获取 RtmCallManager 实例
RtmCallManager = RtmClient.getRtmCallManager();void inviteCall(final String peerUid, final String channel) {
//创建 LocalInvitation
LocalInvitation invitation = RtmCallManager.createLocalInvitation(peerUid);
invitation.setContent(channel);
//发送呼叫邀请
RtmCallManager.sendLocalInvitation(invitation);
}主叫调用 cancelLocalInvitation 取消呼叫邀请。被叫收到 onRemoteInvitationCanceled 回调,此时 RemoteInvitation 生命周期结束。主叫收到 onLocalInvitationCanceled 回调,此时 LocalInvitation 生命周期结束。
取消呼叫邀请的示例代码如下:
//取消呼叫邀请
void cancelLocalInvitation() {
if (RtmCallManager != null && invitation != null) {
RtmCallManager.cancelLocalInvitation(invitation);
}
}被叫从 onRemoteInvitationReceived 回调获取 RemoteInvitation 并调用 acceptRemoteInvitation 接受呼叫邀请。被叫收到 onRemoteInvitationAccepted 回调,此时 RemoteInvitation 生命周期结束。主叫收到 onLocalInvitationAccepted 回调,此时 LocalInvitation 生命周期结束。
接受呼叫邀请的示例代码如下:
// 接受呼叫邀请
void answerCall(final RemoteInvitation invitation) {
if (RtmCallManager != null && invitation != null) {
RtmCallManager.acceptRemoteInvitation(invitation);
}
}被叫从 onRemoteInvitationReceived 回调获取 RemoteInvitation 并调用 refuseRemoteInvitation 拒绝呼叫邀请。被叫收到 onRemoteInvitationRefused 回调,此时 RemoteInvitation 生命周期结束。主叫收到 onLocalInvitationRefused 回调,此时 LocalInvitation 生命周期结束。
拒绝呼叫邀请的示例代码如下:
// 拒绝呼叫邀请
void refuseRemoteInvitation(@NonNull RemoteInvitation invitation) {
if (RtmCallManager != null) {
RtmCallManager.refuseRemoteInvitation(invitation);
}
}API 详见呼叫邀请 API 文档。
我们在 GitHub 提供一个开源的示例项目,你也可以前往下载体验并参考源代码。