融合PSTN的移动互联网语音平台系统及其应用方法与流程

文档序号:15701266发布日期:2018-10-19 19:53阅读:215来源:国知局

本发明涉及通信领域,具体而言,涉及一种融合公用电话交换网(Public Switched Telephone Network,简称为PSTN)的移动互联网语音平台系统及其应用方法。



背景技术:

随着信息技术的发展,移动互联网时代的到来,移动社交产品逐渐兴起,目前市面上常见的如微博、QQ、微信、陌陌、YY等产品也都在提供自媒体信息发布、即时通讯、陌生人交友、音视频直播等业务场景服务的同时,多元化地融入社交元素,使得各类移动互联网APP能够有丰富的产品功能和良好的用户体验。

在社交平台产品上,人与人的交流是基本要素,常见的交流功能主要有:图文即时消息、异步语音消息(半双工网络电话(Voice Over Internet Protocol,简称为VOIP)语音消息)、实时语音通话(全双工VOIP语音通话)等表现形式。其中“图文即时消息”是最便捷、最常用的交流工具,它通过客户端应用软件和服务器在WiFi/GSM/CMDA等网络中传递文本或多媒体数据,实现图文即时通讯;“异步语音”技术是一种基于网络的“即按即说”业务,该业务功能在用户按下录音按钮时启动录音模块,采集说话音频信号并编码、压缩,通过网络服务器传输到对方手机,接收方设备收到音频数据后,点击播放按钮通过扬声器收听。这种方案通过说话录制语音短信进行社交通讯,释放双手输入信息,降低使用门槛,便利性有一定提升;“实时语音通话”是也是迅速发展起来的VOIP技术,现在宽带网络及4G移动网络普及的情况下,实时语音应用在移动互联网中也得到广泛的发展和应用,连续的语音交流增强了在虚拟网络社交环境中的现实感,也得到了用户的青睐。QQ、微信、YY等互联网社交类产品都实现了好友间的一对一、多对多实时通话产品,这种接近传统电话交流的VOIP网络语音通讯产品给人更加舒服的沟通体验,但它同样也对通讯网络的数据传输质量提出了更高的要求。

鉴于建设成本及使用便利性等因素考虑,市面上的移动互联网实时语音通话产品基本都是使用Internet宽带WiFi及移动3G/4G网络作为通讯承载网络,同时通过服务器软交换系统进行音频数据抖动缓冲、编解码压缩、混音合成处理及分发投递,实现多方实时语音通话的传输交换子系统。目前宽带和4G网络已经普及,虽然4G网络理论上可以达到每秒100Mbps的带宽速度(约每秒12.5MB),但是由于IP数据包在Internet上传输依赖多次网络路由节点数据交换,以及终端网络信号干扰、屏蔽等无线信号强弱因素引发的网络问题,仍有一部分移动设备的网络访问质量不佳,导致出现Internet网络中断或数据传输延迟抖动较大等不适宜使用VOIP实时语音的场景。

因而,在Internet网络不可用场景下,用户对使用移动互联网实时语音通话产品又有强需求的情况下,采用何种技术方案,能够实现实时语音沟通需求,是目前亟待解决的问题。



技术实现要素:

本发明的主要目的在于公开了一种融合公用电话交换网(PSTN)的移动互联网语音平台系统及其应用方法,以至少解决相关技术中在Internet网络不可用场景下,用户对使用移动互联网实时语音通话产品又有强需求的情况下,还缺乏能够实现实时语音沟通需求的技术方案的问题。

根据本发明的一个方面,提供了一种融合公用电话交换网(Public Switched Telephone Network,简称为PSTN)的移动互联网语音平台系统。

根据本发明的融合PSTN的移动互联网语音平台系统包括:嵌入有libCES模块的计算机电信集成服务器CTIS,用于向频道接入服务CES发送PSTN用户旁听房间频道的请求包,接收地址端口信息,并开启服务进程接收音频信息;上述CES,用于接收来自于上述CTIS的上述旁听房间频道的请求包,向频道管理服务器CMS发起上述PSTN用户申请加入房间频道的请求包,将上述CMS获取到的地址端口信息发送至嵌入上述CTIS的libCES模块,开启服务进程向上述CTIS发送音频信息;上述CMS,用于确定可加入上述房间频道时,创建虚拟用户并请求加入频道服务器CS,从上述CS获取地址端口信息;上述CS,用于分配上述地址端口信息,并下发上述音频信息。

根据本发明的另一方面,提供了一种融合PSTN的移动互联网语音平台系统的应用方法。

根据本发明的融合PSTN的移动互联网语音平台系统的应用方法包括:频道接入服务器CES接收来自于计算机电信集成服务器CTIS的旁听房间频道的请求包;向频道管理服务器CMS发起上述PSTN用户申请加入房间频道的请求包;在上述CMS确定可加入上述房间频道时,创建虚拟用户并请求加入频道服务器CS,从上述CS获取地址端口信息之后,上述CES将上述地址端口信息发送至嵌入上述CTIS的libCES模块;上述libCES模块与上述CES分别开启服务进程,用于使上述CES向上述CTIS发送音频信息。

