分类号:密级:论文编号:2006120859贵州大学2009届硕士研究生学位论文IP传真在企业统一通信中的应用研究学科专业:计算机软件与理论研究方向:计算机软件新技术导师:罗文俊教授研究生:郭志勇﹒﹒中国贵州贵阳2009年5月
贵州大学硕士研究生学位论文目录摘要........................................................................................................................1SUMMARY...................................................................................................................3........................................................................................................................5前言第一章传真通信理论的研究...............................................................................................................................................................................7传真通信的工作原理.....................................................................................................7传真机的分类传真机的通信原理..................................................................................................................................................................................8传真机的组成................................................................................10传真机的通信规程传真通信过程示例.............................................................................................................................................................................14传真通信技术传真通信技术标准.................................................................................实时传真工作方式...............................................................................................................................................16实时传真技术标准本章小结...........................................................................................................17第二章IP传真呼叫建立流程...........................................................................................................................................................18建立与传真呼叫建立.......................................................................................18协议栈结构下传真建立规程..........................................................................................................................................21协议下传真呼叫建立规程概述.......................................................................................................21协议协议.................................................................................................................................................................................24对协议的扩展
贵州大学硕士研究生学位论文代理服务器(PROXYSERVER)设计...............................................................................................................................................................30子模块功能&APPSERVER.........................................30数据与应用服务器()设计子模块功能..............................................................................................................................................31通信服务器()设计子模块功能.................................................................................................本章小结...............................................................................................................................................................................................33第四章实时传真的实现...................................................................................................33通用功能实现消息队列与多线程池.............................................................................................................................................................................35代理服务器的实现.............................................................................35呼出传真队列管理模块呼入传真路由管理模块........................................................................................................................................................................37通信服务器的实现传真包处理模块.....................................................................................传输协议处理模块..........................................................................................................................................................................50呼叫控制管理模块第五章实时传真的测试....................................................................................传真实现验证........................................................................................................................................................................................53传真功能测试............................................................................................55传真性能测试本章小结...........................................................................................................55..........................................................................................................................56结束语............................................................................................................................57致谢参考文献......................................................................................................................58......................................60附录:作者在攻读硕士学位期间的学术论文及科研项目II
贵州大学硕士研究生学位论文摘要TCP/IPInternet基于的迅猛发展,已经成为全球覆盖范围最广,承载业务最多的综合性网络。当VoIP正在逐步替代传统的PSTN通信时,如何处理传真通FoIPFaxOverIP信变得越来越重要。()技术的出现,顺应了通信技术的发展趋势,满足了人们对传真应用的需求。利用FoIP,用户可以通过专用或公共因特网而非传统的公共交换电话网络(PSTN)进行传真,能够获得更为完善的服务和更加强大的功能,比如节省花费、传真清晰、保密性强、自动发送等等,尤其IP是能够无缝集成到统一通信平台之上。传真包括实时传真和存储转发传真。实时IP传真具有实时性强、更接近传统传真的操作方式等诸多优点,对用户更具吸引力,也更有发展前景。人们对通信要求的提升,尤其是企业用户对更高效率的企业通信及更低的通信成本的追求,将明显的导致原有的多种通信手段的融合和统一,即通过统一的手段,将多种现有和将来的通信手段和技术集中到统一的界面加以集中使用。Internet技术孕育了一种全新的统一消息结构,这种统一消息结构使得单一的数据网络结构可以传输语音、数据和传真。IP本文首先详细介绍了传真通信的基本原理,然后对传真的呼叫建立流程进行了详细阐述。在对传真系统的设计中,本文详细描述了系统的整体架构和各个功能模块的功能。最后介绍了系统的实现。本文所做的主要工作、技术难点与创新处如下:1.对传真通信的工作原理进行了详细阐述。传真终端通过扫描原信息并且将之转换为像素流最后使用协议传输到远端。传真标准定义了在两PSTNPublicSwitchedTelephoneNetwork-个(公共电话交换网)中的传真终端之间传送文档的必要的通信过程。2.对实时传真技术标准标准进行了详细分析。提出了IPIP通过网络实现实时三类传真的应用模型,并详细规定了通过网络连接的传IAF真网关和或网络传真设备()之间的信令与数据交换过程。传真呼叫建立流程的分析。作为实现网络实时传真的控制协议,VoIP但它并没有描述如何建立一个网络呼叫。呼叫的建立是网络传真不可缺少的一部分,与此相关的协议有以下几种:媒体网关控制协议(),以及会话初始化协议(SIP)。本文对主流信令控制协议进行了分析和对比。4.详细定义企业传真解决方案的业务功能,并采用模块化方法分析和设计业务模型。首先给出了实时传真方案的整体框架,然后对这个框架中各个模块的功能进行了详细的阐述。1
贵州大学硕士研究生学位论文5.对实时传真方案进行了实现。基于整体架构的设计,对主要功能模块的实现方式进行了详细描述,包括代理服务器中呼出传真队列管理模块、代理IFP服务器中呼入传真路由管理模块、通信服务器中处理模块和传输协议处理模块等。6.对系统进行了系统的测试。对系统进行了详细的功能测试和性能测试,从实验的结果来看,经过进一步的优化和完善,实时传真方案可以具备实际的应用价值。关键词:实时传真,统一通信,,,SIP,IFP,UDPTL2
贵州大学硕士研究生学位论文SummaryWithitsfastdevelopmentduringtheseyears,theInternetbasedonTCP/IPprotocolshasbeengrowingtothebiggestnetwork,,(FaxOverIP)technology,goeswiththetrendinthedevelopmentofcommunicationtechnologyandmeetspeople',userscanusefaxbusinessthroughthepublicInternetratherthanthetraditionalpublicswitchedtelephonenetwork(PSTN),canenjoyabetterserviceandmorepowerfulfeatures,suchascostsavings,clearerimage,confidentiality,andautomaticallysentandsoon,inparticular,-timeIPfaxhastheadvantagesofmuchclosertotraditionalfaxmodeinoperation,,especiallythedemondofmoreefficientandlowercostofcommunicationbyenterpriseusershasupgraded,itwillobviouslyleadtotheintegrationandunityofavarietyofmeansofcommunication,,whichallowsthedatanetworkitselfcantransmitvoice,,,,,themajorworkdone,technicaldifficultiesandinnovationareasfollows:(PublicSwitchedTelephoneNetwork).-timefaxstandardproposedtheapplicationmodelofimplementationofreal-timegroup3faxthroughIPnetwork,anddefinedindetailtheprocessofexchangingsignalsanddatabetweenfaxgatewaysandnetworkfaxequipments(IAF)
贵州大学硕士研究生学位论文-timenetworkfaximplementation,:MediaGatewayControlProtocol(MGCP),(SIP).Inthispaper,,,,,adetaileddescriptionoftheimplementationmethodiscarriedof,includingtheoutboundfaxqueuemanagementmoduleintheProxyServer,,judgingfromtheresultsfromtheexperiments,afterfurtheroptimizationandimprovement,:Real-timeFax,UnifiedCommunication,,SIP,,IFP,UDPTL4
贵州大学硕士研究生学位论文前言IPIPIP近年来,网络的日益普及,使得包括传真在内的基于技术的各种应用IP正以迅猛的速度发展。从国际电信市场发展的大环境上看,电信业务包括传真业务的开放是大势所趋。在美国、日本、德国、瑞典等国都已经或正在进行较大IPIP2004Internet规模的传真业务商业运行。传真将越来越引起人们的关注,年传真占所有传真传输量的30%左右,预计不久的将来在世界范围内将形成一股IP传真的热潮。从某种意义上讲,IP传真对传真通信的挑战不是一般意义上的新产[1]品对老产品的挑战,而是一种趋势,预示着一个崭新的通信时代的到来。CISCOIP、华为等全球主要的网络设备和电信设备提供商都在积极地研制和开发传真设备,其中支持IP传真的通信环境就是重点之一。IP传真的最大的优点就是InternetIPPSTNIP在远程中继上使用的是或其它网,而不是。由于网可以动态地PSTN分配与使用带宽资源,具有比基于固定带宽分配的更高带宽利用率。另外,与IP电话业务相同,IP传真业务计费方式也属于网间结算的,业务商无需缴付高IP昂的国际结算费,这些使得传真业务的运营成本远远低于传统传真业务。目前,通过IP网络传送传真有两种方式:存储转发方式和实时传送方式。存储转发方式的IP传真类似于电子邮件。主叫用户首先将传真发送到服务器,服务器会将它送到远端的服务器,由远端服务器最终将传真发送到被叫用户。之后,主叫得到传真发送是否成功的信息。实时传送方式的IP传真就如普通的传真发送。双方传真机仍然要经过同步和发送数据,不同的只是两地之间的通讯连接不IP是通过电话线,而是通过网络。如果对方的传真线路忙,主叫会收到忙音并可以选择稍候重拨或者选取用存储转发方式。存储转发方式的IP传真在以下两方面有欠缺:1.没有发送确认。传真只有在最终发送到被叫才可以知道,而在发送过程中没有任何发送确认。2.适用范围小。存储转发方式只能发送PC机生成的传真文件,但实际上有90%的传真是通过普通的传真机发送的。由于存储转发方式中存在缺陷,最新的传真技术逐渐采用实时传真方式。实时传真的最新标准是,年6月18日由ITU的第8小组发布。定义了传真在三类终端间传输的过程,除PSTNISDNIP了包括或者部分的传输,还包括网络部分的传输。IP典型的三类传真终端是和一个网关相连的,然后,通过网络将传真传送到目的网关,目的网关再通过PSTN将传真发送到接收三类传真设备上。一旦PSTN的呼叫建立起来,两端的三类传真终端就建立起了逻辑连接,通讯的两端首先建5
贵州大学硕士研究生学位论文立传真所必需的对话。协议本身直接在收发网关之间运行。呼叫建立、传真设备和网关之间通信、传真设备之间的通信不在协议范围内。呼叫控制协议可以是或。()协议以其更加开放、更易扩展、与VoIPSIPVoIP紧密结合等特性,逐渐成为的主流协议。产品将主导未来的通信市场已成为业界人士的共识。在统一通信环境中实现支持实时传真方案,对降低企业间通信成本,提升企业客户满意度都有很大的积极意义。本文的组织结构如下:第一章:传真通信理论的研究。该章节详细介绍了传真机的原理,IP传真通信过程和传真的原理和工作方式。第二章:IP传真呼叫建立流程。该章节对实时传真技术标准协议,SIP/SDPSIP/SDPIP信令控制协议和基于的传真网关的呼叫流程作了详细的阐述。第三章:实时传真的设计。该章节根据实际项目的需要,提出了需求模型,并根据该需求的模型,提出了在Cisco统一通信环境中实现实时传真的总体设计思路,对各个功能模块的做出了详细说明。第四章:实时传真的实现。该章节是本论文的重点。本章根据上一章提出的设计思路,对Cisco统一通信环境中的传真模块的各个功能模块的作了具体的设计和实现。第五章:实时传真的测试。该章节对经过功能进行了简单的测试,包括传真实现测试、传真功能测试以及传真系统的性能测试,并给出了测试的结果并加以了分析和评价。结束语:该章对本论文的工作作了总结,并提出了存在的问题和不足,为下一步的工作提出建议。6
贵州大学硕士研究生学位论文第一章传真通信理论的研究传真通信的工作原理传真通信就是在发送端将欲传送的信息(文字、图像等),利用光学系统分解成许多被称为象素的光信号,然后把这些以光信号形式出现的小点子变成电信号,通过有线或无线电路传送出去。在有限远的接收端收到这些电信号后,先把它恢复成光信号,再把它们组合在一起,从而复制出与发送端原稿相同的文件或图像。传真机的分类CCITT根据国际电报电话咨询委员会()建议,将目前已应用与开发的文件[2]传真机分为四类:即一类机、二类机、三类机与四类机。1G1.一类传真机()为模拟传真机,双边带调制,模拟频移键控信号,黑白灰度,其发送信号不采取任何频带压缩措施,适用于在电话线路上以
贵州大学硕士研究生学位论文传真机的通信原理传真机的组成凡在调制之前采取数字频带压缩措施,并能在一个标准话路上按标称每毫米四线以上的密度在一分钟之内能传送一页ISO规定的A4文件的传真设备,称为文件三类机。在众多的传真机中,传真机的使用最多,应用最广,它符合建议和。传真机是将模拟的原始传真信号转换成数字信号,然后进行数字压缩[3]编码和采用高效数字调制技术的传真机,所以又称G3传真机为数字传真机。组1-1成原理如图所示。图1-1三类传真机组成1.扫描拾取部分这部分的作用是分解图像,并在分解图像的同时完成光电变换,从而使二维的图像信号变换成一维的传真信号(电信号)。2.图像信号处理电路为了减小光电变换过程中的信号失真而采用的图像处理电路。3.编译码器的作用是利用图像的统计特性,实现编码数据压缩,把传真信号变ITU-T换成相应的码字,以削减传真信号的冗余度,从而大大提高通信效率。建议的编码方案有MH码(改进的霍夫曼码)和MR码(改进的像素相对地址指[5]定码),前者为一维编码,后者为二维编码。译码器的作用是将接收端收到的码字还原成传真基带信号。所以译码过程是编码过程的逆过程。8
贵州大学硕士研究生学位论文4.缓冲存储器因为每一个编码行输出的数据量不稳定,随图像内容的变化而变化。所以,编码器输出的是不均匀数据。为使不均匀的编码数据能以固定的传输速率在信道上传输,并使传输效率达到最高,必须在文件传真三类机中设置缓冲存储器,以实现速率匹配和自动调节供给调制解调器的数据量。接收时的译码过程和发送时的编码过程相反,因而同样需要设置缓冲存储器,其作用是将输入的均匀数据变为不均匀数据,送给译码器进行译码。5.信道编、译码器文件传真三类机采用了编码数据压缩技术,削减了信源的冗余度,但是会影响通信的可靠性,为了提高通信的可靠性,许多文件传真三类机采用了信道编码。信道编码通过增加一定的冗余度使发送的编码数据带有一定的规律性,而在收端根据这一预定的规律进行检测,以发现并纠正差错,从而达到保证通信质量的目的。文件传真三类机采用的信道编码方法是检错重发(ARQ)方法。(ECM)ELM常用的两种差错控制方案是误码纠错模式和误码限制模式()。信道译码是信道编码的反过程,因而译码器的作用是去除冗余度,将经信道编码后的编码数据还原成为原编码数据。6.调制解调器文件传真一、二、三类机都是通过模拟电话电路进行通信的。而文件传真三类机是数字传真机,经编码数据压缩后的传真信号是数字信号,所以从缓冲存储器或信道编码器输出的信号无法直接送往模拟信道进行传输。为解决数字信号在模拟信道上传输的问题,采用了调制解调器的方法。这里调制器的作用是完成数/模(D/A)转换,即把数字信号变换成模拟信号,并使之适合在模拟信道上传输。/A/D解调器的作用则是把接收到的模拟信号转恢复成数字信号,即完成模数()转换任务。所以调制解调器是文件传输三类机的重要组成部分,它不仅要解决数字信号在模拟信道上传输的问题,还要适应文件传输三类机高传输速率的要求,同时还需要适应数据传输自动操作的特点,为此应遵循建议(文件传真在公用电话交换网上的传输规程)的有关规定。文件传真三类机使用的调制解调器是符合ITU-T建议的几种标准调制解调[8]
贵州大学硕士研究生学位论文自动降速,如果降到第二档训练仍然失败,则再降一档,若降到2400bit/s时训练仍然失败,则说明信道太差,此时可改用文件传真二类机的方式进行工作,采用文件传真二类机的调制解调器进行通信。目前绝大部分文件三类传真机都具有文件二类传真机的工作方式,这就是说,文件三类传真机的调制解调器一般还具有符合文件传真二类机标准的调制解调器。如果选择的传输速率训练成功,调制解调器就按该速率进行通信。7.网络控制器网络控制器是连接通信线路,电话机和调制解调器的接口。平时它将通信线路倒向电话机的一侧,当需要进行传真通信时,网络控制器便把通信线路由电话机一侧倒向传真机一侧。传真通信结束后,它又把通信线路接到电话机上。另外,网络控制器还要负担线路状态的维持和信号传输方向的控制等功能。8.控制系统控制系统在指令的命令下对整机的各部分进行实时控制,并使文件传真三类[2]机的通信全过程按照建议规定的传输规程进行。传真机的通信规程三类传真机主要在电话网上传输,它与电话机共用一条电话用户线。传真通信期间,传真机将自动切断电话机,传真完毕后再接到电话机上。三类传真机在[4]整个通信过程中遵循协议。协议将整个传真通信过程分成五个阶段,描述了如何开始、完成以及结束传真传输的规程。传真通信过程和电话通1-2信过程类似,按照时间段分成的五个阶段,如图所示。图1-2传真通信过程的五个阶段A⑴阶段:呼叫建立过程呼叫建立是通过主叫拨号和被叫应答,在公共电话交换网上建立连接的过程,包括主叫单音CNG和被叫单音CED的发送和检测。其过程与电话呼叫基本一致。一次传真呼叫或应答可以人工实现,也可以自动实现。根据主叫站和被叫站所采用人工和自动操作方式的不同组成,协10
贵州大学硕士研究生学位论文议中规定了相应的四种操作方法。CED(CalledTerminalIdentification被叫终端标识),该信号表示被叫为非话终端,应用该信号可以实现自动应答,其信号格1-3式如图所示。被叫站在被接到线路之后的秒到秒内,发送连续的2100Hz±15Hz单音,持续时间不短于秒,不长于秒。被叫站在终止CED单音之后和发送其他信号之前,延迟75±20毫秒。CNG(CallingTone主叫单音),该信号表示主叫为非话终端,是1100Hz的单±±15%音信号,允许偏差为,持续时间是秒,允许偏差为秒,间断时间[3]3CNG1-4为秒。信号格式如图所示。图1-3CED单音信号图1-4CNG单音信号11
贵州大学硕士研究生学位论文它告诉对端终端处在发送状态。对自动主叫终端和两端均为手动的终端而CNG言,该信号是必须的,谁是发送端,那么谁就发送该信号。一旦发送了后,发送端的语音通道就闭塞,无法进行语音通话。⑵阶段B:报文前过程这是传真机在传送报文前做准备工作的过程。该过程包括性能标识、命令发送及可以接收的证实等。为此,文件三类机在该过程中运用了以下两种信号:命令信号:标识本端传真机工作状态、性能,控制对方传真机的工作状态等。DIS:数字标识信号,表征被叫终端的标准能力;DCSDIS:数字建立命令,对信号所标明的标准能力的响应;TCF:训练检验,用于检验训练并首次给出该信道能接受本数据速率的指示;响应信号:用于对命令信号进行回答,将接收到命令后的传真机工作状态通知对方。CFR:可以接收的证实,证实全部报文前过程已经完成,并可以开始报文传输;FTT:拒绝训练信号并要求重新训练;所有的命令信号与响应信号都由二进制信号构成。⑶阶段C:报文传输过程C1C2C1C2该阶段又分为和两个阶段,主要完成报文传输,并且阶段和阶段是同时进行的。C1完成报文同步,误码检测和线路监控等工作;C2则是T4建议中的报文传输过程。C阶段传输过程格式以及指定信号都与T4协议一致。D⑷阶段:报文后过程该过程完成证实多页还是单页文件传输,以及报文结束,传真结束信号的发送接收。为此,在该阶段使用了报文结束信号(EOM)、证实信号(MCF)、MPSEOP多页信号()、传真结束信号()等。E⑸阶段:呼叫释放过程本阶段非常简单,包括两个部分,一个部分是针对传真的释放,一个部分是ADCNDisconnect针对阶段呼叫的释放。针对传真的释放就是信号(,挂断信号),此时传真机由传真状态切换回语音通话状态,而呼叫的释放就是由交换机根据信令的类型来完成。传真通信过程示例12
贵州大学硕士研究生学位论文图1-5三类传真通信过程示例[3]图1-5给出了一个实际传真通信中两个三类传真设备之间的信令流程。主叫站通过某种操作方法与被叫站完成呼叫建立后,首先由被叫站向线路发送单音信号CED,标识被叫站是非话音终端设备,且双方进入阶段B。为探询对方能否使用二进码信号方式的通信规程,被叫站先以300bit/s2400bit/sDIS()速率传送二进码方式的数字标识信号,并将被叫端机的有关性能(如建议使用的控制信号速率、扫描线密度、编码方式、兼容性等)在传送DIS的帧结构中的传真信息字段(FIF)里通知给主叫端机。如果主叫端机不能回答二进码信号,说明主叫站用的传真机不是文件传真三类机,而是文件传真二类70ms机或文件传真一类机,则被叫端机在左右的时间后,改用单音信号方式再重发标识信号。这以后,双方都以单音信号方式进行控制。若主叫端机是具备二DISDCS进码方式的三类机.则在收到信号后,主叫端机就发送数字命令信号,DCS命令对方接收,并在的信息字段将扫描线密度、文件尺寸、编码方式等内容送给对方,通知对方用与发送机一致的条件对接收信号进行解码和复制。DCSDIS300bit/s2400bit/s的传输速率要参考已收到的的建议值,而用或者速率传输。DCS主叫端机发送,就确定了主叫站要向被叫站发送报文。主叫端机作为发送机,被叫端机应作为接收机工作。DCS7520ms在发出之后,对方端机要在(±)的时间闪倒换调制解凋器,发送机用或调制解调器传输训练序列。通常,该训练序列的传输速率由高到低,根据信道情况而具体确定。接收机则用该训练序列对本机的调制解凋13
贵州大学硕士研究生学位论文器(包括扰频器、时域均衡器)进行调整,并对训练序列TCF信号进行检验.当训
贵州大学硕士研究生学位论文实时传真工作方式IPPassThroughRelay实时传真的工作方式有两种:(透传)方式和(中继)方式。1PassThrough.(透传)方式三类传真设备工作于64kbps、PCM编码的语音电路上,在透传方式下,被调制后的数据通过IP网络的一条话音通道进行端到端带内(inband)传送,在网络传输的是语音编码数据,又称为()方式。一旦在一个已经建立的VoIP会话上检测到传真单音信号(主叫单音CNGCEDcodec或者被叫单音),网关暂停会话当前使用的媒体格式(),加载透传参数切换到透传模式,增加带宽,改变会话媒体为为,传真数据流通过负载类型(payloadtype)为的RTP通道传输。PCMDSP传真信号和数据之间的转换一般由专用的芯片来完成,但是随着服务器CPU处理能力的增强,越来越多的解决方案选择利用CPU来进行这些计算密集型工作,利用软件来实现这些DSP算法,这样不仅大大减少了通信成本,[3]还增加了系统的灵活性和适应性。这种方式的优点是工作模式简单,不需要增加新的协议就可完成,缺点是占用带宽很高,在每个RTP包传送10毫秒数据的情况下是96kbps(64kbps32kbpsIPIPoverhead传真数据+带宽消耗()),丢包和时延对传输效果影响很大,为减少丢包率,可以在传输中使用包冗余方法,尽管如此,这种方式在实际使用中只能在局域网环境中获得较好的效果。、和等呼叫控制信令均支持透传模式。上述实际上是一种方式,也是局域网中的常用方式,还有一种就是方式,它是在双方传真设备都支持协议的特殊情况下使用的一种方式,网关之间传输的是包,而不是的包。该IAF方式已经应用于(互联网传真设备)之间的通信。2.Relay(中继)方式在这种模式下,收发网关在建议的规程下工作,与透传模式通过带内传输传真数据不同,网关首先解调从三类传真设备收到的信号,经过一定的处理后,映射为对应的数据报传给对端网关,从对端网关收到数据报经过处理再进行调制发送给相连的三类传真设备。、和等协议均可用于中继模式下两端网关的呼叫控制。这种工作方式也已经被广大的网关设备制造商所支持,由于被设计用15
贵州大学硕士研究生学位论文来解决通过包交换网络传输传真数据中的延时、丢包、失序等问题,已被广泛部IP署并证明能够在网络环境中良好地工作。实时传真技术标准实时IP传真的最新标准是,1998年6月18日由ITU的第8小组发布,并于年加以补充和改进。定义了传真在终端间传真系统传输的过程,[32]除了包括PSTN或者ISDN部分的传输,还包括IP网络部分的传输。提出了通过IP网络实现实时三类传真的应用模型,并详细规定了IPIAF通过网络连接的传真网关和或网络传真设备()之间的信令与数据交换过-6程,的体系结构图所示。图网络传真体系结构一个传统的三类传真机连接到网关,通过一个网络向另外一个网PSTN关发送传真,接收网关发起一个呼叫给网络另一侧的三类传真机设备。一旦一个PSTN呼叫在两端建立,两个传真机便建立了虚拟连接。两个三类终端之间便建立一个会话,并协商传真的功能,比如页数确认和最小呼叫时长。两台网关之间建立了会话,发送网关接收三类传真设备的数据,经过处理转换映射为对应的协议数据单元()发送到接收网关,并从接收网关接收协议数据单元()经过处理转换为对应的数据发送到主叫三类传真设备;接收网关进行相反的操作。网关之间根据协议的规定进行差错控制、重传、保证报文的顺序接收、[32]丢包恢复、平滑时延抖动等控制。在的体系结构中,传真信号被话音/传真网关解调编码后在IP网络上传IPTCPUDPTCP100%输,传真包使用和协议,具体是哪一个取决于业务环境。提供无差错传输,但是会降低实时性,当拥塞发生时,路由器会丢弃TCP包。而UDP具有很好的实时性,因为UDP不像TCP那样丢弃数据报,但是传输质量不能保证,16
贵州大学硕士研究生学位论文这是由于数据包的丢失、数据报到达失序、多个数据报重复到达等原因造成的。IP在网络的另外一端,远端网关对数据包解码,重新生成传真信号。中可以使用的调制方法有、、、、、、、、和。协议在收发网关之间运行。呼叫建立、传真设备和网关之间或者传真设备之间的通信不在协议定义的范围内。本章小结G3本章详细介绍了传真通信的相关理论,特别是传真机的原理和通信规程,并用一个示例来介绍了传真通信过程。最后,介绍了传真的两种国际标准及两种工作方式和IP传真通信标准协议。17
贵州大学硕士研究生学位论文第二章IP传真呼叫建立流程作为实现网络实时传真的控制协议,但它并没有描述如何建立一个网络呼叫。VoIP呼叫的建立是网络传真不可缺少的一部分,与此相关的协议有以下[24]几种:媒体网关控制协议(),以及会话初始化协议()。MGCP协议使用ASCII码并采用媒体描述协议(SDP)向网关描述连接参数,但是不提供点到点的呼叫解决方案。提供了端到端的呼叫解决方法,但是由一系列复杂的子协议组成,增加了扩展服务的难度,以及穿越防火墙的复杂性。会话初始化协议(SIP)是一个应用层控制信令协议,被用来创建、修改和SIP终止一个或多方的会话。协议本身并不能构成一个通信系统,需要和其他IETFRTPSDPRSVP协议,如、、等协调工作,才能向用户提供完整的服务。与MGCP和协议相比,SIP协议有新颖的设计理念和易于解析ASCII文本消息体,而且提供端到端的连接解决方案,具有简单、扩展性好的优点,充分利用了现有的Internet为基础来架构IP电话业务网,是适合于企业级网关的信令协议。建立与传真呼叫建立协议栈结构是一个协议族,其中主要协议包括()协议、的呼叫控制协议、多媒体通信控制协议等。其结构如图2-1所示。协议族是一个有机的整体,根据功能可将其分为四类协议:系统控制协议、音频编解码协议、视频编解码协议和数据通信协议。音频编解码协议采用G系列标准,其中为必选编码方式,其他的音频编解码方式还有、、等。RAS信令用来完成终端与网守之间的登记注册、授权许可、带宽改变、状态和脱离解除等过程;系统控制协议是整合协议的核心,它包括、和等。呼叫信令用来建立两个终端之间的连接,这个信令使用消息来控制呼叫的建立和拆除,当系统中没有网守时,呼叫信令信道在呼叫涉及的两个终端之间打开;当系统中包括一个网守时,由网守决定在终端与网守之间或是在两个终端之间开辟呼叫信令信道;控制信令用来传送终端18
贵州大学硕士研究生学位论文到终端的控制消息,包括主从判别、能力交换、打开和关闭逻辑信道、模式参数请求、流控消息和通用命令与指令等。控制信令信道建立于两个终端之间,或是一个终端与一个网守之间。图协议栈结构图定义的主要控制过程包括:(1)能力交换:每个逻辑信道限定传送某种媒体消息,采用一定的编码算法,具有一定的带宽,因此,在信道建立之前,收发双方必须就这些参数进行协商,确定双方可接受的参数范围.这就是能力交换过程,协议采用接收方控制的原则建立逻辑信道,发送方只能在接收方规定的范围内确定信道特性参数。(2)主从决定:主从决定过程是为了避免信令过程中的冲突现象。主从状态确定后,在整个呼叫中将保持不变。(3)媒体信道信令过程:这一过程包括媒体信道的打开和关闭。其设计思路是首先建立连接,确保接收方能够接收并己准备好接收由对端发来的数据后,才开始媒体数据的传送。在建立双向媒体信道时,为了避免两方同时打开信道,首先通过主从决定过程确定一个主终端,由它启动信道的打开。信道的打开恒由发(送方启动。它向接收方发送打开逻辑信道消息,消息包含前向逻辑信道号前向指打开逻辑信道发送方至接收方的方向)及信道参数。其中信道号由发送方赋值,证实消息返回此值,以和请求消息匹配。信道参数包括数据类型、目的地终端标志等。报文的类型有4种:请求、响应、命令和指示。请求报文要求接收方执行所要求的操作并立即响应;响应报文是对请求报文的回复,可以确认或拒绝请;;求命令报文也要求接收方执行所要求的操作,但不要求回送响应报文指示报文只是传送信息。不要求接收方执行操作,也无需返回晌应。常规的系统协议过程是首先利用信令建立呼叫,然后进打能力19
贵州大学硕士研究生学位论文交换,最后才能打开逻辑信道,其过程比较繁复。新版本引入快速建连机制,它将信道建立过程和呼叫建立过程融合在一起,有效地缩短连接建立时间。(faststart)它的实现是通过在呼叫建立消息,仰中置入“快速启动”数据单元实现的。下传真建立规程传真协议很好地纳入了协议框架。提供了一种格式,允许在开始IP网络传输语音数据之前选择编码器或者编码的算法。己经被列为协议的传真编码的选择之一。在附录中描述了基于的实时传真建立过程。其中描述了采用快速建连方式建立个单向的传真逻辑信道和一个双向逻辑信道的过程。它在“faststart”元素中交换端口信息。描述了不采用快速建连方式建立传真逻辑信道的过程。采用打开逻辑信道请求的方式。()描述的是由语音媒体流切换到传真媒体流的过程这里采用非快速建连方式,如图2-2所示。(CNQCED,V21通信双方己建好语音通道,任何一方在检测到传真信号音前导标志)时,该端点将向对端发送消息RequestMode,请求变为t38fax数据模式。对端将发送requestModeAck响应,然后双方都将向对端发出请求Req-CLoseLogCh()Req-OpenLogCb()关闭语音通道和打开传真通道,当双方都收到打开传真逻辑通道的确认消息后,这样传真通道协商成功(端口号一般仍旧采用原来的语音端口,或在此过程中协商),开始发送和接收传真数据。协商成功的前提是在之前的的能力交换中双方都支持编码模式。图语音流到的成功转换20
贵州大学硕士研究生学位论文协议下传真呼叫建立规程概述协议SIPSessionInitationprotocolInternet()称为会话初始化协议,是由工程任务组IETF(InternetEngineeringTaskForce)于1999年提出,基于IP网络,特别是在Internet这样一种结构的网络环境中,实现实时通信应用的一种信令协议。SessionSIP而会话()是指用户之间的实时数据交换。基于的应用,每一个会话可以是普通数据,也可是经过数字化处理的音频、视频数据或其它数据,具有很大的灵活性。SIP是文本格式的客户-服务器协议,客户激发起请求,服务器进行响应,STMPHTTP它是在(简单邮件传输协议)和(超文本传输协议)基础之上建立起来的。但与HTTP和STMP不同的是,SIP既可以用TCP也可以用UDP来传送。SIP是一个应用层控制协议,可以建立、变更和终止多媒体会话(会议),SIP对于创建与终止多媒体通信的支持分为用户定位(userlocation)、用户有效useravailabilityusercapabilitiessessionsetup性()、用户能力()、会话建立()和会话管理(sessionmanagement)5个方面。SIP是一个信令协议,因此它有自己特定的语法。SIP的语法是基于文本的,;与二进制编码相比,一个明显的缺点就是消息本身会消耗较多的带宽但是,在语音通信时,信令所占用的带宽与语音流占用的带宽相比是微不足道的。SIP消息是SIP客户机和服务器之间通信的基本单元。它是一个基于文本的协UTF-8RFC2279ISO10646议,采用编码()中的字符集,以空格为间隔符,以回CRLFCRLF车换行符为行结束符。发送者必须用一个来结束一行,而接受者也必须用CRLF来识别一行的结束。SIP消息有请求消息和状态消息(也称做应答消息)两大类。请求消息是从客户端发送到服务器,而状态消息是从服务器发送到客户端的。无论是用户代理客户(UAC)发送的请求消息,还是用户代理服务器(UAS)发送的相应消息都由一个起始行、零个或多个头部和任选的消息体等几分部组成。其一般格式如下:Message=start-line(起始行)*message-header(消息头)CRLF<>空行[message-body][消息体]21
贵州大学硕士研究生学位论文协议[16]SDPIETFRFC2327SIP是中定义的一个多媒体会话描述协议()。由于协议用于创建、修改和终止多媒体会话或呼叫,但它仅能用作用户端点寻址和用户SIPSDP定位,所以需要包含一个段,来完成对多媒体会话的描述。严格的讲,SDP并不是一个真正的协议,它只是一个格式定义,用于描述会议包含哪些媒体、会议使用的协议和格式信息,以及提供足够信息让参加者决定是否加入会议。SDPASCII是一种基于码的纯文本会话描述格式,它不包括传输协议。它可SIPSAP以由不同的协议承载,如会话初始化协议()、会话公告协议()和超文本传输协议(HTTP)。图2-4是SIP包承载SDP的格式。SIPSDP图2-3承载SDP的SIP包的格式根据SDP的要求,会话描述可分为以下两种:会话级描述(会话级描述以"v=""m="开头)和媒体级描述(媒体级描述以开头)。会话级描述适用于整个会话和所有媒体流的细节信息,媒体级描述适用于单个媒体流的细节信息。媒体流信息包含有:媒体类型(如视频、音频、传真等)、传输协议(如SIP/UDP/IP、等)、媒体格式(如、等标准)。SDP会话描述采用RFC2044中的ISO10646字符集。SDP域名和属性名用UTF-8的US-ASCII子集,但是文本域和属性值完全采用ISO10646字符集。SDP<type>=<value>的简化格式可表示为:<type>总是只有一个区分大小写的单字符,<value>是结构化文本串,其格式依赖于<type>,并且也区分大小写,等号两边不能有空格。一般而言,<value>fields是以空格为界的若干项()或者一个自由格式串。一个会话描述由一个会话级描述和若干个媒体级描述组成。会话级部分是以"v="开头,直到第一个媒体级;媒体描述是以"m="行开始直到下一个媒体描述或者到整个会话描述结束。一般,会话级默认值适合于所有媒体,除非被一个相同媒体级描述值所覆盖。一个会话描述中包含有如下各行内容并且固定了顺序,标有*SIPSDP的是可选项:1.会话描述:v=(protocolversion);o=(owner/creatorandsessionidentifier);s=(sessionname);i=*(sessioninformation);u=*(URLofdescription);22
贵州大学硕士研究生学位论文e=*(emailaddress);p=*(phonenumber);e=*(conneetioninformation);b=*(bandwidthinformation);z=*(timezoneadjustments);k=*(eneryptionkey);a=*(zeroormoresessionattributelines)。2.时间描述:t=(timethesessionisactive);r=*(zeroormorerepeattimes)。3.媒体描述:m=(medianameandtransportaddress);i=*(mediatitle);e=*(conneetioninformation);b=*(bandwidthinformation);k=*(eneryptionkey);a=*(zeroormoremediaattributelines)。在上述会话级部分,如果不被媒体描述中的同名属性或连接信息覆盖,连接("c=")和属性("a=")可用于这个会话的所有媒体。SIP/SDP/一个基于的请求应答模式的例子如下:(A->Boffer)v=0o==c==00m=audio49170RTP/AVP0a=rtpmap:0PCMU/8000m=video51372RTP/AVP31a=rtpmap:31H261/90000m=video53000RTP/AVP32a=rtpmap:32MPV/90000SDP在上面描述中,主叫提供了三种建议的会话媒体类型:一个双向的语音流,两个双向的视频流,分别为(负载类型31)和mpeg(负载类型32)。(B->Aanswer)v=0o==c==00m=audio49920RTP/AVP0a=rtpmap:0PCMU/800023
贵州大学硕士研究生学位论文m=video0RTP/AVP31m=video53000RTP/AVP32a=rtpmap:32MPV/90000在这个SDP描述中,被叫拒绝了第一个视频流,而接收了语音流和第二个视频流类型。对协议的扩展通过扩展SDP描述属性来实现传真媒体和能力的协商,如表2-1所示。描述属性名取值版本T38FaxVersion1*(DIGIT)最大比特率T38MaxBitRate1*(DIGIT)填充bit移除T38FaxFillBitRemovalMMR编码T38FaxTranscodingMMRJBIG编码T38FaxTranscodingJBIG数据速率管理方法T38FaxRateManagementlocalTCF或transferredTCF最大缓存T38FaxMaxBuffer1*(DIGIT)最大数据包大小(可选)T38FaxMaxDatagram1*(DIGIT)纠错模式(可选)T38FaxUdpECt38UDPFEC或t38UDPRedundancy表对SDP的属性扩充下面是SDP的一个示例:v=0o==FAXmessagee=faxsupport@=28733974960c==image49170udptlt38a=T38FaxRateManagement:transferredTCFa=T38FaxUdpEC:t38UDPRedundancy24
贵州大学硕士研究生学位论文
贵州大学硕士研究生学位论文第三章实时传真的设计系统设计是建立整个软件系统的结构,包括子系统、模块以及相关层次的说明。本章根据项目需要,提出了相关需求并加以分析,根据该需求分析给出了系统设计。本系统是运行在CiscoSystems公司的CiscoUnifiedCommunications通信环境下,该通信环境支持、和网络终端。实时传真方案主要实现的功能为:基本传真发送与接受(邮件到传真、Web到传真和打印到传真);多种客户端无缝整合(包括邮件客户端、专用客户端以及Web页面等);传真路由管理;传真群发;传真队列管理以及传真任务管理与报表等。实时传真的需求分析需求分析的好坏直接关系到整个软件项目的成败。本论文的目标就是在实验室原有统一通信环境中添加实时传真的功能。现有CommunicationsIP通信环境已经完成了电话的主要功能。现在重点考虑在原有的统一通信环境中,如何添加完成传真功能。需求模型图实时传真应用模型实时传真的应用模型如图3-1所示。从上图可以看出,在底层通信方面,26
贵州大学硕士研究生学位论文实时传真服务器要与IPPBX和媒体网关进行通信,以提供稳定、高效的传真通信IPPSTN服务,媒体网关完成网络通信和通信之间的转换。在应用方面,需要提供给用户方便、直观、有效的用户和应用程序接口,主要包括以下几种:(1)提供通过常用邮件客户端(如Outlook等)收发传真的功能2()提供应用程序访问传真服务的接口(3)提供打印到传真功能,方便用户(4)提供智能的传真路由总之,需要在现有统一通信环境中实现传真服务器的功能,满足用户生产、工作需求。实时传真方案的总体设计实时传真方案的总体设计-2传真在整个统一通信环境中系统中的位置如图所示。图传真在Cisco统一通信环境中的位置3-2CiscoE1从图中可以看出,在统一通信环境中,媒体网关外部通过线路PSTNEthernetIP连接着网络,内部通过接口连接网络,它起到了衔接内外部网络CiscoUnifiedCommunication的桥梁作用。另外一个重要的通信组件就是Manager,它是整个统一通信环境中的核心组件,提供了呼叫的监控、控制、路IPIPIPPBX由以及通信组件和电话管理等功能,也就是我们常说的。27
贵州大学硕士研究生学位论文CiscoUnifiedCommunicationManagerMGCPSIP使用或协议与媒体网关通IPFaxServerIPCiscoUnifiedCommunication信。相当于一个通信终端,它注册在Manager。在传真的呼叫建立过程,通过协议或协议与UnifiedCommunicationManager通信以完成呼叫的建立以及媒体能力协商和交换IPFaxServer通信信息等工作。呼叫建立后,直接与媒体网关通信,它们之间通过实时传真协议通信。在整个实时传真解决方案的最外层是使用传真服务的用户、设备和应ERPCRM用,它们包括邮件服务器、用户、多功能设备和企业其它应用(如和)。IPFaxServerIP它们通过提供的接口使用实时传真服务。实时传真方案的系统结构根据对传真系统在统一通信环境中的位置,对传真系统的系统结构进行设计。传真系统按照规范实现了信令交互管理,从而完成了与的信令转换,作用相当于一个网关。该系统主要由传真用-3户代理层,协议处理层和协议处理层三个层次组成,如图所示。代理服务器(ProxyServer)SMTP客户端代应用程序文本识别与文档分发与流代理模块理模块代理模块匹配模块程管理模块呼出传真队列管理模块呼入传真路由管理模块图像转换引擎数据与应用服务器(Data&AppServer)数据存储管理模块任务跟踪与报表模块Web管理模块通信服务器(CommunicationServer)呼叫控制管理模块实时传真通信处理模块协议处理模块SIP协议处理模块传输协议处理模块IFP处理模块TCP/UDP协议处理模块图实时传真方案系统结构图28
贵州大学硕士研究生学位论文代理服务器(ProxyServer)主要负责给传真用户和需要使用传真的应用程序提供服务,并作为它们的代理与通信服务器进行通信,在呼出传真中提供队列管理的功能,为呼入传真提供路由管理的功能。一台代理服务器可以连接多台通信服务器以实现冗余备份(HighAvailiable)和负载均衡(LoadBanlancing)的目的。数据与应用服务器(Data&AppServer)负责数据的存储、检索、任务跟踪与报表分析以及提供应用程序的Web接口等功能。通信服务器(CommunicationServer)使整个方案中的核心处理层,主要负责文档格式到图像的转换、IP电话呼叫建立、拆除与管理以及传真数据传输等重要的功能。通信服务器根据协议规范,完成协议规范规定的的处理流程。该层IFPIFPIFP大体由处理模块和传输协议处理模块组成。处理模块完成包的处理,包括组装、拆分和IFP的编解码;传输协议处理模块完成IFP包的传输结构的封装和解封装(主要是方式),还有针对的编解码。-4实时传真的传真数据处理流程如图所示。图传真数据处理流程29
贵州大学硕士研究生学位论文代理服务器()设计ProxyServer代理服务器()主要负责给传真用户和需要使用传真的应用程序提供服务,并作为它们的代理与通信服务器进行通信以及文档格式到图像的转换等功能。代理服务器主要包括图像处理引擎、呼出传真队列管理模块、呼入传真路由管理模块、SMTP代理模块、客户端代理模块、应用程序代理模块、文本识别与匹配模块和文档分发与流程管理模块等。子模块功能TIFF图像转换引擎:把各种格式文档转换为传真封包所需要的图片格式,主要包括DOC、PDF、TXT等文档格式到TIFF图片格式的转换。呼出传真队列管理模块:对呼出传真队列进行管理,增加软件在大呼出量情况下的处理能力,同时在发生传真发送错误的情况下自动进行重发。呼入传真路由管理模块:根据事先定义好的策略对呼入传真进行智能路由,把传真发送到指定的邮件客户端、传真客户端、其他应用程序或者多功能设备。SMTP代理模块:负责邮件服务器到传真队列的代理,以及呼入传真方向传真路由到邮件服务器的代理。客户端代理模块:负责与传真客户端通信客户端通信,代理传真客户端行为的组件。应用程序代理模块:负责提供应用程序访问传真服务的接口,同时提供打印到传真服务,供其他应用程序调用。文本识别与匹配模块:传真的分发可以根据传真内容分析出文本并与数据库中客户端信息进行匹配以方便下一步的路由。文档分发与流程管理模块:根据文本识别与匹配模块分析出的匹配结果按照提前定义好的流程进行传真内容文档的分发。数据与应用服务器(Data&AppServer)设计Data&AppServer数据与应用服务器()负责数据的存储、检索、任务跟踪Web与报表分析以及提供应用程序的接口等功能。数据与应用服务器包括数据存储管理模块、任务跟踪与报表模块和Web管理30
贵州大学硕士研究生学位论文模块等。子模块功能数据存储管理模块:对系统中数据进行存储和管理,对历史数据进行备份,对传真文件进行管理。任务跟踪与报表模块:对每一个传真任务进行跟踪,并通知任务执行结果;根据历史数据生成统计报表,供用户分析使用。Web管理模块:提供用户访问传真系统、进行系统配置、查看传真任务执行WebWeb情况、进行数据存储管理等功能的接口,同时提供通过收发传真的功能。通信服务器(CommunicationServer)设计通信服务器(CommunicationServer)使整个方案中的核心处理层,IP电话呼叫建立、拆除与管理以及传真数据传输等重要的功能。通信服务器主要包括图像转换引擎、呼叫控制管理模块、实时通信处理模块、协议处理模块、SIP协议处理模块、传输协议处理模块、IFP处理模TCP/UDP块以及最底层的协议处理模块等。子模块功能呼叫控制管理模块:传真服务器在整个统一通信环境中充当了一个媒体终端,在呼叫建立和拆除的过程中它通过或协议与CommunicationManagerCiscoIPPBX(统一通信环境下的)进行通信。呼叫控制管理模块就是负责这部分功能,它调用底层的协议处理模块和SIP协议处理模块,通过或协议与进行通信,来进行呼叫的建立和拆除等功能的管理。实时通信处理模块:按照ITU建议实时传真通信协议处理传真服务器和媒体网关之间的实时传真通信。首先从传真队列中取出待发的传真,取出通信目的地信息,交由下层传输协议处理模块处理传输协议,然后和媒体网关建立传真通信,然后交由下层的IFP处理模块对传真数据进行封包,最后把IFP发送到PSTN媒体网关再由媒体网关发送到。协议处理模块:处理协议,包括上层适配器和协议栈,为上层呼叫控制管理模块提供服务。SIPSIPSIPSIP协议处理模块:处理协议,包括上层适配器和协议栈,为上层31
贵州大学硕士研究生学位论文呼叫控制管理模块提供服务。传输协议处理模块:处理实时传真通信协议,为上层实时传真通信处理模块提供服务。IFP处理模块:处理IP传真包的封包与解包,为上层实时通信处理模块提供服务。TCP/UDP协议处理模块:处理TCP和UDP协议,进行封包和解包等工作,为上层提供服务。本章小结本章根据实际项目的需要,提出了需求模型,并根据该需求的模型,提出了在Cisco统一通信环境中实现传真的总体设计思路,对传真模块的各个组成部分的做出了详细说明,并给出了数据处理流程。最后还对几个主要的模块及其子模块进行了详细的功能描述。32
贵州大学硕士研究生学位论文第四章实时传真的实现根据统一通信环境中实时传真方案的系统结构,实时传真主要包括三个大的功能组件:代理服务器、数据与应用服务器和通信服务器。代理服务器主要包括图像处理引擎、呼出传真队列管理模块、呼入传真路由管理模块、SMTP代理模块、客户端代理模块、应用程序代理模块、文本识别与匹配模块和文档分发与流程管理模块等。Web数据与应用服务器包括数据存储管理模块、任务跟踪与报表模块和管理模块等。通信服务器主要包括图像转换引擎、呼叫控制管理模块、实时通信处理模块、协议处理模块、协议处理模块、传输协议处理模块、处理模TCP/UDP块以及最底层的协议处理模块等。下面将分别对每个组件以及其子模块作详细的设计和实现。通用功能实现消息队列与多线程池Socket在本系统中涉及到大量的网络通信,在网络通信中服务器端的并发量如果实现存在问题容易造成通信效率低等缺点。在网络通信的服务器端主要使用消息队列和多线程池等技术手段来提高通信效率,提高服务器端的并发量。消息队列:消息队列就是个消息的链表。有足够写权限的进程可往队列中放置消息,有足够读权限的进程可从队列中取走消息。每个消息是个记录他由发送者赋予一个优先级。在某个进程往一个队列写入消息之前,并无需另外某个进程FIFO在该队列上等待消息的到达。这跟管道和是相反的,对后者来说,除非读出者已存在,否则先有写入者是没有意义的。消息队列是随内核持续的。一个进程能够先往某个队列写入一些消息后终止,让另外一个进程在以后某个时刻读出FIFO这些消息。这一点管道和是不支持的。Socket本系统中消息队列实现的关键是当服务器端程序收到客户端的连接请求时,先把请求添加到消息队列当中,而后从多线程池中取出一个处理线程对Socket连接进行处理。本系统中消息队列的数据结构及方法定义如下:typedefstruct_MsgNode{struct_MsgNode*next;void*data;33
贵州大学硕士研究生学位论文}MsgNode,*MsgNodePtr;typedefstruct_MsgQueue{MsgNode*front;//headMsgNode*rear;//rearintcur_len;intmax_len;CRITICAL_SECTIONcritical_sec;HANDLEnofull_event;HANDLEnoempty_event;//HANDLEp_sem;}MsgQueue;typedefint(*Destroy_Fucntion_ptr)(void*);MsgQueue*CreateMsgQueue(intmax_length);intEnQueue(MsgQueue*pMsgQueue,void*e);//insertetotherearofMsgQueueintDeQueue(MsgQueue*pMsgQueue,void*e);voidDestroyQueue(MsgQueue*pMsgQueue,Destroy_Fucntion_ptrp_destory_fun);intIsEmptyMsgQueue(MsgQueue*pMsgQueue);intIsFullMsgQueue(MsgQueue*pMsgQueue);MsgQueue*CreateMsgQueue(intmax_length);intSendMessage(MsgQueue*pMsgQueue,void*e);intReceiveMessage(MsgQueue*pMsgQueue,void**e);多线程池:在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些“池化”资源技术产生的原因。比如大家所熟悉的数据库连接池正是遵循这一思想而产生的。多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。多线程池实现的关键在于在服务器端程序初始化过程中循环创建一定数量MAX_THREADSSocket()的处理线程,这些线程负责处理客户端连接,这样,当客户端连接过来时,服务器端可以快速做出处理,而减少了处理时间,提高了工作效率。具体代码如下。//InittheThreadPoolintInitThreadPool(){HANDLEhThread;34
贵州大学硕士研究生学位论文DWORDdwThreadId;g_pQue=CreateMsgQueue(MAX_QUEUE_SIZE);if(g_pQue==NULL){return0;}for(inti=0;i<MAX_THREADS;i++){hThread=CreateThread(NULL,0,Req_ProcessThread,NULL,0,&dwThreadId);if(hThread==NULL){printf("CreateThread()failed:%d\n",GetLastError());continue;}CloseHandle(hThread);}return1;}其中Req_ProcessThread为应答处理函数,它以阻塞模式等待消息队列中的socketsocket连接,在收到连接后接收连接并进行相应的处理或回复,各个功能模块中此函数处理方法不同。代理服务器的实现代理服务器主要包括图像处理引擎、呼出传真队列管理模块、呼入传真路由SMTP管理模块、代理模块、客户端代理模块、应用程序代理模块、文本识别与匹配模块和文档分发与流程管理模块等。呼出传真队列管理模块传真队列管理模块负责传真任务的排队等待,主要应对在大量传真任务时传真出口端口又有限、系统崩溃后的恢复等情况。另外传真队列与多台传真通信服HighAvailiableLoadBalancing务器进行通信以实现冗余备份()和负载均衡()。传真队列管理模块既是服务器端程序也是客户端程序,作为服务器端程序,本模块创建Socket监听6001端口,等待来自SMTP代理模块、客户端代理模块、WebSocket应用程序代理模块或者传真模块的连接,一旦有客户端连接就把Socket连接添加到消息队列中并从多线程池中取出一个处理线程进行处理。35
贵州大学硕士研究生学位论文作为客户端,传真队列管理模块同时与多个传真通信服务器进行Socket通HighAvailiable信,如果是冗余备份()的工作方式,在主传真通信服务器工作正常的情况下,传真队列管理模块把从传真队列中取出队头传真任务并把它发送给主传真通信服务器。3Heartbeat在和主传真通信服务器连续次进行操作失败的情况下,系统认为主传真通信服务器Down机,传真队列管理模块与备传真通信服务器通信并把传真队列队头的传真任务取出并交给备传真通信服务器。当传真队列管理模块恢复Heartbeat和主传真通信服务器之间的时,系统自动切换为主工作方式,有新的传真任务交由主传真通信服务器处理。如果是负载均衡(LoadBanlancing)的工作方式,传真队列管理模块在多台传真通信服务器都工作正常的情况下将从传真队列中取出传真任务依次交给各3Heartbeat个传真通信服务器执行,在与某台传真通信服务器连续次进行操作失败后认为该传真通信服务器Down机,停止向该传真通信服务器发送传真任务,直到该传真通信服务器恢复正常。Down在传真队列管理模块还有一个重要的问题是当代理服务器机的情况发生时,如果不进行特殊处理的话,传真队列中已经存在的传真任务将丢失并无法恢复,势必造成损失。我们处理的方法是定时对传真队列进行持久化操作,将传真队列中的传真任务保存到持久化介质上去,这里的持久化介质指的是计算机的磁盘,因为当系统Down发生机等灾难性事件时,内存中的数据是无法恢复的,而计算机的磁盘上的数据却是永久保存的。这样的话,如果出现意外,可以从计算机磁盘上进行数据恢复,当传真队列管理模块再次启动时会检测计算机磁盘上是否有上次保存的传真任务,如果有就把他们添加到传真队列中。如果传真任务从传真队列队头取出,则传真队列管理模块会删除磁盘上该传真任务对应的持久化数据。经过这样的持久化处理,即便代理服务器出现异常情况,传真队列管理模块仍然能够通过持久化数据的恢复来还原出现异常前的状况,降低了风险,提高了系统的整体安全性。呼入传真路由管理模块呼入传真路由管理模块负责根据事先定义好的策略对呼入传真进行智能路由,把传真发送到指定的邮件客户端、传真客户端、其他应用程序或者多功能设备。36
贵州大学硕士研究生学位论文图4-1呼入传真路由工作流程整个呼入路由的工作流程如图4-1所示。6002首先,呼入传真路由管理模块绑定端口启动服务,等待通信服务器进行连接,一旦通信服务器受到新的呼入传真并接受成功,通信服务器会把传真呼叫被叫信息和收到的传真内容发送给代理服务器的呼入传真路由管理模块。DID呼入传真路由管理模块收到传真后首先判断传真呼叫的被叫是号码(DirectInwardDialing-直接拨入号码)还是公司或部门公用号码,如果是DID号码则查询数据库查看该DID号码对应的人员或设备或应用程序。查询出对应对象后,呼入传真路由管理模块会把传真内容和被叫对象信息发送给相应的代理模块(SMTP代理或客户端代理或应用程序代理),再由该代理模块发送至最终对象。如果传真呼叫的被叫是公司或部门号码,若该公司或部门有对应的电子信SMTP箱,则通过代理模块把该传真发送到目的信箱。如果该公司或部门未关联电子信箱,则认定这是一封发至内部的传真,呼入OCROptical传真路由管理模块把传真内容发送给本服务器的图像处理引擎进行(CharacterRecognition-光学字符识别),根据识别内容获取被叫人员或对象信息。通过SMTP代理或客户端代理或应用程序代理把传真内容发送至目的人员或对象。通信服务器的实现通信服务器(CommunicationServer)是整个方案中的核心处理层,IP电话呼叫建立、拆除与管理以及传真数据传输等重要的功能。主要包括图像转换引擎、呼叫控制管理模块、实时通信处理模块、协议处理模块、SIP协议处理37
贵州大学硕士研究生学位论文模块、传输协议处理模块、IFP处理模块以及最底层的TCP/UDP协议处理模块等。通信服务器是传真实现的关键部分。该服务器根据协议规范,完成的相关处理流程。大体上由处理模块和传输协议(主要是)处理模块组成。传真包处理模块IP传真包处理模块完成IP传真包的处理,包括IP传真包的封装、解封装和IP传真包的编解码;传输协议处理模块完成IP传真包的传输结构的封装和解封装(主要是方式),还有针对的编解码。传真处理模块处在协议处理层的最低端,主要完成传真包的相关处理,数据流如图4-2所示。图4-2IFP处理模块数据流HDLCHDLCIFP该处理模块将从处理模块传送过来的帧,按照的结构,进行IP传真的封装,并对其进行编码;反之,将收到的IP传真包进行解码,将解码后的IP传真包解封装,并构造规范的HDLC帧,发送给HDLC处理模块进行进一步的处理。传真包的结构设计一个IP传真包由“TYPE”(类型)和“DATA”(数据)两部分组成。如[10]图4-3所示。TYPEDATA(类型)(数据)图4-3IFP包结构TypeHDLC(类型)单元描述的是帧的前导标志、传真训练、调制方法和速CNGCEDData率,以及传真模拟信号(和);(数据)元素包含传真信号和报文数据。38
贵州大学硕士研究生学位论文表4-1T30_INDICATOR值列表Type(类型)又分为两种,一种称为“T30指示符”(T30_INDICATOR),T30_INDICATOR它指示前导标志、传真训练和传真模拟信号。网关利用类型指示检测到如CED、HDLC前导标志和调制解调训练信号,除了IAF设备通过DIS/DCS互换标识外,该消息是必备的;另一种称为“T30数据”(T30_DATA),DATA指示分组包含单元中的数据(传送传真信号或报文)以及承载数据所使用的调制方法和速率。“T30_INDICATOR”和“T30_DATA”的具体内容见表4-1[10]和表4-2。表4-2T30_DATA值列表/*T30_INDICATOR*/的程序实现enumt30_indicator_types{//对表4-1的内容进行描述T38_IND_NO_SIGNAL=0,T38_IND_CNG,39
贵州大学硕士研究生学位论文T38_IND_CED,T38_IND_V21_PREAMBLE,T38_IND_V27TER_2400_TRAINING,T38_IND_V27TER_4800_TRAINING,T38_IND_V29_7200_TRAINING,T38_IND_V29_9600_TRAINING,……};/*T30_DATA*/的程序实现enumt30_data_types{//对表4-2的内容进行描述T38_DATA_V21=0,T38_DATA_V27TER_2400,T38_DATA_V27TER_4800,T38_DATA_V29_7200,T38_DATA_V29_9600,T38_DATA_V17_7200,T38_DATA_V17_9600,T38_DATA_V17_12000,T38_DATA_V17_14400,……};DATA(数据)单元包含传真网关从传真终端接收到的传真信号和报文数据。Field-Type“数据”单元由一个或多个字段组成,每个字段有两部分:字段类型()和字段数据(Field-Data)。字段类型指出后随的字段数据的性质,例如,后随数据为HDLC数据或普通(非HDLC)传真报文数据等。表4-3给出字段类型的种类。表4-3Field_Type值列表/*_Type*/-的实现enumt38_field_types{//对表4-3的内容进行描述T38_FIELD_HDLC_DATA=0,40
贵州大学硕士研究生学位论文T38_FIELD_HDLC_SIG_END,T38_FIELD_HDLC_FCS_OK,T38_FIELD_HDLC_FCS_BAD,T38_FIELD_HDLC_FCS_OK_SIG_END,T38_FIELD_HDLC_FCS_BAD_SIG_END,……};字段数据(Field-Data)包括传真规程中使用HDLC帧传送的传真信号(如DIS,DCSCFRECMErrorCorrectionModeHDLC,等),在()方式中使用帧传送的传真报文数据,以及普通传真报文数据(非ECM报文数据)。字段数据中的HDLC帧不含有标志和FCS(校验位)单元。标志和FCS单元将在发送传真网关中去除,C在接收传真网关中恢复。字段数据中的普通传真包括了传真终端在阶段的全部报文数据。IP传真包“数据”单元的尺寸受IP协议制约,如果传真信号或报文数据较小,IFPHDLC一个“数据”单元可以包含多个信号(例如多个帧),同时在传真信IP号或报文数据较大的情况下,可以用多个传真包“数据”单元来传送一个传真信号或报文数据。图4-4中给出的一个“数据”单元有两个HDLC帧。图4-5中3IPHDLC使用连续的个传真包传送两个帧。图4-4一个数据单元中有两个HDLC帧图4-5三个IFP包传输2个HDLC帧41
贵州大学硕士研究生学位论文传输协议处理模块传输协议处理模块完成包的传输结构的封装和解封装。根据协议,可以使用的传输层协议包括:UDP、TCP和RTP,本论文主要实现了对UDPTL的方式的支持。纠错机制,包括冗余机制和奇偶校验,本文主要使用冗余机制。报文的多种封装格式IFP报文可以由多种传输协议完成在IP网络上传输,定义了三种传输方4-64-74-8式,其结构分别如图、图和图所示。图4-6UDPTL/UDP/IP分组结构图4-7TCP/TPKT/IP分组结构IP头UDP头部RTP头部IFP报文纠错帧部图4-8RTP/UDP/IP分组结构UDPRTPUDPTL从这三种结构可以看到,当下层传输协议是不可靠的时(和情况),需要在负载中加入纠错数据来保证传输的可靠性,两种可用的纠错机制FECRedundancy是奇偶校验机制()和冗余帧机制()。在使用可靠的流式传输协议TCP时,为了区分IP传真包报文边界,使用RFC42
贵州大学硕士研究生学位论文1006中定义的数据报格式封装,TCP负载中无需增加冗余的纠错字段。数据传输协议-18在上述三种传输协议中,是系统中必须实现项。如图所示,一个UDPTL数据报由UDPTL头部和UDPTL负载两部分构成。1UDPTL()头部UDPTL头部是指UDPTL序列号,一个以八位字节对齐的整形数字。UDPTL序列号用于标识封包以及封包中的原始数据域的发送次序。每一个UDPTL封包及其原始数据域都拥有唯一的指定顺序的序列号,使得在接收网关处的封包接收可以是乱序的。为了使网关能够对任何封包的接收实现同步,第一个被传输的原始数据域应具有序列号0。接下来的原始数据域应具有线性递增(相邻整数)的序列号。2UDPTL()负载UDPTL负载包括两部分内容,需要发送IP传真包报文,被指定为主数据primary();位于主数据之后的、可选的、用于封包校验与纠错的冗余信息redundancyFEC()和前向纠错()消息这两种附加信息,被指定为附加数据(secondary)。图4-9UDPTL报文格式4-9UDPTL图说明了不同的消息被封装到一个数据段中的顺序,在同一个封FEC包中,用于前向校验与纠错的冗余信息和消息是可选的,即在一次多媒体信息传输过程中,能够使用一种与冗余信息或FEC消息相关的纠错保护方法来保证传输的可靠性。在线路连接过程当中两个网关通告彼此所支持的纠错模式,连接会选中其中交集的一种来完成实际的纠错工作。冗余信息纠错方式IP每一个原始传真信号均被转换为一个传真包报文。因为报文具有唯一的和线性递增的序列号,所以接收端能够检测到封包丢失和重定序的请求。利用一个简单的结构,可以在每一个数据段内以封装前面已经传送过的原始数据域的形式,通过传送冗余信息的方法来恢复出错的数据。所使用的策略是在原始数据域N之后另外再封装个具有单调递减序列号的以前发送的封包的原始数据域。因此,每一个数据段含有一个原始数据域和两个或多个附加数据域。这样,两个或43
贵州大学硕士研究生学位论文多个附加数据域封包丢失是可以被恢复的。为了提供并在UDPTL封包中封装冗N余信息,一个缓冲器被用来缓冲前面个封包中的原始数据域,原始数据域的缓UDPTL4-10冲器及封包的生成如图所示。图4-10冗余机制下UDPTL报文封装UDPTL方法仅可以传输具有连续序列号的冗余IFP封包块。因此,如果当前IFPCUDPTLC-2的报文具有序列号,并且被要求从封包序列号开始冗余地传输IFP封包,那么这个UDPTL封包必须含有所有按顺序给出的序列号为C,C-1,C-2的IFP封包。IPIP当前面传送的“主要”传真包丢失后,则使用本包“次要”部分中的传真包来弥补。IP传真包的重复次数一般为两次,其纠错能力为可纠正连续两包的丢失。对于较差的传输信道可增加“次要”部分的冗余IFP包的数量。纠错FECNIP纠错使用阵列式奇偶校验方法进行纠错,其方法是首先将帧传真包数据顺序组成阵列的形式,每帧数据为阵列的行,第N帧的第1位为第1列,22MM第位为第列……第位为第列。如果各帧的长度不同,将对较短的帧以02最长帧为限补充位。然后对阵列的列位进行模加运算,得出的结果即为用于纠错的冗余信息,称为FEC信息。44
贵州大学硕士研究生学位论文图4-11FEC纠错的协议结构经过奇偶校验运算后得到的结果(FEC信息)放置在UDPTL包中的IP传真包“”4-11FEC181920(主要信息)之后。图中的信息为,和帧的奇偶校验运算结21UDPTL果,放在序号为的包。图4-12多个FEC的UDPTL包的结构接收网关接收到具有FEC纠错的UDPTL包后,如果发现有丢包的现象,则利FEC用信息来恢复丢失的包。具体做法是用正确接收到的参加奇偶校验的其它两FEC220帧与信息做模加,其结果为丢失的帧。例如,当帧丢失时,就可用序号为21的UDPTL包中的FEC信息与己正确接收的18、19帧做模2加,其结果就是20帧。FEC上述纠错方式可以校正非连续丢包时的差错,当出现连续丢包时即不能进行恢复。为了对抗突发性的差错可采用设置多个FEC的方法,例如设置3个FECFEC3IPIP,每个同样是帧传真包信息的运算结果,在抽出运算的传真包时采214-123用每隔帧抽帧的方法。如图,采用此方法可以恢复连续帧的错误。的编解码协议除了定义了这个核心语法标记以外,还定义了UDPTL的语法标记,所有要通过UDPTL结构传输的包必须符合该语法规45
贵州大学硕士研究生学位论文[32]定。协议附件对的语法标记作出了详细的说明,如下:UDPTLPacket::=SEQUENCE{seq-numberINTEGER(0..65535),//序列号定义primary-ifp-packetTYPE-IDENTIFIER.&Type(IFPPacket),//主IFP包定义error-recoveryCHOICE{//差错恢复策略选择secondary-ifp-packetsSEQUENCEOFTYPE-IDENTIFIER.&Type(IFPPacket),//冗余IFP包fec-infoSEQUENCE{//FEC纠错fec-npacketsINTEGER,fec-dataSEQUENCEOFOCTETSTRING}}}(1)UDPTLPackt的结构:ClassUDPTLPacket{public:T38_UDPTLPacket(unsignedtag=UniversalSequence,TagClasstagClass=UniversalTagClass);PASN_Integerm_seq_number;//序列号定义T38_UDPTLPacket_primary_ifp_packetm_primary_ifp_packet;//主IFP包定义T38_UDPTLPacket_error_recoverym_error_recovery;//纠错包定义PINDEXGetDataLength()const;BOOLDecode(PASN_Stream&strm);//UDPTL的编码函数voidEncode(PASN_Stream&strm)const;//UDPTL的解码函数……};(2)UDPTLPacket的编解码相关程序:voidT38_UDPTLPacket::Encode(PASN_Stream&strm)const{//UDPTL的编码实现PreambleEncode(strm);//前导标志编码(strm);//序列号编码(strm);//主IFP包编码(strm);//纠错包编码UnknownExtensionsEncode(strm);//其他未知编码}BOOLT38_UDPTLPacket::Decode(PASN_Stream&strm){//UDPTL的解码实现if(!PreambleDecode(strm))returnFALSE;//前导标志解码if(!(strm))46
贵州大学硕士研究生学位论文returnFhALSE;//序列号解码if(!(strm))returnFALSE;//主IFP包解码if(!(strm))returnFALSE;//纠错包解码returnUnknownExtensionsDecode(strm);//其他未知解码}传输协议的实现1UDPTL()传输协议实现的功能UDPTL传输协议的UDPTLTransport的功能分为两部分。第一部分为发送UDPTL包处理部分:将经过编码后的IFP数据包,在添加上必要的纠错信息后,编码成符合标准的包,发送到网络接口上进行传输。第二部分为接收到UDPTL包处理部分:从网络接口处接收UDPTL包,利用解码包,利用解包和冗余的包,将解码完的包交IFP给处理模块处理。(2)关键方法()发送包处理过程的实现UDPTL包发送处理的流程如图4-13。图4-13UDPTL的发送流程UDPTL发送处理流程实现主干代码:47
贵州大学硕士研究生学位论文booleanUDPTLPacket::handleIFP(constIFPPacket&ifpPacket){T38_UDPTLPacketudptl;//添加冗余信息if(!()){(T38_UDPTLPacket_error_recovery::secondary_ifp_packets);T38_UDPTLPacket_error_recovery_secondary_ifp_packets&secondary=_recovery;(());for(PINDEXi=0;i<();i++)secondary[i].SetValue(redundantIFPs[i]);}(ifp);lastSentSequenceNumber=(lastSentSequenceNumber+1)&0xffff;_seq_number=lastSentSequenceNumber;//编码;(rawData);//调用UDP传输协议发送数据if(!transport->sendBytes(rawData)){//传输失败returnFALSE;}//更新当前阶段的发送冗余信息intmaxRedundancy;if(()==Type_of_msg::t30_indicator)maxRedundancy=indicatorRedundancy;elseif((Type_of_msg_data)_of_msg==Type_of_msg_data::e_v21)maxRedundancy=lowSpeedRedundancy;elsemaxRedundancy=highSpeedRedundancy;//把当前的IFP报文放进IFP缓存if(maxRedundancy>0)(0,());//从IFP缓存中移去多余的IFP报文while(()>maxRedundancy)(maxRedundancy);returnTRUE;}()接收包的处理流程的实现UDPTL4-14接收包的处理流程如图。48
贵州大学硕士研究生学位论文图4-14UDPTL的编码流程图UDPTL接收包的处理流程实现主干代码:booleanUDPTLTransport::HandleUDPTL(constOctetString&pdu){//UDPTL解码UDPTLudptl;If(!(pdu)){//解码失败consecutiveBadPackets++;returnfalse;}//解码成功consecutiveBadPackets=0;unsignedreceivedSequenceNumber=_number;//计算丢失或者失序报文数量intlostPackets=(receivedSequenceNumber-expectedSequenceNumber)&0xffff;expectedSequenceNumber=(WORD)(receivedSequenceNumber+1);if(lostPackets>0){//报文丢失或者失序的情况,看看冗余信息里面有没有期望的报文序号;有则取出;则调用丢包处理程序HandLost();}//endforlostPackets>0foreach(IFPPacketifpPacketinifpPackets)49
贵州大学硕士研究生学位论文{//把有效的IFPPacket交给IFP处理模块处理//更新expectedSequenceNumber;returntrue;}}呼叫控制管理模块Cisco呼叫控制管理模块主要负责传真呼叫的建立与拆除,在统一通信环境Pass-ThroughFax中,传真呼叫建立可以通过两种方式,一种是方式,另一种是Relay方式,本系统的实现主要依赖Cisco统一通信环境下的FaxRelay。统一通信环境下呼叫建立可以通过协议或协议来完成。因此,本系统的实现中呼叫控制管理模块有两个子模块分别是协议处理模块和SIP协议处理模块,分别用于处理呼叫建立和拆除过程中用到的协议和SIP协议。协议和SIP协议中处理的过程大体相同,核心的步骤都是把当前正在进行的VoIP语音呼叫通过信令通知参与通话的各方把通话内容更改为的数据包。下面分别对协议处理子模块和Sip协议处理子模块进行介绍。协议处理子模块IP实时传真协议的附录B定义了在通话过程中从语音模式调换到传真模式的机制。必须在电话的建立过程中指明对协议的支持能力。如果媒体网关中的芯片支持协议,这些信息会在协商过程中作为正常的协议VoIP电话建立的一部分被提供。VoIPDSPFaxTone一旦电话建立过程完成,芯片会不断的监听传真音()。DSP当听到传真音后,芯片会把收到传真音的信号发送给呼叫控制层,然后呼叫控制层会发起一个传真切换过程,图4-15中显示了传真呼叫建立的整个流程。协议下传真切换的具体过程如下:1ModeRequest媒体网关发送消息到传真服务器,传真服务器返回ModeRequestAck信号。2closeLogicalChannelVoIP传真服务器发送一个信号来关闭它的电话使用的UDPcloseLogicalChannelAck端口,并且媒体网关返回一个消息确认收到关闭逻辑信道通知。传真服务器发送一个消息指明新的用于接收传真50
贵州大学硕士研究生学位论文UDP数据包的端口,媒体网关确认收到openLogicalChannelAck消息。4closeLogicalChannel媒体网关发送给传真服务器一个消息用于关闭它的VoIPUDPcloseLogicalChannelAck通话的端口,传真服务器使用确认收到该消息。5最终媒体网关发送一个openLogicalChannel消息用于指明需要传真服务器发送协议流到的端口,传真服务器使用消息确认。编码的UDP数据包在传真服务器和媒体网关之间流动。在传真传输的ModeRequest最后阶段,传真服务器和媒体网关都可以使用另外一个消息来返回VoIP通话模式。图协议下传真呼叫建立流程协议处理子模块当呼叫控制协议是的时候,协议附录描述了呼叫过程中转换为传真呼叫的过程。最初,使用SIPINVITE消息来建立一个普通的VoIP呼叫。当进入语音模式的时候媒体网关中的芯片需要被通知它可以支持协议。然后在呼叫过程DSPHDLC中,当芯片检测到传真标志之后,它会以信令的方式向呼叫控制层报告检测到传真信号,并且呼叫控制层会发起一个SIPINVITEmid-call消息来通知-16希望切换媒体流。协议下协议通过方式传输建立流程如图所示。SIP协议下传真切换的具体过程如下:媒体网关检测到传真标志序列后发送消息,并在消息的消息体中使用SDP协议说明希望切换到协议传输。51
贵州大学硕士研究生学位论文2传真服务器收到INVITE消息后返回200OK消息表示同意进行媒体类型切换。3200OKACK媒体网关收到消息后返回消息给传真服务器表示确认收到200OK消息。传真服务器开始向媒体网关上相同的端口发送传真数据包来代替原本的VoIP电话UDP数据包。5在传输的最后阶段,使用另外一个INVITE消息来返回VoIP电话模式。图4-16Sip协议下传真呼叫建立流程52
贵州大学硕士研究生学位论文第五章实时传真的测试本章建立较完善的测试环境和测试方法,对统一通信环境下的实时传真方案进行实现验证、功能测试和性能测试。传真实现验证这个实验的目的是验证在各种传真流程中,传真信号是否是通过编码发送,发送时是否带有冗余包。验证方法是通过抓包工具WinShark抓包(如图5-1所示),然后查看包中帧的结构是否是编码,是否带有冗余。图5-1WinShark抓包结果图5-2所示是抓包工具抓到的一个完整的报文:图传真数据包内容对传真数据包分析如下:8060:序列号为32864;3300001fe000IFP:报文:以上证据说明确实实现了传真的编码,并且带有1冗余包。53
贵州大学硕士研究生学位论文传真功能测试本文在统一通信环境中实现了实时传真解决方案,下面对的实时传真功能进行测试,并且对传真实验结果进行分析评价。传真通信的评定质量分为客观评定方法和主观评定方法,两种方法从不同的角度对传真通信的质量进行了评定。客观评定方法是指传真报文传输的成功率,主观评定方法是指传输副本文字质量,这是用人眼鉴别传真副本质量的一种评定MOS12345方法。主观评定尺度是评分,分为,,,,等五个等级。5()优:不察觉失真;4(良):刚察觉失真,但不讨厌;3()中:察觉失真,稍微讨厌;2()差:讨厌,但不令人反感;1(劣):极其讨厌,令人反感。本文将从主观和客观两个方面对传真测试结果进行评价。测试包括在实验室的局域网环境和Internet公网环境。(1)局域网测试环境设置:发送端地址:;接收端的IP地址:;(2)测试流程:G38006首先,发送端传真终端模拟器拨打电话,双方可以正常互通通话。G3G3接收端传真终端模拟器接收传真,发送端传真终端模拟器机听到Modem叫声后,发送传真。3()网络环境测试结果及分析:5-1传真系统的局域网测试的主客观评价结果,如表所示:表5-1传真系统局域网测试结果在实验室网络环境中,进行了近50次的传真测试,均能成功接收到图像,成功率为%,且传真副本的质量较高,通过多人的评定,平均分为。由54
贵州大学硕士研究生学位论文于Cisco统一通信换进都在同一局域网内部,利用RTP进行传输,由于UDP几乎没有什么丢包现象,传真会话大部分成功。偶尔出现的传真中断现象,出现在网络比较拥塞的时候,此时由于网络丢包过多,造成了在接收端不能在正常时间范围内接收到传真,导致了传真机的定时器超时,传真的中断情况的发生。从以上测试可以看出,在网络环境中,该传真系统可以做到近100%的传真成功率,且传真副本质量较高,经过进一步的改进和优化,相信系统能表现更好。传真性能测试IP在网络上存在着抖动、丢包和时延等多种对传真信号产生损伤的因素,测试实时传真方案的性能,主要需要进行在一定丢包率、一定抖动和一定的时延这种特殊情况下的传真质量。丢包率1%5%10%20%发送文件数目10101010接收文件数目1010109表5-1丢包率性能测试结果抖动10ms50ms150ms200ms发送文件数目10101010接收文件数目1010109表5-2抖动性能测试结果丢包率10ms50ms150ms200ms发送文件数目10101010接收文件数目1010109表5-3时延性能测试结果分别在丢包率、抖动和时延等恶劣网络环境中性能测试结果如表5-1、表5-25-3和表所示,该传真系统能够满足各种恶劣网络环境下传真性能需求,抗干扰能力强,能够应用于企业或部门生产环境,该传真解决方案有一定的市场应用价值。55
贵州大学硕士研究生学位论文本章小结该章节对统一通信环境下实时传真的原型系统进行了简单的测试,包括传真实现测试和传真功能测试,并给出了测试的结果和评价分析。56
贵州大学硕士研究生学位论文结束语本文首先详细介绍了传真通信的基本原理,基本原理中主要介绍了传真通信的原理与传真通信的规程等,同时对IP环境下的传真通信标准协议进行了IP详细阐述。然后对传真的呼叫建立流程进行了详细阐述,其中首先介绍了与之相关的协议,然后分别详细介绍了和Sip协议下传真通信的流程。在对传真系统的设计中,本文详细描述了系统的整体架构和各个功能模块的功能,提出了在统一通信环境中实现实时传真功能的思路和设计结构,Cisco在对统一通信环境分析和广泛的研究相关开源软件的基础上,结合项目实际的需要,提出了在Cisco统一通信环境中实现传真功能的设计方法,确定了系统的结构和功能模块的划分。本文介绍了系统的实现,根据所设计的系统结构,完成了相关功能模块的具体实现,其中包括代理服务器、应用与数据服务器和通信服务器,其中重点介绍了通信服务器中传输协议处理层和呼叫建立功能的实现。最后并对该系统做了简单的测试和分析。由于时间的限制和本人水平的制约,本文所设计和实现的系统很多功能还有待实现和完善,在这一方面,有很多实际的工作要做。希望在下一步对如下工作进行深入研究:(1)对其他厂商统一通信平台的支持。(2)在使用虚拟打印技术对文档格式进行转换过程中增加更多文档格式的支持。(3)对智能收发传真的支持。57
贵州大学硕士研究生学位论文致谢衷心感谢导师罗文俊教授!从论文的选题、可行性研究、文献的收集、到课题研究的开展,特别是论文的撰写,导师给予了无微不至的关怀,提出了许多建设性的意见。导师学识渊博,学术功底深厚,治学态度严谨,对当今前沿学科敏锐的洞察分析力和处理问题的高效率令我敬佩,对学生的严格要求和爱护使我深深感激,导师伟大的人格力量将激励我今后在科学的道路上克服困难,奋勇向前。还要特别感谢理学院的彭长根教授,入学以来无论是实验室的工作还是学习、研究任务,他都无私地给予了大力支持和帮助。他对知识的孜孜不倦的探索精神和认真严谨的治学态度、一丝不苟的工作作风使我深受感染。另外还要感谢张著洪教授、汪学明教授、龙士功副教授和张晓培老师的辛勤教诲以及关心和帮助。感谢瑞音信息科技(上海)有限公司给我提供的学习和研究环境,感谢项目组同事们给我的无私帮助与支持。感谢实验室的同学们,与他们进行的学术上有益的讨论以及生活中相互间友好的相处,使我受益匪浅。感谢我的家人,正是他们对我的理解、支持和鼓励,才使我顺利完成学业。最后,向所有直接或间接帮助过我的老师、同学、同事,以及本文的评阅老师表示感谢,谢谢您们!同时,我还要衷心感谢所有关心、帮助我的老师、同学和朋友们,他们为我提供了不少有价值的信息、资料以及研究工作中的便利环境和条件,并且给了我许多激励。谢谢!58
贵州大学硕士研究生学位论文参考文献[1]王会进,黄家永.一个基于IP技术的实时传真网关设计与实现[J].计算机工程,-28.[2]刘立柱.数字传真通信[M].成都:成都:电子科技大学出版社,-60.[3]刘立柱.传真图像和传真信号处理原理与技术[M].北京:国防工业出版社,-50.[4]刘立柱.网络传真通信原理与技术[M].北京:国防工业出版社,-68.[5]许飞燕,黄桂金.基于的软交换传真解决方案[J].电子测量技术,2006,29(2):95-97.[6]华慧雅.基于IP的实时传真通信[J].江苏通信技术,2001,17(3):35-37.[7]朱梅英,卢官明,卢捍华.传真通信与调制解调器[M].北京:人民邮电出版社,-39.[8]李宏,李汉.IP电话与IP传真业务融合的关键问题[J].电信技术,2003,(12):28-30[9]杜旭,沈强,余江.VoIP网关实时网络传真的设计与实现[J].计算机工程,2007,23(3-3):50-53.[10]林晓勇,蔡丽,成际镇,夏坚.基于CTI技术的IP传真服务器的设计与实现[J].现代计算机,2006,(12):22-25.[11]周海华,边恩炯等.下一代网络SIP原理与应用[M].北京:机械工业出版社,2006.[12]赵晓华,余厚全.协议栈中模块的设计与实现[J].现代计算机,2004,(2):73-75[13]赵晓华,邓秀兰,余厚全.协议栈中模块的改进设计[J].电视技术,2004,(3):32-34.[14]赵眉,徐全生.基于的实时IP传真技术难点分析.沈阳工业大学学报,2005,27(3):544-547.[15]陈小敏,吉星,顾训穰.基于WEB的语音传真群发系统的设计与实现[J].计算机工程与应用,2004,(33):29-31.[16]陈楚华.媒体网关中传真的设计与实现[D].西安:西安电子科技大学,2006.[17]张南骏,糜正琨.IP-PBX传真网关接口设计与实现[J].江苏通信技术,2005,(2):23-26.[18]张黎明.下一代企业级统一通信平台的研究与实现[D].广州:中山大学,2005.[19]郑朝霞,王永灵等.基于的实时IP传真网关的设计与实现[J].计算机工程,2003,(6):30-33.[20]郑朝霞,王永灵,黄本雄,柳郁松,汪雁.基于的实时IP传真网关的设计与实现.计算机工程,2003,(6):19-21.[21]钟涛,薛质.H248协议下传真业务的实现[J].电信快报,2004,(12):20-22.[22]夏晨,杨学军.IP实时传真协议需求与解决方案[J].电信快报,2001,(6):12-14.[23]夏晨,苏应飚,杨学军,黄本雄.IP实时传真协议需求与解决方案.电信快报,2001,(6):20-22.[24]郭晋铎.语音网关IP传真模块的设计与实现[D].西安:西安交通大学.2005.[25]蒋宇.软交换系统IP传真存储转发设计与实现[D].成都:电子科技大学.2007.[26]游明星,刘立柱.基于协议的实时IP传真的实现[J].数据通信,2000,(3):
贵州大学硕士研究生学位论文[27]韩海燕.互联网时代的新传真技术.铁道通信信号,2006,(12):20-23.[28]窦志亮.IP-PBX支持实时传真机制的研究与实现[D].沈阳:中国科学院沈阳计算机技术研究所.2008.[29]:Packet-basedmultimediacommunicationssystems[Z],[30]:Proceduresfordocumentfacsimiletransmissioninthegeneralswitchedtelephonenetwork[S],[31]:ProceduresforthetransferofFacsimileDataViaStore-and-forwardontheInternet[S],[32]:Proceduresforreal-timeGroup3facsimilecommunicationoverIPnetworks[S],[33]:StandardizationofGroup3facsimileterminalsfordocumenttransmission[S],[34]:9600bitspersecondmodemstandardizedforuseonpoint-to-point4-wireleasedtelephone-typecircuits[S],[35]:4800/2400bitspersecondmodemstandardizedforuseinthegeneralswitchedtelephonenetwork[S],[36]:300bitspersecondduplexmodemstandardizedforuseinthegeneralswitchedtelephonenetwork[S],[37]:":SpecificationofPackedEncodingRules(PER)"[S],[38]:":SpecificationofBasicEncodingRules(BER),CanonicalEncodingRules(CER)andDistinguishedEncodingRules(DER)"[S],[39],[Z],Febrary2000[40],,,,G..Parsons,.“FileFormatforInternetFax”[S],RFC2301,[41]RFC3261SIP:SessionInitiationProtocol[S].IETF,2002[42],,,2001:74-8160
贵州大学硕士研究生学位论文附录:作者在攻读硕士学位期间的学术论文及科研项目学术论文:[1]郭志勇,罗文俊,张晓培.基于VoIP的呼叫中心解决方案设计.硅谷,2009,(4):38-40科研项目:[1]主持瑞音信息科技(上海)有限公司“IP传真底层通信原理与实现的研究”.
附:学位论文原创性声明和关于学位论文使用授权的声明原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究在做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律责任由本人承担。论文作者签名:日期:200年月关于学位论文使用授权的声明本人完全了解贵州大学有关保留、使用学位论文的规定,同意学校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅;本人授权贵州大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存论文和汇编本学位论文。(保密论文在解密后应遵守此规定)论文作者签名:导师签名:日期:200年月