基于SIP的实时网络传真的研究和设计

时间:2022-10-29 05:23:45

基于SIP的实时网络传真的研究和设计

【摘要】实时网络传真将传统 PSTN传真引入到互联网上进行传输,充分利用了互联网的费用低廉的优点,逐渐被广大用户所喜爱。本文结合嵌入式技术和基于 SIP的网络传真通信技术,开发实现了在嵌入式平台下基于 PJSIP协议的实时网络传真( FOIP)。本文以 AT91SAM9263主处理器为硬件平台,采用了 Redboot作为底层引导程序,构建嵌入式 Linux系统平台。在此基础上提出基于嵌入式 Linux系统下的软件设计方案,并对 PJSIP和 Spandsp的移植做了描述。目前,这种实时网络传真方案已经应用到实际产品中。研究和实践表明,该方案具备良好的性能,适用于一些特定行业和领域中。

【关键词】传真; SIP;实时网络传真; PJSIP;Spandsp

[Abstract] FOIP, which allows to transmit traditional PSTN fax via the Internet, is gradually getting popular because of the low cost associated with the Internet. This project developed and implemented the FOIP based on embedded platform and SIP protocol by combining embedded technology with sip. This project accomplished the embedded Linux system platform, which is based on AT91SAM9263, and use the Redboot underlying bootstrap program. Based on this, a software design scheme which is based on embedded Linux is proposed. Currently, this real time network facsimile scheme has been applied in real products. The research and practice show that this scheme has superior quality and is suitable for certain branches and fields.

[Key word] Fax, SIP, Real-time FOIP, PJSIP, Spandsp

1.引言

随着互联网通信技术还有信息处理技术的发展,传统电信业务的网络化得到迅速发展。基于 IP的多媒体业务纷纷涌现。比如 IP电话取代传统电话,Email取代普通信件,微信取代传统短信,以及 IP视频会议的广泛应用。这些网络应用无时不刻的影响着人们的现代生活。传真技术也逐渐由传统的电话网传真过渡到网络传真。网络传真的出现,使得人们更加高效,便捷的收发传真,且成本低廉。

传真通信向高速、高效、移动、网络化和集中管理方向发展[1];而传真报文由简单的文件传输向彩色图像传输发展。在这种发展形势下,传统传真通信已经无法满足企业或个人的要求,越来越暴露出它的缺点。

网络传真的主要优点是节省巨大的长途电话的开支。当用户使用网络传真时,传真报文以 IP包数据的形式在 IP网上传输。这些 IP网可以是国际互联网,或者是企业内部网等等。

本文从实时网络传真的系统架构,硬件以及各功能模块的设计等方面进行了研究和探索。

2.方案设计

实时网络传真的框架由三部分组成:底层硬件、内核空间、用户空间。底层硬件,负责物理数据的收发和处理;内核空间通过 TCP/IP栈和相关驱动提供网络通信服务和硬件控制;用户空间则通过软件实现网络实时传真的主体功能。在用户空间,同样也有用户协议栈,如 SIP栈、T4/T6等,完成协议的编码与解析。整体架构采用一个主控进程和其他若干后台通信进程组成。主要模块有三个:主控模块、 SIP信令控制管理模块和 T.38通信模块。由主控进程负责调度管理各通信任务。由 T.38通信进程负责完成通信,如图 1所示。

2.1 硬件O计

本方案的硬件平台主 CPU采用 AT91系列的 AT91SAM9263,其采用 ARM926EJ-S处理器,主频可高达 240MHz,拥有丰富的外设接口;具有 DMA控制器,能够以尽量少的 CPU时钟执行大批量的数据传输;具有 MMU(存储管理单元),适合运行多任务操作系统;同时,AT91SAM9263工作温度范围达-40℃~+85℃,完全能满足苛刻的工作环境要求。

外设存储器 SDRAM选用 MT48LC16M32A2,16位总线,128Mbit空间;flash存储器选用 SST39VF6401,Norflash类型,64Mbit空间。网络接口芯片采用 DM9161,可支持 10M/100M的速率。硬件框图如图 2所示:

2.2 软件设计