与现有技术相比,本发明实施例至少具有以下优点:将公用电话交换网PSTN接入移动互联网语音平台,形成融合PSTN的移动互联网语音平台系统,采用该系统,在Internet网络不可用场景下,用户对使用移动互联网实时语音通话产品又有强需求的情况下,能够实现实时语音沟通需求的目的,提供了PSTN网络访问移动互联网语音平台的渠道。

附图说明

图1是根据本发明实施例的融合公用电话交换网PSTN的移动互联网语音平台系统的结构框图;

图2是根据本发明优选实施例的CES和CTIS的结构示意图;

图3是根据本发明优选实施例的融合PSTN的移动互联网语音平台系统的结构框图;

图4是根据本发明实施例的融合PSTN的移动互联网语音平台系统的应用方法的流程图;

图5是根据本发明优选实施例的请求旁听聊天室流程的时序图;

图6是根据本发明优选实施例的请求结束旁听聊天室流程的时序图;

图7是根据本发明优选实施例的CMS踢出用户流程的时序图;

图8是根据本发明优选实施例的请求参与发言流程的时序图。

具体实施方式

下面结合说明书附图对本发明的具体实现方式做一详细描述。

图1是根据本发明实施例的融合公用电话交换网PSTN的移动互联网语音平台系统的结构框图。如图1所示,该移动互联网语音平台系统包括:嵌入有libCES模块100的计算机电信集成服务器CTIS 10,用于向频道接入服务CES发送PSTN用户旁听房间频道的请求包,接收地址端口信息,并开启服务进程接收音频信息;上述CES 12,用于接收来自于上述CTIS的上述旁听房间频道的请求包,向频道管理服务器CMS发起上述PSTN用户申请加入房间频道的请求包,将上述CMS获取到的地址端口信息发送至嵌入上述CTIS的libCES模块,开启服务进程向上述CTIS发送音频信息;上述CMS 14,用于确定可加入上述房间频道时,创建虚拟用户并请求加入频道服务器CS 16,从上述CS获取地址端口信息;上述CS 16,用于分配上述地址端口信息,并下发上述音频信息。

在Internet网络不可用场景下,用户对使用移动互联网实时语音通话产品又有强需求的情况下,应用图1所示的融合PSTN的移动互联网语音平台系统,能够实现实时语音沟通(例如,旁听房间频道)的目的,提供了PSTN网络访问移动互联网语音平台的渠道。

优选地,上述移动互联网语音平台系统还可以包括:WEB服务器18;负责调用上述WEB服务器的接口获取房间频道信息,在用户访问相应流程时播报上述房间频道信息的互动语音应答系统(IVRS)20,分别与上述WEB服务器和上述CTIS相连接。

IVRS 20,封装HTTP访问接口,调用Web服务器30接口获取房间频道信息,在用户访问相应流程时播报房间信息(类型,人数等),供电话用户通过IVR流程选择进入。电话用户选择进入频道时,IVRS通过与CTIS之间接口将房间ID信息传入CTIS。最后由CTIS调用libCES相应接口进入频道。

IVRS 20旁听语音社交平台房间声音功能,语音社交平台(CMS)实现一个虚拟的“透明”用户将对应的房间音频递送到CTIS网关。CTIS内部需设计一个频道用户管理器,可以记录当前网关节点电话参与人数信息,同时通过该频道用户管理器实现音频流订阅功能。

CTIS是语音社交平台频道音频数据对接PSTN网络管理的主体,它负责调用嵌入CTIS的libCES共享库模块提供的进入语音社交平台频道的请求接口,将用户加入语音频道。CTIS实现频道和频道成员管理器设计,用于管理相应的内存数据,在调用嵌入CTIS的libCES共享库模块进入(离开)房间频道时,维护管理器中的数据。为节省CTIS机房流量带宽,一个房间频道的下行语音只通过一个虚拟用户通道(对应的虚拟用户管理机制由CMS/CES/libCES配合完成)发给CTIS。CTIS调用libCES的相应接口完成接入语音社交平台房间频道的功能,同时,libCES在成功接入房间后会回调输出音频数据。此时,CTIS根据自己管理的房间频道和成员信息,将不断收到的某房间语音包数据(G.711a-law)通过驱动API递送到板卡相应的底层硬件通道,实现电话线路上的音频播放。

为实现电话用户与语音社交平台用户实时聊天通讯功能,这时libCES将会为发言用户创建全双工语音上下行通道,用于发送用户发言的上下行音频数据。

优选地,上述CTIS可以包括:下行接收端口,上行发送端口,分别与上述下行接收端口和上述上行发送端口连接的计算机电话集成CTI控制器,与上述CTI控制器连接的CTI中继交换设备。

