VoIP系统

2024-07-03

VoIP系统(精选十篇)

VoIP系统 篇1

1 系统需求分析

VoIP需要最小的带宽保证,以提供尽可能高的通话服务质量。而在VoIP网络环境中,大量的VoIP降低了通话质量而且没有任何“忙”的指示,并产生大量不完整的、或不稳定的VoIP信息流。因此,系统需要监视关首、路由器等设备,对原始的呼叫信息进行合并、指标整理,围绕VoIP业务的网络设备状况、通话质量、业务流量、业务开展情况、通话模式等方面进行全面地分析,使用户对业务的开展情况了如指掌,在对网络优化时有具体指标数据作为依据。

2 VoIP话务分析系统的设计

JVR系统是为中国联通开发的一个话务分析系统,其设计采用了基于客户-服务器和web的解决方案并使用了模块化的设计。根据需求分析系统主要包含以下模块:系统监控、话务管理、故障管理、拓扑管理、性能管理以及系统管理。系统功能结构如图1所示。以下对部分模块进行详细阐述。

2.1 系统监控

该模块主要功能是以地理图的方式将最近的重要数据显示在相应的地理位置上,使用户对各地区的网络运行情况能够一目了然。

各个电信运营商都可以在系统中通过指定条件进行查询,系统将会通过图形显示出各省的对于指定指标的状况,若超出告警范围,则会在图形上进行告警。可以使用的查询条件有:1)时间;2)区域:如全部省或如北京、天津等;3)查询指标:如应答次数、接通次数、应答率、接通率、呼叫次数等;4)查询方式:如日报、周报、月报;5)阀值,即查询指标所不能低于的告警值。

2.2 话务管理

该模块主要实现对电话业务的统计和分析功能。

分类统计包含应答率统计、通话时长统计、时长分析统计、业务统计、拆线原因统计报表和语音质量统计。该类统计主要是为用户提供按话务指标进行分类的统计,使用和一目了然就知道某类话务指标话务情况。

分析部分包含常用分析和综合查询:常用分析为用户经常使用的固话分析,综合查询各类指标、全省任一区域(一个城市或多个城市,一个网关或多个网关)和全省任一时间段的综合类查询。

2.3 故障管理

故障管理功能是为提高VoIP系统的网络性能和故障诊断提供一个便捷和直观的工具。

故障管理模块帮助操作维护人员及时有效地了解到设备和网络出现的非正常运行状态,并通过各种图形,图表,颜色和语音方式向操作人员提示有关告警内容和告警统计信息,帮助操作人员确定故障原因和故障位置,以便能及时纠正问题,保证设备和网络的正常运行。系统对告警发生到告警显示的延迟时间小,从而大大提高维护人员的工作效率,同时也将有力地增强运营商的服务质量,提高市场竞争力

2.4 拓扑管理

拓扑管理模块提供一系列的工具,帮助操作维护人员完成日常维护工作和维护管理工作,例如:制订作业计划,分配作业任务,记录交接班内容,填写各种值班表格,记录障碍修复方法、管理备品备件等,对实际工作情况进行详细的记录,使得责任更加分明,从而有效地强化了管理体系,大大提高了管理水平,使得管理更加细致有效,并为对人员的考核提供了充分的依据。

其中集中操作维护功能模块提供远程集中操作维护、批命令处理和广播定时发送等维护功能,对交换机操作响应的反应时间小,实现了真正意义上的集中控制,使得远端机房做到无人职守,为运营商尽可能的降低了运营维护成本

2.5 性能管理

性能管理模块分别对网关、关守、路由器的CPU使用率、MEM使用率、端口使用率、丢包率等指标进行统计和分析。

性能管理分为设备性能查询,设备性能报表,链路性能告警三个子模块,功能如图2所示。

性能管理将综合分析网络整体运行水平,通过对网内各VoIP前置交换机的话务负荷情况,进行监视和分析,并且向网管人员提供各种直观的话务分析结果和灵活的话务报表,使网管人员能够直观形象地了解到整个VoIP网络前置交换机设备运行的实际情况,并据此采取措施协调整个电话网的话务流量,从而为用户提供高质量的服务,赢得用户的信任。同时还可以进行各种角度的分析对比,了解网内业务量的发展趋势,为定新的战略决策提供强有力的实时依据,使得运营商可以走在市场的前沿,赢取更多的市场份额。

2.6 系统管理

系统管理配置和定制系统监控、话务管理、性能管理等各个模块运行时所需的参数。在JVR系统安装后,在本模块已经具有默认参数,未经系统管理员同意请不要自行修改。系统运行期间参数配置如涉及后台数据处理,当天配置后,在第二天参数配置相关的后台数据处理才能生效。

系统管理模块提供多级的安全管理机制,进行严格的用户管理、日志管理、操作权限定义和限制,保障了网络的安全性、数据访问的安全性、文件访问的安全性和用户管理的安全性,在出现异常情况时,给用户以提示,并具有用户工作记录管理功能,保证用户可以浏览各自的工作记录

3 系统的技术特点

3.1 数据处理

由于VoIP前端设备采集的数据量巨大,所以系统所处理的数据量非常庞大,每天都要承受在数据库吞吐量和系统容量上的压力。JVR系统运行时,在20台左右的Soloris系统上按照各自Crontab所预定的时间,用各自的脚本处理从前端设备采集到的数据,数据来自全国32个省市。如图3所示。

其中后台数据处理分为四级,包括市级数据处理,省级数据处理,总部级数据处理。在从网关级上的设备上采集到数据后,服务器将最原始的数据处理到市级表中,同时将数据处理成可读数据,如原始时间所记录的年为年份减去1970所得到的数字,原始时间并不利于客户端的展示,所以系统后台将其处理成可简单显示的数据。市级数据被处理到市级表中后再进一步导入到省级表,最后导入到两台总部服务器中。

3.2 使用XML对关键配置数据进行存储

XML是一种类似于HTML的标记语言,是用来描述数据的,它的标记不是在XML中预定义的,必须定义自己的标记,使用文档类型定义(DTD)或者模式(Schema)来描述数据。XML的使用能够手工对系统的配置文件进行修改,方便灵活。

系统中使用XML存储关键数据,如前端采集设备的IP地址,端口等,在页面上系统管理员可以看到以XML形式展示的设备配置。后台数据导入导出的java程序通过XML解析器如SAX和DOM进行数据的解析和读取。

4 结束语

VoIP话务分析系统是在长期从事电话网OSS开发和工程经验的基础上,吸收和借鉴了大量网管系统的优点,同时对VoIP前置交换机进行了详细的调研与分析,推出的一套全新的监控与管理系统。文章以系统开发实例,阐述了VoIP话务分析系统的模块设计方案,希望能为开发人员提供帮助。

参考文献

[1]门高伟,张立毅.基于.net平台的通信市场经营分析系统的设计与实现[J].科技情报开发与经济2006,16(17):236-237.

[2]何东.基于No.7信令监测系统的大客户网间话务分析系统的方案及实现[J].电信技术,2007(2):73-76.

VoIP系统 篇2

大型企业四级网VOIP系统

招标技术规范

2003年12月

目录

Page 1 of 14

大型企业四级网VOIP电话系统招标技术规范

第一章、概述 第二章、技术标准 第三章、系统技术要求

第四章、系统技术指标评分方案

第一章 概述

Page 2 of 14

大型企业四级网VOIP电话系统招标技术规范

为了完善大型企业系统的信息通信网建设,我省将通过接入网建设,将企业信息通信网络覆盖到科、所、队等四级办公机构,从而完成全省的统一指挥调度系统。

总体目标是在大型企业系统现有的内部计算机综合网上建设可管理、可控制、安全的VOIP语音通信网络,为整个企业系统的通讯服务。

利用已有的数据通信网络平台,采用当代先进成熟的网络语音通信技术,建成全省内部网络电话系统大平台。实现市局与分局、和派出所之间的语音通信网络化,同时还应该实现通过数据网进行IP传真。条件成熟时,实现全市各部门之间的语音通信网络化。以大力促进和加强企业部门系统科学管理,提高数据网的生产效率和服务水平,大幅度降低管理成本,使数据通信网不断产生效益。

第二章 技术标准

Page 3 of 14

大型企业四级网VOIP电话系统招标技术规范

一、系统技术规范

VOIP系统需要遵循以下国内、国际标准和测试规范: YD/T 1044-2002 YD/T 1071-2000 YD/T 1072-2000 YD/T 1046-2000 YDN 065-1997 YDN 034-1997 GB/T 17154.2-1997

IP电话/传真业务总体技术要求 IP电话网关设备技术要求 IP电话网关设备测试方法 IP电话网关设备互通技术规范 邮电部电话交换设备总技术规范书 ISDN用户-网络接口规范

ISDN用户网络接口第三层基本呼叫控制技术规范及测试方法第2部分:第三层基本呼叫控制协议测试方法

GB/T 3382-1993 YD/T 703-93

文件传真三类机在电话网中的互通技术条件 文件传真三类机检验测试方法

二、名词解释:

H.323协议:

ITU关于IP网上多媒体通信标准协议,中国国家IP电话标准协议。包括了分组交换网络中进行多媒体通信所需的技术要求,由终端、网关、关守等组成。

网关(Gateway):

是IP电话网络的重要组成部分,完成用户方话音的压缩、分组并发送到IP网上传送,到达对方网关后进行相反处理,形成话音信号经交换机到电话机。

关守(GateKeeper):

为IP电话:http://、EXCEL、TXT等呼叫统计报表。

3、网络管理系统:

网络管理系统实现对整个VOIP:http://系统的终端设备进行配置和管理,并能对整个系统的运行状况实现监控,对网络上的通话进行管理。下面是对该系统的要求:

1)2)3)4)对于终端的设备进行远程配置管理。

可以远程访问管理到私网NAT/防火墙后的设备。

可以通过HTTP、DNS、邮件传输等基本端口进行远程访问管理设备。增加、删除、修改终端网关设备、管理系统配置,同时可以在网管上切断网关的通话以及限制网关拨打电话。5)设备基本信息浏览:系统信息组包括设备名、设备型号、厂家ID、启动程序版本、应用程序版本、设备状态、用户名等信息; 6)可对设备一些基本信息进行浏览,正确反映出设备的状态信息;

浏览与H323信令协议有关的参数的设置; 添加和删除网守的注册;

