一种基于软交换的接入层嵌入式IP录音方法及系统与流程

文档序号:16631944发布日期:2019-01-16 06:39阅读:499来源:国知局
一种基于软交换的接入层嵌入式IP录音方法及系统与流程

本发明涉及一种基于软交换的接入层嵌入式ip录音方法及系统。



背景技术:

随着ip电话技术的进一步发展,传统的电路交换网正面临着向分组交换网络的过渡与融合,不同网络间的互通,通信方式的变革。通信载体的多样化正在成为电信发展的大趋势,使得以软交换为核心的通信网络成为未来通信发展的必然趋势,软交换以分组网络为基础,采用业务与控制,接入设备(媒体网关、中继网关和综合接入设备等,)负责接入和承载。对于每次呼叫,需要软交换机和接入设备两者协同工作才能完成。软交换的体系架构分为4个层面:业务层、控制层、传输层和接入层,接入层是将各种不同的网络及终端设备接入,主要是把与现有网络相关的各种网关或终端设备接入软交换控制网络体系中,接入层包括信令网关,中继网关,接入网关,综合接入网关,无线接入网关,网络接入服务器等,

鉴于软交换体系包容数据网络以及电路交换接入端口,可将不同协议的网络互联互通,实现异构网络间的充分融合,而且,软交换体系承载多种媒体,多种应用,从而构造ip电话系统的多种功能,为人们提供形形色色的勾通方式,特别是软交换体系源于tcp/ip网络架构,其低廉的成本打破了传统高投入电信系统的壁垒,可方便为大中小企业定制自身的语音专属业务,因此将软交换体系引入各个行业,开发符合企业业务发展需要的软交换ip电话综合业务体系具有现实意义。

电话录音系统,它记录呼叫中心座席与客户的通话以供调听,是现有通信技术中重要的子系统,传统的呼叫中心使用的电话录音系统是基于电路交换的pbx(privatebranchexchange,专用交换机),录音系统主要采用并线的方式对模拟线或数字中继线进行录音。由于ip电话具有成本低、功能强、易维护等特点,所以现在越来越多的呼叫中心系统引入了ippbx和ipphone取代传统的电路交换pbx和传统话机。这样系统中便需要设置针对ip电话系统的录音系统。在企业的具体应用中,录音是应急、指挥和调度等系统的一项重要功能,它用来记录事件处理过程中的关键信息,以便为日后的工作提供检验依据和借鉴经验。随着应急指挥和调度等系统向ip环境的过渡,如何在软交换网络中实现ip录音功能,成为业界关注的课题。

目前传统的电话录音系统解决方案包括:(1)外中继并线(2)单步会议式;或者采用在局域网内录音,具体模式有三种:(1)纯软模式为cpu+网卡+软件;(2)硬件模式为ip解析卡+语音处理dsp;(3)软/硬结合模式:网卡+解码器或ip解析卡+软件解码;这些传统的解决方案都避开了采用ip,是在ippbx前端对电路交换的语音进行录音。虽然传统的录音方法也实现对ip电话的录音,但显然其灵活性要逊色于在分组线路上进行录音。而且传统的录音方法还需要语音卡的支持,而在ippbx分组线路用纯软的模式实现录音,大大降低了成本。

语音电话经软交换改造之后,原模拟录音设备已不适用,虽然软交换网络核心层的录音可通过软交换原厂新提供的ip录音软件和服务器实现。接入层和末端的录音在核心层设定并提取,但由于接入层里的末端用户种类的多样性,如营业厅、三产和电厂等业务类型和隶属关系的特殊性,造成这些部门从核心部门提取录音不方便。因此,亟需一种能够安装在接入层的小型录音设备来解决末端用户录音的实现和提取便利性的技术问题。



技术实现要素:

本发明的一个目的在于如何避免包括集线器在内的rs485网络设备出现闩锁,保障监控系统可靠运行。为实现上述目的,现提供一种基于软交换的接入层嵌入式ip录音方法,包括的步骤是:

步骤1)从接入层交换机提取相应指向ip话机号码或ip地址的端口数据;

步骤2)与接入层交换机连接的嵌入式录音服务器中采用包括插入、监听和强拆的功能模块实现录音过程;

步骤3)将录音文件通过包括ip地址、绑定号码、时间段的方式提取、转换成语音数据并存储。

另外,根据本发明实施例具有如下附加的技术特征:

根据本发明的一个实施例,

工控机中利用windows操作平台上来实现对底层包的截取过滤;包括三个部分:

第一个模块npf:是一个虚拟设备驱动程序文件;它的功能是过滤数据包,并把这些数据包原封不动地传给用户态模块,这个过程中包括了一些操作系统的代码;

第二个模块packet.dll为win32平台提供了一个公共的接口;不同版本的windows系统都有自己的内核模块和用户层模块;packet.dll用于解决这些不同;调用packet.dll的程序运行在不同版本的windows平台上,而无需重新编译;

第三个模块wpcap.dll是不依赖于操作系统的;它提供了高层、抽象的函数;packet.dll和wpcap.dll;packet.dll直接映射了内核的调用;wpcap.dll提供友好、功能更加强大的函数调用;winpcap的优势提供了一套标准的抓包接口,与libpcap兼容,使得原来许多unix平台下的网络分析工具快速移植过来便于开发各种网络分析工具,充分考虑了各种性能和效率的优化,包括对于npf内核层次上的过滤器支持,支持内核态的统计模式,提供了发送数据包的能力。

根据本发明的一个实施例,

所述步骤2)中,录音系统架构由客户端和服务器端组成;客户端包括普通座席和班长,普通座席控制自己的录音,班长控制所有座席的录音并且调听录音;服务器端是录音服务器,它完成数据包的捕获、解析、形成录音文件,并且实现与客户端的交互;

客户端软件采用的是ocx控件的方式提供给座席和班长,其通过socket与服务器端连接,发送消息完成客户端的相应操作;对于普通座席,提供登入和登出消息,以通知服务器座席是否需要被录音;对于班长,提供将任意座席登入和登出的方法,以控制对座席的录音;还提供了调听方法,即连接到数据库查看有那些录音记录,并通过ftp的方式从录音服务器上下载所需的录音记录;

服务器端的软件结构分为两层:核心层和控制层,其中核心层实现基本的录音功能,专注于数据包的捕获、解析、处理,完成录音,提供给业务层添加、删除被录音座席以及启动、停止录音接口函数;控制层实现对录音的控制,包括服务器端控制台和客户端模块两个模块;前者是录音服务器的ui界面,用户通过它对录音服务器进行控制;后者完成服务器端与客户端的交互,使得普通座席登入、登出服务器,班长将座席人、登出服务器以及调听录音记录。

根据本发明的一个实施例,

所述核心层完成从网卡抓取数据包、数据包投递、sip数据包解析、语音数据包形成声音文件功能,核心层程序主要有三个模块组成:网卡抓包模块、sip消息处理模块和语音包处理模块;软件设计采用了多线程技术,使得各模块并行工作;网卡抓包模块和sip消息处理模块各由一个线程执行,当某个座席开始通话时,便为其启动一个线程执行语音数据包处理模块;

所述网卡抓包模块:

利用系统中wpcap.dll不依赖于操作系统,提供了更加友好、功能更加强大的函数调用;这里在实现网卡抓包模块调用的wpcap.dll中的相关函数;

在数据包捕获和过滤中:

a)获得本地的网卡列表并选择合适的网卡:pcap_findalldevs()这个函数实现了此功能,

它返回一个pcap_if_t结构的链表,链表的每项内容都含有全面的网卡信息;

b)打开网卡并将其设为混杂模式:pcap_open_live()这个函数实现打开网卡,如果将其第三个参数设为1就将其设为混杂模式了;

