手机实时提取SIM卡打电话的信令和声音-总结篇

2023-10-13 02:50

本文主要是介绍手机实时提取SIM卡打电话的信令和声音-总结篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

继上一篇《电脑蓝牙打电话-总结》之后,至今,不知不觉已经又过去了一年(时间过得快啊,碌碌无为说的就是我这种),手上一直在忙其它紧迫的工作任务,一直都没有时间去探索新兴领域,着实惭愧。

由于所在的通信行业的特性,针对手机SIM卡业务,接触一些常规范围之外的音频/视频的业务需求,如:

  1. 手机来电时想使用AI来自动接听。
  2. SIM卡发卡商要求某个业务的所有通话都要有录音,可回溯与核查。
  3. SIM卡的套餐分钟数太多、打不完,想共享给部门内其它同事。
  4. SIM卡电话用AI来播出,收集用户的语音反馈后做相应处理。
  5. 极端情况下,需要手机信令和语音与线路一样能正常在后台坐席和呼叫中心拨打。

在以上的场景需求中,需要对SIM卡的通话能力进行实时的干预和管理,包括但不限于事件、信令、语音、视频等数据。而且,按照中国大陆相关的电信法律法规,应该有对通话的源/目标、通话内容和通话事件本身进行合规性的监管和追溯的能力。

在做一个分析或者是方向规划之前,我们会先睁开眼去看看这个世界,看看前人或同伴在这个领域,最新的成果做到了什么程度,针对不同的场景采用的是什么样的方案?我们看了,但是很遗憾,SIM卡的通话能力是手机的核心功能,为了保证稳定性、安全性和产品发布合规的原因,SIM卡的几乎所有功能被层层的权限和约束锁住。

我们看到的几乎所有设备,包括但不限于安卓手机、苹果手机、老人机、电话手表、第三方插卡座机等常见的设备,SIM卡的功能基本都是专用的特权应用才可以正常操作。不仅如此,SIM卡开放的功能中,获取SIM卡号码/查话费余额、切换主/副卡操作、使用SIM卡流量、拨打语音电话/volte电话,这一系列的能力中,打电话也是属于最核心的能力,而且也是通信部门监管的重点区域。

我们在前期分析的时候,评估过阿里通信、腾讯云、华为云等呼叫中心的产品,以及一些第三方商业公司类似OKCC、通信助手等提供的app应用和插卡话机等模式和方案,但并没有找到符合我们方向的一个通用的产品方案。这些产品要么使用线路来对接(公安部门重点打击的卡线、卡池、猫池,以及民用的SIMBOX多卡宝等专用SIM设备都属于线路的范畴),要么就将手机来作为接听终端,将打电话操作下发到手机执行。但此类方案明显有缺陷,最简单的如iPhone等iOS设备禁止了通话录音功能,苹果设备取不到录音。而且跟我们打算挂AI来进行语音流入流出的方向偏差很大。

在手机的细分市场中,截止到目前的2023年,整个市场出货量和存量的大头是Android手机,其次是iOS系统的苹果手机,鸿蒙目前仍支持AOSP挂载的app,暂与Android归为一类。剩下的是一些非智能机、电话手表,但年出货量和市场存量都不大。整个手持终端的划分范围表明,我们预研的《手机实时提取SIM卡打电话的信令和声音》这个能力,首先必须要能适配安卓。我们也不管它到底是OPPO、VIVO,还是小米、三星、华为、荣耀,不管它是安卓、Android、鸿蒙的AOSP或者是其它的变种。在预研的方向上,我们只有两点要求:

  1. 按市场覆盖率来看,方案必须要支持Android和iOS两种系统,如果实在不能支持,就优先支持Android,如果Android还是不行就优先选择一家品牌的各种型号进行支持。
  2. 方案必须要能提取得到实时的声音,即通话的接听终端一定要脱离手机的麦克风/扬声器硬件。(我们也不管它是在手机上装AI的app,或是使用旁边的辅助设备来收发数据)