设置未被网守注册的用户端网关是否允许呼出; 设置H.323的注册类型、设置呼叫是否通过网守建立; 查看终端设备的端口呼叫状态。(摘机、震铃、通话、挂机等)

设置电话通道的等待应答时间限制,如果呼叫目的地在此段时间内没有应答,呼叫会自动终止;

设置电话通道的呼叫长度限制,如果呼叫长度超出范围,呼叫会自动终止;

Page 12 of 14

大型企业四级网VOIP电话系统招标技术规范

设置电话通道发送、接收增益。

显示目前的通道结构、呼出参数、呼入参数和电话信号参数的设置 7)对于设备故障、中断等问题,能够提供告警信息,输出在用户界面上,并可以查看系统日志。8)9)能设定不同的用户类别及其操作权限。对于终端设备可以进行远程升级软件功能。

10)远程重新启动终端设备;

Page 13 of 14

大型企业四级网VOIP电话系统招标技术规范

第四章 系统技术指标评分方案

大型企业厅通信处为本次技术招标进行了技术选型测试,并初具了《广东企业接入网VOIP系统语音设备测试报告》。并初步形成了一套《语音交换网络规划和设备选型规范》。本次选型拟定参照设备测试报告的结果进行评分。系统测试共计65项,分为系统功能测试(1-23项)和呼叫流程测试(24-65项)。

技术评分标准说明:

1、呼叫流程测试(24-65项)。

每项占1分

2、系统功能测试(1-23项)

标准功能项每项占2分

重要功能项每项占4分

VoIP系统 篇3

关键词:供电所;VoIP ; 网络; 拓扑

1.技术参数

光纤收发器:光接口波长1310、 发光功率 ≥-10dBm;以太网交换机:8~24个10/100M自适应、1~2个千兆端口;网关和关守:支持语音编码方案、支持E1中继接口、支持中国1号信令。

2.组网原理

组网原理见图1。采用基于通信软交換技术的IP电话系统对数据网络进行了有效的扩展。发送端的IP电话终端通过多种语音压缩算法完成对电话语音的编码、压缩、打包等处理后发送出去,接收端IP电话终端(奥科IP网关)完成相反的功能,将语音数据还原成语音信号。局端SUN软交换平台提供用户认证、呼叫控制、路由管理、地址解析、协议转换等功能,控制IP电话终端完整的IP电话业务及其他业务应用。由于采用IP方式接入,语音和数据都是以以太网数据包方式传输。供电所和接入变电所采用一对光缆连接,通过光传输设备传输以太网数据。光传输设备使用光收发器,它具有E/O(电/光)转换与O/E反转换、编(解)码和光信号传输功能。

3.组网方案

局端的8540 思科ATM 交换机置配1个多模光口模块,该模块通过多模光纤与S300网络交换机相连,营销中心的三层以太网交换机连接该交换机以太网口,传送供电所端的的各种业务数据;同时S300网络交换机10/100M以太网口连接语音中继网关、SUN软交换机(关守设备)等网络设备。局端配置的关守,类似于一个小型软交换机,统一管理供电所的VoIP电话端口设置、话务流量控制等业务。中继网关通过一块E1板和中国一号信令与局端程控交换机(PBX)互相连接在一起,使得IP网络与局行政交换网络之间可以互联互通。它完成各种网络间信号、语音及数据的转换,并配合软交换控制部分完成整个通话过程。图2为网络拓扑结构。

变电所端的8510 ATM交换机与局端一样需配置一块多模光接口模块。该模块的155M多模光口上连变电所网元8510 ATM交换机,下连的以太网接口通过中兴通讯公司ZXB10-S300以太网交换机(经光纤收发器)连接一个或多个供电所的小型局域网。ZXB10-S300以太网交换机不仅可以完成24个10/100Base-T以太网端口之间的数据,同时还可以将以太网数据适配成ATM信元,经155MbpsATM端口传送至远端的以太网交换机,便于进行组网。

供电所端的以太网业务,包括4路IP电话及计算机数据终端经一个小型网络交换机(D-Link),用光纤收发器E/O转换后传输到接入变电所,经变电所侧的光电转换器与ATM通信网相连,完成供电所至局端的以太网业务接入。传输带宽≦10Mb/s。供电所端的以太网交换机用户侧提供24个10M以太网接口,组成供电所的电话、计算机局域网。供电所电话的传输采用VoIP(Voice over IP)方案。供电所使用普通电话机,通过奥科公司的IP语音网关,以完成语音的模数转换、压缩和分组(或上述逆过程)以及信令转换建立通信连接。各供电所的语音数据包传输,与供电所的以太网数据传输使用同一通道(争用),也是经变电所传送到局端以太网交换机。

通过利用现有ATM网络资源,对每一个网络节点分配相应的IP地址后进行调试,目前供电所端配置4路IP语音电话及数据业务终端,这样既节省了租用邮电电话的费用,同时也便利各乡镇供电所的业务及时上传至营销中心,大大提高了工作效率。

在现有ATM电力信息网络的基础上通过各种IP语音设备构建VoIP业务系统,将IP数据网络提升为集数据业务与语音业务于一体的综合网络。电力系统供电所VOIP系统的接入对客户用电业务申请、用户档案管理、电费结算、表计管理和低压维护等工作都有很大的作用。此外,VoIP网络还与现有的语音通信网实现互连互通,配合电话呼叫业务的实现,该方案同时提供了完备的管理维护功能。具有很好的推广性与应用前景。

参考文献

[1] 黄永峰. 因特网语音通信技术及其应用[M] 北京:人民邮电出版社.2002.01

[2] 孙家蔚.计算机电话一体化技术在调度交换机中的应用[J]中国科教期刊学会. http://www.ccclw.cn/book/class/?142.html.2002.02

VoIP系统 篇4

VoIP是利用IP网络实现语音通信的一种通信手段。它是建立在IP技术上的分组化、数字化的语音传输技术。无线网络的发展以及VoIP技术的不断成熟,使得VoIP与无线网络开始融合,产生了无线VoIP[1]。无线VoIP不仅资费低廉,而且可以在小范围内移动。目前对VoIP系统的研究主要还集中在有线领域,对构建在无线VoIP系统的研究较少。由于IP分组网络的脆弱性、无线局域网安全的脆弱性和无线VoIP设备的脆弱性再加上VoIP系统本身的安全问题使得无线VoIP系统在安全方面存在着各种隐患,如由于无线终端与网络之间的无线接口的开放性,在无线信道上传送的信令和业务消息很容易被他人窃听,而且不易发现。因此为无线环境下的VoIP系统提供用户身份鉴别和传输信息加密是必要的。

语音保密通信是对语音内容的保密。目前国内外对VoIP的安全性的研究大都基于传统加密方式,而将混沌技术结合传统加密方式可以进一步提高系统的安全性,这方面的研究目前还不多。

2 采用G.729语音编解码技术压缩语音信息

采用压缩率高的语音编解码技术是在无线环境下提供高品质VoIP通话质量的关键。本系统采用G.729[2]编解码技术对语音信息进行编解码。G.729是ITU-T制定的编码速率是8kbps的共轭结构码激励线性预测(CS-ACELP)声码器语音编码算法标准。它具有压缩比率高、质量高、延迟小的特点。在G.729音频压缩传输协议的C源代码实现中,coder.c实现编码器的功能,将PCM语音文件压缩为数据流写入到比特流文件中;decoder.c实现解码器的功能,将比特流文件解压还原为PCM文件。

3 无线Vo IP系统中采用的加密技术

3.1 AES算法

AES[3]即高级加密标准,采用的是Rijndael算法,它是采用的加密算法是对称密钥加密算法,它的加密和解密密钥是相同的。Rijndael算法是具有可变分组长度和密钥长度的迭代型分组密码,本系统中该算法的分组长度和密钥长度为128位。Rijndael算法的密钥建立时间极短且灵活性强;内存要求较低适用于无线VoIP中存储器受限的环境。

密钥长度为128位的AES加密算法由初始轮密钥加和10轮轮变换组成,它的输入为初始状态阵列和轮密钥,执行加密算法后产生一个输出状态阵列,输入明文和输出密文均为128比特。解密算法和加密算法类似,只是在解密算法中使用的变换为加密时相应变换的逆变换。AES加解密过程[4]如图1。本无线VoIP系统采用AES加解密采用G.729语音编解码技术压缩过的语音信息。

3.2 ECC算法

ECC[5]即椭圆曲线密码,它采用的加密算法是公开密钥加密密码,它采用的加密密钥与解密密钥不相关。公钥体制可分为三类基于整数分解问题,如RSA算法;基于离散对数问题,如DSA算法;椭圆曲线的离散对数问题(ECDLP),如ECC算法。椭圆曲线密码是基于椭圆曲线的离散对数问题。对于方程Q=kp其中QP∈椭圆曲线Ep(a,b)且k

无线VoIP系统用于传输会话密钥的公钥体系选用ECC算法出于以下几方面的考虑[6]:

1)ECC和其它公钥系统相比安全强度较高,ECC在计算复杂度上目前是完全指数级,而RSA是亚指数级的。210位ECC与2048位RSA,DSA具有相同的安全强度。

2)ECC比其它公钥密码体系计算量更小计算速度更快,在私钥的处理速度上,ECC远比RSA,DSA快得多。

3)ECC的密钥尺寸和系统参数与RSA,DSA相比要小得多,意味着它所占的存贮空间要小得多。

4)在采用ECC进行对称加密系统会话密钥等短信息的传递时,ECC的带宽要求比RSA,DSA要低的多,因此十分适用于无线网络。

3.3 混沌技术

混沌[7]是指在确定性动力系统中出现的一种貌似无规则的、类随机的现象。混沌序列对初始值的依赖性是指即使混沌序列的初值有微小的变化,最终也必将导致混沌序列的复杂变化,而且如何变化,也是无法预测出来;混沌序列的拓扑传递性(即不可预测性)是指在未知初态的条件下,人们无法预测出混沌序列在指定时刻的取值;混沌序列具有周期点的稠密性(即遍历性)是指随着初值的变化,混沌序列的取值将遍历值域的每种可能值。混沌现象是确定性的、类似随机的一个过程。

混沌系统适用于保密通信的原因在于混沌系统自身所具有的三个可用构造加密算法的特点很适合于加密:1)对参数和初始值的敏感性;2)各态历经性;3)混迭性。

4 无线VoIP系统的语音加密方案

4.1 无线VoIP的安全要求