c)编译、设置网卡过滤器:依次调用pcap_compile()、pcap_open_live()便实现此功能,并将第二个参数设为“ipandudp”便能过滤出udp数据包;

d)开始抓包:在循环语句中不断的调用pcap_next_ex()便会从网卡中不断的抓包、过滤;通过这个api会得到抓到数据包的头指针;

另外,在数据包解析和投递中

数据包的解析:

从网卡中抓到的包返回的是mac的头指针,这样只要进行相应的指针偏移操作便得到相应的协议数据包的包头,然后对相应的协议进行解析;得到协议头指针,再结合ip协议和udp协议便解析出来数据包的ip地址和端口号了;

数据包投递:

与通话相关的数据包有sip消息数据包和语音数据包两类;

标准的sip协议采用5060作为其端口号,因此当解析出某个数据包的端口号是5060,则将其看作是sip消息包,投递到缓存sip消息的sip_buffer中;

如果端口号不是5060,则要看这个数据包是不是某个座席的语音数据包;首先通过看数据包的ip地址知道它是哪个座席的数据包;再取出这个座席中的源和目的端口号属性,它们是在sip消息处理模块中解析sip消息获得并设置的,将它们与这个数据包解析出的源和目的端口号进行比较,如果相同则说明这个数据包是该座席的语音包;然后将其投递到这个座席的语音缓存队列中去;

所述sip消息处理模块:

sip消息处理模块不断从sip消息缓存队列中取sip消息包,然后进行sip消息路由、sip消息解析和sip消息处理;

sip消息路由:

sip消息处理模块处理所有座席的sip消息,因此每次取出一个sip消息得知道它是哪个座席的sip消息,通过看消息的源或目的ip便知道其属于哪个座席;

sip消息解析:

对于每个sip消息都要解析出它的请求方法或应答状态码,还要解析出call_id这个标题macipudprtp头,它标识每一次呼叫;此外对于invite消息和其相应的200ok应答,还要解析出消息体sdp中双方协商的语音媒体通信的端口号,这个在抓语音包、进行语音包的投递时要用到;

具体的sip消息解析中使用了osip协议栈;

首先调用parser_init()对osipparser进行初始化,然后调用osip_message_init()和osip_message_parse()便解析出sip消息结构体,

最后对sip消息结构体进行分析,如调用宏msg_is_invite()判断是否为invite方法的sip消息,其它方法和应答状态码也有相应的宏;调用osip_message_get_call_id()得到call_id这个标题头,调用osip_message_get_body()得到sdp消息体,然后依次调用sdp_message_init()、sdp_message_parse()和sdp_message_m_port_get()方法便解析出媒体通信端口号;

sip消息处理

每次解析出sip消息的请求方法或应答状态后要对其进行处理;目的是分析得到座席当前的状态;处理的思想要依据sip协议在控制会话时的具体操作,依此设计出录音服务的状态机;

sip呼叫建立的过程如下图,所以只要解析出具有相同call_id的invite、200ok、ack消息,便判断出一次通话建立了,这时就要启动一语音处理线程,开始进行录音;sip呼叫结束的过程如下图,所以只要解析出具有相同call_id的bye、200ok消息,便判断出这次通话结束了,这时就要退出相应的语音处理线程;

依据sip协议的呼叫建立和通话结束的执行过程过程,设计了录音状态机;涉及七个状态idle、find_invite、find_invite_200、find_bye、begin_record、recording、end_record;呼叫建立时涉及idle、find_invite、find_invite_200、begin_record四个状态,

当依次发现具有相同call_id的invite、200ok、ack消息,状态依次转变;呼叫结束涉及begin_record或recording、find_bye、end_record四个状态,

当依次发现具有相同call_id的bye、200ok消息,状态依次转变;录音过程中涉及begin_record、recording、end_record三个状态,相关操作在结束语音包处理模块中有介绍;此外,就是在任何状态发现invite消息到来时都要将状态变到find_invite;这样做的防止状态机死在某一状态不能录音了;

所述语音数据包处理模块