CTIS一般部署在工业控制机上,该工控机PCI插槽中可以插入或连接常见的数字中继交换设备(如:三汇SHD-120D-CT数字中继语音卡,东进Keygoe3003多媒体交换机),数字中继交换设备背板接入数字中继同轴电缆。工控机上同时安装好语音卡的硬件驱动,CTIS通过软件程序启动并操作语音卡驱动实现对中继线路的访问控制(如:电话接续、音频录音、音频播放等基本操作)。

鉴于CTIS需要连接板卡硬件,而硬件驱动版本受各类硬件产品厂家的限制,经常存在对操作系统支持品质不一致的问题。因此,CTIS也可能存在多种系统版本的可能性,常用的便是Windows平台和Linux平台。因此libCES需要提供多种运行系统的版本,对应Windows系统,应该是libCES.dll,对应Linux系统,应该是libCES.so。

libCES在运行期被操作系统集成载入CTIS进程分配的内存地址空间中运行。它是CES业务的应用层集成SDK,它对外提供服务均通过API实现,我们设计它提供函数级接口调用,便于CTIS等集成接入方快速集成。

libCES与CES通讯,通过TCP通道来传输信令,通过UDP通道传输语音。将各类指令协议和音频流数据进行封装处理,提供API级的SDK开发包供应用层集成使用。

libCES通过C语言函数指针方案设计了回调通知接口,CTIS对应的应用层程序将自己用于接收指令和音频数据的函数地址传递到libCES模块内存中,libCES在收到不同种类数据后,解包转换后通过回调函数指针将数据传递到CTIS应用层。

IVRS获得语音社交平台聊天室房间列表信息,与CTIS通讯时提供房间ID,由CTIS调用libCES的相应接口完成接入移动互联网语音社交平台聊天室频道的功能。同时,libCES回调输出房间音频数据。

优选地,上述CES包括:上行接收端口,与上述上行接收端口连接的编码器,与上述编码器连接的上行发送端口;下行接收端口,与上述下行接收端口相连接的抖动缓冲控制器、与上述抖动缓冲控制器相连接的音频解码器、与上述音频解码器相连接的混音器,与上述混音器相连接的下行发送端口。

优选地,上述CES与上述CMS之间建立有传输信令的传输控制协议(TCP)通道,上述CES与上述CS之间建立有传输语音的用户数据报协议(UDP)信道。

优选地,上述CES与上述CTIS之间建立有传输信令的TCP通道,以及传输语音的UDP信道。

图2是根据本发明优选实施例的CES和CTIS的结构示意图。

如图2所示,CES是虚拟移动互联网语音社交APP终端的核心服务器,它是每个PSTN接入点的上位(比作自动化控制系统的上位机)音频处理单元。

libCES作为CES的应用集成SDK,在CES和CTIS等服务器之间建立通讯桥梁。图2将libCES透明化处理,忽略该模块的逻辑存在,便于表达服务器之间的组织关系。

CES在与CMS之间在“加入频道”信令对接成功后,CES与CS建立UDP通讯信道(采用RTP协议通讯),并进入指定频道访问数据。该UDP信道是全双工信道,可以进行下行音频包传输和上行音频传输。关于VOIP音频数据包的采集、编码压缩、传输等过程不是本发明的重点,不再赘述。

接收下行语音时,CES的抖动缓冲控制器负责音频数据的传输抖动缓冲控制、音频解码器对音频进行解码,随后混音器将解码后的音频数据与接收到的房间背景音乐媒体流数据(音乐媒体流接收模块可能存在音乐媒体流解码、重采样等动作)进行混音,以及音频采样宽度、频率、编码格式转换处理后,然后通过下行发送端口送达CTIS,由CTIS操作板卡输出到PSTN线路。

接收上行语音时,CES的编码器负责将音频数据进行编码压缩,上行发送端口负责封包发送,最终将音频数据送达CS处理。

其中,本系统CES与CS之间音频编码可以采用SILK编码算法(码率30kbps),CES与CTIS之间的音频编码可以采用G.711a-law编码算法(码率64kbps)。所有音频编解码过程都在CES内完成计算。

如图2所示,CTIS是接入PSTN网络,控制语音中继板卡设备的处理服务器,进行音频数据与板卡链路数据对接,它是每个PSTN接入点的下位(比作自动化控制系统的下位机)音频处理单元。

CTIS通过数字中继交换设备,例如,将中继E1上的N个(例如,32个)信道时隙(Timeslot)封装为30个通道(0/16时隙是同步及信令时隙),每条中继E1提供30个用户并发访问能力。

CTIS可以为每一语音社交平台房间频道创建虚拟用户(事先创建并管理),用于统一接收语音社交平台各频道下行语音,如果PSTN电话用户只旁听频道内容,只需在CTIS内部订阅该频道音频流。CTIS会将音频数据递送给各音频订阅者。

