电话终端范文

2024-07-26

电话终端范文(精选5篇)

电话终端 第1篇

网络电话是以IP(Internet Protocol)为网络层协议,在计算机网络中进行语音通信的系统,因此网络电话通常也称为IP电话。它采用的技术统称为VoIP技术(Voice over IP),所以也可将网络电话称为VoIP电话。网络电话最早出现在1995年2月以色列的VocalTec通讯有限公司推出的一款名为“Internet Phone”的网络电话软件[1]。在这之后的十几年间,网络电话由一个单一的客户端软件发展成为拥有终端、网关、服务器等多种网络设备的完整的通信系统。从应用软件,通信协议到硬件设备都已经比较完善,且实现方式也是多种多样。

网络电话终端的设计实现可采用ARM处理器、DSP处理器、专用处理器或FPGA等多种设计方案,其各有优缺点。但其中的FPGA有一个显著的优点,那就是在外围硬件平台固定的情况下,仍可以进行软硬件的协同设计。软件功能可以在FPGA内部用硬件去设计实现,硬件功能也可以用软件去设计实现,具有设计灵活、可裁减、可扩充和可升级等优点[2]。本设计采用基于FPGA的SOPC技术,对无线网络电话终端硬件与软件的协同设计进行了研究。

二、功能分析及整体设计

网络电话终端的基本功能是将模拟语音信号转换成数字语音信号后,再把语音信号以数据包的形式在IP网络上进行实时传输。其基本过程如图1所示。

在无线网络电话终端硬件设计中首先需要设计语音模块完成语音信号的采集,并对采集到的语音信号送FPGA作数据压缩等相关处理,然后将压缩的语音数据送Wi-Fi模块以实现无线数据传输,在FPGA内部,需要对OR1200软核处理器及相关外设进行移植。在处理器上运行的软件有嵌入式Linux操作系统及VoIP应用软件,所以在软件设计阶段要完成嵌入式Linux操作系统在OR1200软核处理器上的移植,最后基于嵌入式Linux操作系统开发相应的VoIP应用软件。

无线网络电话终端设计的主要内容包括硬件架构设计,FPGA内部硬件结构设计及IP核移植、软件架构设计和VoIP应用软件设计等。其中的核心内容有Wi-Fi模块的硬件设计、OpenRISC1200软核处理器在FPGA上的移植、Wi-Fi模块的驱动开发、嵌入式Linux操作系统在OR1200软核处理器上的移植、网络电话呼叫信令协议开发和语音包实时传输设计等。

三、硬件架构设计

无线网络电话终端采用FPGA作为处理核心,负责所有硬件的协同工作,并外扩基本的存储器、外设等。主要硬件模块有用户接口模块、语音编解码模块、外设接口模块、Ethernet模块、Wi-Fi模块、存储器模块和FPGA核心模块等。其硬件结构图如图2所示。

3.1 用户接口模块

用户接口模块是网络电话终端与用户的交互接口,主要有显示,键盘,振铃等,用于打电话时的号码输入及来电时的振铃提示。其中的显示与FPGA内部的LCD接口连接,而键盘,振铃等直接和FPGA内部的GPIO接口相连。

3.2 语音编解码模块

语音编解码(CODEC)模块是网络电话终端的声音处理单元,主要负责将声音信号经MIC采集并送语音编码器,将话音按一定频率,一定位数采样成数字语音信号流后送FPGA作进一步处理;它还负责将FPGA送来的语音流经语音解码器后送扬声器输出。

3.3 外设接口模块

外设接口模块是网络电话终端的辅助模块,主要有JTAG、USB和RS23,用于网络电话终端的开发、调试和功能扩展等。

3.4 Ethernet模块

Ethernet模块是网络电话终端的通信模块,负责将语音数据流传输到IP网络上去,同时它还用于传输网络电话终端各种控制信号,包括拨号信令、通话时的控制信令等。Ethernet模块的实现方式可以有多种方式,可以采用Ethernet网卡,通过不同的总线接口如USB、PCI接口与FPGA连接。这里采用网络芯片进行设计,Ethernet芯片有各种类型,有实现物理层功能的PHY芯片,有实现介质讯问控制子层的MAC芯片,当然也有将PHY,MAC集成在一起的芯片。这里只采用PHY芯片,并在FPGA内部设计MAC控制器的方式来实现。

3.5 Wi-Fi模块

Wi-Fi(Wireless Fidelity)[3]模块是网络电话终端的又一个通信模块,当网络电话终端没有有线网络时,可以利用Wi-Fi进行无线网络通信。Wi-Fi模块采用Wi-Fi芯片并设计相应的外围电路来实现,其中的外围电路设计包括电源供应,天线设计等。目前有很多芯片厂商都生产各种Wi-Fi芯片,一般都具有PHY,MAC的功能,而对外提供SDIO,SPI等的总线接口。

3.6 存储器模块

存储器模块是网络电话终端的数据中心,是网络电话终端程序存储和程序运行的地方。外扩FLASH用于用户数据和程序的存储;SRAM,SDRAM主要是作为FPGA内部RAM的补充,扩展程序的运行空间。

四、FPGA内部硬件结构设计及IP核移植

FPGA采用OR1200软核处理器作为处理器核心,并扩展外设接口,主要研究内容包括处理器移植,总线移植等。其内部硬件设计总体结构图如图3所示。

4.1 处理器及总线设计

OR1200是OpenCores组织开发的开源的32位标量RISC处理器软核,具有哈佛结构、五级流水线、支持MMU和Cache、带DSP功能,并通过Wishbone总线与各种符合Wishbone总线标准的外设互连[4]。

Wishbone总线是一个开源的片内总线规范,由Silicore开发,现在由OpenCores组织维护。FPGA内部各外设组件就是通过Wishbone总线互连的。Wishbone总线规范比较简单,并且设计十分灵活。在实际应用中,可以只使用一条总线连接所有外设;在系统复杂时,也可以使用两条Wishbone总线,一条连高速设备如处理器、存储器等,另一条连低速设备如UART接口等,并通过总线桥互连两条总线。

4.2 外设接口设计

FPGA内部可以增加丰富的外设接口以实现与外部设备的通信,扩展FPGA的功能。

语音接口的设计:由于实际的语音芯片可能提供不同的外部总线接口如IIS、SPI等,所以FPGA内部的语音接口主要负责和外部语音编解码模块接口的对接,使OR1200可以通过Wishbone总线访问外部语音芯片。