当sip消息处理模块判断出某个座席呼叫已建立时,便会启动一个线程运行语音包处理模块;

语音包处理模块的操作是不断的从所属座席的语音缓存队列中取语音数据包,然后形成声音文件;在这个过程中首先要创建一声音文件,然后将所有声音数据写入到文件中,最后将这个声音文件关闭;具体为座席定义了begin_record、recording、end_record三个状态来控制这个处理过程;

begin_record

当sip消息处理模块判断出某个座席呼叫已经建立,便将该座席的状态设为begin_record;这时启动的语音包处理模块首先从所属座席的语音包缓存队列中取出一个语音包,然后解析该语音包得到语音包到来的时间以及语音的编码方式,接着从所属座席中得到语音文件应该存储的路径,创建声音文件,文件名就是数据包到来的时间,接下来将这个语音数据写入文件,最后将座席的状态设为recording;

recording

begin_record状态结束后便进入recording状态;这时会不断从相应座席的语音包缓存队列中取语音数据包,然后进行双声道混音并写入文件;直到sip消息处理线程将该座席的状态设为end_recording;

end_recording

当sip消息处理模块判断出这次通话已经结束时,便会将该座席的状态设为end_recording;这时首先将剩下的语音数据包取出,并进行双声道混音,写入文件,然后将文件关闭;最后重置座席。

根据本发明的一个实施例,

所述核心层实现了基本的录音功能,并且提供给控制层启动、停止录音,添加、删除被录座席接口函数,所述控制层只需按照所需的业务逻辑调用接口便了;

(1)客户端模块

需要实现两个功能:

通过socket与远端座席连接,接收座席的登入、登出消息;

实现一个ftp服务器,响应班长的调听命令;

(2)服务器控制台

提供给服务器管理员一个控制服务器的界面;实行了一个简单的控制台,能

够完成网卡的选择,注册、注销座席,查看被录座席,停止某个座席的录音,开始录音、强行停止录音,渐行停止录音功能。

录音系统实现以下的各项功能:

(1)捕获原始数据报,包括在共享网络上各主机发送/接收的以及相互之间交换的数据报;

(2)在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉;

(3)在网络上发送原始的数据报;

(4)收集网络通信过程中的统计信息。

根据本发明的一个实施例,

一种基于软交换的接入层嵌入式ip录音方法的系统,ip交换机、录音服务器以及所有座席主机连接在以太网交换机的端口上,所述录音服务器采用嵌入式计算机,所述以太网交换机还通过路由器与以太网通信,所述公共交换电话网络通过ip交换机与以太网交换机通信。

在分组网络中对ip电话进行录音,首先需要抓到所有通话相关的分组数据包,包括信令数据包和语音数据包。在局域网中捕获数据包主要有两种方式:利用以太网的广播特性或者利用交换机的端口镜像功能。本系统采用的是后者,其网络结构如图2。ippbx、录音服务器、所有座席主机通过以太网连接,分别接在以太网交换机的a、b、c端口。这里将以太网交换机的端口a镜像给端口b,使得流过端口a的数据包也转发给了端口b,也就是接在端口b的录音服务器监听到ippbx和座席ipphone间通话的所有相关数据包了。然而一般情况下网卡是工作在非混杂模式,这时网卡只接收写有自己mac地址的数据帧。所以还需要设置网卡的工作模式为混杂模式(系统中有相应的接口函数),这样流经网卡的所有数据包都会被录音服务器收到,也就实现了抓到所有语音通信相关的数据包。

完成数据包捕获之后便要进行数据包的处理。前面已经提到,捕获到的数据包包括信令和语音。ip电话的信令协议主要有h.323和sip。sip协议具有简单、独立、扩展性好等诸多好的特性,因此越来越多的ip电话采用sip协议,本系统便是针对的sip信令。通过对sip消息进行解析,从而监听到整个呼叫过程,包括呼叫建立、通话、呼叫结束等,并结合从sip消息中解析出的sdp消息得到语言通信的相关信息,从而控制对语音数据包的捕获,并最终将捕获到的语音数据包形成声音文件,实现录音功能。

