写点什么

web 技术分享| 快速实现一个呼叫邀请 SDK

作者:anyRTC开发者
  • 2022 年 3 月 23 日
  • 本文字数:1404 字

    阅读完需:约 5 分钟

web技术分享| 快速实现一个呼叫邀请 SDK

什么是呼叫邀请 SDK?

微信的音视频呼叫想必大家都用过吧,它就是呼叫邀请在社交场景的表现形式之一,同时呼叫邀请还被运用到很多场景:


  • 娱乐场景:PK 连麦、抢麦

  • 教培场景:举手发言

  • 企业服务:类企业微信

  • 金融服务:远程面签、保险定损

  • 更多:应急指挥调度、健康医疗



呼叫邀请需要具备以下功能:


  • 一套完善的呼叫邀请流程

  • 音频 &视频通讯能力

  • 自由灵活,方便业务逻辑拓展

  • 开放的媒体控制权限(管理自己的媒体输入设备等)

一个在线体验的 Demo

这里有一个简单基础的 DEMO,请点击体验

快速实现呼叫邀请 SDK

要实现一个呼叫邀请 SDK 并非易事,我们面临的问题有很多,其中比较突出的有:应用场景广泛,如何实现在不同场景下实现不同的业务逻辑?


应用场景的不同意味着需要处理的业务逻辑不同,如果针对不同场景去开发,既费时又费力,非明智之举。那么如何开发一个既要具备呼叫流程和音视频通话能力,还要满足在不同场景下可以实现不同业务逻辑的 SDK 呢?要想解决这个问题,我们可以给呼叫邀请的流程添加多个的生命周期,在不同的生命周期内做不同的事情,从而在不同场景下实现不同业务的逻辑 ,因此,呼叫邀请 SDK 需要具备两个核心模块,呼叫邀请流程实时音频通讯


呼叫邀请流程 :基于 IM 或者信令服务 以及消息推送服务 实现的一对一或者群组消息通知服务。


实时音频通讯 :基于 webRTC 实现的一对一、多人的音视频通话解决方案。


其中呼叫邀请流程十分重要,决定了什么时候加入音视频通话,什么时候退出音频通话。

基本功能

为了方便理解,下面我们以 主叫被叫 两个用户身份理解呼叫邀请的大致流程以及基础功能:


主叫 :发起呼叫邀请的用户


  • 发起呼叫邀请 :一对一、多人

  • 结束通话/取消呼叫邀请 :结束正在进行的通话或者取消(未接受/拒绝)的邀请

  • 事件通知 :呼叫邀请的状态和流程通知


被叫 :接收到呼叫邀请的用户


  • 接受邀请 :收到呼叫邀请之后,可执行接受邀请操作

  • 拒绝邀请 :收到呼叫邀请之后,可执行拒绝邀请操作

  • 事件通知 :呼叫邀请的状态和流程通知


同时我们还需要考虑很多异常的问题和潜在因素,例如:


  • 呼叫邀请超时、对方应答、未及时应答

  • 异常断网,回话保持

  • 通话占线

  • 用户不在线,发送推送消息

  • 等等


用户 :每一个登录系统的用户


  • 登录/登出系统

  • 管理媒体输入设备:打开/关闭、切换

  • 监听呼叫邀请

呼叫邀请的生命周期

上面我们将用户划分成了两个身份,那么每个身份在每个呼叫邀请流程中都不一样,也就意味着主叫的生命周期和被叫的生命周期是不一样的,因此我们需要将整个呼叫邀请流程按照主叫和被叫 两个身份来划分,分别是主叫的生命周期被叫的生命周期


  • 主叫的生命周期 ,主叫发起邀请之后,直到邀请流程结束,这个过程中所有可能发生的事件,我们都会提供回调方法来实现。

  • 对方未应答

  • 对方是否收到邀请

  • 对方接受邀请

  • 对方拒绝邀请

  • 邀请失败及原因

  • 被叫的生命周期 ,被叫在收到邀请之后,直到邀请流程结束,这个过程中所有可能发生的事件,我们都会提供回调方法来实现。

  • 未及时应答

  • 接受邀请成功

  • 拒绝邀请成功

  • 主叫取消邀请

  • 邀请失败及原因


这样我们就可以在不同的生命周期内做不同的事情,从而实现不同场景在业务上的需求 。下面我们列举了一些在不同情况下,主叫和被叫对应的生命周期:

发起呼叫邀请

取消呼叫邀请

接受呼叫邀请

拒绝呼叫邀请

呼叫邀请未响应

对方忙线中

不在线用户进行呼叫(推送通知)

总结

最后我们用一个公式来表示:


消息通知服务 = (IM || 信令服务 + 消息推送服务) + 生命周期;呼叫邀请 SDK = 消息通知服务 + 音视频通话;
复制代码



发布于: 刚刚阅读数: 3
用户头像

实时交互,万物互联! 2020.08.10 加入

实时交互,万物互联,全球实时互动云服务商领跑者!

评论

发布
暂无评论
web技术分享| 快速实现一个呼叫邀请 SDK_前端_anyRTC开发者_InfoQ写作平台