Ethernet接口的设计:根据外部Ethernet模块提供的PHY接口,在FPGA中就开发的Ethernet接口包括MAC控制器的IP核、与外部PHY的总线接口及与处理器通信的Wishbone总线接口。

Wi-Fi接口的设计:用硬件描述语音编写Wi-Fi模块的总线接口控制器,用于在总线上产生控制时序实现对Wi-Fi模块的操作并对处理器提供Wishbone总线接口。

除此之外,设计符合JTAG规范的调试接口实现对OR1200及FPGA内部外设接口、存储器进行调试访问;设计USB接口和GPIO接口实现FPGA和外部模块进行数据交换;设计LCD显示接口用于产生时序控制信号来操作LCD显示屏,并对处理器提供Wishbone的内部总线接口;设计SRAM控制器、SDRAM控制器和FLASH控制器,主要实现外部存储器的读写控制时序;设计符合Wishbone总线规范UART控制用于程序的开发及调试。

4.3 DMA设计及IP核集成

在传送大量的数据时,直接用OR1200去处理会造成CPU资源极大浪费。为了增加系统的数据传输的灵活性,在FPGA中增加DMA(Direct Memory Access)控制器的IP核,实现存储器与外部设备的数据大量传送,增加的DMA控制器主要是方便存储器和语音编解码接口的数据传送。

IP核集成主要是利用FPGA的开发工具如Quartus II、ISE等,对各IP核进行设计并反复仿真验证。最后对其综合、适配得到FPGA的配置文件并下载至FPGA,即可完成FPGA内部的硬件设计。

五、软件架构设计

建立了网络电话终端的硬件平台后,接下来就需要开发相应的软件。软件的总体结构图如图4所示。

由于硬件系统的所有应用都基于嵌入式Linux,所以在开发Vo IP应用软件前,首先要做的是将嵌入式Linux移植到OR1200处理器上,同时还要开发各外设的设备驱动程序。最后,就可以在嵌入式Linux上开发VoIP应用软件了。

5.1 Linux移植

利用OpenCores组织提供的开发工具链和移植好的Linux内核,先建立Linux的移植和开发环境,然后就可以将Linux移植到FPGA中的OR1200处理器上了。在内核代码中,与硬件相关的操作函数使用汇编语言编写,主要包括CPU的各种基本操作、中断处理、内核线程切换等,移植工作主要也是编写这些相应的代码。将内核在交叉工具链上进行编译生成内核镜像,就可以下载到FPGA运行操作系统了[4]。

5.2 驱动开发

驱动开发主要包括对外部设备读写的总线接口控制器的驱动开发,及在此之上的外设模块的驱动开发。如Wi-Fi驱动包括总线接口控制器驱动及Wi-Fi模块驱动,总线接口控制器驱动实现SDIO,SPI的总线读写操作,而Wi-Fi模块驱动实现将IP层的数据包加上LLC帧头,然后将数据通过总线接口控制器驱动写到Wi-Fi模块,实现数据包的发送,接收过程也是一样;CODEC驱动同样包括总线接口控制器驱动及语音模块驱动。总线接口控制器驱动实现IIS总线的读写操作,而语音模块驱动完成利用DMA控制器进行内存语音数据与CODEC模块的大量传输通信,减少OR1200负担,并对处理器提供CODEC模块的读写接口。

除此之外,还包括Ethernet驱动、键盘驱动、振铃驱动和TCP/IP协议栈等的开发。

六、Vo IP应用软件设计

基于嵌入式Linux的VoIP应用软件的开发主要包括语音处理模块、呼叫信令模块和用户接口模块三个部分。

6.1 语音处理模块

语音处理模块主要完成采集外部语音数据流并经过一定处理算法后传送到IP网络;及将IP网络上传来的实时语音数据包转换成语音数据流送外部扬声器输出。即此模块可分为语音发送和语音接收。

语音发送:PCM单元通过控制外部的语音编解码模块获得数字形式PCM编码的语音流。语音流经过回声消除单元及增益控制单元作数据的预处理后,送入活动性检测单元(VAD),VAD负责判断是否有语音,若没有语音数据,就不向IP网络发送数据,节省网络资源。VAD判断后的数据流按一定时间分包形式语音包后送入语音编码单元,经编码压缩算法处理后,就可以将压缩后的语音包通过RTP协议发送到IP网络。

语音接收:由于IP网络在传输语音数据包时会产生丢包、延时、错序等各种影响语音质量的情况,所以就要为由IP网络经RTP协议接收到的语音包设置一个接收缓冲区用于处理上述问题,包补偿单元就是完成这样功能的。其主要完成语音包的顺利整理、延时控制和丢包补偿等任务。经过包补偿单元,IP网络传过来的语音包在接收端的缓冲区中已是顺序且均匀,经解码解压算法后,就可以送PCM单元作数据流的还原处理,并最终通过外部的硬件语音模块播放语音。

6.2呼叫信令模块

网络电话中使用的协议有多种,如H.323、SIP、MGCP等,本设计中采用SIP协议作为呼叫信令模块使用的信令协议。SIP协议是一种在IP网络中用于建立、修改和终止多媒体会话的应用层协议。呼叫信令模块主要使用开源的SIP协议软件包oSIP,eXosip进行开发。oSIP是按照RFC3261(SIP)和RFC2327(SDP)标准,使用C语言开发的SIP协议栈,而e Xosip是oSIP的扩展协议体,封装了部分的oSIP协议栈,使开发更容易[1,5]。

呼叫信令模块利用oSIP及eXosip协议栈,编写注册终端程序、呼叫程序和语音传输程序等。

注册终端程序完成网络电话终端向管理服务器的身份注册,用于终端的身份验证和自身的定位,从而方便其他用户的查找。呼叫程序完成在电话呼叫过程中的呼叫应答协议,从而使呼叫双方能正常建立通信。而当呼叫双方达成通话协议后,就可以利用语音传输程序来实时传输语音,这里的语音传输程序实际使用的是语音处理模块的功能。

6.3 用户接口模块

用户接口模块是用户与网络电话终端的人机接口。主要有以下几个功能:处理用户的键盘输入信号并通知呼叫信令模块运行呼叫行为;对网络电话终端的各种信息利用显示模块进行显示起提示作用;并当在线路上有呼叫请求时,呼叫信令模块同样会通过用户接口模块进行振铃操作以提示用户。

七、总结

本文研究了基于FPGA的网络电话终端的外围硬件设计,FPGA的IP核设计,并在OR1200软核处理器上移植嵌入式Linux操作系统,最后设计了VoIP应用软件,涵盖了系统设计的各个方面。且设计采用的都是开源的IP核及操作系统、协议栈和编解码算法,既验证了设计方案可行性,又减少了系统的开发成本。