操作系统采用 Linux,内核为 2.6.23,根据硬件平台定制。编译选用 arm-linux交叉编译工具链。引导程序采用 Redboot。根文件系统制作工具选用 Buildroot和 Busybox。

在网络传真会话的建立时,采用 SIP协议,本文采用 PJSIP作为实时网络传真的信令控制管理模块。在 SIP会话建立后,本文采用 Spandsp作为 T.38传输模块。Spandsp是数字信号处理的一套库函数,用于将图像转换为音频信号,或将音频信号转换为图像。

软件共分为三个部分:主控模块、 SIP信令控制管理模块和 T.38通信模块。主控模块作为调度管理通信过程的主要模块,起着非常大的作用。它负责接收人机界面的命令,通知 SIP信令控制管理模块开始建立网络传真链接,同时负责监控管理通信状态,并随时上报给人机交互模块。主控模块与 SIP信令控制管理模块的交互采用管道方式。在发送端,通过命令管道,启动 SIP信令控制管理模块,通过响应管道,SIP信令控制管理进程告知其通信状态;在接收端,SIP信令控制管理进程监控 socket套接字,一旦有网络传真连接,则开始通信过程,同时通过管道告知通信状态。SIP信令控制管理模块经过建链、协商,连接成功后,将启动 T.38通信进程进行传真过程。

T.38建议中规定了 SIP/SDP的呼叫建立规程[2]。中,SIP呼叫建立用于 IP环境下仅进行传真通信,在此环境下不提供话音通信。 SIP信令控制管理模块采用单独的 TCP/UDP端口发送 T.38传真呼叫,缺省值为 5060,用于呼叫信令。当建立网络传真连接后,使用一个随机的 TCP端口传送传真信息。SIP呼叫建立共有 5个阶段过程:用户位置,用户能力,用户有效性,呼叫建立和呼叫处理[3]。双方采用 SDP进行能力协商,以确定网关或终端支持和使用哪些选项。SDP会话描述是采用 UTF-8文本字符。当使用 UDPTL和 TCP传送时,采用特定的 T.38相关的属性来标识其能力[4]。

PJSIP的各个组件通过接口函数 pjsip_endpt_register_module(*endpt,*module)向各 SIP终端实例注册,并且进行初始化。SIP终端将传输层接收到的消息分发到事务层、会话层及应用层[5]。

在模块的结构体定义中,收到请求回调函数 on_rx_request()和收到响应回调函数 on_rx_response()是模块从 SIP终端或其他模块收到 SIP信息的主要函数。它用非零返回值来表明该 SIP消息是否被模块正确处理[6]。

在一个 SIP消息发送之前,传输模块管理器将调用发送请求回调函数 on_tx_request()和发送响应回调函数 on_tx_response()。根据需要,其他模块对 SIP消息进行修改,最后再发送出去。

T.38通信模块主要包括 T.30引擎、T.30消息模拟和控制、IFP组包和解包、UDPTL、 RTP、IAX2、TPTK组包和解包。如图 3所示。

3.结束语

实时网络传真作为基于 IP技术的应用,已经得到广泛的关注与发展。随着网络技术的迅速发展,传真技术与网络结合的趋势不可阻挡。通过可扩展性和可移植性良好的 SIP信令控制模块,实现实时网络传真将具有相当的现实意义。

本文提出的实时网络传真的实现方案具有良好的可移植性和可扩展性,已经应用到某些领域中。测试结果证实,该实现方案完全满足使用需求。

参考文献

[1]刘立柱,网络传真通信原理与技术,北京,国防工业出版社,2006,4

[2] ITU-T,T.38 “Procedures for real-time Group 3 facsimile communication over IP networks”, 2007,04

[3] IETF,RFC3261 “SIP: Session Initiation Protocol”, 2002,6

[4] IETF,RFC2327 “SDP: Session Description Protocol”,1998,4

[5] S月祥,基于 PJSIP的嵌入式 VoIP终端的研究和实现 [D],昆明,昆明理工大学,2011, 35.

[6] Bennylp,“PJSIP-Dev-Guide Version 0.5.4”, 2006,3

上一篇:在高校美术教育中民间美术的价值思考 下一篇:新媒体广告的投放思路