本发明方案不再采用传统的服务器加软件架构,而是采用基于专业芯片的嵌入式架构,体积更加小巧,功耗更低,性能更稳定,部署更方便,成本更低。

该装置在接入层或末端部署好后,可使录音的实现和提取更加方便,部门之间的协调与管理更加扁平化和高效化,因此,具有较大的应用领域和前景。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,

图1是一种基于软交换的接入层嵌入式ip录音方法流程示意图;

图2是一种基于软交换的接入层嵌入式ip录音装置的系统结构示意图;

1.公共交换电话网络,2.以太网交换机,3.路由器,4.以太网,5.录音服务器,6.坐席主机,7.ip交换机。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。下面结合附图进一步说明;

图1、图2中提供了一种基于软交换的接入层嵌入式ip录音方法,包括的步骤是:

步骤1)从接入层交换机提取相应指向ip话机号码或ip地址的端口数据;

步骤2)与接入层交换机连接的嵌入式录音服务器中采用包括插入、监听和强拆的功能模块实现录音过程;

步骤3)将录音文件通过包括ip地址、绑定号码、时间段的方式提取、转换成语音数据并存储。

作为整个语音系统中的工控机中,采用windows操作平台上来实现对底层包的截取过滤;包括三个部分:

第一个模块npf:是一个虚拟设备驱动程序文件;它的功能是过滤数据包,并把这些数据包原封不动地传给用户态模块,这个过程中包括了一些操作系统的代码;

第二个模块packet.dll为win32平台提供了一个公共的接口;不同版本的windows系统都有自己的内核模块和用户层模块;packet.dll用于解决这些不同;调用packet.dll的程序运行在不同版本的windows平台上,而无需重新编译;

第三个模块wpcap.dll是不依赖于操作系统的;它提供了高层、抽象的函数;packet.dll和wpcap.dll;packet.dll直接映射了内核的调用;wpcap.dll提供友好、功能更加强大的函数调用;winpcap的优势提供了一套标准的抓包接口,与libpcap兼容,使得原来许多unix平台下的网络分析工具快速移植过来便于开发各种网络分析工具,充分考虑了各种性能和效率的优化,包括对于npf内核层次上的过滤器支持,支持内核态的统计模式,提供了发送数据包的能力。

所述步骤2)中,录音系统架构由客户端和服务器端组成;客户端包括普通座席和班长,普通座席控制自己的录音,班长控制所有座席的录音并且调听录音;服务器端便是录音服务器,它完成数据包的捕获、解析、形成录音文件,并且实现与客户端的交互;

客户端软件采用的是ocx控件的方式提供给座席和班长,其通过socket与服务器端连接,发送消息完成客户端的相应操作;对于普通座席,提供登入和登出消息,以通知服务器座席是否需要被录音;对于班长,提供将任意座席登入和登出的方法,以控制对座席的录音;还提供了调听方法,即连接到数据库查看有那些录音记录,并通过ftp的方式从录音服务器上下载所需的录音记录;

服务器端的软件结构分为两层:核心层和控制层,其中核心层实现基本的录音功能,专注于数据包的捕获、解析、处理,完成录音,提供给业务层添加、删除被录音座席以及启动、停止录音接口函数;控制层实现对录音的控制,包括服务器端控制台和客户端模块两个模块;前者是录音服务器的ui界面,用户通过它对录音服务器进行控制;后者完成服务器端与客户端的交互,使得普通座席登入、登出服务器,班长将座席人、登出服务器以及调听录音记录。

所述核心层完成从网卡抓取数据包、数据包投递、sip数据包解析、语音数据包形成声音文件功能,核心层程序主要有三个模块组成:网卡抓包模块、sip消息处理模块和语音包处理模块;软件设计采用了多线程技术,使得各模块并行工作;网卡抓包模块和sip消息处理模块各由一个线程执行,当某个座席开始通话时,便为其启动一个线程执行语音数据包处理模块;

