iOS通话录音
iOS
由于系统本身的限制,出于不收集用户数据,起到保护隐私的安全考虑,所以不提供,也无法实现在通话期间直接的支持录音。
所以iOS中的通话录音,都是第三方,通过网络或网络+运营商的方式,实现通话录音的。
下面总结一下已知的一些方案提供商:
iOS通话录音方案提供商
网易云信
之前也发现过网易云信支持iOS的通话录音,但是后来却(好像是因为 20-1=?大的缘故)而停售,停止服务了。
上海飞语网络
上海飞语网络的联系方式
上海飞语网络科技有限公司
公司地址:上海市浦东新区博霞路22号106
联系总机:012-51954962
商务合作:021-51954962转802
QQ交流群:470250528
用飞语云平台实现iOS通话录音
使用场景
app内部点击拨号按钮,经服务器发起请求相应参数,其中【是否录音参数】必须传值为true,通话才能够进行录音,通话完成会返回该通话已录音,根据会返回一个录音下载地址,飞语需进行转码处理(一般地址下发时间通知为几分钟到几十分钟不等,视通话时长而定),但飞语不提供后台管理页面,需我们自行采取定时任务请求相应的下载相应录音,录音保存有效期为1个月左右,故我们需自行开发后台管理界面对返回的录音文件及参数进行保存管理,方便之后查询管理。
基本流程
关于使用飞语网络实现iOS录音的话,内部其实是利用WiFi网络+第三方网络运行商,实现的录音。
其中关于第三方服务,简称:PSTN落地线路
,落地线路
飞语:
- 想要测试PSTN落地线路,直接打手机号
- 需要提供自己的APPID,然后让飞语后台开通这个功能的
整个逻辑是:
- 主叫:是用网络,装了比如某iOS的app,调用飞语SDK,内部是VOIP的UDP语音,就像微信的语音
- 利用的是网络+飞语的SDK
- 被叫:无需网络,无需安装任何app,就是自己的手机号,正常接听就像别人打给你一样的通话了
- 即可主叫呼叫被叫,被叫显示的号,是主叫的飞语SDK中可以(任意)设置的
- 利用的是(飞语的合作伙伴,香港的一家,类似于移动,电信等网络提供商提供的)落地线路
基本流程:
- 主叫方:138,调用
[engineKit dialPeer:@"calleeUid"CallerUid:@"callerUid" OptionData:nil];
类似于微信:点击 语音通信 - 确保被叫方app处于前台
- 一般是:138发送离线消息推送push给139,139点击离线消息,启动app,确保处于前台
- 类似于 被叫方 启动微信 确保微信在线 且处于前台
- 被叫方139,调用
[engineKit calleePrepare:@"uid" prepareSuccess:nil];
类似于 被叫方 微信中 点击 接听
调用第三方网络服务举例
我15012345678 呼叫你 18656781234
我知道你的号 就可以在飞语sdk中调用时写上:
+8618656781234
就可以呼叫到你
你看到的我的号码 我是可以随意设置的,比如+8613900001111
当然我也可以设置你看到的号码 就是我的真实的手机号 比如+8615012345678
其中,被叫方看到的电话号码,有两种:
- 方案1:主叫方138打电话给被叫方139,139看到的电话号码是 某个公司的座机号码
前提
:主叫方和被叫方都是网络在线-》所以才能通过UDP实现VOIP的语音通信-》相当于两人微信都在线费用
:飞语自己:1000分钟/5元
- 方案2:主叫方138打电话给被叫方139,139看到的电话号码是 138的号码
前提
:主叫方需要网络在线-》相当于主叫方的微信在线- 被叫方手机可以没有网络-》因为是通过第三方服务去实现拨打被叫方的电话的-》所以被叫方才能看到主叫方的电话号码(而不是固定的座机号码之类的)
注意
- 飞语只提供技术,不提供落地线路。
- 如果采用方案2,需要再去联系 提供落地线路的 国外公司
- 可以问
简工程师 18917930061
要对方QQ号去咨询细节 - 具体费用见下面的总结
- 可以问
具体实现方式
由于飞语官网没有足够完善的demo
具体方案可参考,之前自己在折腾后,写的demo:
crifan/feiyuiOSDemo: 飞语云平台iOS点对点通话录音Demo
计费
关于网络流量和第三方服务,都是需要一定费用的。
下面就来解释一下大概费用是如何计算的:
A网络(APP) 通过 飞语SDK 直接拨打 B手机号/座机等,的费用是:约8.5分钱/分钟
具体包含2部分:
- 飞语本身的费用:
5元/1000分钟
=0.5分钱/分钟
- 飞语平台自带送了5元,可以测试1000分钟通话
- 如果费用不足,可以在飞语后台管理页面充值
- 落地线路收费:
0.012美元/分钟
=大概8分钱/分钟
- 合作公司是一家新加坡公司
- 和飞语合作,有送10分钟供测试
- 但是需要提供APPID,让飞语后台开通此PSTN功能才行
- 费用不足,需要充值,
最低500美元起
其他技术细节
mp3录音文件
关于录音的问题,情况是:目前飞语的SDK正在调整和优化期间
在调用接口之前,option参数中设置了通话要录音(MP3文件)
在通话结束后,想要获得录音文件,暂时有2种方式:
- 联系飞语工程师,提供APPID和被叫号码,对方可以帮你从后台找出来,发给你录音文件
配合飞语的流程,提供自己的服务器,自己服务器实现两个接口
- 录音成功通知:飞语调自己服务器,用于获取callID等参数
- 获取录音文件下载地址:自己服务器调用飞语API:
具体详情和接口描述,请咨询飞语官方,要具体文档。
此处由于只是技术可行性研究,就暂时用第一种办法,要了录音MP3文件听听效果,就可以了。
app上线
之后正式上线时,需要用到苹果的VOIP
的push
在app的项目配置中,开启VOIP
的Push
,估计也要去苹果开发者中心,后台创建对应的证书
具体技术自己去找,比如:PushKit的使用 - 简书