先说好消息,具体实施上,某些设备比如小米,提供了小爱助手的AI电话App,小米手机只需要安装应用或在小米的应用商店里升级(现在好像改名为“小爱通话”),来电后,说“小爱帮我接”等关键词后,即可自动接听并提取通话声音进行实时ASR转文字和AI分析和通话对答。经试验,其ASR功能为联网模式,断开网络连接后转译的内容牛头不对马嘴,但有网络的情况下做得效果还算可以。但是软件有个缺陷:由于小爱通话是与小米的MIUI系统电话深度配合的系统级软件,只能在小米/Redmi手机中使用,而且仅支持国内版。

 

 

在Android中,正常一说到提取通话语音,首先想到的应该是“录音机”程序,一般的手机都支持录制通话录音(无论是从听筒/扬声器,还是耳机或蓝牙输出的语音都可以录制),部分手机的录音机还支持从QQ、微信等App中录制语音/视频通话的语音。

那么,按照道理来说,我们可以参照录音机的逻辑,甚至是调用录音机暴露的接口,将自己的APP进行提权后,理论上也可以做到提取通话过程语音的能力。(注明一下:手机中存在“单轨录音/双轨录音”这个概念,跟硬件有关,如果只支持单轨录音的手机,通话的本地和对方的语音将合并录制到单通道中)。

个人简单猜测,上述的“小爱通话”也是根据这个理论来进行设计和扩展的。既然小米系列有这个应用,华为、三星、OPPO、VIVO等手机也会有自己的内置应用,进行手机定制层面的通话语音提取和分析处理的能力。

在手机这个范围之外,围绕着SIM卡/GSM模块的通信业务和需求,依照时间的先后次序,诞生出GSM Modem/GSM Gateway、卡线、卡池、GOIP、多卡宝等多种制式和设备,主打的就是一个“专用”设备,有的侧重于高并发、有的主打便携。从使用方式来看,有的可以独立工作,有的要依赖于电脑、网关盒子等上位机进行协同工作,此类设备和方案可参见本系列的篇外文章《篇外、自研专用手机产品和风险分析》,里边列有我们前期做规划和方向决策时进行的调研图片和参数对比。

但是随着电信诈骗盛行以及电信行业的监管规则趋于严格,上述这一系列产品和品牌,还没等到起高楼,楼就塌了,我们初次听说它们的时候都是在新闻上,听说哪里的公安机关又破获了一起“电信诈骗案”,犯罪分子利用XXX设备,流动作案,为境外诈骗分子提供非法的行为,罚没了XXX的非法收益。汗啊,高危行业,拿着卖白菜的钱,分分钟就去踩缝纫机。

我们回过头来思考,这些方案或者设备为什么会受国家监管的打击,或者说国家为什么打击它、不打击OPPO/VIVO/小米/华为手机??我思考了一下,核心根源在于GSM制式的问题,即:由于历史时间线的原因,欧洲、北美、日韩、南美、非洲、印度、东南亚等区域的运营商网络和中国大陆,采用的是不同的制式和标准。这就造成了一个问题:这帮家伙做出来的设备,不管它宣称的造福方便民众、扩展了使用领域、促进行业的完善度或者其它冠冕堂皇的说法,它就是在祸害中国老百姓(或者叫造福中国老百姓),而且只能作用于中国老百姓,而不能造福世界其它国家的老百姓。

这才是问题的根源,你看,不打击你打击谁?就算打击了你,你能跑到哪里去?

中国自改革开放以来,中国民众的生活或者说小日子,比之前三十年,确实物质要充裕很多。原因可能多种多样,不同的人可能会有不同甚至相反的观点,但不可否认,国际化或者说世界化进程在里面起到了很大的作用。简单说就是通过输出高价值产品、进口低价值产品,让世界的老百姓来供养中国平民,而不是前三十年中,让中国农民来供养城镇居民。这就要求每个公司或产品,海外化的战略,对整个民族或者个人,都是重中之重。凡是出不了海的,海外战略不能带来明显收益的,在整体看来,都属于内耗,属于改变了生产关系和财富分配但没有改变生产力,简单来讲,就是垃圾。

