一、背景

有智慧社区相关的项目,需要门禁开发门禁机APP以及用户端APP,要求实现门禁设备呼叫业主APP,业主接通后可以通话、可以开门。这里主要要做的就是语音和视频通话功能,以及远程开门。至于业务逻辑那就是正常的需求处理了。

二、方案调研

1、sip方案

有做过调研,也找了对应的设备进行了测试验证,流程跑通,但是效果不是太好,杂音大回音大,不清楚是设备处理问题还是软件实现优化问题。同时由于商务原因,后来放弃。不过主要的流程就是:

使用设备方的sip服务器,根据对方提供的web接口,我们在需要的时候创建对应的sip账号

设备方提供设备和APP端SDK

我们使用sdk实现呼叫、接听、开门、视频、语音通话等功能

2、基于P2P的音视频通话方案

我们找了一家专门提供语音视频通话服务的厂商,使用对于提供的sdk,做了开发测试验证,总体效果还不错,毕竟专门做软件的,同时对方还能提供各个版本的开发sdk(windows版本、ubuntu版本、linux(支持多种芯片)),这对于们后期如果对接他们类型的设备提供了较好的扩展性。因此最后采取此方案。此方案可以用于视频直播,分为视频播放端和视频采集端,我们再此基础上定义了自己的协议规则,实现了呼叫、开门等功能。

三、开发流程

1、对方给我们单独部署一套音视频服务

2、我们后台根据web端接口文档,在需要的时候创建相应的呼叫号,同时跟用户关联

3、门禁设备集成采集端sdk,同时实现呼叫、接听、开门操作等业务

4、用户APP集成播放端sdk、同时实现呼叫、接通、拒接、远程开门等业务

5、设备和APP联调测试

四、APP端开发流程

1、sdk二次封装

因为我们要做一些自己的修改,同时后续可能回提供给第三方,所以按功能封装成sdk是最合理的

Android手机间语音通话 安卓语音通话_Android手机间语音通话

主要根据业务需要封装了必要的接口方法:

呼叫、开门、接听、以及一些设置、以及设备状态信息监听

2、app端集成自己开发的sdk

 先引入自己开发的sdk,然后实现相关逻辑页面

呼叫页面、来电页面、接通页面、开门处理等

3、测试验证

设备和APP