在无线VoIP安全要求中,如何鉴别合法用户和如何保护用户通话内容这两点是核心。而保护通话内容问题依赖于加密算法的安全性和密钥安全性。因此无线VoIP安全要求[1]可以总结为三点:

1)如何鉴别合法用户。

2)如何选取适宜的加密算法加密语音。

3)如何保证密钥的安全分发。

实现端到端的安全连接的先决条件是,与该连接相关的网络设备必须能够相互间确认身份,以确保通信数据不会受到“中间人攻击”的威胁。

4.2 采用混合加密方式结合混沌技术加密语音信息

无线VoIP用户之间,每次进行语音信息传输的加密会话密钥应当都不一样。如果在每次语音信息传输时都要传输会话密钥,增加了会话密钥被窃听的风险。利用混沌系统可以提供可重复的随机数序列,且其序列仅与系统参数和初值有关的性质,在VoIP系统的各个用户端都设置相同的混沌系统,只在无线VoIP用户间开始通话时传输一次会话密钥,之后用户间通话的会话密钥即通过各自的混沌系统由开始通话时取得的会话密钥作为初值所得到的可重复序列顺序取得。由于混沌系统对初值的敏感依赖性,只要系统的初值稍微变化,混沌系统取得的随机序列即不可重复,确保每次会话密钥的随机性,大大提高了系统的安全性。

无线VoIP系统采用混合加密的方式,结合了对称和公钥加密算法的特点:公开密钥加密算法ECC用于加密用户间开始通话时传输的用于AES加密的会话密钥,而对称密钥加密算法AES采用会话密钥直接加密用G.729压缩过的语音信息。这是因为考虑到[8]:

1)相同条件下,公开密钥算法比对称密钥算法慢得多,因此采用对称密钥算法对语音信息进行加解密。

2)对称密钥密码算法的密钥分发和管理复杂。对于无线VoIP,由于用户众多,对有n个用户的网络,需要n(n-1)/2个密钥,密钥的分配和保存比较困难。公开密钥加密系统采用的加密密钥(公钥)和解密密钥(私钥)是不同的。由于加密密钥公开,密钥的分配和管理比较简单,对有n个用户的网络,仅需要2n个密钥。

5 结论

文中结合无线VoIP的特点,提出采用AES和ECC相结合的混合加密方式,对采用G.729语音编解码技术压缩的语音信息进行加解密的算法,并利用混沌系统可以提供一个可重复的随机数序列且其序列仅与系统参数和初值有关的性质,实现了VoIP用户只需在开始通话时传输一次会话密钥,即可实现在该次通话过程中不用再在无线网络上传输会话密钥,并保证了每次语音信息传输的会话密钥的随机性,有效地提高了无线VoIP系统语音传输的安全性和实时性。

摘要:随着无线网络的飞速发展和VoIP技术的日渐成熟,无线VoIP技术应运而生。由于无线网络安全的脆弱性和VoIP系统本身的安全问题使得无线VoIP系统在安全方面存在着各种隐患。为提高无线VoIP的安全性,采用高压缩率的语音编解码技术G.729提高无线VoIP的通话质量;采用高级加密标准(AES算法)加解密采用G.729压缩过的语音信息;选用椭圆曲线密码(ECC算法)传输AES算法中用到的会话密钥;利用混沌系统可以提供可重复的随机数序列且其序列仅与系统参数和初值有关的性质确保了会话密钥的保密性。

关键词:无线VoIP,AES,ECC,混沌

参考文献

[1]Holly Xiao,Peter Zarrella.Quality effects of wireless VoIP using security solutions[C].MILCOM2004-2004IEEE Military Communica-tions Conference):1352-1357.

[2]ITU-T.ITU-T Recommendation G.729-CODING OF SPEECH AT8kbit/s USING CONJUGATE-STRUCTURE ALGEBRAIC-CODE-EXCITED LINEAR-PRE-DICTION(CS-ACELP)[M].1996.

[3]Kouhei N,Masao I,Ichiro K.Extended instructions for the AES cryptography and their efficient implementation[J].Proceedings of IEEE,2004:152-157.

[4]William Stallings.Cryptography and Network Security Principles and Practices.Third Edition[M].PHEI,2004.

[5]吕皖丽,吕伟.一种椭圆曲线密码体制域算术操作的实现[J].电脑知识与技术,2006.7:134-135.

[6]朱艳琴.基于ECC的密码系统研究与设计[J].微电子学与计算机,2003.12:51-53.

[7]汪芙平,平赞基,郭静波.混沌通信系统的若干问题及研究现状[J].通信学报,2002.10,23(10):71-80.

VOIP学习总结 篇5

在这个学期的VOIP课程当中,我学到了之前在课堂上没有学到过的知识。我了解到了什么是VOIP,在这个学期的学习中,我主要学到了调试程序的方法,通过自己搜集资料了解了一些Socket技术,C和C++的区别,以及多线程。

VOIP(Voice over Internet Protocol)简而言之就是将模拟声音讯号(Voice)数字化,以数据封包(Data Packet)的形式在 IP 数据网络(IP Network)上做实时传递。VOIP最大的优势是能广泛地采用Internet和全球IP互连的环境,提供比传统业务更多、更好的服务。VoIP可以在IP网络上便宜的传送语音、传真、视频、和数据等业务,如统一消息、虚拟电话、虚拟语音/传真邮箱、查号业务、Internet呼叫中心、Internet呼叫管理、电视会议、电子商务、传真存储转发和各种信息的存储转发等。在后面的学习中我们还会学到更多VOIP的知识。

大一学习C语言的时候,当编写的程序报错时,我们会根据VC的提示在整个程序查找错误加以修正,这样的方法也行,因为这些程序都比较短。但是,如果是一个很大的程序呢,显然,这种方法是不可行的,因此要学会很重要的一步,就是设置固定断点或临时断点。所谓断点,是指定程序中的某一行,让程序运行至该行后暂停运行,使得程序员可以观察分析程序的运行过程中的情况。还有就是单步执行程序,即让程序被一步一步(行)地执行,观察分析执行过程是否符合预要求等等。

Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。两个网络程序之间的一个网络连接包括五种信息:通信协议、本地协议地址、本地主机端口、远端主机地址和远端协议端口。Socket数据结构中包含这五种信息。

学习C语言,就不得不提到C++。C语言是一种结构化编程语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结 构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既 可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本 的C语言。C++ 是在C的基础上改进后的一种编程语言,主要是增添了许多新的功能,难度也比C大,和C一样侧重于计算机底层操作,也就是系统软件的开发。VC++是一种编程软件,就相当于一个作业本,你学习了C++语言以后,就需要把这种编程语言写在一 个作业本上,也就是写在VC这种编程软件上,来实现你需要的效果。C++是C语言的升级版 C是C++的子集,C是面向过程的,C++是面向对象的。C和C++还有很多区别,不过它们很多地方还是想通的,我们不应该只掌握一种编程语言。

之前使用VC编写程序C语言程序的时候,我还不知道它对编写界面、对话框之类的东西,而在课堂上了解了以后,我知道我学到的只是其实很少,我还有很多不懂得东西,我还应该继续学习继续努力。

VoIP对台湾广播业界之冲击 篇6

截至2006年5月台湾有线电视含播送系统共有68家,目前虽大部分拥有一类电信许可执照,但仅限于光纤网络出租业务,语音业务部分仍需依赖与现有电信合作,而岛内的中华电信因已经拥有“最后一里”的用户回路不可能与有线电视合作,因此有线电视主要通过与联合台湾网与亚太网合作,以拓展语音服务的市场。

现阶段全岛有线电视除约25%为独立业者外,主要归属于于五大业者,共约45家系统台的服务区域所涵盖数,总计约有3500万的收视用户。而五大业者在联网前,已陆续在自有网络上布建cable modem 宽带上网服务,通过现有宽带数据服务网络提供IP语音服务自然是各家业者的共同想法。以东森为例,申请Cable modem的宽带新用户若同时申请Cable Phone,将拥有未来一年网内(市话与长途)互打免费、免初装费以及市话拨打国际电话、长途电话一年8.5折等优惠。

从五大业者共同推出的Cable Phone服务来看,有三种拨打模式:

第一种模式:网内互打免费。网内系指各系统台网络所覆盖的范围,网内互打免费主要是参加大联网的各系统用户之间拨打免费,例如东森旗下阳明山系统用户与台湾宽带的北桃园系统用户间网络电话通话不计费。但由于现阶段各系统台用户尚未习惯cable phone,因此其策略主要着眼点在于培养用户使用习惯。

第二种模式:移动电话节费。通过网络电话拨打移动电话虽属网外收费业务,然系统通过与亚太网与联合台湾网合作推出的资费中,已包含移动通信优惠资费部分,并分别针对各移动业者间有不同优惠费率,因此对用户有绝对的吸引力。

第三种模式:国际话务节费。现有民营网络公司国际电话有成本上的优势,根据有关部门统计资料表明,民营业者在93年底已经自中华电信手中取得46.6%以上的市场占有率,因此五大系统的用户均可借助联合台湾网与亚太网国际电话优势享有优厚的费率折扣。

在上述三种经营模式中,对业者而言除需尽速进行网络双向化外,由于网络上行频道资源有限,若要达到一定通话质量,必须进行网络光节点分割,即将每一光节点服务用户数降低到500户以下,方有可能提供与现有传统电话相同质量的语音服务,在用户终端部分则需积极建立E-MTA或将现有用户家中的Cable Modem 更换为E-MTA。

由于岛内的中华电信以其在用户数量上占有压倒性的优势,因而同样在传统电话与宽带市场上拥有一面倒的优势,Data + Voice的用户结构稳固,然其最大的隐患在于现有网络带宽有限,无法通过网络提供广播形式的影音服务。MOD 是电信在现有网络架构下所能提供影音服务的可行选项之一,通过其所提出5年500亿新台币光纤下一代网络的投资,一旦网络全面光纤化将会是有线电视恶梦的开始。

有线电视现阶段所采用的技术属电缆与光纤网络混合架构(HFC),就到用户终端而言,先天就具有带宽上的优势,因此得以通过550MHz的带宽提供用户多达120个频道的影音广播服务,然而其主要弱点在于HFC光纤上行网络带宽,为解决此项技术瓶颈与提供未来网络数字化之需求,主要的有线电视业已经积极着手进行网络双向化普及与光节点分割,一旦相关网络全面升级,有线电视网络将是仅次于电信拥有最多用户的第二大业者。