所述网卡抓包模块:

利用系统中wpcap.dll不依赖于操作系统,提供了更加友好、功能更加强大的函数调用;这里在实现网卡抓包模块调用的wpcap.dll中的相关函数;

在数据包捕获和过滤中:

a)获得本地的网卡列表并选择合适的网卡:pcap_findalldevs()这个函数实现了此功能,

它返回一个pcap_if_t结构的链表,链表的每项内容都含有全面的网卡信息;

b)打开网卡并将其设为混杂模式:pcap_open_live()这个函数实现打开网卡,如果将其第三个参数设为1就将其设为混杂模式了;

c)编译、设置网卡过滤器:依次调用pcap_compile()、pcap_open_live()便实现此功能,并将第二个参数设为“ipandudp”便能过滤出udp数据包;

d)开始抓包:在循环语句中不断的调用pcap_next_ex()便会从网卡中不断的抓包、过滤;通过这个api会得到抓到数据包的头指针;

另外,在数据包解析和投递中

数据包的解析:

从网卡中抓到的包返回的是mac的头指针,这样只要进行相应的指针偏移操作便得到相应的协议数据包的包头,然后对相应的协议进行解析;得到协议头指针,再结合ip协议和udp协议便解析出来数据包的ip地址和端口号了;

数据包投递:

与通话相关的数据包有sip消息数据包和语音数据包两类;

标准的sip协议采用5060作为其端口号,因此当解析出某个数据包的端口号是5060,则将其看作是sip消息包,投递到缓存sip消息的sip_buffer中;

如果端口号不是5060,则要看这个数据包是不是某个座席的语音数据包;首先通过看数据包的ip地址知道它是哪个座席的数据包;再取出这个座席中的源和目的端口号属性,它们是在sip消息处理模块中解析sip消息获得并设置的,将它们与这个数据包解析出的源和目的端口号进行比较,如果相同则说明这个数据包是该座席的语音包;然后将其投递到这个座席的语音缓存队列中去;

所述sip消息处理模块:

sip消息处理模块不断从sip消息缓存队列中取sip消息包,然后进行sip消息路由、sip消息解析和sip消息处理;

sip消息路由:

sip消息处理模块处理所有座席的sip消息,因此每次取出一个sip消息得知道它是哪个座席的sip消息,通过看消息的源或目的ip便知道其属于哪个座席;

sip消息解析:

对于每个sip消息都要解析出它的请求方法或应答状态码,还要解析出call_id这个标题macipudprtp头,它标识每一次呼叫;此外对于invite消息和其相应的200ok应答,还要解析出消息体sdp中双方协商的语音媒体通信的端口号,这个在抓语音包、进行语音包的投递时要用到;

具体的sip消息解析中使用了osip协议栈;

首先调用parser_init()对osipparser进行初始化,然后调用osip_message_init()和osip_message_parse()便解析出sip消息结构体,

最后对sip消息结构体进行分析,如调用宏msg_is_invite()判断是否为invite方法的sip消息,其它方法和应答状态码也有相应的宏;调用osip_message_get_call_id()得到call_id这个标题头,调用osip_message_get_body()得到sdp消息体,然后依次调用sdp_message_init()、sdp_message_parse()和sdp_message_m_port_get()方法便解析出媒体通信端口号;

sip消息处理

每次解析出sip消息的请求方法或应答状态后要对其进行处理;目的是分析得到座席当前的状态;处理的思想要依据sip协议在控制会话时的具体操作,依此设计出录音服务的状态机;

sip呼叫建立的过程如下图,所以只要解析出具有相同call_id的invite、200ok、ack消息,便判断出一次通话建立了,这时就要启动一语音处理线程,开始进行录音;sip呼叫结束的过程如下图,所以只要解析出具有相同call_id的bye、200ok消息,便判断出这次通话结束了,这时就要退出相应的语音处理线程;

