写点什么

anyRTC - 模仿微信音视频通话功能

发布于: 2020 年 09 月 09 日

市面上运用呼叫邀请音视频通话的场景很多,下面简单介绍一下



  • 陌生人交友,需要呼叫邀请通话,进行音视频通信。

  • 门铃系统,需要呼叫邀请房主,让房主应答。

  • 在线医疗,在线咨询,帮助患者快速、高效的解答救助事宜。

  • 智能调度,安保系统智能调度人员。



呼叫邀请是怎么做的?



呼叫邀请的场景既然这么多,那市面上的这种场景是怎么做的呢?下面我们就来分析一下吧。



  • 利用市面上现有的IM SDK ,一般这种SDK都会有一套现有的逻辑帮助开发者去实现呼叫邀请的逻辑。但不好的一点是这种SDK非常笨重,包体积大,好多还自带UI,灵活性差。

  • 使用Socket 自行组织呼叫邀请逻辑,但是这种开发难度度大,工期时间长,而且对应大并发、高可用显得力不从心。

  • 利用anyRTC 实时消息SDK,该SDK对呼叫邀请特别友好,包体积小,而且很轻便,调用几个API接口就把呼叫邀请的逻辑给搞定了。



RTM 实时消息组织呼叫邀请的逻辑分析



呼叫邀请的行为



  • 主叫发送呼叫邀请;

  • 主叫取消呼叫邀请;

  • 被叫接受收到的呼叫邀请;

  • 被叫拒绝收到的呼叫邀请;



API 时序图



取消已发送呼叫邀请



接受/拒绝呼叫邀请



呼叫当中异常处理流程



呼叫邀请发出后,调用subscribePeersOnlineStatus方法进行订阅对方的在线状态,根据peersOnlineStatusChanged回调信息来判断对方是否在线。被呼叫者做相同的操作,收到呼叫邀请,调用subscribePeersOnlineStatus方法进行订阅对方的在线状态,根据peersOnlineStatusChanged回调信息来判断对方在线情况与否。直到呼叫挂断后,都取消订阅对方的状态。



呼叫当中的推送对接



anyRTC RTM SDK中没有嵌入推送服务,需要客户自己去做推送服务,下面介绍一下客户端如何集成推送功能。



呼叫之前,订阅对方的状态,如果对方不在线,使用第三方推送服务,进行呼叫,然后发送sendLocalInvitation邀请,本地进入等待画面。



case1: 对方没有答应发出邀请后,如果对方不应答,会在30s给予回到localInvitationFailure邀请失败回调,收到该回调后提示对方无应答。case2: 对方有收到邀请发出邀请后,被呼叫方收到推送消息,进行本地响铃,点击进入程序,登录RTM SDK,此时会收到remoteInvitationReceived的回掉,弹出应答页面,进行相应的应答,呼叫方此刻也会收到localInvitationReceivedByPeer的回调,进行60s倒计时,如果60s后还未做出答复回应,取消呼叫请求,关闭页面。



客户端集成推送服务



极光、信鸽、个推、友盟,用户可以根据自己的情况调研集成。



RTC音视频通话



当呼叫连接建立后,双方协商好进入相同的频道号即可通信。



RTC特色功能介绍



  • 自采集:自采集功能的加入,支持屏幕共享、美颜、美声等前处理功能。

  • 自渲染:对安全比较高的,可采用自渲染功能,对音视频数据进行自定义加密。

  • 大小流:当会话人数比较多的时候,开启大小流,当小屏显示用户视频的时候,使用小流节省本地带宽,当大屏显示用户适配的时候,拉去大流进行高清显示,大小流可无缝切换。

  • 插入媒体流:当会话当中,使用插入媒体流可进行同时看电视节目(RTMP流),可以看监控进行协同处理事务(RTSP流)。

  • 播放音乐音效:当通话过程中,可以播放本地或在线音乐。

  • 上下行网络质量:通话质量实时回调,显示本地以及对方的通话质量,可以进行友好提醒。

  • 说话音量提醒:音量大小实时回调,可知晓频道中正在说话的用户,适合大频道多人音视频场景。

  • 50人上麦:一个频道最大支持50人同时上麦,观看人数不限制,该功能已经瑶瑶领先其他厂商的SDK。



代码示列



ARCall,前往下载



  • 呼叫邀请流程

  • 支持iOS,Android,Web端

  • 支持多人呼叫邀请通话

  • 音频通话、视频通话



anyRTC创业扶持计划



  • 30万免费分钟数,助力初创企业快速发展。



anyRTC初创企业扶持计划,只要通过企业审核,联系客服加入anyRTC创业扶持计划,即可享受30万免费分钟数。获得分钟数可降低在实时音视频技术服务所产生的成本费用,零成本快速启动项目。



  • 专属技术指导支持



anyRTC为初创企业提供一对一专属客服,为客户提供专业、认真的服务,及时解答您的疑惑。并为客户提供专属技术指导,更快上手,轻松上线!



联系我们



联系电话:021-65650071



QQ咨询群:580477436



ARCall技术交流群:597181019



GitHub地址:https://github.com/anyRTC



咨询邮箱:hi@dync.cc



技术问题:开发者论坛



获取更多帮助前往:www.anyrtc.io



用户头像

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

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

评论 (1 条评论)

发布
用户头像
获取更多帮助前往:www.anyrtc.io
2020 年 09 月 10 日 11:00
回复
没有更多了
anyRTC - 模仿微信音视频通话功能