对照美、加等国同为有线电视主导付费电视市场之国家,岛内各有线电视通过推动宽带、语音以及影音的整合服务往往可创造更高的ARPU,因此台湾有线电视通过网络串联,并利用联合台湾网与亚太网两大集团的网络资源,以低价语音搭配cable modem 服务直接挑战电信稳固的宽带用户结构。电信与有线电视积极进行网络建设,主要着眼点在于通过Tri-play服务的提供提高创收比例。

岛内有线电视推动的Cable Phone服务目标市场虽以家庭用户为主,但因为用户数尚未到一定数量,网内互打话务流量不大,现阶段对电信传统市内与长途电话的营收影响不大。长期而言,Cable Phone在拨打移动与国际电话时,在价格优势下,对于电信现有009国际业务及固网拨打移动电话的市场占有率将会有一定的影响,而对速博(并未与有线电视合作以提供Cable modem宽带上网与语音服务)以及ISR业而言,将更进一步激化价格竞争及VoIP下载模式更多元化的发展。

Cable Phone可以视为IP网络的加值服务,惟有一定质量方可成功吸引大量语音用户,通过Triple Play服务的提供,进而在固定的收费电视外增加新的创收项目,对ARPU有明显帮助。业者为提高网络语音质量的同时将会提高网络带宽并解决分享式媒体(shared media)因用户增加所产生带宽不足的窘境,大幅增强与电信竞争的能力。

中华电信在MOD经营上虽然获得NCC有条件的同意,但MOD所将取代的是影音出租市场,而非出现在家庭客厅的广播电视服务,要完全取代现有有线电视广播仍有一段漫长的光纤网络扩增道路要走。但因本身有相对带宽优势,因此ADSL+MOD捆绑销售仍有相当的吸引力。电信在光纤网络涵盖范围尚未扩增前,将运用其国际廉价带宽之优势,且采用将用户升级到高带宽为诉求,短期内仍将持续占有市场。

在有线电视与中华电信高带宽策略的夹击下,现有提供ADSL的ISP(如TTN与SONET) 将会因为IP成本增加有更大的经营压力。

有线电视为推出Cable Phone服务,势必要将现有提供宽带上网服务的Cable Modem更换为E-MTA,倘若业者大力促销,分析本土市场:以现有Cable Modem用户约为50万户计算,因Cable Phone服务的提供扣除不到10万户的现有Cable VoIP用户,岛内未来将可能有30~40万台E-MTA之需求。

因应Triple Play服务的推出,岛内有线电视与中华电信莫不积极将网络进行升级与优化,在HFC网络上将有双向放大之需求,而电信执行网络光纤化同时,亦将会有大量下一代网络(Next Generation Network, NGN)设备需求。

有线电视通过有线HFC电视网络提供Cable Phone服务,是IP技术演化的结果,经由IP技术未来将会有有更多样化的影音服务可以提供给消费者,如Sling media 所提供的sling box 可通过现有网络将家中电视节目传送到第三地便是一例。

美国前10大MSO所拥有的有线电视用户中,Cable Modem 上网用户是收视户的二成至二成五之间,而语音服务普及率仅为一成左右。相对美国有线电视宽带服务推广较DSL宽带上网服务先上市,因此有较大的普及率。而岛内的中华电信ADSL虽有较大优势,但在有线电视在加紧网络升级与能量扩充状况下,预期在Triple play策略下,将会吸引更多有线电视用户使用语音服务。

电信市场化后,除手机因市场尚未饱和缘故,新进业者很快就抢占相当市场占有率,而网络业务却不然。相对于手机,网络以往极大资金所进行基础建设,更因为电信过去数十年运用行业垄断所建的用户线路已经几乎到达每一家庭,使得新进网者的用户必须与中华电信接界,而中华电信以其巨大市场力量,处处以行政手段牵制新进业者,使新进网者在经营上倍感吃力,故有线电视网络便成为新进业者对用户提供语音服务的另一选择。

VoIP系统 篇7

VoIP[1] (Voice over IP) 由于其在IP网络中实现语音通信, 促进了网络资源的利用, 降低了语音业务成本, 在全球范围内得到了迅速的发展。802.11无线局域网 (WLAN) 将用户从有线的网络连接中解放出来。在企业中部署WLAN网络之后建立VoIP的应用, 并不需要对现有的网络进行改造就能满足在企业内部进行语音通信的需求, 并且满足下一代移动通信应用在单一网络内进行数据、语音、多媒体的传输的发展方向。本文将VoIP和WLAN (Wireless LAN) 结合到一起[2], 在MIPS (Microprocessor without Interlocked Pipeline Stages) 架构的处理器ADM5120上实现了在无线局域网内进行IP通话的功能。系统以终端的形式进行通信, 可移动性强。

1系统硬件的设计

1.1 硬件的整体架构

系统硬件的整体架构设计如图1所示。系统硬件主要由五部分组成:ADM5120主处理器部分、通话控制部分、无线子卡部分、存储部分和外设连接部分。通话控制部分采用Infineon公司语音芯片VINETIC-2CPE, Version 2.1 (PEB3322) 为子处理器, 外接A/D, D/A转换功能的用户接口电路SLIC-DC PEB4268, 与存储部分一起构成语音实时处理骨架;无线子卡部分采用Atheros公司的WMIA-165G 802.11g Mini PCI模块, 并用Madwifi驱动无线子卡;存储部分使用2块SDRAM存储器和1块NOR FLASH存储器;外设连接部分包括一个WAN口和四个LAN口、Mini-PCI接口、输出模拟电话信号的RJ-11接口, 以及用于调试的RS 232串口。

1.2 ADM5120主处理器

德国Infineon公司的ADM5120[3]是一款基于哈佛体系结构的SoC (片上系统) 的嵌入式处理器, 具有5级流水线, 并使用了32位MIPS指令集。同时ADM5120还是一款典型的寄存器型微处理器, 其配置了32个通用寄存器和一对存储64位数据的寄存器Hi和Lo以及异常PC寄存器, 其中Hi和Lo寄存器用于存放定点乘法的结果。ADM5120中还内置了32/16位MIPS32 4KEC处理器, 其采用TLB (Translation Lookaside Buffer) 实现了内存管理和流水线中的异常处理功能, 并使用冯·诺依曼结构在内存和寄存器之间传输数据, 提高了数据的传输效率, 加快了程序的执行速度。另外, ADM5120还集成了多种外围部件, 主要有:PCI (Peripheral Component Interconnect) 总线接口, 5个100 Mb/s的以太网接口, 并且还配置了ADM5120内置的PHY芯片, 内嵌了16 MB/85 MHz SDRAM存储器, 给系统设计提供了很大的方便。

在本系统中, 微控制器接口 (非缓冲接口) 与VINETIC, FALSH-RAM, SDRAM并行连接, 并分别使用8 B, 16 B, 32 B的总线宽度。ADM5120通过微控制器接口控制与之相连的VINETIC并将语音数据从WLAN接口传给VINETIC, 反之亦然。ADM5120的通用输入/输出端口GPIOs控制VINETIC的复位信号并为VINETIC生成片选信号, 同时GPIOs还作为VINETIC准备功能和中断信号的输入。而连接到ADM5120的LED指示灯显示WAN口和LAN口连接状态以及模拟输出接口的模拟线路状态。

1.3 VINETIC语音模块

VINETIC[4] (Voice and Internet Enhance Telephony Interface Circuit) 是Infineon公司的一款语音处理模块, 它将编解码器和语音处理功能集成在一起, 能达到与传统语音服务相同的语音质量。VINETIC 处理模拟电话信号, 语音压缩包, 并提供实时压缩包的缓冲, 具有自适应回声抵消, 静音检测, DTMF信号产生、译码等功能。

VINETIC芯片的主接口电路如图2所示。其中4和5为片选输入端;AD0~AD7:双向的输入/输出信号, 相应的引脚有3种运行状态:低电平、高电平或高阻抗, 当CSQ为高电平时, DOUT呈高阻状态, 此时需要外接10 kΩ的上拉电阻;28和29输出数字电平, 漏极开路, 相应的引脚有2种运行状态:低电平有效或三态, 并允许多个设备共享为线或。芯片供电电路部分:66外接锁相环路, 此锁相环重要地影响到芯片的总性能, 因此应特别注意对锁相环供电的滤波器;64将锁相环接地。

1.4 存储模块

系统存储模块包括1块NOR FLASH芯片MX29LV320和2块SDRAM芯片W986432DH。MX29LV320的引脚分布如图3所示。

其中A0~A20:地址输入;DQ0~DQ14:数据输入/输出;DQ15/A-1:DQ15 (按字模式进行数据的输入/输出) , A-1 (按字节模式进行最低有效位地址输入) ;CE¯:切片启动输入;WE¯:写启动输入;ΟE¯:输出启动输入;RESEΤ¯:硬件重启引脚, 低电平有效;RY/BY¯:读/忙输出, 连接到主处理器ADM5120的RDY引脚以提高速度。

W986432DH的引脚分布如图4所示。其中A0~A10:地址引脚;BS0和BS1:存储体选择;DQ0~DQ31:数据输入/输出的复用引脚;RAS:行地址选通;CAS:列地址选通;WE:允许写入, 命令输入, 当在RAS时钟上升沿取样时, CAS和WE确定操作将被执行;DQM0~DQM3:输入/输出掩码, 当DQM在读周期高电平采样时输出缓冲区置于高阻抗 (2个时延) , 而在写周期采样将零时延地阻止写操作;CLK:在时钟上升沿抽样输入;CKE:时钟启动, 当CKE为低时, 进入掉电模式、暂停模式或自我充电模式。

2系统软件的设计与实现

系统软件设计的整体架构如图5所示, 其在无线局域网内实现了基于ADM5120的UDP方式点对点通讯和广播通讯。UDP[5] (User Datagram Protocol, 用户数据报协议) 主要用来支持那些需要在计算机之间传输数据的网络应用。众多的客户/服务器模式的网络应用例如网络视频会议系统等都需要使用UDP协议。UDP协议直接位于IP (网际协议) 协议的顶层, 属于网络协议中的传输层协议。由于UDP协议不需建立连接, 具有效率高、速度快和占用资源少等优点, 应用于消息通信和实时系统中可以提高系统传输数据的效率。UDP具有组播和广播功能, 是分发信息的一个理想协议。本系统还移植了一种基于ADM5120的嵌入式Web服务器boa, 实现了对VoIP系统进行基于B/S方式的Web配置。