CTIS在PSTN用户希望上座发言时,CTIS通过CES为该用户创建独享的信令(信令由CES与ES建立的独享TCP信道传输并通过ES转发至CMS)及音频流(音频流与CS进行UDP通讯)传输信道,实现全双工的音频实时数据收发。CTIS与语音板卡音频数据交互,采用PCMA(G.711a-law编码)语音压缩标准。

CTIS通过驱动控制板卡进行内存放音及内存录音,实现与VOIP系统的实时音频数据录播控制。它将内存PCMA数据递送到板卡驱动实现放音,同理,录音时板卡也会通过驱动回调CTIS程序获取录音的PCMA内存数据。

优选地,上述CMS 14,可以通过全双工UDP通信信道与上述CS 16相连接。

优选地,上述移动互联网语音平台系统还可以包括:接入服务器(ES),用于分配上述PSTN用户的临时用户标识,接收并识别上述CES与上述ES专用通信包后确定待转发的后端服务器,对接收到的上述专用通信包中的上述临时用户标识进行鉴权,在鉴权通过的情况下,向上述CMS发送加入房间频道的请求包;上述嵌入上述CTIS的libCES模块,还用于在上述PSTN用户需要在上述房间频道参与发言时,控制上述CTIS取消上述PSTN用户对上述房间频道的下行音频数据的订阅,通过消息控制上述CES向ES建立TCP通信信道,并向ES申请用于标识上述PSTN用户的临时用户标识;上述CES,还用于将包含上述临时用户标识的业务信令数据嵌入上述CES与上述ES专用通信包中发送至上述ES,将用户加入房间频道的响应消息发送至嵌入上述CTIS的libCES模块;上述CMS,还用于创建虚拟用户并请求加入频道服务器CS,从上述CS获取地址端口信息之后,将包含上述地址端口信息的加入房间频道的响应包嵌入上述CES与上述ES专用通信包中经由上述ES转发至上述CES。

应用上述融合PSTN的移动互联网语音平台系统,能够实现实时语音沟通(例如,在房间频道申请发言)的目的,提供了PSTN网络访问移动互联网语音平台的渠道。

在优选实施过程中,负责提供房间频道信息的接口的接入服务器ES 104,分别与上述CMS 102以及上述PSTN接入端系统20的WEB服务器204相连接,其中,上述ES 104通过超文本传输协议HTTP协议与上述WEB服务器204通信。

其中,CMS是社交服务器的的语音聊天频道管理服务器,它是社交平台实时语音功能的核心服务器之一。在该接入方案中,提供PSTN接入用户加入聊天室的接口逻辑,创建一个用户并且加入到CS。并将CS分配用户接入语音相关RTP服务IP/PORT等信息返回给客户端(CES)。

出于管理和成本等因素考虑,租用或合作的电信、联通、移动等电信运营商数字中继E1线路通常只能接收或者呼出网内电话号码。因此CMS支持多CES节点接入,即很多运营商机房都会部署IVR系统。因此,CES也会有多个,各个CES都会根据业务需求申请加入相同的聊天房间频道。

CES能够虚拟一定数量的社交平台音频客户端,负责跟CMS通讯将虚拟用户接入CS,获取CS分配的RTP端口、SSRC等音频实时传输信息。

使用与CS相匹配的RTP协议及参数规则和CS通讯,接收聊天房间频道语音,抖动缓冲、音频解码,并且将输出音频重采样为PSTN线路支持的采样频率8K、采样位8bit的G.711 a-law PCM数据。

CES与嵌入CTIS(CTI,Computer Telephony Integration,计算机电信集成。CTIS,CTI Server,接入PSTN网络具有IVR功能的网关系统)的libCES(Windows系统版本为libCES.dll或linux系统版本为libCES.so)通讯,将指令信息和音频数据输出到CTIS,由该服务器控制与CTI中继交换设备API对接,将媒体信息输出到数字中继链路上。

考虑到语音系统迁移和开发复杂度等因素,CES是一个运行于Linux系统的应用服务程序,CTIS根据数字中继交换设备产品的需求版本确定,可能是Windows服务器程序,也可能是Linux服务器程序。而libCES则是嵌入CTIS的动态运行库。libCES只负责简单控制指令和音频数据序列化封装打包透传工作,无需设计网络抖动控制模块。因此,CES与CTIS需部署在同一机房的1000M局域网内,确保它们之间拥有可靠的网络通讯线路。libCES初始化时作为客户端主动连接CES绑定的监听端口,在他们之间创建出稳定传输的TCP/UDP通讯通道。随后,在通道上转发控制指令和音频数据包。

电话用户与语音社交平台APP用户互通进行多方通话的场景,每个房间频道下行语音采用专用虚拟用户通道,通过CES发送至CTIS,以节省流量带宽。