网络电话的研究除终端实现外,还包括服务质量,网络安全等内容。在本论文中并未对这方面的内容进行研究,所以论文的后续工作将针对改善网络电话的通话质量和提高网络电话的安全性等问题内容进行深入研究。

摘要:随着IP语音通信技术及计算机网络技术的不断发展,网络电话应用越来越普及,并已成为当今信息通信不可缺少的一部分。在分析现有网络电话终端实现方式的基础上,本文提出了一种基于FPGA且具有Wi-Fi功能的无线网络电话终端的设计方案。主要研究内容包括设计Wi-Fi通信模块,利用SOPC技术在FPGA上移植OR1200软核处理器,将嵌入式Linux操作系统移植到OR1200软核处理器上,最后设计VoIP应用软件。

关键词:网络电话,FPGA,OR1200,嵌入式Linux,Wi-Fi

参考文献

[1]刘洪林,蒋昌茂,张建永.IP语音通信原理、设计与组网应用[M].北京:电子工业出版社,2009

[2]任爱峰,初秀琴等.基于FPGA的嵌入式系统设计[M].西安:西安电子科技大学出版社,2004

[3]刘乃安.无线局域网(WLAN)—原理、技术与应用[M].西安:西安电子科技大学出版社,2004

[4]倪继利,陈曦,李挥.CPU源代码分析与芯片设计及Linux移植[M].北京:电子工业出版社,2007:306-348

电话终端 第2篇

摘要:介绍CMX860芯片的主要性能、电路模块及在固网短信息端――信息电话中的应用,给出相应的硬件软件控制流程图。该芯片最大的优点是只用一片芯片就能完成CTS1协议中要求的三项基本功能:DTMF信号发送、FSK信号接收、CAS信号检测,从而简化了设计。它与微处理器的接口简单、功耗低,可大量应用于智能信息终端。

关键词:CTSI协议 C-BUS DTMF FSK CAS

引言

移动电话推出的短信息服务经市场检验,取得了很好的经济效率和社会效益。固定电话能不能也推出类似的服务,从而实现传统电话的增值呢?最近提出的固网短信技术恰好满足了运营商的这一需求。建立在模拟线上的中文信息终端服务接口规范CTSI协议,为信息电话与服务在模拟话音线上进行双向数据通信提供了标准。它规定了上行使用DTMF(双音多频)或FSK(频移键控)信号及下行使用FSK信号,服务器与终端之间通过CAS(服务器发生终端的提示音)信号的发送和回应来互相确认。项国Consumer Microcircuits Limited公司推出的CMX860芯片,其内部集成有FSK发送/接收器、DTMF发送器和CAS检测器,可直接应用于我国的固网短信系统。

图1 CMX860内部功能框图

1 CMX860

CMX860是一种通用的电话信令收发器,两个独立的.通道LINE端和PHONE端通过模拟开关的切换可分别独立工作于各自的信号收发模式。它是由一台主机μC通过一个叫做C-BUS(公开总线)的串行接口来控制的,这与大多数通用的μC串行接口是兼容的。

它的发送和接收方式是独立可编程的。例如,接收器部分作为一个调制解调器运行时,接收信号便馈入一个带通滤波器以滤去不想要的信号,并提供固定的折中线路均衡;具有“零功率”待机模式,在待机模式下,C-BUS、振铃检测、摘机检测、RDRVN依然有效;当有振铃或摘机时,会产生中断信号以提醒主机进行相应的操作。

CMX860采用11.059 2MHz时钟振荡器,在运行时的最低工作电压为2.7V,有三种封装形式:28引脚SOIC(CMX860D1)、28引脚TSSOP(CMX860E1)和28引脚SSOP(CMX860D6)。可由电话线馈电提供工作所需电压,而不需接额外电源。CMX860芯片的内部功率框图如图1所示。

XTALN:晶体振荡器输出;

XTAL/CLOCK:晶振电路或外部时钟源输入;

SERIAL CLOCK:C-BUS串行时钟输入端;

COMMAND DATA:C-BUS串行数据输入端

REPLY DATA:三态C-BUS串行数据输出,不传送数据时,输出为高阻;

CSN:片选输入;

IRQN:中断申请输出,低有效,无效时为高阻,需外接一上拉电阻;

Vbias:VDD/2偏压,应靠近该脚通过电容旁路到AVSS;

RDRVN:继电器驱动输出,低有效;

DVSS:数字地;

AVSS:模拟地

DVDD:数字电源;

AVDD:模拟电源;

RD、RT:振铃检测的两个施密特触发器输入端;

HD、HT:摘机检测的两个施密特触发器的输入端;

LINERXF:LINE端接收放大器的输出;

LINERXN:LINE端接收放大器的反向输入;

LINERXP:LINE端接收放大器的正向输入;

LINETXN:LINE端发送驱动器的反向输出;

LINETXP:LINE端发送驱动器的正向输出;

PHONERXF:PHONERXN、PHONERXP、PHONETXN、PHONETXP:与上述LINE端五引脚相对应的PHONE端。

图2 CMX860应用电路

2 CMX860在固网短信电话中的应用

正确控制CMX860 DTMF信号的发送、FSK信号的接收、CAS信号的是实现固网短信系统的关键。

(1)CTSI协议简介

CTSI协议层可分为三层:物理层、链路层、消息层。

①物理层负责服务器与终端之间物理的数据单元(数据位流)的传送,即它们的调制和解调的编码方式、电气特性、传送要求。规定下行数据采用FSK二进制异步串行方式传送;上行数据采用DTMF或FSK方式传送。其中DTMF分短音模式和确认音模式等类型。CAS是服务器发送终端的提示音,时长80~85ms。

②链路层提供可靠听数据传送机制。下行FSK信息包格式如下:

同步引导串信息类型信息长度信息包编号信息内容校验和

同步引导串:由8个同步前导字符(0x550)+一个同步结束字符构成,终端读到至少5个同步前导字符和同步结束字符后,可认为同步建立。

信息类型:指明信息内容的类型,为和其它相关协议保持关联,此处取值(0x84)。

信息长度:信息包编号的字节数(=1)加信息内容的字节数。

信息包编号:取值(0x01)。

信息内容:由消息层组织,可含一条或多条CTSI操作命令,最大长度不大于254字节。

校验和:用于数据传送过程的侦错,取值为:该数据包中除同步引导串之外的所有字节的和,按256取模,再取补得到的值。