2.1 点对点通讯的实现[6]

在本系统中, 在一个网段内的任意两个应用程序之间可以进行全双工通信, 每个应用程序既可做为服务器又可做为客户端。其UDP编程步骤如图6所示, 以下是两个应用程序A和B之间进行点对点通讯的具体实现过程:

(1) 双方分别建立socket, 调用socket函数:

s=socket (PFINET, SOCKDGRAM, 0)

SOCKDGRAM表示套接字类型为数据报套接字, 即采用UDP协议进行通信。

(2) 绑定已设置好的自己的地址和端口信息, 调用bind函数:

bind (s, (struct sockaddr *) &myaddr, sizeof (struct sockaddr) )

(3) 将select函数置于阻塞状态, 直到监视文件描述符集合rfds中某个文件描述符发生变化为止:

select (pCtrl->rwd + 1, &rfds, IFXNULL, IFXNULL, NULL)

(4) 数据传输:sendto () 和recvfrom () 用于在无连接的数据报socket方式下进行数据传输。由于本地socket并没有与远端机器建立连接, 所以在发送数据时应指明目的地址。如图6所示, A作为发送方, 通过其套接字用函数sendto () 将其服务请求数据发送到接收方B的指定端口, B通过其套接字用函数recvfrom () 接收数据, 处理好服务请求后又将服务应答发回A, 此时A便成了接收方, A接收应答后还可继续发送数据给B。

2.2 广播通讯的实现[7]

广播和多播都用于实现向多个接收者发送UDP数据报, 但是广播不像多播那样在接收端有复杂的控制过程, 因而实现比多播简单的多。以下广播通讯的实现均在点对点通讯的基础上实现的。

在发送方, 只需要设置套接字socket的选项为允许发送广播, 然后在发送时指定目的IP为广播地址即可。具体地, 允许socket广播通过setsockopt函数设置广播选项来实现, 当setsockopt参数optname为SOBROADCAST时, 表示打开或禁止从该socket广播, 当参数optval为1时允许广播, 为0时禁止广播。

系统编程实现广播的部分源码为:

据文献[7]所讲, 在接收方, 一般不需做任何改动即可收到广播。但在本系统实现的实验过程中, 当将socket绑定到非INADDRANY的IP地址时, 接收方无法收到广播, 并且没有任何错误指示, 即需要绑定本地端口地址到通配地址INADDRANY才可接收广播:

myaddr.sinaddr.saddr = htonl (INADDRANY) ;

另外, 本系统还实现了广播强插功能, 即不管用户当前处于摘机、拨号状态, 还是处于通话状态, 当有广播来电时, 都断开原来的连接而与广播主叫建立新的连接 (用户不用挂机) 。为了防止通话混乱, 本系统设定同一时刻只有拥有广播控制权的用户有发言权, 而其他用户能听不能说, 当其他用户想发言时, 只要按下“*”键就抢到了广播控制权, 最后只有当拥有广播控制权的用户挂机时, 广播才停止, 而任一其他用户挂机, 不影响广播通讯继续进行。

系统编程实现广播强插的部分源码见表1和表2。

3结语

该系统设计完成后, 成功地应用于常德市某一电厂, 进行生产调度, 系统能实现点对点通讯和广播通讯, 并且通话质量良好, 基本无杂音和抖动。

本系统因自带无线网卡可以自组织网络, 它可以作为一种无线指令调度机被应用到通信蔽塞的工厂, 另外还可外接喇叭自动接听电话, 机器操作员不用停下手中的工作就可照指令进行相应的操作。另外, 本系统应用可拓展性好, 如:系统可通过PCM通道进行FXO连接从而实现与传统PSTN互通 (见图1) ;在本系统上移植SIP协议栈便可实现与WIFI手机互通;将本系统整合到Ad Hoc网络中, 基于Ad Hoc网络的各类移动终端设备便可应运而生, 因此本系统具有广阔的市场前景。

参考文献

[1]Jonathan Davidson, James Peters, Manoj Bhatia.VoIP技术架构[M].北京:人民邮电出版社, 2008.

[2]刘晓红, 张薇.VoWLAN技术研究与测试[J].无线电技术与信息, 2005 (11) :35-40.

[3]昂志敏, 周志斌.一种MIPS架构的处理器在软交换中的应用[J].国外电子测量技术, 2006, 25 (7) :65-68.

[4]英飞凌科技公司.VINETIC语音处理器在VoIP解决方案中的应用[Z].2005.

[5]赵毅.剖析TCP和UDP协议[J].安顺学院学报, 2008, 10 (4) :93-94.

[6]UDP方式点对点通讯[EB/OL].http://zhoulifa.bokee.com.

[7]UDP方式广播通讯[EB/OL].http://zhoulifa.bokee.com.

[8]Wang Wei, Soung Chang Liew.Solutions to PerformanceProblems in VoIP over a 802.11 Wireless LAN[J].IEEETrans.on Vehicular Technology, 2005, 54 (1) :366-384.

VoIP系统 篇8

关键词:流量监控,VoIP,在线识别,机器学习,检测机制

0 引言

Vo IP(Voice over Internet Protocol)业务成本低、部署方便,在语音通信业务中的比例持续上升,其发展带来机遇的同时也给网络安全运行带来了巨大挑战[1]。因此,对Vo IP业务进行管控非常重要,高精度在线流量识别也成为众多研究领域的热点与难点。

目前,主流Vo IP流量识别方法主要包括两大类:基于流特征的Vo IP流量识别与基于机器学习的Vo IP流量识别。文献[2]最早利用流特征进行流量分类,提出249种具体的流特征,并提供10组可用的流量数据集。文献[3]针对数据流中一段时间内的数据包长和包时间间隔,统计其分布范围、均值、中值与方差等特征作为Vo IP流量识别的依据。上述文献识别精度不高,基于流特征的识别方法对不同类型的网络流量适应性也较低。基于机器学习的识别方法主要集中于离线识别,对于在线Vo IP流量识别的研究并不多[4,5,6,7]。文献[4]实现了基于WEKA库文件的Skype流量在线检测工具,但存在无net AI工具更新、无可视化界面、算法单一等缺陷。文献[5]改进了支持向量机算法,能够节省1/4的识别时间,但仍然无法满足在线识别的实时性要求。文献[6]基于流统计特征,利用机器学习算法构建分类器模型,系统在线识别精度为93%。其不足之处在于,没有研究在线识别系统的实时性,并不是真正意义上的在线识别。文献[7]基于开源数据挖掘工具WEKA中的机器学习算法,针对特定应用Skype提出并设计出一种基于决策理论的识别工具,然而只能达到82%的精度,无法满足大流量环境下的高精度识别。从目前的研究成果来看,在线识别的难点主要在两方面:一是无法满足较高实时性要求,二是无法实现高精度识别。

针对以上问题,本文设计了Vo IP流量在线识别系统,不仅能实现实时在线识别,且识别精度高达到92%。

1 Vo IP流量在线识别系统

本文所设计的系统中,数据流定义为两个主机之间交换的连续数据包。同一条流中所有数据包的五元组相同(五元组包括源地址、目的地址、源端口、目的端口和传输协议)。构建训练集的过程需对数据包进行分流,根据思科分流定义,单条TCP流须包含完整语义的开始时刻(SYN)和结束时刻(FIN/RST),UDP流中两个包之间的时间间隔不超过30 s[8]。

1.1 在线识别系统原理

在线识别系统分为离线分类器建模和在线识别。其中,离线分类器建模如图1所示,预处理模块对PCAP文件格式的数据集进行分流,并转化为WEKA工具所能识别的CSV文件格式,同时统计每个数据流的流特征构建成训练集。算法学习模块采用Best first search算法和CSF算法去除候选特征中的冗余且不相关的流特征,获得最优特征子集,再调用机器学习算法对训练集进行学习并搭建分类器模型。最后,通过相关指标评估获得最优分类器模型。

如图2所示,本文所设计的在线识别系统建立在获得离线分类器的基础上,提出JPcap边抓包边检测机制,利用JPcap库编写探嗅器控制底层网卡抓取数据包,同时分流模块对数据包分流并统计流特征。设定流量累积时间,每次达到阈值时间30 s,将统计好的数据流作为测试集送入离线状态下构建好的分类器进行识别,并将识别出的Vo IP流量以IP地址的形式输出到系统界面,动态显示网络中Vo IP电话状态。

1.2 预处理模块

预处理模块在离线状态进行,为系统搭建分类器提供完整训练集。该模块包括获取数据集、文件格式转换与分流统计构建训练集。

1.2.1 获取数据集

使用Wireshark软件抓取PC中运行的特定应用类型流量获取数据集,通过配置交换机镜像端口将抓取单个PC产生的流量扩展为整个局域网产生的流量。同时使用文献[4]中提到的Moore数据集与Tstat网[9]提供的Skype数据集。此外,在数据集中新增PC-PHONE端的Vo IP类型流量,使系统同时具备PC-PC端与PC-PHONE端Vo IP电话的识别能力。

1.2.2 文件格式转换

Wireshark软件数据包的存储格式为PCAP格式。PCAP文件头包括:数据链路层14 B包头+20 B IP包头+20 B TCP或UDP包头。预处理模块通过分析PCAP文件头信息,编程实现五元组、时间戳及数据包长等流特征信息的提取,并转换为WEKA能识别的CSV文件格式。

1.2.3 分流统计构建训练集

首先在五元组相同且满足思科分流定义的条件下,对Wireshark抓取的数据包进行分流,利用文献[2]提供的fullstats分流器,在Linux系统中实现分流。完成数据包分流后,统计数据流的相关流特征,并将统计后的数据流作为最终训练集。

1.3 流特征选择

文献[2]提出了249种流特征,若对每个特征进行统计,将耗费大量的计算时间,成本过高,且并不是所有流特征都适用于Vo IP流量识别,因此需要去除不相关且冗余的流特征,以达到提高模型精确度,减少运行时间的目的。本设计根据Vo IP语音电话特有的通信属性对其进行初步筛选,得出20个候选流特征再进行特征选择。特征选择首先从候选特征集中产生一个特征子集,然后用评价函数对该特征子集进行评价,将评价的结果与停止准则进行比较,若评价结果比停止准则好就停止,否则就继续产生下一组特征子集,直到获得评价最高的特征子集。本文使用Best first search搜索算法从候选特征集中产生特征子集,然后用CFS(Correalationbased Feature Selection)算法进行评估,得到12个相关性最好、得分最高的特征子集,如表1所示。