我们做产品,海外战略的扩展能力,很大程度上也决定了方案规划和产品的生命力。做出来的产品,必须要有足够的通用性,以创新,驱动产品力的竞争力,才是我们这一代人奋斗和实现的途径。

我们认为,技术本身是无谓好坏之分,它对社会影响的好坏,取决于使用它的人。就好比一把刀,铁刀,总是比青铜刀要好,历史的车轮滚滚向前,你不造铁刀,别的地方迟早也会造,并总有一天会流传回你这里。以创新驱动进步,科学技术才是第一生产力。

因此,综上所有的需求和行业现状,我们认为:Internet通过分散的SIM卡入网,其作用与互联网的网关类似,作为解决连接互联网和电话网的最后一公里的解决方案,有其必然的存在意义。

而且我们规划方案时,不能依赖某个制式或规格的入网设备,最好是直接对接上目前市面上存在的各种手机或其它设备,用它们来去实现规划的【手机实时提取SIM卡打电话的信令和声音】的能力,并使用其数据,进行IVR、ASR文字转换、AI等高级应用和扩展。

我们最朴素的念头,是希望在当世大量手机的存量市场的前提下,采用一种所有手段都无法约束的标准化方式,打通互联网/移动互联网 与传统电话网络之间的隔离。用分布式、离散化的方式,让全世界各国的民众,都能简单的使用这种能力。

这里我还是吐槽一下做某些GSM制式的小型化的硬件,说是促进行业的发展,我并不认同。需要这种硬件来推动的行业,还有没有必要存在,都是值得思考的。而且监管好像也在防范此类设备,你看多卡宝(SIMBOX),刚出来没多久就被禁,值得反思。此处再贴一下法规,与君共勉。

 

扯远了,本篇章以Android操作系统为例,按照如下顺序组织语言,从GSM硬件开始,以ALSA音频架构来解析RIL的逻辑,列举通话录音和AI电话助手的案例和部分源码,论证这个模式和方案的可行性(按照规划,如果使用此方式,将属于定制ROM的范畴),将于后续篇章中逐步介绍:(其实我也不想写,网上一搜一大堆,引别人的文章算了。最主要这种方式去搞,刷机数量多了搞不好被手机厂商告你“破坏计算机系统”,汗啊)

  1. GSM/4G模块原理和引脚
  2. 安卓ALSA音频架构
  3. 经典案例1-通话录音实现原理
  4. 经典案例2-AI电话助手

目前市面上,针对SIM卡应用(网关类)现有成熟方案,大致有:

  1. GOIP、卡线、卡池、猫池
  2. 多卡宝

至少是这么多预研中,商用化程度还可以。相关描述,读者要是感兴趣,自己跳转到本系列的篇外文章《篇外、自研专用手机产品和风险分析》去看。

在我们规划的产品方案的各个方向,按软硬件的集成度,可以划分如下几个类型和已有的实现方案,如下:

一、定制硬件:多卡宝、卡池等

二、定制ROM,刷机:AI电话助手

三、root设备+特权应用:Mock Bluetooth

四、普通应用+外设配件:USB蓝牙、耳机插口转接器等

我们将在后续篇章对上述这几个分类的案例进行试用和介绍,看看哪种方案更加靠谱,适配性更强,更容易推广开来给更多的用户去使用。

注:本系列的分享,预计共7个篇章,以总结开篇,从硬件、系统、权限、外设、扩展应用等多个角度,论述了手机实时提取SIM卡打电话的信令和声音能力的一种通用的办法,列举其它备选方案的优缺点,以及项目选型时的决策参考依据,如果读者感兴趣,可以逐篇章跟随我们一同探索。

这篇关于手机实时提取SIM卡打电话的信令和声音-总结篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/200250

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

cell phone teardown 手机拆卸

tweezer 镊子 screwdriver 螺丝刀 opening tool 开口工具 repair 修理 battery 电池 rear panel 后盖 front and rear cameras 前后摄像头 volume button board 音量键线路板 headphone jack 耳机孔 a cracked screen 破裂屏 otherwise non-functiona