③消息层定义了信息包的格式、信息(命令)的格式和回送信息的格式。

(2)硬件电路

图2是应用8051 MCU控制CMX860实现固网短信终端系统的应用电路,该电路已在我公司研制的信息电话中得到成功的应用。图2中,将CMX860的三条C-BUS信号线(SERIAL CLOCK、COMMAND DATA、REPLY DATA)及片选线接到8051的P1口上,将其中断申请输出端接到8051的外部中断端,因而对CMX860的指令操作可通过对P1口I/O线的控制直接完成。

C8~C10、R2~R6、D1~D4组成了振铃检测电路,在对控制寄存器进行适当设置后,当振铃到来,会触发外部中断处理。DTMF信号的发送、FSK信号的接收、CAS信号的检测 是CMX860通过用户线接口电路来完成的。

(3)软件设计

CMX860的内部寄存器号外部MCU之间的数据、控制和状态信息是通过C-BUS串行总线来传送的,因此,对C-BUS的控制是对CMX860芯片编程的关键所在。这里介绍一个检查C-BUS操作时序是否正确的简单方法。芯片初始化后RDRVN引脚是高电平,当通过C-BUS对GENRAL CONTROL寄存器的b9位写入1后,如果该引脚变成低电平,则证明对C-BUS的控制时序是正确的。

标准型信息终端平台提供的主要业务有:短消息、信息查询、信息点播与订阅等。图3给出了其中一项,即自动接收消息下载的程序流程图。

图3 自动接收短消息下载的程序流程图

结语

电话终端 第3篇

关键词:IP电话,配电通信网,终端节点

前言

配电网网络结构复杂, 配电自动化节点点多面广, 且较为分散, 要实现将控制中心的控制命令发到各执行机构或远方终端, 同时将各远方监控单元所采集的各种信息上传至控制中心的信号传输存在一定困难。结合这些特点, 配电通信网主要采用EPON技术实现组网, 覆盖开闭所、环网柜等配电自动化节点, 用于实现配电自动化节点的“三遥” (遥测、遥信、遥控) 。

一、IP电话技术及其原理

IP电话 (又称IP PHONE或Vo IP) 是建立在IP技术上的分组化、数字化的传输技术, 其基本原理是:通过语音压缩算法对语音数据进行压缩编码处理, 然后把这些语音数据按照IP等相关协议进行打包, 经过IP网络把数据包传输至接收地, 再把这些语音数据包串接起来, 经过解码解压处理后, 恢复成原来的语音信号, 从而达到由IP网络传送语音的目的。

IP电话系统把普通电话的模拟信号转换成IP数据包, 同时也将收到的IP数据包转换成声音的模拟电信号。经过IP电话系统的转换及压缩处理, 每个普通电话传输速率约占用8kbit/s~11kbit/s带宽, 因此在与传统程控交换技术同样使用传输速率为64kbit/s的带宽时, IP电话数是原来的5~8倍。

二、IP电话技术实施的必要性

传统程控交换技术一直是被广泛采用的大型企业内部通信解决方案。程控交换采用的是电路分组交换技术, 在局端安装程控交换机, 距离较近的节点可以直接布放音频电缆至用户, 而距离较远的节点只能将依靠SDH、PDH等传输设备, 将电信号转换为光信号传输, 到达远端节点后再经SDH、PDH设备将光信号转换为电信号, 通过PCM等复接设备连接至用户。

因此, 程控交换技术对网络与设备的依赖程度很高, 在已经发展较成熟的骨干通信网中得到了广泛应用。

而在配电通信网中, 主要采用EPON技术组网, 局端站只安装服务器, 配电线路出线节点安装OLT, 终端节点安装ONU。终端ONU设备只提供PON口与网口, 那么, 基于网络的IP电话技术就成了配电通信网内通讯的首选。

三、IP电话技术应用设计原则

在配电通信网中, 开闭所及环网柜等配电自动化节点需要实现“三遥”, 其中, 遥控涉及对配电节点的操作, 操作过程中要接配网调度指令, 这也正是配电通信网中需要采用IP电话技术进行通讯的重要原因。而IP电话技术的应用设计原则主要有以下几点:

1) 高稳定性

采用先进的IP调度交换机来构建网络, 满足主要设备板卡冗余热备方式, 可以实现主控板主备倒换, 关键业务单板负载分担, 直流或交流双电源供电;另外也可实现双机热备, 异地容灾机制, 主机备机可置于完全不同的网络环境或者地点。保证终端设备以及用户通话的安全性, 并且使用多种技术手段保证通话质量。

2) 可扩展性

IP调度交换设备支持以后的网络平滑的扩容, 保证在网络的成长过程中, 网上业务不会受到影响, 并且在业务发展和新技术出现后可以方便地向更先进的技术过渡。

3) 开放性/互通性

全面遵循业界开放标准, 可与多厂家设备系统互联, 实现多协议间互通, 可以与传统的PLMN/PSTN、专网企业以及Vo IP系统进行业务互通。

4) 可管理性/可控制性

系统的可管理性, 包含对设备/组件、网络、应用/业务等各方面的综合管理能力, 提供配置维护界面以及安全的远程管理功能。提供终端的网管软件减少故障排除时间, 优化网络性能, 节省开支, 提高工作效率。

四、IP电话技术在配电通信网终端节点的应用

应用以上设计原则, 结合吴忠供电公司骨干通信网及配电通信网的网络实际, 绘制吴忠供电公司整个行政交换网络拓扑图如图1所示。

从以上吴忠供电公司行政交换网络拓扑图可以看出, 新局行政交换系统依然采用贝尔程控交换机, 为吴忠供电局的日常办公通话及各变电站提供行政电话服务;在老局新增IP调度交换机1台, 并在配电终端节点安装IP电话单机, 同时, 软交换机与贝尔程控交换机通过2M中继进行互连, 实现配电终端节点与其它办公电话、变电站行政电话及公网电话之间的通讯。

此种组网方式, 具有以下优点:

1) 部署简单方便:可以直接接入网络, 通过IP方式下放IAD接模拟电话, 代替原来的程控语音系统, 并且可以与OLT采用内部协议对接实现放号。

2) 全网互通、无缝对接融合:IP调度交换机支持内置中继板卡, 可以与新局程控系统的贝尔程控交换机实现对接, 达到全网的互联互通。同时, IP调度交换机可以满足将来大量的中继需求, 支持PRI、Qisg、NO.1、NO.7等各类信令, 可以与各系统无缝融合。