1.4 机器学习算法

本文着重研究C4.5决策树算法,为增强系统可扩展性,另在系统中集成了朴素贝叶斯算法(Naive Bayes)与支持向量机算法(SVM)。

C4.5决策树是一种经典的分类与回归算法。决策树的数据结构由内部节点和叶子节点组成,内部节点代表一个特征属性,叶子节点代表一个类别[10]。算法的处理过程分为以下几个步骤:首先,计算数据集D的经验熵H(D),熵是一种不纯度度量准则:

式中,pi是属于第i类的概率。其次,计算特征A对数据集D的经验条件熵H(D|A):

进一步得出信息增益为:

信息增益比为:

式中HA(D)为属性A的信息熵。依次选取信息增益比最大的特征Ag分割数据集D为Di,将Di中最大的类作为子节点再递归调用得到子树Ti。最终经过“悲观剪枝”修剪决策树得到损失函数最小的子树。

朴素贝叶斯是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练集,首先基于特征条件独立假设学习输入/输出的联合概率分布,再基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。朴素贝叶斯的算法效率高,是一种常用的分类算法。

支持向量机是一种二分类模型,基本模型是定义在特征空间上的间隔最大的线性分类器。其学习策略是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。

1.5 在线识别———JPcap边抓包边检测机制

在线识别的关键技术是实现在线抓包同时短时间内识别出目标流量。本文致力于寻找一个能实现Window系统下在线抓包的工具,而JPcap库正是实现这一想法的重要类库。

JPcap库是Keita Fujiiy开发的一套能够捕获、发送网络数据包的Java类库[11]。Java语言虽然在TCP/UDP传输方面给予了良好的定义,但对于网络层以下的控制却无能为力。JPcap类库给Java语言提供一个公共接口,类库使用libpcap和原始套接字API,调用Jini获得Java API中的数据,实现Java语言对底层网卡的控制与链路层数据包的获取。

本文提出JPcap边抓包边检测机制,基于JPcap库编写探嗅器实现在线抓包。利用JPcap库所抓取的数据包对象是单个数据包。因此,系统在抓包的同时能实现对单个数据包按五元组分流并统计其流特征。每当统计时间达到所设置的阈值时间30 s时,便将这段时间内统计好的数据流作为测试集送入分类器进行识别,输出识别的Vo IP流IP地址,动态显示网络中Vo IP的状态,实现真正意义上的Vo IP流量实时在线识别系统。

2 实验结果与分析

实验环境:新西兰怀卡托大学基于Java开发的开源数据挖掘平台weka3.6、一台装有Windows 7操作系统和Eclipes的个人PC、一台华为S5000交换机。

2.1 评价指标

评价二分类类型的分类器性能指标为:精度(precision)、召回率(recall)、F1值。实验以Vo IP类为正类,非Vo IP类为负类,分类器在测试集上预测结果为正确或错误。可能出现的4种情况记:TP,将正类预测为正类数;FN,将正类预测为负类数;FP,将负类预测为正类数;TN,将负类预测为负类数。进一步,得到精度:

召回率为:

F1值为精度和召回率的调和均值:

2.2 实验数据

本次实验使用1.5G Skype流,包含了Skype 10个版本,共计1 371条流,其中371条为PC-PHONE端Vo IP流量。非Vo IP流量1G,使用文献[2]中提到的Moore数据集与通过镜像端口抓取到的数据集。整个训练集共34 371条数据流,覆盖14种流量类型,具体见表2。

2.3 离线分类器模型结果分析

系统识别结果如图3所示。离线建模过程如图3上半部分所示,步骤包括打开训练集文件、选择机器学习算法、建模,图中所示J48即C4.5决策树算法,结果框为分类器识别结果,具体如图4所示。

实验使用10折交叉验证法评估出平均测试误差最小的分类器,由图4可知,分类器识别精度为99.9%,召回率为99.6%。图4最下方为混淆矩阵,对于二分类问题,用2×2矩阵表示,正对角线上表示正确分类的样本,反对角线表示被错误分类的样本数,结果显示有2个非Vo IP样本被分类成Vo IP类,6个Skype样本被分类成非Vo IP类。实验结果表明,本文所选取的最优特征子集大幅提高了分类器的性能指标。由于本文针对Vo IP流包长、时间间隔等关键属性对流特征进行筛选,增强了机器学习算法的学习能力,从而使得分类器识别性能大大提高。

同样地,对Naive Bayes和SVM算法分别进行实验,3个算法搭建的分类器识别结果对比图如图5所示。可知,基于C4.5决策树算法分类器的3个评价指标均最高。这是因为C4.5决策树算法建模时不依赖于网络流量类型的分布,对于不同类型的流量数据有更强的适应能力,在分析较大训练集时优于依赖先验概率的NaiveBayes算法,且内存需求小于SVM算法,因此得到了最好的识别精度。

2.4 在线分类器识别结果分析

在线识别如图3下半部分所示。首先打开本地网卡开始抓包,设定混杂模式抓取流经本地网卡的所有数据包,同时对数据包进行分流并统计流特征。每达到设定的30 s阈值时,选择对应算法的分类器对测试集进行在线识别,识别出Vo IP类型流量并以IP地址形式输出到图示结果框。图3仅是一次测试结果,3个IP地址均为Vo IP通话主机地址,结果表明系统实时准确识别出了当前网络中的Vo IP通话。

接下来,累积进行100次在线实验,对比3种分类器在线识别精度,结果如表3所示。由表3可知,在线识别精度最高的分类器为基于C4.5算法的分类器。

而作为在线识别系统,除精度以外,还需考虑第二个核心指标———实时性。这里也对3种算法的建模时间与识别时间进行对比,结果如表4所示。由表4可得,基于C4.5算法的在线识别时间最短,建模时间略低于Naive Bayes算法,而Naive Bayes在线识别时间低于C4.5算法,SVM建模与识别时间均最长。由于C4.5决策树模型处理样本时,仅需根据网络流流特征值自顶向下进行比较,找到相应叶节点即可,处理简单,处理效率更高,因此识别速度更快。

结合表3、表4的结果对精度与实时性指标进行分析,得到C4.5决策树算分类器识别精度最高,且在线实时性最好;Naive Bayes分类器虽然建模时间短,但在线实时性略差,且精度较低;SVM分类器精度与实时性均不佳。在实际应用中应同时保证高识别精度与实时性,因此本文选择C4.5决策树为系统的核心算法。实验结果表明,本文所设计的Vo IP流量在线识别系统确实能同时满足高精度与实时性。

3 结束语

本文设计并实现了基于机器学习的Vo IP流量在线识别系统,在大幅提高Vo IP流量识别精度的同时保证了系统的实时性,且有良好可视化界面。实验结果表明,本文所设计的Vo IP流量在线识别系统离线识别精度达99.9%,在线识别精度达92%,且识别时间短,能够快速识别出目标流量并显示Vo IP流量活动的IP地址。不过,本文的训练集未能涵盖更多种类的流量类型,对未知流量识别仍有待提高。未来的工作旨在建立一种更优化的在线识别系统,继续增强样本容量,增加更多种类的流量类型并支持更多的算法。

参考文献

[1]梁伟,陈福才,李海涛.一种基于C4.5决策树的Vo IP流量识别方法[J].计算机应用研究,2012,29(9):3418-3421.

[2]MOORE A,ZUEV D,CROGAN M.Discriminators for use in flow-based classification[M].Queen Mary and Westfield College,Department of Computer Science,2005.

[3]OKABE T,KITAMURA T,SHIZUNO T.Statistical traffic identification method based on flow-level behavior for fair Vo IP service[C].Vo IP Management and Security,2006.1st IEEE Workshop on.IEEE,2006:35-40.

[4]CALCHAND A O,DINH V T,BRANCH P,et al.Skype traffic detector[R].CAIA Technical Report,2009.

[5]鲁刚,张宏莉,叶麟.P2P流量识别[J].软件学报,2011,22(6):1281-1298.

[6]GU C,ZHANG S,SUN Y.Realtime encrypted traffic identification using machine learning[J].Journal of Software,2011,6(6):1009-1016.

[7]DI MAURO M,LONGO M.Skype traffic detection:A decision theory based tool[C].Security Technology(ICCST),2014International Carnahan Conference on.IEEE,2014:1-6.

[8]鲁刚,张宏莉,叶麟.P2P流量识别[J].软件学报,2011,22(6):1281-1298.

[9]TCP statistic and analysis tool.[EB/OL].[2016-01-02].http://tstat.tlc.polito.it/.

[10]李航.统计学习方法[M].北京:清华大学出版社,2012.

VoIP系统 篇9

关键词:Android,网络电话,PJSIP,JNI,NDK

0 引 言

VoIP(Voice over Internet Protocol)即首先数字化语音信号并压缩成帧,转换为IP数据包在网络上传输,以此完成语音通话的业务,是一种利用IP协议传输语音数据的、新兴的通信技术[1]。

随着我国三网融合的推进,VoIP与IPTV(Interactive Personality TV)一起成为这一庞大工程的重要标志。而目前手机中,VoIP的解决方案并不是很多,特别是在Google公司推出的开源操作系统Android中。尽管该系统推出时间不长,凭借强大的功能、良好的界面、广泛的商业支持,为用户带来很好的体验,成为2010年最热门且发展最快的手机操作系统。因此,两者的结合,将是未来的发展趋势。本文提出一种基于PJSIP协议栈的解决方案,通过Android本地开发工具(NDK),实现一个高效、稳定且功能强大的VoIP系统,具有较高的参考和实用价值。

1 VoIP设计方案

1.1 设计目标

本方案所设计的系统包含以下功能:首先,完成用户终端(如手机)中语音数据的采集与编码,并通过RTP(实时传输协议)/RTCP(RTP传输控制协议)进行传输和控制;其次,完成会话的控制,包括会话的注册、发起、维护与结束、注销等;再次,作为一个应用程序,必须实现一个良好的界面,与用户交互;最后,作为一个开放系统,需具有良好的可扩展性。

1.2 总体设计

本方案基本上符合Android的NDK框架的开发规范,将系统分为4层,如图1所示。最上层为应用层,该层将在Android SDK的框架内,采用Java语言来实现;第二层为JNI层,SIP协议栈有很多种实现,其中,采用C语言的SIP协议栈在效率、速度、系统占用方面有着超越其他库(如Java协议栈)的优势,因此,该方案将在第三层采用纯C语言实现的PJSIP协议栈。为了让Java应用层能调用协议栈层,在两层之间需要一个衔接的桥梁,这就是JNI层。最后一层是驱动层,这部分一般是由手机厂商来实现的,本文将不做重点介绍。

