论文部分内容阅读
[摘要]IP电话(Voice Over IP,VoIP)以其广阔的前景,先进的技术和廉价的费用逐渐成为人们生产和生活中新的主流语音通信方式。本文主要在局域网环境下对企业级VoIP的控管设计思路以及实施方案进行了详细讨论,提出了可行的VoIP网络体系结构并实现了原型系统。该系统针对实际问题,对VoIP有效地实现了会话检测、话音监听、语音插入、录音、话音干扰及阻断等功能,可以满足企业级VoIP控管工作的需要。
[关键词]VoIP 网络控管 网络流量 MOS DTW
引言
本文主要在局域网环境下针对企业级VoIP的控管设计思路以及实施方案进行了详细讨论,提出了可行的VoIP网络体系结构并实现了原型系统。实践表明该控管系统可以较好地满足企业级VoIP控管工作的需要。
一、VoIP协议解析
协议分析是进行一切控管操作的前提。目前,VoIP主要是基于两大协议,一是ITU-T的H 323协议,另一个是IETF提供的SIP协议。H323由呼叫控制、媒体编码、管理控制、网络安全和会议通信等等一系列协议组成,不但包括IP应用,而且还包括IP视频和数据应用以及多媒体会议应用,同时也兼顾了目前存在的PTSN,而SIP则着眼于广域Internet上的电话应用,因而采用了广为使用的客户-服务器模型,由于并未考虑与现存PTSN的兼容等问题,SIP要更为简单一些。因此,尽管二者提供相似的功能,但应用领域各有侧重。在我国,目前主要选择H.323为VoIP体制的基础,采用H 248作为网关设备标准,因此,本文主要针对H.323进行研究。在传输过程中,语音先后被封装成RTP包、UDP包、IP包,然后经由物理层进行传递。
1.H.323和SIP的分析与比较
尽管H.323和SIP完成相似的功能,但二者还是存在一些重要的差别。
(1)协议复杂性
从复杂性来讲,H.323要远胜于SIP。H.323是个相当复杂的协议,定义了数百个元素,而SIP仅有37个头信息:H.323用基于ASN.1的二进制来表征其消息,并采用压缩编码规则(Packed Encoding Rules),这就需要特殊的编译器进行编译,而相比之下,基于HTTP的SiP是利用文本来表征其信息,这使其可以很简便的生成和编译,同时也在纠锚、重用性方面表现优异:而另一方面,H.323也利用了几种不同的组件模型,并且为很多任务提供了多种选择的解决方案,这也进一步增加了H.323的复杂程度。当然,H.323之所以复杂主要是考虑到了与传统PTSN网络的兼容以及提供一种对未来的多媒体通信适用的网络协议。
(2)协议可扩展性
由于SIP是基于HTTP和SMTP的协议,因此它具有一套丰富的规则集以支持可扩展性,允许用户定义自己的特征,只需将特征名进行注册后,便可进行更加个性化的服务。而H.323则通过提供非标准参数域来提供扩展性,但是其限制要远多于SIP。另外,在视频与语音编码、第三方呼叫控制机制方面,SIP也比H.323具有更好的扩展性。
(3)协议可缩放性
H.323最初是被设计为用于简单局域网,尽管在最新的版本中作了改进,但仍然在域数量及多域搜索等方面弱于SIP,而其运行在TCP上的特性相比于SIP对于TCP和UDP的全面支持也具有更多的局限性。
2.RTP协议解析
实时传输协议(Real-time Transport Protocol,RTP)是为支持实时业务而设计的。实时业务是指业务的发送和接受必须在很短的时间内完成。两种典型的实时业务即音频会话和独立视频帧。因此,RTP是VoIP在网络传输中的真实载体。
RTP实际包含两个协议,RTP协议和RTCP协议(实时传输控制协议)。RTP协议用于传送实时数据,采用“集成处理”和“应用成帧”的思想。前者是指RTP一般由應用层综合处理,而不作为单独的协议层使用:后者指RTP只规定所有应用都需要的公共功能,而不追求全面和完备,允许具体应用根据实际需要修改或增加头部信息以满足特定需求,一个标准的RTP分组头部组成如图2所示。
在这个头部结构中,净荷类型(PT)、序号、时段都对数据包的发送和接收起着重要作用。其中净荷类型定义了RTP封装数据的格式。序号则可供接收方检测分组丢失和恢复分组顺序。
二、VoIP控管系统设计
1.VoIP控管系统网络拓扑结构设计
VoIP控管系统需要实现对企业级VoIP网络的管理,即整个控管系统应搭建在企业内部局域网或广域网的基础上。在需要完成的任务中,VoIP协议分析是其它一切话音分析的前提,因此控管系统需要一台或多台专门的监测机完成VoIP话音协议分析的任务,在完成协议分析任务后,监测机应将分析结果汇总至系统的管理者,由管理者决定如何进行下一步的操作并统一调配资源,因此,系统中需要一台负责任务汇总、控管决策任务的管理机,系统管理者通过管理机得到目前VoIP网络的反馈信息,并通过管理机向整个系统中的其它设备发出指令,完成话音分析任务:由于单个机器很难完成整个VoIP网络的话音分析任务,系统中还必须加入多台语音机,专门从事说话人识别或关键词检出的任务,所有语音机在管理机统一的调度下工作,并将识别结果返回给管理机,而后系统管理者利用管理机的反馈信息决定采取何种控管措施,并通过监测机干预网络运行。综上所述,VoIP控管系统应该具有如图3所示的网络拓扑结构。
局域网连接部分为进行正常VoIP通话的各种设备,在使用H.323作为VoIP协议的前提下,这些设备可包括计算机、固定电话、移动电话和智能手机等。交换机以上部分为控管部分,包括管理机,语音机和监测机。同时系统利用数据库存出各种信息及操作的结果,以备查询。
2.VoIP控管系统数据流设计
据上述分析,可得出的系统数据流图,其中数据由监控机在VoIP网络捕获,经分析后传送给管理机,管理机将其分配给某台语音机执行说话人识别和关键词检出任务,而后将结果返回至管理机,最后由管理机决定如何对会话进行管理并经由监测机予以实施。
3.管理机任务处理流程设计
管理机在接到监测机的报告后对会话分析任务作统一调配,可能出现的任务包括监听任务(包括本地监听和异地监听),录音任务(开始录音/停止录音),语音插入、话音干扰以及语音阻断等。当用户通过管理机界面下达任务后,任务被写入一个称为命令列表的缓;中区中。管理机通过循环读取该缓冲区的方式获得并执行任务。
三、控管系统功能模块设计
1.RTP数据包处理
网络语音包的传输是通过RTP/RTCP来进行的,通常被封装成RTP包形 式的语音信息运行在UDP协议之上,从而完成传输层的功能。因此,VOIP的检测实际上是对包含在UDP包中的RTP头信息进行检测和分析的过程。通过利用集线器的杂收模式或交换机的高级控管功能,我们可以在不影响正常会话的前提下将一部分UDP数据包过滤出来,层层剥离包头数据。首先从UDP包头中取出源端口号、目的端口号、校验和等数据,而后去掉UDP包头,再从RTP分组头部中取出版本号、包序号、时段、净荷类型(7bit)和同步源标识(32bit)等字段这是生成伪装数据包的重要信息。
在接收并分析了RTP数据包后,系统即可根据接收到的数据情况生成具有相同格式的RTP数据包,而后层层封装,以UDP包的形式插入会话中,从而实现了插入、干扰和阻断等操作功能。需要指出的是,在插入语音的时候,系统是利用一段语音重复进行插入工作,为了得到插入语音的次数从而度量插入强度,把语音起始段的第一个RTP分组头部的标志位(M)置1,通过监测该字段即可获得插入语音的边界。生成时段的RTP时钟速率与编码方式及所含声道数无关,等于每秒的取样周期数。对于N声道編码,每个取样周期生成N个样值。属于同一取样时刻的多个声道采样值被置于同一分组中,不同声道采样的交织由编码方式决定。
在电话系统中,话音采样频率均取8000Hz,这是所有话音编码方法的基本假设。本系统遵从该假设并取缺省的分组间隔,其时长为20~30ms。对于数据本身的封装来说,有多种低比特率编码方法,如G.728、G.729和G.723.1等。但是语音编码会造成网络语音质量的下降,其中G.729和G.723.1对语音质量的影响较大。系统可以对多种格式进行编码,其根据是原会话的编码格式,主要兼顾了如下几类编码格式
2.VOIP监听模块
监听功能分为本地监听和异地监听。允许用户在管理机或语音机对正在进行通话的VoIP会话进行监听。当系统成功地对会话进行解析后,管理机将向用户显示所有监测范围内的会话。如果此时进行的是本地监听,则直接由管理机启动监听线程,如果是异地监听,则管理机须向语音机发送通信报文,远程启动语音机的监听线程,即可在该语音机处进行监听。监听模块函数定义如下:
函数定义:void Listen Voice(CQueueBuf*onebuf,CQueueBuf*twobuf,Int*flag)
参数说明:
onebuf 传送缓冲区类指针,用于输入VoIP正向语音流。
onebuf:传送缓冲区类指针,用于输入VoIP反向语音流。
flag 停止标志指针。
其中QueueBuf是通用的缓冲区类型,用于存放监听、录音等数据。
3.VoIP录音模块
录音模块的作用在于存储会话内容。该功能对于特殊的场合拥有重要意义,如电话会议等。通常,该模块与回访功能配合使用。即在监测到会话后,用户可开启录音功能,该功能在管理机实现,管理机将会话内容以dat文件的形式存储于本地路径下。当用户查看会话的日志文件时,可自由选择监听回放。该模块可为用户提供一种额外的信息保存方式。录音模块函数定义如下
函数定义:void RecordVoice(cQueueBuf*onebuf,CQueueBuf*twobuf,int *flag,int VoIPID)
参数说明:
onebuf:传送缓冲区类指针,用于输入VOIP正向语音流(主叫到被叫)。
onebuf:传送缓冲区类指针,用于输入VOIP反向语音流(被叫到主叫)。
flag停止标志指针。
VOIPID VOIP唯一标识号,本函数通过这一参数决定录音文件名。
4.VOIP语音插入
语音插入的主要功能是在监听的会话中插入第三方语音,通过此功能向用户提供某种信息或服务。根据实际需求的分析,语音插入可分为两种,第一种为自动插入,即系统处于自动控管状态时,如果经由消息机制发现某关键词或说话人出现在会话中,则自行插入语音以给用户以提示。另一种方式为手动插入,即在人工干预下,对发现的特定会话实行特定的语音插入功能。系统为用户提供了多种可供插入的pcm文件,对应于不同的净荷类型。当用户决定插入后,系统根据分析出来的会话净荷类型,选择相应语音进行插入。其实现原理是基于静音检测的过程,系统不断检测会话中是否有静音出现,当出现静音,系统便向会话发送数据包,将事先准备好的语音插入到会话当中去。
四、结论
本文在局域网的环境下,研究了企业级VOIP控管的需求、规则,并以此为依据搭建了适合企业级VOIP使用的控管系统实验平台。在此基础上中,针对VOIP控管有关的问题进行了详细研究,最后给出了控管系统监控、录音等模块的实现模型。今后可对网络应用环境进行适当扩展,在保证VoIP控管系统功能的前提下,进一步提高顽健性(Robustness),拓展系统的应用范围。
[关键词]VoIP 网络控管 网络流量 MOS DTW
引言
本文主要在局域网环境下针对企业级VoIP的控管设计思路以及实施方案进行了详细讨论,提出了可行的VoIP网络体系结构并实现了原型系统。实践表明该控管系统可以较好地满足企业级VoIP控管工作的需要。
一、VoIP协议解析
协议分析是进行一切控管操作的前提。目前,VoIP主要是基于两大协议,一是ITU-T的H 323协议,另一个是IETF提供的SIP协议。H323由呼叫控制、媒体编码、管理控制、网络安全和会议通信等等一系列协议组成,不但包括IP应用,而且还包括IP视频和数据应用以及多媒体会议应用,同时也兼顾了目前存在的PTSN,而SIP则着眼于广域Internet上的电话应用,因而采用了广为使用的客户-服务器模型,由于并未考虑与现存PTSN的兼容等问题,SIP要更为简单一些。因此,尽管二者提供相似的功能,但应用领域各有侧重。在我国,目前主要选择H.323为VoIP体制的基础,采用H 248作为网关设备标准,因此,本文主要针对H.323进行研究。在传输过程中,语音先后被封装成RTP包、UDP包、IP包,然后经由物理层进行传递。
1.H.323和SIP的分析与比较
尽管H.323和SIP完成相似的功能,但二者还是存在一些重要的差别。
(1)协议复杂性
从复杂性来讲,H.323要远胜于SIP。H.323是个相当复杂的协议,定义了数百个元素,而SIP仅有37个头信息:H.323用基于ASN.1的二进制来表征其消息,并采用压缩编码规则(Packed Encoding Rules),这就需要特殊的编译器进行编译,而相比之下,基于HTTP的SiP是利用文本来表征其信息,这使其可以很简便的生成和编译,同时也在纠锚、重用性方面表现优异:而另一方面,H.323也利用了几种不同的组件模型,并且为很多任务提供了多种选择的解决方案,这也进一步增加了H.323的复杂程度。当然,H.323之所以复杂主要是考虑到了与传统PTSN网络的兼容以及提供一种对未来的多媒体通信适用的网络协议。
(2)协议可扩展性
由于SIP是基于HTTP和SMTP的协议,因此它具有一套丰富的规则集以支持可扩展性,允许用户定义自己的特征,只需将特征名进行注册后,便可进行更加个性化的服务。而H.323则通过提供非标准参数域来提供扩展性,但是其限制要远多于SIP。另外,在视频与语音编码、第三方呼叫控制机制方面,SIP也比H.323具有更好的扩展性。
(3)协议可缩放性
H.323最初是被设计为用于简单局域网,尽管在最新的版本中作了改进,但仍然在域数量及多域搜索等方面弱于SIP,而其运行在TCP上的特性相比于SIP对于TCP和UDP的全面支持也具有更多的局限性。
2.RTP协议解析
实时传输协议(Real-time Transport Protocol,RTP)是为支持实时业务而设计的。实时业务是指业务的发送和接受必须在很短的时间内完成。两种典型的实时业务即音频会话和独立视频帧。因此,RTP是VoIP在网络传输中的真实载体。
RTP实际包含两个协议,RTP协议和RTCP协议(实时传输控制协议)。RTP协议用于传送实时数据,采用“集成处理”和“应用成帧”的思想。前者是指RTP一般由應用层综合处理,而不作为单独的协议层使用:后者指RTP只规定所有应用都需要的公共功能,而不追求全面和完备,允许具体应用根据实际需要修改或增加头部信息以满足特定需求,一个标准的RTP分组头部组成如图2所示。
在这个头部结构中,净荷类型(PT)、序号、时段都对数据包的发送和接收起着重要作用。其中净荷类型定义了RTP封装数据的格式。序号则可供接收方检测分组丢失和恢复分组顺序。
二、VoIP控管系统设计
1.VoIP控管系统网络拓扑结构设计
VoIP控管系统需要实现对企业级VoIP网络的管理,即整个控管系统应搭建在企业内部局域网或广域网的基础上。在需要完成的任务中,VoIP协议分析是其它一切话音分析的前提,因此控管系统需要一台或多台专门的监测机完成VoIP话音协议分析的任务,在完成协议分析任务后,监测机应将分析结果汇总至系统的管理者,由管理者决定如何进行下一步的操作并统一调配资源,因此,系统中需要一台负责任务汇总、控管决策任务的管理机,系统管理者通过管理机得到目前VoIP网络的反馈信息,并通过管理机向整个系统中的其它设备发出指令,完成话音分析任务:由于单个机器很难完成整个VoIP网络的话音分析任务,系统中还必须加入多台语音机,专门从事说话人识别或关键词检出的任务,所有语音机在管理机统一的调度下工作,并将识别结果返回给管理机,而后系统管理者利用管理机的反馈信息决定采取何种控管措施,并通过监测机干预网络运行。综上所述,VoIP控管系统应该具有如图3所示的网络拓扑结构。
局域网连接部分为进行正常VoIP通话的各种设备,在使用H.323作为VoIP协议的前提下,这些设备可包括计算机、固定电话、移动电话和智能手机等。交换机以上部分为控管部分,包括管理机,语音机和监测机。同时系统利用数据库存出各种信息及操作的结果,以备查询。
2.VoIP控管系统数据流设计
据上述分析,可得出的系统数据流图,其中数据由监控机在VoIP网络捕获,经分析后传送给管理机,管理机将其分配给某台语音机执行说话人识别和关键词检出任务,而后将结果返回至管理机,最后由管理机决定如何对会话进行管理并经由监测机予以实施。
3.管理机任务处理流程设计
管理机在接到监测机的报告后对会话分析任务作统一调配,可能出现的任务包括监听任务(包括本地监听和异地监听),录音任务(开始录音/停止录音),语音插入、话音干扰以及语音阻断等。当用户通过管理机界面下达任务后,任务被写入一个称为命令列表的缓;中区中。管理机通过循环读取该缓冲区的方式获得并执行任务。
三、控管系统功能模块设计
1.RTP数据包处理
网络语音包的传输是通过RTP/RTCP来进行的,通常被封装成RTP包形 式的语音信息运行在UDP协议之上,从而完成传输层的功能。因此,VOIP的检测实际上是对包含在UDP包中的RTP头信息进行检测和分析的过程。通过利用集线器的杂收模式或交换机的高级控管功能,我们可以在不影响正常会话的前提下将一部分UDP数据包过滤出来,层层剥离包头数据。首先从UDP包头中取出源端口号、目的端口号、校验和等数据,而后去掉UDP包头,再从RTP分组头部中取出版本号、包序号、时段、净荷类型(7bit)和同步源标识(32bit)等字段这是生成伪装数据包的重要信息。
在接收并分析了RTP数据包后,系统即可根据接收到的数据情况生成具有相同格式的RTP数据包,而后层层封装,以UDP包的形式插入会话中,从而实现了插入、干扰和阻断等操作功能。需要指出的是,在插入语音的时候,系统是利用一段语音重复进行插入工作,为了得到插入语音的次数从而度量插入强度,把语音起始段的第一个RTP分组头部的标志位(M)置1,通过监测该字段即可获得插入语音的边界。生成时段的RTP时钟速率与编码方式及所含声道数无关,等于每秒的取样周期数。对于N声道編码,每个取样周期生成N个样值。属于同一取样时刻的多个声道采样值被置于同一分组中,不同声道采样的交织由编码方式决定。
在电话系统中,话音采样频率均取8000Hz,这是所有话音编码方法的基本假设。本系统遵从该假设并取缺省的分组间隔,其时长为20~30ms。对于数据本身的封装来说,有多种低比特率编码方法,如G.728、G.729和G.723.1等。但是语音编码会造成网络语音质量的下降,其中G.729和G.723.1对语音质量的影响较大。系统可以对多种格式进行编码,其根据是原会话的编码格式,主要兼顾了如下几类编码格式
2.VOIP监听模块
监听功能分为本地监听和异地监听。允许用户在管理机或语音机对正在进行通话的VoIP会话进行监听。当系统成功地对会话进行解析后,管理机将向用户显示所有监测范围内的会话。如果此时进行的是本地监听,则直接由管理机启动监听线程,如果是异地监听,则管理机须向语音机发送通信报文,远程启动语音机的监听线程,即可在该语音机处进行监听。监听模块函数定义如下:
函数定义:void Listen Voice(CQueueBuf*onebuf,CQueueBuf*twobuf,Int*flag)
参数说明:
onebuf 传送缓冲区类指针,用于输入VoIP正向语音流。
onebuf:传送缓冲区类指针,用于输入VoIP反向语音流。
flag 停止标志指针。
其中QueueBuf是通用的缓冲区类型,用于存放监听、录音等数据。
3.VoIP录音模块
录音模块的作用在于存储会话内容。该功能对于特殊的场合拥有重要意义,如电话会议等。通常,该模块与回访功能配合使用。即在监测到会话后,用户可开启录音功能,该功能在管理机实现,管理机将会话内容以dat文件的形式存储于本地路径下。当用户查看会话的日志文件时,可自由选择监听回放。该模块可为用户提供一种额外的信息保存方式。录音模块函数定义如下
函数定义:void RecordVoice(cQueueBuf*onebuf,CQueueBuf*twobuf,int *flag,int VoIPID)
参数说明:
onebuf:传送缓冲区类指针,用于输入VOIP正向语音流(主叫到被叫)。
onebuf:传送缓冲区类指针,用于输入VOIP反向语音流(被叫到主叫)。
flag停止标志指针。
VOIPID VOIP唯一标识号,本函数通过这一参数决定录音文件名。
4.VOIP语音插入
语音插入的主要功能是在监听的会话中插入第三方语音,通过此功能向用户提供某种信息或服务。根据实际需求的分析,语音插入可分为两种,第一种为自动插入,即系统处于自动控管状态时,如果经由消息机制发现某关键词或说话人出现在会话中,则自行插入语音以给用户以提示。另一种方式为手动插入,即在人工干预下,对发现的特定会话实行特定的语音插入功能。系统为用户提供了多种可供插入的pcm文件,对应于不同的净荷类型。当用户决定插入后,系统根据分析出来的会话净荷类型,选择相应语音进行插入。其实现原理是基于静音检测的过程,系统不断检测会话中是否有静音出现,当出现静音,系统便向会话发送数据包,将事先准备好的语音插入到会话当中去。
四、结论
本文在局域网的环境下,研究了企业级VOIP控管的需求、规则,并以此为依据搭建了适合企业级VOIP使用的控管系统实验平台。在此基础上中,针对VOIP控管有关的问题进行了详细研究,最后给出了控管系统监控、录音等模块的实现模型。今后可对网络应用环境进行适当扩展,在保证VoIP控管系统功能的前提下,进一步提高顽健性(Robustness),拓展系统的应用范围。