由于在CTIS之后通过数字语音板卡链接数字中继线路,接入PSTN网络链接的电话用户进行音频数据传输的线路延迟及传输抖动极其微小,而CTIS又集中在一个节点通过CES接入CS。因此,在同一个CTIS网关控制下的用户收听相同聊天频道的音频信息,可以通过统一的下行通道接收数据进行内存数据订阅分发。避免多个数据通道传输相同数据引起的带宽浪费。一般而言电话接入的发言用户需创建独享全双工通道,该电话发言用户的上下行音频均由自己的专用通道传输,不再使用虚拟用户通道数据。

ES可以提供聊天房间频道列表的接口,获取可以进入的开放的房间列表。提供更多个性化的兴趣匹配、人群匹配、好友匹配等特点的房间列表,及房间信息查询服务。ES提供的接口采用HTTP协议进行封装,供IVRS集成HTTP client模块调用拉取数据。

ES作为移动互联网语音平台使用的云端入口服务器,除了为IVRS等服务器提供房间列表等信息外,还肩负移动互联网语音平台的用户接入能力服务。因此,ES具有用户登录、鉴权等一整套功能体系,以实现接入服务功能。同时,ES作为移动互联网语音平台的接入服务器,还实现了移动客户端应用程序APP与CMS之间的网络通讯的代理功能,即移动客户端APP与CMS交互(如:加入频道、离开频道、获取频道成员列表、旁听、发言等动作),不像本文中提到的CES直连CMS的通讯方式,而是所有的通讯都通过APP与ES之间建立的TCP长连接通讯信道代理转发实现。

上述CES作为移动互联网语音客户端逻辑的模拟者,采用直连CMS通信方案,而没有像APP那样直连ES,并通过ES代理实现APP到CMS的通讯。原因如下:

CES作为客户端,在PSTN用户需要进入某移动互联网语音APP房间频道时,会判断是否有已初始化建立完成的该频道的通信信道。没有则默认建立一个通信信道,实现对CMS/CS上某一频道的订阅收听功能。该功能是作为PSTN系统输出音频的主要工作模式(即:旁听模式),这种模式下,收听方仅仅接收房间频道的音频输出,由于是服务器之间的专有设计,可以匿名实现,不以用户身份为基础开展业务逻辑设计。

CES作为客户端,PSTN用户希望参与频道互动,这时候系统就需要建立全双工的语音信道。PSTN发言用户通过自己独享的全双工语音信道实现和移动互联网语音系统其他用户之间的双向实时语音交流。而拥有独享全双工信道的用户,必然在其他用户产品端需要显示其身份和状态信息,此时仍然是匿名用户则无法满足需求。所以这时CES需要首先和ES通讯申请用户身份令牌(即:用户ID,该ID可以是临时分配占用,也可以是永久分配占用),之后通过该用户ID为标识,像普通发言用户一样进入房间频道与其他用户交互。

ES作为移动客户端APP的接入服务器,提供TCP长连接服务,通过与APP客户端之间约定的定制信令协议包进行业务交互。这些信令协议包结构化数据最终在网络上传输前会被序列化为二进制数据流。本例中,IVRS由于是外部的业务服务器,出于接口封装的考虑,不便于与ES进行定制TCP长连接数据通讯,因此我们设计IVRS与ES之间的房间频道列表信息数据获取采用业内广泛使用的HTTP协议进行,降低对接难度。因此ES可以内嵌HTTP服务器功能,接收来自客户端的HTTP请求并返回房间频道信息。也可以借助其他系统(如:数据库)转存数据,并通过传统的HTTP服务器(如:Nginx/Apache/Nodejs)实现数据获取服务。

图3是根据本发明优选实施例的融合公用电话交换网PSTN的移动互联网语音平台系统的结构框图。如图3所示,该移动互联网语音平台系统包括:移动互联网语音平台,以及分别与上述移动互联网语音平台相连接的至少一个PSTN接入端系统,其中,各个PSTN接入端系统分别部署在一个机房。

图3中,移动互联网语音平台中,CMS分别与ES和CS相连接。PSTN接入端系统中,CTIS分别与CES和IVRS相连接,IVRS与WEB服务器相连接。WEB服务器通过HTTP协议与ES进行通信,CMS与CES之间建立有传输信令的TCP信道,CES与CS建立有传输语音的全双工UDP信道。

在优选实施过程中,PSTN系统的用户,在IVRS/CTIS配合控制下接入,通过WEB服务器的接口向ES做鉴权认证,然后通过CES,向CMS发起请求。CMS建立虚拟用户,向CS索要分配的地址端口等信息,并回复给CES。然后,PSTN系统的用户,通过CTIS做为通讯接入,IVRS进行数据逻辑业务的管理,作为一个电话用户,在CES端,模拟成一个虚拟用户,通过CS在聊天室中和其他的用户进行通信。

图4是根据本发明实施例的融合PSTN的移动互联网语音平台系统的应用方法的流程图。如图6所示,该融合PSTN的移动互联网语音平台系统的应用方法包括:

步骤S401:CES接收来自于计算机电信集成服务器CTIS的旁听房间频道的请求包;

步骤S403:向频道管理服务器CMS发起上述PSTN用户申请加入房间频道的请求包;

步骤S405:在上述CMS确定可加入上述房间频道时,创建虚拟用户并请求加入频道服务器CS,从上述CS获取地址端口信息之后,上述CES将上述地址端口信息发送至嵌入上述CTIS的libCES模块;

步骤S407:上述libCES模块与上述CES分别开启服务进程,用于使上述CES向上述CTIS发送音频信息。

在图4所示的方法中,PSTN用户,在CTIS接入,通过CES向CMS发起请求。CMS建立虚拟用户,向CS获取地址端口信息,并回复给CES,采用上述通信方法,在Internet网络不可用场景下,用户对使用移动互联网实时语音通话产品又有强需求的情况下,实现了实时语音沟通(例如,用户旁听房间频道)的目的,提供了PSTN网络访问移动互联网语音平台的渠道。

优选地,在CES接收来自于计算机电信集成服务器CTIS的旁听房间频道的请求包之后,还可以包括:上述CES解析上述旁听房间频道的请求包,在确定上述PSTN用户加入过上述房间频道时,CMS清除上述PSTN用户在上述房间频道已过期的数据。

优选地,上述CMS从上述CS获取地址端口信息,并向上述CES回复上述地址端口信息之后,还可以包括:上述CES提供分配给上述PSTN用户的音频信道端口信息,将上述音频信道端口信息与上述地址端口信息一起回复至嵌入上述CTIS的libCES模块。

优选地,上述libCES模块与上述CES分别开启服务进程,用于使上述CES向上述CTIS发送音频信息可以进一步包括:上述libCES模块定时循环向上述CES的监听端口发送网络地址转换NAT穿越包;CES定时循环向CS分配的RTP端口发送NAT穿越包;上述CES接收来自于上述CS的下行音频数据,并对上述下行音频数据进行处理,转换为预定语音格式的语音信息发送至上述CTIS。

优选地,对于聊天房间频道存在背景音乐数据的情形,上述libCES模块与上述CES分别开启服务进程,用于使上述CES向上述CTIS发送音频信息还可以进一步包括:上述libCES模块定时循环向上述CES的监听端口发送NAT穿越包;CES定时循环向CS分配的RTP端口发送NAT穿越包;上述CES接收来自于上述CS的下行音频数据;上述CES与RTMP服务器建立连接,并接收来自于上述RTMP服务器的背景音乐数据;上述CES确定上述背景音乐数据的采样率是否与上述下行音频数据的采样率一致,如果不一致,对上述背景音乐数据执行重采样;在采样率一致的上述背景音乐数据与上述下行音频数据混音后转换成上述预定语音格式并直接传输至嵌入上述CTIS的libCES模块,并同步至PSTN中继线路上。

以下结合图5进一步描述上述优选实施过程。

图5是根据本发明优选实施例的请求旁听聊天室流程的时序图。如图5所示,该请求旁听聊天室流程包括:

步骤S501:PSTN用户发起旁听聊天室的请求时,通过CTIS的libCES向CES发起旁听房间频道的请求包STRU_CLIENT_CES_START_AUDIT_ROOM_RQ;

步骤S503:CES对该请求包进行解析,判断上述PSTN用户加入过上述房间频道;

步骤S505:在确定上述PSTN用户加入过上述房间频道时,向CMS发起容灾保护处理(如:踢出已本频道已存在的旁听用户);

步骤S507:CMS清除上述PSTN用户在上述房间频道已过期的数据。

步骤S509:CES发起容灾保护处理后,继续向CMS发起申请加入房间的数据包请求,即:STRU_CES_CMS_JOIN_RQ;

步骤S511:CMS解析该数据包后,根据房间状态等指标进行计算能否进行下一步操作,如可以加入房间频道,即创建虚拟用户;

步骤S513:CMS向CS发起PCS请求;

步骤S515:CS收到加入请求后,分配RTP端口;

步骤S517:CS将RTP端口返回给CMS;

步骤S519:CMS以数据包STRU_CES_CMS_JOIN_RS返回给CES;

步骤S521:CES提供分配给该PSTN用户的clientUDP端口;

步骤S523:将RTP端口和clientUDP端口数据统一回复给CTIS;

步骤S525:libCES定时循环向CES的监听端口发送打洞包(即NAT穿越包),并从打洞包的socket接收音频数据包;CES定时循环向CS分配的RTP端口发送打洞包,向CS发送心跳包,并接收CS语音包;

步骤S527:CES提取房间背景音,获取指定背景音的相关信息,启动RTMP管理器,订阅音乐数据流;