2 VoIP的具体实现

这里将实现一个完整的VoIP系统,包括协议栈的实现、JNI的编写以及上层UI的设计实现等。

2.1 SIP协议栈及UA

SIP协议栈直接关系到整个系统的质量与效率,本文将采用纯C语言开发的PJSIP库。该库采用C语言开发,且源码开放,在兼容性与效率上有明显优势,不仅体积小(完整的SIP封装也不过150 KB[2]),同时还实现了一个内存池,使得安全系数与运行效率大为提高,该系统所采用的就是优化后的PJSIP库。

2.1.1 PJSIP协议栈

PJSIP协议栈遵循标准的SIP协议,采用分层架构:SIP/SDP消息编码解析层、传输管理层、SIP终端、事务层、会话层以及应用层等[3]。由于SIP协议采用文本消息发送请求和响应,所以首先需要将SIP消息按照巴斯克范式(ABNF)编码和解析,这就是SIP/SDP消息编码解析层所完成的功能。传输管理层用来管理用户代理与服务器之间的请求和相应;SIP终端是PJSIP中转机制的实现,它主要负责管理各个SIP组建,例如像SIP终端实例注册组件,分发消息到事务层、会话层及应用层,回传处理结果,管理定时器、I/O队列等;事务层通过状态机机制管理SIP信令,每一次状态机状态的改变都将触发回调函数[4,5];会话层负责会话的发起与响应,一般与应用层结合在一起,用于用户交互,不同的平台有不同的实现,本文使用Andriod的GUI来实现。

PJSIP是一个高度封装的库,实际上它是通过PJSUA子库来实现应用的。一个完整的PJSUA生命周期,首先需要初始化,通过函数init()来实现。在这个函数中,将创建代理、初始化变量和堆栈,以及创建一个UDP传输并在最后启动代理;第二步将为UA添加用户,如果需要的话,还要向服务器注册用户;当用户添加成功后,此时可以建立一个呼叫连接,发起会话;当会话连接成功后,就可以使用SRTP协议实时传输加密后的数据,进行通话。最后的过程是挂起或销毁呼叫。

2.1.2 UA原理

UA(User Agency)是协议栈的具体实现,PJSIP通过封装了的PJSUA来实现,在这一点上,大部分的SIP库都大同小异,在此将介绍UA的工作原理。

一个典型的UA包含UAC(User Agency Client)和UAS(User Agency Server)两部分。会话由UAC发起。当呼叫发起时,UAC将首先发送“INVITE”消息给SIP代理服务器,服务器收到“INVITE”消息后将返回一个应答“200 OK”,并回答“ACK”进行确认,同时通知主叫用户(即会话发起用户)上线通话。如果主叫端(用户端)主动结束会话,UAC将返回“BYE”消息,同时通知服务器;如果用户端收到服务器传来的“BYE”消息,回答“200”,并结束会话[6]。

服务器端,UAS收到UAC(用户端)发来的“INVITE”消息,首先从消息中提取出主、被叫对象,然后检查当前是否有空闲信道,若没有则返回“486 BUSY HERE”(即系统忙)消息;接着将检查被叫用户是否在服务区,如果被叫对象不在服务范围,则返回“404 NOT FOUND”(即用户不在服务区);若被叫用户成功上线,则返回“200 OK”,同时准备开始会话。

SIP协议栈一般使用SIP统一资源定位符(URL)来标识,它根据URL来寻址,如集群用户“200”,“300”分别对应SIP用户为“200@192.168.1.100”,“300@ 192.168.1.100”。本文中也使用这种方式来测试通信[7]。

2.2 JNI的实现

PJSIP库和Java类连接是通过JNI来实现的,这也是Android NDK的实现机制,JNI是SUN公司推出的用于Java调用其他语言的接口。

首先需要一个中间类,这个类中主要建立一些方法用于调用C/C++本地函数。它们的类型均为“public static native int”,以便其他的Java类能够调用。

2.2.1 新建PJSIP类

为各个待实现的类新建一个包,可以命名为“com.android.voip.pjsip”,在该包中添加该系统相关的一些类,主要有如下6个类:

public static native int init(String proxy);

public static native int add_account(String sip_user, String sip_domain, String sip_passwd);

public static native int acc_get_default();

public static native int make_call(int acc_id, String uri);

public static native void hangup();

public static native void destroy();

这些类分别为上节中原理各个步骤的实现。这部分仅仅是为C库的调用提供一个接口,因此具体的实现将放在本地C/C++程序中。

2.2.2 头文件的生成

C库与Java间还需通过一个后缀为“.h”的头文件来衔接,这个头文件可以手动编写,也可以通过“Javah”来生成,该工具包含在JDK中,是由SUN公司提供的。

Javah生产的头文件包含一定的规则,例如,本例中,它将生成的函数声明为“Java_com_android_IMSandroid_pjsip_**”的形式,以便在调用C库时能正确识别。

由于Java中的数据类型与C/C++不尽相同,因此还必须注意参数传递时参数类型的转换。本文所涉及到的Java数据类型有String和int型,Javah生成的头文件中会先定义好需要传递的参数类型以及函数返回类型,例如方法“add_account(String sip_user, String sip_domain, String sip_passwd)”,在头文件中将定义函数的形式为“JNIEXPORT jint JNICALL Java_com_android_IMSandroid_pjsip_add_1account(JNIEnv *, jclass, jstring, jstring, jstring)”,其中JNIEXPORT为JNI外部函数声明,jint是“jni.h”中定义C语言中整形的对应类型,JNICALL是JNI关键字。比较特殊的是JNIEnv,它是一个指向类型为JNIEnv_的一个特殊JNI数据结构的指针,它的每个元素都指向一个JNI函数的指针,jclass会根据引用Java类的不同而不同,本文中“pjsip.class”是静态类,因此这里的jclass指的是类本身,如果是非静态类则指的是对象[8]。后面几个就是pjsip类需要传递的参数,根据“jni.h”的定义,String类型对应jstring,int对应jint。然而这只是函数申明与类中方法的形式对应,参数的具体传递还需要相应的转化,具体实现将在下一节详细介绍。

2.2.3 JNI接口函数的实现

创建了pjsip库类和头文件之后,必须应用一个库接口函数,这部分是pjsip接口的实现,限于篇幅,本文只讲解几个重要函数的实现。

(1) init函数

首先是init函数,对应的接口函数为JNICALL Java_com_android_IMSandroid_pjsip_init。该函数在系统初始化时调用,其作用是配置相关参数,并发起一个pjsua应用。它先通过函数“pjsua_create()”创建一个“pjsua”应用,然后通过三个函数“pjsua_config_default(&cfg)”,“pjsua_logging_config_default(&log_cfg”),“pjsua_media_config_default(&media_cfg)”配置其相关参数,其中cfg是pjsua的相关参数,主要是状态改变时的回调函数;log_cfg用来配置log级别;media_cfg中包含时钟频率、声道数目等相关参数。

完成配置之后就可以使用pjsua_init(&cfg, &log_cfg, &media_cfg)将先前配置的参数初始化。在初始化之后,还需为pjsua添加一个udp传输,这一步是通过pjsua_transport_create(PJSIP_TRANSPORT_UDP,&cfg,NULL)来实现的,cfg中包含指定的通讯端口,3GPP建议使用5060.。

需要注意的是,配置完以上参数之后,还需指定SPEEX编码优先级,一般将其设为最大,可以通过函数pjsua_codec_set_priority(&speex_codec_id, 255)来实现。所有配置完成之后,就可以发起pjsua,即最后调用pjsua_start()。成功的话,本函数的返回类型为PJ_SUCCESS。

(2) make_call函数

另一个很重要的函数是make_call,其在本接口文件中对应的函数为Java_com_android_IMSandroid_pjsip_make_1call,这个函数一般在发起会话时调用,它与上一个函数在结构上最大的不同在于本函数需要传递一个字符串参数,前面提到,Java与C/C++在参数结构上并不完全相同,因此这里需要将Java传递过来的String类型的参数转化,可以通过“url_ptr =(char *) env->GetStringUTFChars(url, &iscopy)”来实现。env->GetStringUTFChars在“jni.h”中定义,其功能是将jsting类型(Java)的url复制到char*类型(C)的url_ptr中,以此来完成参数类型的转换。

为了保证传递地址的有效性,还需要使用pjsua_verify_sip_url(url_ptr)验证,这个函数主要验证url_ptr是符合SIP的规则,即是否是一个合法的SIP地址。然而char*型的地址pjsua中还是不能直接使用的,这是因为pjsua重新封装了参数类型,所以最后还需要将其转化成pj_str_t类型,pjlib提供pj_str()函数可以完成转化。在完成了参数的转化后,调用“pjsua_call_make_call()”,将发起会话。

(3) hangup函数和pjsua_destroy函数

这两个函数用来销毁和挂断会话,一般在需结束的时候调用,它们在接口函数中对应Java_com_android_IMSandroid_pjsip_hangup和Java_com_android_IMSandroid_pjsip_destroy,由于没有参数传递,也没有其他的调用,因此这两个函数非常简单,基本上直接调用pjsua提供的pjsua_call_hangup_all()和pjsua_destroy()就能实现。pjsua中这两个函数将完成内存释放、账户注销等工作。

(4) add_account函数

该函数在基本的pjsua中并不是必须的,但如果要使用SIP服务器的话,就必须实现该函数,它在接口函数中对应“Java_com_android_IMSandroid_pjsip_add_1account”,同“make_call”一样,也需要传递参数,不同的是,它传递三个参数,只是原理大体一样。

首先它将参数转化后保持到cfg,通过“pjsua_acc_add(&cfg, PJ_TRUE, &acc_id)”将参数添加到pjsua。pjsua将以其中的sip服务器为目的地址,注册会话发起申请,经过一系列的操作之后,与目的地址发起会话。

2.2.4 主程序与用户界面

系统的主程序是一个标准的Android应用程序,它使用Java语言开发,符合SDK规范。与一般的SDK程序不同的是,该类中必须使用System.loadLibrary加载PJSIP库文件[9]。形式如下:

System.loadLibrary("pjsip-jni");

其中,pjsip-jni就是上节中PJSIP协议栈生成的库。