3) 系统扩展性强:伴随配电通信网终端节点的增加, 新增用户可以直接部署IP电话, 注册到IP调度交换机, 方便快捷。

4) 降低变电站通信成本:随着调度数据网第二平面的建设, 传统的低速率远动通道逐渐退出, 语音通信采用IP电话替代PCM复接设备, 降低通信成本。

五、结束语

本文主要针对配电通信网终端节点的特点, 选择IP电话技术作为其语音通信方式, 在满足配网终端节点业务接入的同时, 有效利用了资源, 降低了建设成本, 增强了扩展性, 维护也更方便, 值得推广借鉴。

参考文献

[1]刘菊梅.IP电话的原理结构及其关键技术.科学之友.2007年10月.

[2]张旭东.IP电话在湖州电力通信系统中的应用.湖州师范学院学报.2006年3月第28卷.

电话终端 第4篇

在移动通信从2G/2.5G向3G的发展过程中,多媒体得到了越来越多的应用,视频通信功能作为移动便携式终端的一项研究热点,越来越受到各移动厂商的重视。随着集成电路技术的进步和多媒体硬件处理性能的提高,使得在嵌入式终端上可以开发出越来越强大的多媒体功能。在嵌入式平台上实现可视电话、流媒体电视、上网等多媒体功能,对扩展3G业务有很好的市场前景。

Google于2007年11月推出了一个专为移动设备设计的软件平台———Android[1]。Android是一款包括基于Linux内核的操作系统、中间件和关键应用的手机软件平台,它对第三方应用软件开发完全开放,开发者在为其开发应用程序时拥有更大的自由度,同时Android平台免费向开发人员提供,节约了开发成本,因此,Android受到了业界的广泛关注,具有很大的市场发展潜力,研究在嵌入式平台上基于Android的IP可视电话具有一定的实际应用价值。

1 系统框架

1.1 硬件体系结构

硬件系统使用Freescale的i.mx27多媒体处理器作为主控芯片[2]。i.mx27处理器以i.mx21为基础进行设计,基于ARM926EJ-S,主频达400 MHz,片内还有一个硬件加速器,集成了视频编解码器VPU(Video Processing U-nit),支持H.263,MPEG-4,H.264等视频编解码标准,同时,i.mx27片内集成了丰富的外设接口,方便用户进行多媒体应用程序的开发。

基于i.mx27的外围接口,可视电话终端的硬件结构如图1所示。其中,SDRAM控制器和Nand Flash控制器分别外接SDRAM和Nand Flash存储芯片,用于存放数据、运行的程序、内核镜像、文件系统等;LCD接口连接LCD显示器,用于视频的显示;CSI接口外接Camera摄像头,用来读取Camera的摄像图像,实现视频采集;SSI接口外接语音编解码器,用于读写音频编码数据,实现语音的采集和播放;以太网接口FEC外接以太网物理层芯片,用于数据的网络传输;UART接口外接RS-232收发器,与宿主机相连,方便用户通过宿主机控制目标板的运行;直流电源连接电源接口,使芯片能够稳定地运行。

1.2 软件体系架构

可视IP电话系统终端设计是在Android平台上实现的,Android是真正意义上的开放性移动设备平台,它同时包括底层操作系统以及上层的用户界面和应用程序。Android所有的应用程序都运行在一个核心引擎上,系统的核心应用和用户开发的第三方应用是完全平等的。因此,用户可以将系统默认的应用软件替换为其他的第三方应用软件。另外,Android提供了大量的库和工具,Android的图形系统非常丰富,对多媒体的支持很强,用户可以方便地在上面开发功能复杂的应用程序。

Android的平台架构分为4层:最底层是嵌入式Linux2.6操作系统;第3层是Google为Android开发的函数库和运行环境等,如核心库和Dalvik虚拟机等;第2层是应用框架层,它提供了Android应用程序使用的系统API,如Views,Content Provider,Resource Manager,Notification Manager等;最上层是应用程序层,它涉及用户界面和用户交互,以Java编程语言编写,Android本身提供了Home,Phone,Browsers等众多核心应用程序。

考虑到可扩展性和跨平台性,并参考Android的系统架构,设计的嵌入式可视电话系统的软件架构如图2所示。

本软件系统架构分为操作系统层、库和接口层、应用框架层、应用层4层。各层的主要功能为:

1)操作系统层。底层基于硬件的驱动程序,这些驱动分别控制着网口、传声器、摄像头、LCD等,向下控制硬件工作,向上提供接口调用。

2)库和接口层。这一层主要是应用框架层调用的一些基本的类库和接口,包括Android的C/C++库、SIP库、RTP/RTCP库、音视频采集播放等抽象接口以及视频编解码接口。

3)应用框架层。该层采用模块化开发方法,基于其下层提供的函数库和接口,封装成为功能模块,供应用层开发使用。

4)应用层。系统的最上层,提供用户图形界面的设计,与其他模块交互,并为其他模块分配资源。在该软件架构下,涉及到的软件功能模块有主控模块、SIP管理模块、媒体流管理模块、属性存取模块等。

2 软件主要功能模块实现

2.1 主控模块

主控模块是系统的主要模块,在最上层实现了可视电话的功能。它一方面完成系统GUI的设计,提供图形化的接口给用户,另一方面调用其他如SIP管理模块、媒体流管理模块、属性存取模块等提供的开发接口,分别实现呼叫、音视频通话、属性存取等主要功能。为了丰富可视电话终端功能,主控模块还可以划分成多个不同的功能子模块,主要包括“通话”、“设置”、“注册”、“地址簿”、“选单”、“图片浏览”等,每个子模块分别实现可视电话的一部分功能。在开发中,每个子模块设计为Android的一个Activity,并且根据需求利用不同的Android组件开发GUI,各子模块之间功能相互独立,子模块之间的跳转切换依靠用户的GUI操作实现。

1)通话子模块。它是系统的主要功能模块,负责实现通话的整个流程,模块流程如图3所示。首先,进行系统资源以及其他模块的初始化,初始化工作完成后,从主线程里创建一个SIP消息监听子线程,该子线程用来监听和处理SIP消息,创建子线程成功后,主线程向服务器注册,注册成功后就可以发起和接收会话并进行多媒体通信,会话结束后如果用户执行了UI操作,结束了当前的Activity,则发送结束信号给SIP监听线程,否则等待用户的下一次呼叫操作。