依据sip协议的呼叫建立和通话结束的执行过程过程,设计了录音状态机;涉及七个状态idle、find_invite、find_invite_200、find_bye、begin_record、recording、end_record;呼叫建立时涉及idle、find_invite、find_invite_200、begin_record四个状态,

当依次发现具有相同call_id的invite、200ok、ack消息,状态依次转变;呼叫结束涉及begin_record或recording、find_bye、end_record四个状态,

当依次发现具有相同call_id的bye、200ok消息,状态依次转变;录音过程中涉及begin_record、recording、end_record三个状态,相关操作在结束语音包处理模块中有介绍;此外,就是在任何状态发现invite消息到来时都要将状态变到find_invite;这样做的防止状态机死在某一状态不能录音了;

所述语音数据包处理模块

当sip消息处理模块判断出某个座席呼叫已建立时,便会启动一个线程运行语音包处理模块;

语音包处理模块的操作是不断的从所属座席的语音缓存队列中取语音数据包,然后形成声音文件;在这个过程中首先要创建一声音文件,然后将所有声音数据写入到文件中,最后将这个声音文件关闭;具体为座席定义了begin_record、recording、end_record三个状态来控制这个处理过程;

begin_record

当sip消息处理模块判断出某个座席呼叫已经建立,便将该座席的状态设为begin_record;这时启动的语音包处理模块首先从所属座席的语音包缓存队列中取出一个语音包,然后解析该语音包得到语音包到来的时间以及语音的编码方式,接着从所属座席中得到语音文件应该存储的路径,创建声音文件,文件名就是数据包到来的时间,接下来将这个语音数据写入文件,最后将座席的状态设为recording;

recording

begin_record状态结束后便进入recording状态;这时会不断从相应座席的语音包缓存队列中取语音数据包,然后进行双声道混音并写入文件;直到sip消息处理线程将该座席的状态设为end_recording;

end_recording

当sip消息处理模块判断出这次通话已经结束时,便会将该座席的状态设为end_recording;这时首先将剩下的语音数据包取出,并进行双声道混音,写入文件,然后将文件关闭;最后重置座席。

所述核心层实现了基本的录音功能,并且提供给控制层启动、停止录音,添加、删除被录座席接口函数,所述控制层只需按照所需的业务逻辑调用接口便了;

(1)客户端模块

需要实现两个功能:

通过socket与远端座席连接,接收座席的登入、登出消息;

实现一个ftp服务器,响应班长的调听命令;

(2)服务器控制台

提供给服务器管理员一个控制服务器的界面;实行了一个简单的控制台,能

够完成网卡的选择,注册、注销座席,查看被录座席,停止某个座席的录音,开始录音、强行停止录音,渐行停止录音功能。

ip交换机7、录音服务器5以及所有座席主机6连接在以太网交换机2的端口上,所述录音服务器5采用嵌入式计算机,所述以太网交换机2还通过路由器3与以太网4通信,所述公共交换电话网络1通过ip交换机7与以太网交换机2通信。发明了基于专业芯片的嵌入式架构,体积更加小巧(19”1u),功耗更低,性能更稳定,部署更方便,成本更低。实现了从接入层交换机提取相应指向(ip话机号码或ip地址)端口数据,转换成语音数据,存储的软件算法;实现了录音过程中,插入、监听和强拆等功能;实现了通过ip地址、绑定号码、时间段等方式提取录音数据的功能。该装置不再采用传统的服务器加软件架构,而是采用基于专业芯片的嵌入式架构,体积更加小巧(19‘’1u),功耗更低,性能更稳定,部署更方便,成本更低。该装置在接入层或末端部署好后,可使录音的实现和提取更加方便,部门之间的协调与管理更加扁平化和高效化。

在本说明书的描述中,参考术语“一个实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点在任何的一个或多个实施例或示例中以合适的方式结合。尽管已经示出和描述了本发明的实施例,本领域的普通技术人员理解:在不脱离本发明的原理和宗旨的情况下对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

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