步骤S529:启动RTMP服管理器:连接RTMP服务器,根据频道信息订阅实时流媒体数据,解码,并与从CS语音包解码的语音数据进行混音;

步骤S531:将混音数据转换成G.711a-law格式,并通过libCES打洞获取的地址发送给libCES。

优选地,在上述libCES模块与上述CES分别开启服务进程,用于使上述CES向上述CTIS发送音频信息之后,还可以包括:上述CES接收来自于上述PSTN用户通过嵌入上述CTIS的libCES模块提出的结束旁听请求;上述CES判断上述PSTN用户是否已经加入过上述房间频道;在上述PSTN用户加入过上述房间频道情况下,根据上述PSTN用户的用户标识对上述PSTN用户进行校验;在校验通过的情况下,上述CES向上述CMS发送清退通知,以使得上述CMS通知上述CS踢出上述PSTN用户。

以下结合图6进一步描述上述优选实施方式。

图6是根据本发明优选实施例的请求结束旁听聊天室流程的时序图。如图6所示,该请求结束旁听聊天室流程包括:

步骤S601:PSTN用户通过CTIS的libCES向CES提出结束旁听的请求;

步骤S603:CES进行逻辑判断上述PSTN用户加入过上述房间频道;如果是,执行步骤S605。

步骤S605:根据上述PSTN用户的用户标识对上述PSTN用户进行校验;如果是,执行步骤S607。

步骤S607:清理该PSTN用户在该房间频道的所有过期数据资源。

步骤S609:上述CES向上述CMS发送清退通知STRU_CES_CMS_EXIT_ID。

步骤S611:CMS解析后完成后,将该通道数量清理,即踢出该旁听用户,交通知CS踢出该用户。

优选地,在上述CMS通知上述CS踢出上述PSTN用户之后,还可以包括:上述CES接收来自于上述CMS的踢出用户通知;上述CES再次判断上述PSTN用户是否已经加入过上述房间频道;在上述PSTN用户加入过上述房间频道情况下,根据上述PSTN用户的用户标识再次对上述PSTN用户进行校验;上述CES清除上述PSTN用户在上述房间频道所有的数据,并向嵌入上述CTIS的libCES模块发送用户被踢出通知。

以下结合图7进一步描述上述优选实施方式。

图7是根据本发明优选实施例的CMS踢出用户流程的时序图。如图7所示,该CMS踢出用户流程包括:

步骤S701:CMS完成用户踢出的操作后,发送通知STRU_CES_CMS_KICKOUT_ID到CES。

步骤S703:CES再次进行逻辑判断上述PSTN用户加入过上述房间频道;如果是,执行步骤S705。

步骤S705:根据上述PSTN用户的用户标识对上述PSTN用户进行校验;如果是,执行步骤S707。

步骤S707:清理该PSTN用户在该房间频道的所有过期数据资源。

步骤S709:CES回复STRU_CES_CLIENT_BE_STOP_AUDIT_ROOM_ID到libCES,此时用户请求退出操作完成。

优选地,上述通信方法还可以包括:在上述PSTN用户需要在上述房间频道参与发言时,上述libCES模块控制上述CTIS取消上述PSTN用户对上述房间频道的下行音频数据的订阅;上述libCES模块通过消息控制上述CES向ES建立TCP通信信道,并向上述ES申请用于标识上述PSTN用户的临时用户标识;上述CES将包含上述临时用户标识的业务信令数据嵌入上述CES与上述ES专用通信包中发送至上述ES,以使得上述ES对上述专用通信包识别后确定待转发的后端服务器;上述ES对接收到的专用通信包中的上述临时用户标识进行鉴权,在鉴权通过的情况下,向上述CMS发送加入房间频道的请求包;在上述CMS创建虚拟用户并请求加入频道服务器CS,从上述CS获取地址端口信息之后,将包含上述地址端口信息的加入房间频道的响应包嵌入上述CES与上述ES专用通信包中经由上述ES转发至上述CES;上述CES将用户加入房间频道的响应消息发送至嵌入上述CTIS的libCES模块。

优选地,在上述CES将用户加入房间频道的响应消息发送至嵌入上述CTIS的libCES模块之后,还可以包括:CES定时循环向CS分配的RTP端口发送NAT穿越包;上述CES接收上述CTIS操作中继交换设备录音并通过上述libCES模块发送来的上行音频数据,并对上述上行音频数据进行处理,将处理后的上述上行音频数据发送至上述CS。

优选地,在上述CES将用户加入房间频道的响应消息发送至嵌入上述CTIS的libCES模块之后,还可以包括:CES定时循环向CS分配的RTP端口发送NAT穿越包;上述CES接收上述CTIS操作中继交换设备录音并通过上述libCES模块发送来的上行音频数据;上述CES与RTMP服务器建立连接,并接收来自于上述RTMP服务器的背景音乐数据;上述CES确定上述背景音乐数据的采样率是否与上述上行音频数据的采样率一致,如果不一致,对上述背景音乐数据执行重采样;在采样率一致的上述背景音乐数据与上述上行音频数据混音后发送至上述CS。