通话的建立、修改和结束等均存在SIP信令交互,SIP消息监听子线程用来监听远端传来的SIP消息,SIP消息监听子线程流程图如图4所示。子线程接收到SIP消息后,根据消息类型完成不同的处理动作,并通过Android Handler机制通知主线程更新UI组件。SIP消息监听是靠定时器触发,每20 ms执行一次消息处理并检查一次结束标志,如果结束标志为真值,则退出。

2)设置子模块。使用Tab组件,分别用来配置用户信息、音视频编解码、网络等参数信息,用户在文本框中输入配置参数,点击保存按钮后,调用属性存取模块的函数完成保存。

3)注册子模块。负责用户向服务器的认证、注册,用户输入注册的用户名、密码、SIP服务器地址等,然后调用SIP管理模块的注册函数,向服务器注册。

4)地址簿子模块。使用SQLite数据库存储,实现电话本的功能,该电话本可以存储联系人姓名、SIP地址、用户组、备注等信息,用户可以方便查找、添加、删除账户。

5)图片浏览子模块。使用Gallery组件,用来浏览一组图片,本系统在通话过程支持通话图片的实时截取,图片截取后会存储到指定位置,用户可以在图片浏览界面中方便看到通话截取保存的图片。

2.2 SIP管理模块

初始会话协议(Session Initiation Protocol,SIP)是IETF提出的基于文本编码的IP电话/多媒体会议协议[3],用于建立、修改并终止多媒体会话,与H.323等其他会话信令协议相比,SIP复杂度低、可扩展性好,具有与Internet集成、可操作性好、成本低等优点。

SIP管理模块实现SIP会话信令技术,用于会话的建立、维持、修改、终止等,根据应用层开发需求,负责向主控模块提供开发接口,供主控模块调用,开发接口包括phone Register Sip Server(),phone Deregister Sip Server(),phone Call Start(),phone Call Terminate(),分别用于发出注册、注销、呼叫、结束通话等请求,模块还提供phone Get Msg From Queue()用来获取SIP消息。

SIP管理模块主要是通过调用JAIN SIP库实现[4]。JAIN SIP是SUN公司按照RFC3261标准,使用Java语言编写的一个SIP类库,整个结构以事件为基础,采用Listener/Provider的事件模型。JAIN SIP的结构包括Sip Stack,Sip Provider,Sip Listener三部分。其中,Sip Stack是JAIN SIP的核心,所有SIP操作在这里实现,它实现的服务由Sip Provider统一向Sip Listener提供。SipProvider是一个接口,通过Listening Point封装了对SipStack的操作方法,将Sip Stack接收到的SIP消息加工成SIP事件交给Sip Listener处理,并将上层的SIP消息交给Sip Stack处理。在逻辑上,两个SIP应用程序之间的交互体现在它们的Sip Provider之间的交互。Sip Listener用于管理一个或多个Sip Provider,当一个Sip Provider建立后会注册到一个Sip Listener。

2.3 媒体流管理模块

媒体管理模块实现通话中音视频的实时采集、编码和播放功能,为了更方便主控模块的调用,其向主控模块提供的几个主要功能函数有start Media Stream(),stopMedia Stream(),register Media Channel(),分别开启音视频处理、关闭音视频处理、媒体通道的初始化。

为具体实现媒体流管理功能,需向下调用RTP RTCP库、音视频编解码、采集播放等接口,使用RTP RTCP协议是目前解决流媒体实时传输问题的最好办法,RTP负责流媒体数据的发送和接收,而RTCP负责提供数据分发质量反馈信息[5]。

流媒体传输是采用jlibrtp实现,jlibrtp是一个面向对象的开源RTP库,它遵守RFC3550标准,是Java多媒体编程框架(JMF)的RTP stack的替代版。与JMF相比,其提供了更简便的程序开发接口。使用jlibrtp开发时,首先提供一个实现回调接口RTPApp Intf的类,在该类中实现receive Data()方法以完成数据流的接收。然后,生成RTP Session类的一个实例来表示此次RTP会话,并生成一个Participant的实例来表示设置的会话参与者的用户名、IP地址、端口号等,调用add Participant(),set Payload Type()等方法在会话中加入该参与者、设置负载类型等,当RTP会话成功建立后,调用Send Packet()方法就可以向目标地址发送数据。

视频的编解码接口基于i.mx27平台的VPU开发,使用VPU提供的驱动接口封装成视频编解码库函数,供媒体管理模块调用,为了保证可视电话的通话效果,同时开发了音视频同步、回声消除等子模块,供应用层模块调用。

2.4 属性存取模块

属性存取模块为主控模块提供开发接口以实现对系统参数信息的存取,例如,注册的用户名、密码、服务器地址等网络参数信息以及音视频编码、图像显示等媒体参数信息等。这样,应用层可以方便读取和设置系统的参数,属性存取模块为主控模块提供的开发接口,包括read Phone Config()和write Phone Config()分别用于读取和修改对应的参数信息,这些参数信息保存在属性文件中,每个参数项均由一个索引和参数值组成,用户只需根据索引来读写参数值。

2.5 模块封装

应用层开发按照Android应用程序开发规范,使用Java语言实现,而在本设计中底层的库和接口有的是使用C/C++语言实现(如VPU的开发),这样应用层程序无法直接调用底层的库,为了解决这样问题,使用Android NDK的方法完成应用框架模块的封装,继而供应用层调用。Android NDK是运行于Android平台上的Native Development Kit的缩写,是一套工具集,允许Android应用开发者嵌入从C/C++源代码文件编译来的本地机器代码到各自的应用软件包中。在某些情况下,它提高了代码的重复使用率,提高执行速度。

3 系统测试

本系统测试环境由Asterisk服务器和设计的嵌入式可视IP电话终端(IP Phone)组成,如图5所示[6]。Asterisk是一款由Digium公司研发的功能非常丰富的开源PBX软件,它既支持传统的模拟电话设备和数字电话设备,也支持新兴的基于网络的Vo IP系统,可以透明地桥接Vo IP之间的一些协议,如SIP,H.323,MGCP等。具体的测试参数为:1)IP Phone A,SIP地址为1001@192.168.1.104;2)IP Phone B,SIP地址为1002@192.168.1.104;3)As terisk,地址为192.168.1.104,软件版本号1.6.0.10;4)视频,分辨力VGA,码率500 kbit/s,帧率25 f/s,编码标准为H.264;5)音频,编码标准g711u。

经测试,系统稳定性良好,图像清晰流畅,唇形保持同步,没有明显的通话回声,基本满足了可视IP通话的需求。

4 小结

