防骚扰工单全自动化处理实现方式探讨
2022-04-25黄凯方吴文波王育飞
[黄凯方 吴文波 王育飞]
1 背景
近年来,未经用户同意或请求,拨打电话进行商业营销、恶意骚扰甚至开展诈骗等不法行为的问题日益突出,严重影响了广大人民群众的正常生活,甚至存在安全隐患。根据中国互联网协会12321 网络不良与垃圾信息举报受理中心数据,2018年第2季度,骚扰电话举报量近14万件次。腾讯手机管家骚扰电话标记量分别为8 289 万件次。综合各类举报投诉标记数据对骚扰电话的类别进行分析,多数骚扰电话为商业营销类,广告主商家主要分布在金融、保险、房产中介、教育培训、食药等行业。涉嫌违法犯罪类、恶意骚扰类电话在总体规模上明显少于商业营销类电话,但对于用户的危害程度更加恶劣,典型的问题有诈骗犯罪、“呼死你”、“响一声”等。
为贯彻落实国务院治理骚扰电话有关部署要求,工信部等十三部委自2018 年7 月起至2019 年12 月底,在全国开展综合整治骚扰电话专项行动,开启了社会共治骚扰电话问题的新局面。根据职责调整,中国电信广东公司智能云网调度运营中心2020 年11 月起承担骚扰电话治理工作,承接时工单存在人工处理步骤多、速度慢、易出错等问题,迫切需要自动化处理来解决。
目前骚扰电话治理工作主要有以下几个网站需要登录处理:(1)工信部12321网站;(2)工信部网间联动网站;(3)电话核查系统网站;(4)10999 网站;(5)信通院申诉核减网站。
限于篇幅,本文以工信部网间联动网站为例,说明防骚扰工单全自动化处理的方式。
2 总体方案
总体方案大致分为工单信息下载、号码比对、信令查询、回单、蓝盾登录置黑等几部分,如图1 所示。
图1 整体流程
后面就这几部分分别说明。
3 方案详细说明
3.1 工单信息下载
工单信息下载流程如图2 所示,我们采用Python 的request 模块,模拟发送https 请求来登录网间联动网站。
图2 工单信息下载流程
其中涉及到验证码识别,网站验证码存在干扰线,普通OCR 无法识别。经过分析,我们采用google 的深度学习技术tensorflow 训练识别,首先通过程序批量下载网站验证码图片,如图3 所示,并对每张图片进行正确答案标注命名。
图3 标注验证码
然后构建CNN,训练分类器,通过运行代码进行训练,通过几千次的迭代,训练出来的分类器模型在验证集上识别的准确率为97.5%。
最后利用模型识别验证码,识别通过后访问工单信息链接,将需要待处理的广东电信工单保存下来。
3.2 号码比对
下载下来的工单号码中,夹杂着虚商号码、他网固话、他网手机号码以及外省号码,需要剔除这些号码。我们采用Python 的pandas 模块来进行对比计算,步骤如下。
(1)首先Python读取虚商号码表、他网固话表、手机H 码表等表转换为pandas 格式。
(2)Python 读取待处理工单,根据第一步各种号段表的长度,分别将待处理工单的号码截取前六位、七位或者八位,利用程度逐一进行比对,对非电信号码进行标注。
(3)将第二步比对的属于电信的号码合成一张中电信号码表,其余号码合成另外一张非中电信表,以便后面信令查询和回单。
3.3 信令话单查询
根据防骚扰工作的要求,需要对上一步属于中电信的号码进行话单与信令才查询,根据话单和信令查询结果进行回单,而传统的话单信令查询需要通过手工通过4A 登录信令监测系统和设备话单逐一输入号码逐个查询,而且信令系统有IMS、移动网、网间关口局、VOLTE、软交换多种网络类型,每个网络类型又有SIP/ISUP/DIAMETER/WIN/TUP 等多种协议,一个号码要在多个页面分别查询,查询时长长,也容易漏掉信令或者话单,需要通过自动化来解决这个问题。
我们研发了信令系统和话单查询模块,实施步骤如图4 信令话单查询流程。
图4 信令话单查询流程
(1)首先根据号码的查询时间范围、号码的网络类型、号码的归属地等信息规整成一个TXT 文档;
(2)然后上传指定的FTP;
(3)FTP收到号码后启动调度查询程序,同时向IT接口查询话单和信令监测系统接口查询信令;
(4)FTP上生成两个结果,一个是每个号码有无话单信令的结果,另外一个是具体的信令话单结果;
(5)从FTP上取下结果,作后续进一步的处理。
3.4 回单
根据信令话单的查询结果进行回单,网间联动网站提供了批量回单的地方,需要根据模板填写并上传,具体到程序上,我们采用Python request 模块,模拟发送https 请求,具体步骤如图5 所示。
图5 自动回单流程
3.5 蓝盾置黑
蓝盾置黑也是模拟发送https 请求,但是蓝盾系统登录有所不同,通过抓包发现,输入账号密码后,还会进行二次校验,生成加密的字符串。经过多次分析发现,中间经过了128 位AES 加密算法,如果通不过这层校验无法进入蓝盾系统进行下一步操作。为了解决这个问题,进行了多次尝试。
(1)通过抓包找到密钥,但是密钥每次都不一样,毫无规律可循,方法失败。
(2)找到网上的AES 128 位加密算法,编写成Python 程序,发现生成的密钥跟蓝盾上的不一致,方法依旧失败。
(3)通过多次debug 找到蓝盾的AES 加密程序,但此程序是一个js文件,无法在Python或者Java程序上运行。针对这个问题经过摸索也有两种解决方案。
①读懂此加密js 文件,通过Python 重写此程序。但是这个js 文件前后数百行,多重嵌套调用,且用了大量的缩写引用,晦涩难懂,花了几天时间勉强读完用Python程序重写后依然无法通过密钥校验,看来此方法坑太多,失败。
②通过Python 调用js 文件生成密钥,通过网上查询,发现有node.js、selenium+phantomjs、pyexecjs等多种方法。通过多次调试,并修改js 文件,最终用pyexecjs 模块调用js 生成了正确的密钥,问题解决。
密钥生成后,通过发送https 请求,把信令话单查询结果中不是双无的号码生成excel 文件,并上传到蓝盾置黑,这一步顺利完成。
4 防骚扰工单未来面临的挑战
本文提出并部署的防骚扰工单全自动化处理办法,能够快速、准确地处理工单,极大减轻工作负担。后续网站会出现一些需要人工识别的附件,比如营业执照、身份证、保证书以及各种录音,需要人工智能技术,如图像识别、NLP 等技术来处理,如何实现高效、准确地识别值得深入研究。