在优选实施过程中,PSTN用户想要在旁听房间频道内参与发言,CTIS将通过libCES立即为其建立起独享的全双工通讯信道。libCES首先会控制CTIS取消用户所在CTI通道对原有房间输出音频源的订阅。libCES通过消息控制CES向ES建立和普通用户一样的TCP通讯信道,并申请临时userID,用于标识PSTN用户。随后,CES为该用户服务的所有信令消息全部通过ES代理交互,不再依赖CES与CMS之间的直连TCP信道工作。

CES与CMS通讯定义了业务的信令包(如:加入、离开等),该信令包序列化后的内存块数据将作为“小包”数据嵌入CES与ES通讯的专有“大包”(一种特定的通讯信息“容器”包,该“容器”包有指定的包类型编号,ES识别到之后立即就能够根据约定规范确认该“容器”包中承载的数据内容应该转发给哪台后端服务器,从而实现代理通讯的机制)中,从CES发往ES,再由ES转发至CMS实现业务逻辑。反向,CMS需要回包给CES时,它先发送包含真实载荷的容器包给ES,再有ES路由转发至CES。以上描述的代理机制是依据移动客户端APP与ES服务器交互的通讯模型实现的(移动客户端APP所有的信令交互全部通过其与ES建立的TCP长连接进行,仅实时语音数据会与CS通过UDP方式通讯),在全双工模式下,CES模拟为一个APP客户端真实用户代替CTIS接入的PSTN通道完成各类业务交互。

CES借助ES代理完成与CMS的加入频道参与发言的信令交互后,会与CS交互完成下行语音的接收工作和上行语音的编码转换及发送工作,从而实现独享的全双工信道实时双向通讯。

以下结合图8进一步描述上述优选实施方式。

图8是根据本发明优选实施例的请求参与发言流程的时序图。如图8所示,该请求参与发言流程包括:

步骤S801:libCES控制CTIS取消用户所在CTI通道对原有房间输出音频源的订阅。

步骤S803:上述libCES模块向CES发送请求STRU_CLIENT_CES_USER_JOIN_ROOM_RQ。

步骤S805:CES向ES发送请求STRU_CES_ES_USER_ID_FETCH_RQ。

步骤S807:ES分配临时会员ID,创建临时会话sessionID

步骤S809:ES向CES返回响应STRU_CES_ES_USER_ID_FETCH_RS。

步骤S811:CES保存保存userID/sessionID。

步骤S813:上述CES将包含上述临时用户标识的业务信令数据嵌入上述CES与上述ES专用通信包中发送至上述ES。

步骤S815:上述ES对接收到的专用通信包中的上述临时用户标识进行鉴权。

步骤S817:在鉴权通过的情况下,向上述CMS发送加入房间频道的请求包。

步骤S819:上述CMS创建虚拟用户,向CS请求分配端口资源。

步骤S821:将包含上述地址端口信息的加入房间频道的响应包嵌入上述CES与上述ES专用通信包中发送至ES。

步骤S823:遍历并获取下行TCP通道。

步骤S825:ES将来自于CMS的专用通信包转发至CES。

步骤S827:上述CES将用户加入房间频道的响应消息发送至嵌入上述CTIS的libCES模块。

步骤S829:开始向CS分配的用户音频数据接收端口发打洞包(即NAT穿越包),向CS发送心跳包,开始接收CS语音包。接收来自CTIS操作中继交换设备录音并通过libCES发来的用户上行语音包,转换编码后发往CS。

步骤S831:如果房间设定有背景音,获取音乐直播rtmp_uri,启动RTMP管理器,订阅音乐数据流。

步骤S833:启动RTMP管理器:1、连接rtmpserver,并握手成功;2、根据频道信息订阅实时音乐流媒体数据;3、解码音乐流媒体数据,并与语音数据进行混音。

步骤S835:将混音数据转成G.711a-law格式,并通过从libCES打洞获取的地址发送给libCES。

综上所述,借助本发明提供的上述实施例,将公用电话交换网(PSTN)接入移动互联网语音平台,形成融合PSTN的移动互联网语音平台系统,采用该系统,在Internet网络不可用,但用户对使用产品又有强需求的情况下,能提供PSTN网络访问平台的渠道,实现实时语音沟通(例如,PSTN用户旁听移动互联网语音平台房间频道、PSTN用户参与移动互联网语音平台房间频道发言)需求的目的。该系统实施后,能够有效提供更多的访问途径给终端产品用户。同时,也可以利用本技术对接市面上存在的一些基于纯PSTN电话网络建设的语音社区,丰富这些语音社区的产品内容,搭建出封闭的传统PSTN语音交流社区与移动互联网用户对接的系统平台,扩大产品用户面,丰富人们的沟通渠道。

以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1