基于Internet的IP电话设计

时间:2012-12-08来源:网络

  3.显示模块:采用一块普通数显LCD,主要用来完成电话号码及一些本机工作状态的显示。

  4.键盘模块和EEPROM:主要提供*机的拨号键盘,完成拨号和电话机的功能设置。EEPROM主要完成参数的设置。

  5.语音模块:采用UDA1341TS音频编解码器。

  6.上位机接口:完成一些参数的设定和一些已经被记录的参数的读取。

  系统的软件设计

  软件设计是基于μC/OS-II的,软件方面的工作主要集中在驱动程序的编写、任务的划分、任务的编写等。由于μC/OS-II不提供API接口库或者需要额外购买,那么在需要设计的*机中,主要写的驱动库有:TCP/IP、液晶驱动、EEPROM驱动、键盘驱动、I/O驱动和USB驱动。这些驱动的编写有固定的模式和套路。这里不多做介绍。

  任务的划分和优先级的安排如图2所示。从图2可以看出共分8个任务、3个任务链,其中待机任务链的优先级最高。8个任务分别是:*来电、*服务器、监视本机工作状态和设置、返回握手信号、接听电话、获取对方IP、按IP与对方取得握手等。

  IP电话软件结构

  IP电话软件集成了完成语音通话所需的所有功能。该软件按功能可以划分为4部分。

  1、呼叫处理模块:主要完成呼叫的建立与拆除功能。呼叫控制采用SIP协议建立会话。呼叫建立过程如下:一个SIP终端首先向本地的代理服务器发出呼叫请求:本地的代理服务器通过查询本地的重定向服务器找到下一个代理服务器的地址,并向其转发呼叫请求:下一个代理服务器收到呼叫请求后,通过定向服务器找到被叫所在网络的代理服务器,然后向该代理服务器转发呼叫请求:被叫所在网络的代理服务器确定被叫终端,并向被叫终端转发呼叫请求:被叫终端应答,从而实现连接。

  2、语音编/解码模块:语音采集得到的PCM编码数据虽然能够提供相当好的长途通信语音质量,但是其速率过高,占用网络带宽资源过多。为此需要对语音数据进一步压缩,以降低语音编码的速率。相应地,在接收端也需要同样的解压算法来恢复成原始语音数据。这部分代码编制时主要采用比较成熟的语音编解码算法,并进行一定的改进,以提高语音通话质量。

  3、数据封包/拆包模块:此部分代码对压缩编码后的语音数据进行打包,添加包头、时标和其他信息后形成语音包。在接收时,要进行相应的拆包,提取语音压缩包。

  4、数据传输模块:该模块主要完成语音包的发送和接收。把音频数据实时地传输给对方是保证实时语音通信的关键。所以在考虑可靠性和实时性方面更注重速度和实时性。这里采用UDP协议。

  结语

  本文介绍的系统利用现有的计算机网络资源组成电话通信系统,无需铺设电话线路和电话通信网络设备,节省了大量建设电话网络的设备费、线路费和工程费等费用,可取得显著的经济效益。在不需要铺设电话线路的情况下,方便地实现电话通信,增加电话用户,缩短安装工程周期。

参考文献:

[1].G.728datasheethttp://www.dzsc.com/datasheet/G.728_2060768.html.
[2].G.729datasheethttp://www.dzsc.com/datasheet/G.729_2060769.html.
[3].SSTdatasheethttp://www.dzsc.com/datasheet/SST_1180824.html.

1 2

关键词: Internet IP电话 ARM9

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版