笔者设计和实现了一个基于Android的嵌入式可视IP电话,并根据Android系统的开发框架,采用了一套可行的软件架构。实现的终端交互界面良好,支持音视频通信,与其他产品的互通性良好,在实际应用中得到了验证,基于Android的嵌入式IP可视电话的设计与实现在便携式多媒体终端领域的研究具有比较实际的意义。

参考文献

[1]Android——an open handset alliance project[EB/OL].[2010-06-24].http://code.google.com/p/android/.

[2]MCIMX27 multimedia applications processor reference manual[EB/OL].[2010-06-24].http://www.keil.com/dd/docs/datashts/freescale/mcimx27ec.pdf.

[3]ROSENBERG J,SCHULZRINNE H,CAMARILLO G,et al.SIP:session initiation protocol[EB/OL].[2010-06-24].http://www.ietf.org/rfc/rfc3261.txt.

[4]欧阳星明,程剑.使用JAIN SIP开发基于SIP协议的应用[J].计算机应用,2005,25(3):493-494.

[5]SCHULZRINNE H,CASNER S,FREDERICK R,et al.RTP:atransport protocol for real-time applications[EB/OL].[2010-06-24].http://www.ietf.org/rfc/rfc1889.txt.

电话终端 第5篇

随着Vo IP的迅猛发展, 越来越多的个人用户正在使用软件电话、IP电话通过Vo IP系统拨打国内和国际长途, IP电话的需求量越来越大。同时, 人们对IP电话的要求也越来越高, 例如要求IP电话体积小、方便携带、功耗低、待机时间长、漂亮的人机交互界面、功能可扩展等。解决这些需求的可行方案就是使用Linux智能终端平台。具体而言就是将Linux操作系统和Mini GUI图形库经过裁减移植到这些嵌入式处理芯片所构建的硬件平台上。由于Linux具有强大的网络功能, 而Mini GUI是一款优秀的针对嵌入式Linux的轻量级图形用户界面库, 在它们的基础上做应用开发, 能够保证IP电话的稳定性和功能扩展, 也能开发出漂亮的人机交互界面。本方案采用的Linux智能终端原型机是基于ARM920T内核处理器S3C2410的嵌入式开发板。该开发板由于性能优异、性价比高, 因此适合于开发各类高端的手持、小型终端以及各种网络应用产品。它的标准工作频率为203MHz, 核心板上的Flash ROM和SDRAM均为64MB, 并支持1024*768的液晶显示器, 可直接运行嵌入式Linux操作系统和Mini GUI图形库。

目前用来实现Vo IP系统的协议有三种:SIP、MGCP和H.323[1], 其中SIP协议是应用得最广泛的协议, 本方案实现的IP软件电话支持SIP协议。

二、IP软件电话实现方案

根据IP电话的功能需求, IP电话应当实现人机界面的交互、呼叫处理、语音的采集和播放、语音的编码和解码、语音的实时传输。本设计人机界面的交互使用Linux智能终端平台上的LCD和功能按键, 采用Mini GUI图形库和Linux按键驱动;呼叫处理模块使用终端平台上的网络接口, 采用e Xo SIP协议栈[2];语音的采集与播放使用终端平台上的音频接口, 采用Linux音频设备驱动;语音的编码和解码直接采用开源G.729A源代码;语音的实时传输使用RTP协议, 采用开源的JRTPLIB库。

IP电话软件结构图如图1所示。IP电话由8个模块组成。每一模块对应一个线程。其中, 主线程 (线程1) 的任务是: (1) 加载配置文件到内存中; (2) 初始化音频设备和功能按键设备; (3) 创建RTP会话实例和初始化e Xo SIP协议栈; (4) 初始化四个数据区缓冲结构; (5) 创建、管理, 撤消子线程; (6) 显示SIP配置文件的配置信息和状态信息, 处理来自呼叫处理模块子线程的消息。呼叫处理模块子线程 (线程2) 的任务是:通过调用e Xo SIP协议栈的API函数, 实现SIP电话的呼叫过程控制。语音采集模块子线程 (线程3) 的任务是:实现语音的采集并将采集到的语音数据存储到全局数据缓冲区队列1中。语音编码模块子线程 (线程4) 的任务是:从全局数据缓冲区队列1中读取PCM码流并对其进行编码将转化过后的G.729码流存储到全局数据缓冲区队列2中。数据发送模块子线程 (线程5) 的任务是:从全局数据缓冲区队列2中提取G.729码流, 打包成RTP数据包发送出去。数据接收模块子线程 (线程6) 的任务是:检测接收端口上的RTP语音包, 提取G.729码流存储到全局数据缓冲区队列3中。语音解码模块子线程 (线程7) 的任务是:从全局数据缓冲区队列3中读取G.729码流对其进行解码, 将转化过后的PCM码流存储到全局数据缓冲区队列4中。语音播放模块子线程 (线程8) 的任务是:从全局数据缓冲区队列4中读取PCM码流, 通过D/A转换成模拟语音信号。

三、各线程模块的实现

主线程模块主要完成系统各个功能模块的初始化工作, 也是程序的入口点, Mini GUI程序的入口点为Mini GUIMain () 函数;配置文件的加载拟完成从根文件系统到内存的加载, 然后进行解析, 存放在全局SIP配置参数结构中。配置文件用来存放呼叫处理模块和语音传输模块使用的参数, 具体包括:本机IP地址、子网掩码、网关地址、SIP服务器IP地址、SIP端口号、用户名、本机电话号码、密码、RTP端口号、被叫电话号码和注册间隔时间。初始化音频设备拟完成打开音频设备文件, 设置音频设备的采样频率, 量化位数和声道数目。打开音频设备文件可通过调用Linux系统函数audio_fd=open (“/dev/dsp”, O_RDWR) [3]来实现, 调用成功后将返回音频设备的文件描述符。设置音频设备的采样频率, 量化位数和声道数目可通过调用ioctl (fd, ….) 函数来实现[1]。功能按键设备的初始化很简单, 直接调用buttons_fd=open (“/dev/buttons”, 0) 函数打开按键设备文件即可。创建RTP会话实例, 可通过调用JRTPLIB库的RTPSession类来完成, 然后调用RTPSession类的Create () 方法来对其进行初始化, 创建完成后, 需设置RTP会话实例的传输参数和会话参数。e Xo SIP协议栈的初始化直接调用e Xo SIP协议栈所提供的初始化函数。七个子线程的创建可通过调用pthread_create函数[3]来完成。SIP配置信息的显示拟完成配置文件中的信息在Mini GUI主窗口上显示, 主要显示本机的IP地址和端口号、SIP服务器的IP地址、本机号码、本机用户名。SIP状态信息的显示拟完成对整个SIP事务迁移状态的显示。例如, 如果收到“180Ringing”消息, 则在Mini GUI主窗口上显示“对方正在响铃”, 如果收到定时器的超时消息, 则在Mini GUI主窗口上显示“无人接听, 请稍后再播”。SIP状态信息的显示是一个消息驱动的动态显示。SIP配置信息和状态信息的显示直接采用Mini GUI的窗口模型和消息处理机制[2]。SIP配置信息的显示直接通过调用Mini GUI提供的Text Out (hdc, 0, 0, host_ip) 将SIP参数结构中的参数显示在Mini GUI主窗口上。SIP状态信息的显示必须为每个sip事务消息定义相对应的Mini GUI消息, 以“180 Ringing”消息和定时器超时消息为例, 自定义消息如下:

当呼叫处理模块子线程收到IP网络上的“180Ringing”消息和Linux内核的定时器超时消息后, 则通过调用Send Message (h Wnd, MSG_180Ringing, 0, 0L) 向Mini GUI主线程发送MSG_180Ringing消息, 主线程通过调用Get Message () 函数获取呼叫处理模块子线程所发过来的消息, 通过调用Dispatch Message (&Msg) 函数把这些消息发送到窗口过程函数进行处理[4]。窗口过程函数收到相应的消息, 首先判断消息的类型, 若是MSG_180Ringing消息, 然后调用Text Out (hdc, 0, 0, “对方正在响铃”) 函数在窗口上显示“对方正在响铃”字样。

呼叫处理模块子线程可直接调用e Xo SIP协议栈所提供的API函数集, eXoSIP是在o SIP2的基础上对SIP消息的API作了更上层的封装, 能够很容易实现SIP电话的呼叫过程控制。呼叫处理模块子线程实现的难点是当呼叫连接成功后, 如何启动语音采集、语音编码、数据发送、数据接收、语音解码和语音播放6个子线程。本设计采用Linux线程间通信-管道机制[4]向其他6个子线程发送启动标识, 6个子线程接收到启动标识后, 唤醒各自的线程, 进行相应的语音处理和语音的传输。同样, 当呼叫连接释放时, 呼叫处理模块子线程向6个子线程发送停止标识, 6个子线程接收到停止标识后, 停止语音处理和语音的传输, 阻塞各自的线程。

语音采集模块、语音编码模块、数据发送模块、数据接收模块、语音解码模块和语音播放模块6个子线程的过程控制是一样的。首先进入主循环, 调用Linux系统函数select () 阻塞本线程, 侦听本线程与呼叫处理模块子线程之间的管道。若管道中有数据, 则调用系统函数read () 读取数据, 判断数据是否为启动标识。若为启动标识, 则进入子循环进行相应的处理;若为其他数据, 则重新回到新一轮的循环。进入子循环进行相应的处理的同时, 将select () 设为非阻塞模式, 调用select () 函数侦听本线程与呼叫处理模块子线程之间的管道, 若管道中有数据, 则调用系统函数read () 读取数据[4], 判断数据是否为停止标识。若为停止标识, 则跳出子循环重新回到主循环, 线程重新回到阻塞状态;若为其他数据, 则不做任何处理, 重新回到子循环。

由于各子线程共享数据缓冲区队列, 为了正确读写数据, 在设计数据缓冲区队列结构和读写操作函数时, 使用了Linux下线程间的同步和互斥机制, 保证了对内存资源的安全共享。为了设计出通用的数据缓冲区队列结构和读写操作函数, 不妨将向缓冲区写数据的子线程定义为生产者线程, 将从缓冲区读取数据的子线程定义为消费者线程[5]。为了保证对数据缓冲区队列进行安全的读写操作, 生产者线程和消费者线程必须满足两个条件:

1. 生产者线程写入缓冲区的数目不能超过缓冲区容量;

2. 消费者线程读取的数目不能超过生产者线程写入的数目。

为了实现这两个条件, 在程序实现中使用了写指针和读指针来判断缓冲区是空还是满。在初始化时读指针和写指针为0;如果读指针等于写指针, 则缓冲区是空的;如果 (写指针+1) %N等于读指针, 则缓冲区是满的 (%表示取余数, N表示缓冲区队列的长度) 。

四、结语

本文提出了基于Linux智能终端平台的IP软件电话的实现方案, 并给出了各线程模块的实现方法。与传统的台式IP网络电话解决方案相比, 本方案具有如下突出的特点与创新点: (1) 体积小、功耗低:由于系统所依赖的硬件平台是Linux智能终端平台, 而Linux智能终端平台本身具有体积小, 功耗低特点。 (2) 功能可扩展:由于平台软硬件可裁剪, 可以方便开发人员进行功能扩展。 (3) 图形界面漂亮:由于系统采用嵌入式图形界面Mini GUI, 可以开发出漂亮的图形界面。 (4) 采用多线程机制和缓冲区队列对语音的采集与播放、语音的编码与解码和语音的实时传输进行并行处理, 保证了语音通话的连续性。

对系统进行测试结果表明, 本设计能够对呼叫进行稳健的控制, 能够保证语音通话的连续性, 对从事相关产品的开发具有一定的参考价值。

摘要:文章提出一种基于Linux智能终端平台的IP软件电话的实现方案。方案设计采用模块化多线程设计策略, 利用多线程机制和缓冲区队列对各个模块进行并行处理;系统测试表明, 本设计能够对呼叫进行稳键的控制, 能够保证语音通话的连续性, 具有一定的创新性和商业价值。

关键词:IP软件电话,Linux智能终端,多线程

参考文献

[1]糜正琨.IP网络电话技术[M].北京:人民邮电出版社, 2000.

[2]黄妮丽, 余厚全, 朱菲.基于WindowsCE的SIP软件电话的设计与实现[J].微计算机信息, 2008, 24 (17) .

[3]姚继锋.Linux应用实例与技巧[M].北京:机械工业出版社, 2001.

[4]唐靖飚.UNIX平台下C语言高级编程指南[M].北京:希望电子出版社, 2000.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

【电话终端】相关文章:

电子终端05-09

操作终端05-17

终端运行06-10

智慧终端06-27

终端结构07-17

3G终端07-17

多模终端07-30

现代终端08-01

终端安全08-31

终端问题定位05-19

上一篇:深度处理系统下一篇:案例教学消费心理学