主程序中的基本方式均按照上节中的过程,创建并初始化PJSUA;当call按键被触发时发起会话,调用make_call()方法;当用户接受通话时,点击hang或cancel按键,触发hang()或采用destry()方法等。

用户接口是通过Android SDK来实现的,这部分几乎全都是Java语言,由于UI不是本文的重点,因此只介绍一个简单的界面,实际应用中用户交互是非常重要的。为了实现所需的功能,至少需要一个文本框来提供SIP地址,以及两个按键来控制会话发起和结束。另外,在呼叫与通话过程中,还需要一个页面来显示,这里可以通过对话框来显示,最后的界面如图2所示。

3 封装与调试

为了能在Android平台上方便地使用该系统,在实现了PJSIP协议栈、JNI接口以及UI之后,还需将上面所有的模块进行封装。Android SDK提供了一些很有用的工具,如aapt等,由于本文重点不在Andriod SDK,所以可以采用集成开发工具(如集成在Eclipse中的ADT)来封装。在工程libs(如果不存在则新建)目录下新建一个名为armeabi的目录,将上节生成的.so库文件放到该目录下。ADT在封装资源时会自动将该库文件封装到apk文件中,apk是Android操作系统中应用程序的封装形式,在所有android平台中均能使用[10]。

封装后安装到Android手机、MID或虚拟机中,并发起会话。与开源SIP软件Linphone通信的结果如图2所示。

4 结 语

通过测试表明,该系统能够对发起并很好地控制SIP信令,该系统由于采用SIP协议,因此与所有采用这一协议的软件均能通信,如Linphone,Kphone等,功能测试中表现良好,实现了VoIP的基本需求。同时如果要增加功能,可以在Java类中添加相应的方法并在应用层调用即可,具有一定的可扩展性。

由于手机等手持设备在规格和配置上的差异,该系统在具体的设备上使用时,界面略有不同,但是同系统架构的手机使用时并不影响功能,在HTC Desire 和 MOTO Milestone上测试均能正常使用。但是,当移植到不同的架构时(即使同时ARM架构),仍需做一定的优化,一般采取主流平台的多种版本方式来解决,这也是所有多厂商移动设备上一个无法避免的问题。

参考文献

[1]DANIEL Collins.VoIP技术与应用[M].北京:人民邮电出版社,2003.

[2]刘洋,侯红.基于SIP协议的IP电话技术[J].计算机技术与发展,2006,16(4):184-189.

[3]ROSENBERG J,SSHULARINNE H,CAMARILLO G,et al.RFC3261,SIP:session initiation protocol[S].[S.l.]:The Internet Society,2002.

[4]魏立峰.基于嵌入式系统BF561的PJSIP协议栈移植[J].计算机工程与设计,2009,30(17):3946-3947.

[5]Benny Prijono.PJSIP协议栈开发主页[EB/OL].[2010-10-20].http://www.pjsip.org.

[6]赵强,张成文,左荣国.基于软交换的NGN技术与应用开发实例[M].北京:人民邮电出版社,2009.

[7]李静林,孙其博,杨放春.下一代网络通信协议分析[M].北京:人民邮电出版社,2010.

[8]任俊伟,林东岱.JNI技术实现跨平台开发的研究[J].计算机应用研究,2005,22(7):180-184.

[9]彭波,孙一林.Java多媒体技术[M].北京:清华大学出版社,2005.

VoIP系统 篇10

关键词:TrixBox,VoIP,IP电话

1 VOIP及TrixBox概述及研究现状

1.1 VoIP

Vo IP(Voice over Internet Protocol)简而言之就是将模拟声音信号数字化,以数据包的形式在IP数据网络上实时传输。VoIP技术可以充分利用公用网络设施,提供基于IP网络的语音通信服务,大幅度降低通信成本,从而使得企业享受更便宜、甚至完全免费的通话服务。虽然现阶段公用VOIP网络的运营权掌握在电信运营商手中,但对于企业来讲,仍可以充分利用企业内部IP网络以及外部公共Internet资源建立自己的企业级Vo IP系统。一方面可以最大化利用企业网络资源,减少电信设备(PBX和线路)的投资和降低电话通信成本,另一方面也可以利用IP网络将电话网络延伸到电信网络无法到达的区域。

1.2 TrixBox

企业内部VOIP网络的核心是IP PBX,IP PBX的相关厂商很多,比较知名的有Cisco,Avaya等。这些厂商的IP PBX设备功能强大,性能优异,但是价格昂贵。为了降低企业的通信建设成本,拥有电话门数不多的中小型企业也可以选择利用开源的软件来搭建自己IP PBX。TrixBox是在开源软件Asterisk基础上发展而来的开源IP PBX系统,完全能够满足中小型企业的通话需求。它由一系列组件组成,每个组件都在开源授权下被发布,无需企业额外付费。与纯软件的Asterisk相比,维护安装Trix Box不需要太多的Linux知识,TrixBox的操作人员可以通过Web界面来管理系统。

在提供丰富的基本电话业务,增值电话业务之外,Trix Box中还集成了Sugar CRM,Sugar CRM是一个客户关系管理系统我们可以用它来跟踪销售导向、客户联系等。

2 基于Trixbox的企业VoIP系统设计

2.1 系统规划

在创建我们的Vo IP系统时,有一系列的需求需要我们去考虑。诸如:企业内部通话,与外部电话通话,是否需要呼叫中心等等。这些需求直接影响到企业IP PBX的部署和维护,我们需要预先规划设计好,因为企业不会容忍在他们的VOIP系统组建完成后再进行大量的更改。我们需要考虑如下的问题:

2.1.1 分机,振铃组,呼叫队列的规划

在规划制定分机号的时候需要考虑公司的职员数量,电话机数量,部门数量。对于中小型企业,我们可以基于部门对分机进行分组,同时把分机号限制在三位数字,而振铃组和呼叫队列采用四位数字。例如:2xx对应销售部门、3xx对应产品部门、4xx对应售后部门。编码2000-2999的范围作为振铃组,而编码4000-4999范围作为呼叫队列。这种做法易于维护,也方便日后的扩展。

2.1.2 外线连接

一旦知道了公司内部有多少个话机,我们就需要计算在任意时刻并发的外线电话并发呼叫的数目。这将会决定我们将在系统中需要的连接类型。此外还需要决定外线电话呼入呼出所占的比例以及有多少个呼出呼叫是长途呼叫,这会影响到呼出路由。外线连接的类型有:

PSTN:最基本的与PSTN间的连接是一个POTS(Plain Old Telephone Service)线路。小的公司可能仅只需要数根POTS线路与运营商的PSTN网络相连接。如果外线电话并发呼叫数目较多,我们可以采用E1线路的方式与PSTN网络连接。

Vo IP:我们可以通过到ITSP(Internet Telephony Service Provider)的宽带Internet连接来传递电话语音,这些ITSP连接我们的Vo IP电话呼叫到PSTN。在多数情况下,ITSP是可用的电话连接服务的最经济的方法,它免月租费,长途资费也很低。

2.1.3 IVR

利用Trix Box很方便就可以设计出公司的IVR。一个良好设计的IVR系统是一个关键点,它会给公司一个非常专业化的印象。在设计IVR时,需要遵循保持简单(菜单不宜包含过多选项),不要询问用户无用信息,允许出错返回的原则。

2.2 系统架构

本Vo IP系统是建立在企业内部局域网的基础之上的,TrixBox架设在公司局域网内。IP电话,软电话通过局域网直接注册到Trix Box上。普通电话需要通过语音网关,或者是在Trix Box服务器上增加提供FXS口的板卡来连接到Trix Box上。Trix Box可以通过公司到Internet的宽带连接注册到ITSP上,从而实现VOIP方式的外线连接。也可以通过在Trix Box服务器上增加FOX/E1板卡来实现到运营商PSTN网络的外线连接。

2.3 系统软硬件组成

2.3.1 服务器

Trix Box对硬件要求不高,使用一台主流配置的PC机就够了。PC机应该配置有2.0GHz处理器、1G RAM以及一个100G硬盘。考虑到我们准备把系统应用与一个商用的环境下,适当提升PC机的配置可以提高系统的性能。

2.3.2 语音板卡

通过在服务器的PCI插槽上插入不同类型的板卡,我们可以扩充Trix Box的接口。因为Trix Box的内核是Asterisk,考虑到兼容性,我们可以选择Digium公司(Asterisk的提供者)的语音卡,比如TDM400P等。为了节省成本也可以选择国内生产的兼容卡。按照提供的接口类型,我们可以将语音板卡分为两类。

模拟接口卡:该卡上可以配置多个FXO/FXS口模块。当采用模拟用户线连接到运营商PSTN网络的时候,需要板卡带有FXO口。FXS口用于连接系统内部的模拟话机。

数字接口卡:如果需要多于10条外线电路或者需要数字连接的时候,就可以考虑选择带有E1接口的板卡了。

2.3.3 电话终端

根据Trix Box提供的硬件接口类型,我们可以选择不同类型的电话终端。终端主要分为两类

2.3.3. 1 硬终端

包含有普通的模拟电话和IP电话。如果Trix Box服务器没有提供FXS硬件接口,我们可以通过语音网关将模拟电话连接至TrixBox服务器上。

2.3.3. 2 软终端

软终端就是软件电话,可以安装在职员的办公PC或笔记本上,通过公司内部的局域网注册到Trix Box服务器上。知名的软件电话有Skype,X-Lite等。

2.4 系统实现的功能

Trixbox具有强大的实时监测和统计功能,通常用户不必再单独开发或购买日志分析方面的组件,用户能够察看在一个时间段内的通话统计数据,例如呼叫建立总数、呼叫平均时长、失败呼叫比例等等,当然也能够察看每个呼叫的主叫/被叫号码,以及呼叫发生的具体时间。

3 结论

本文给出了利用Trix Box组建中小型企业Vo IP系统的过程。可以看到,TrixBox为用户提供了一个成熟的产品化的解决方案,为用户快速部署公司内部VoIP系统和提供了一个非常优秀的基础平台。本文仅利用了Trix Box电话呼叫方面的一些基本功能,在熟练掌握Trix Box的基础上,用户可以挖掘Trix Box提供的一些额外功能,如Sugar CRM等。

参考文献

[1]舒华英,李勇.VoIP技术与应用[M].北京:人民邮电出版社,2003.

上一篇:新疆地名趣谈下一篇:一维数值模拟