当前位置: 首页 > news >正文

怎样设计网站模板asp.net建立网站吗

怎样设计网站模板,asp.net建立网站吗,网站建设道冲,jsp网站怎么做0 引言随着VoIP的迅猛发展#xff0c;越来越多的个人用户正在使用软件电话、IP电话通过VoIP系统拨打国内和国际长途#xff0c;IP电话的需求量越来越大#xff0c;同时#xff0c;人们对IP电话的要求也越来越高#xff0c;例如要求IP电话体积小、方便携带、功耗低、待机时…0 引言随着VoIP的迅猛发展越来越多的个人用户正在使用软件电话、IP电话通过VoIP系统拨打国内和国际长途IP电话的需求量越来越大同时人们对IP电话的要求也越来越高例如要求IP电话体积小、方便携带、功耗低、待机时间长、漂亮的人机交互界面功能可扩展等。解决这些需求的可行方案就是用嵌入式系统具体而言就是采用一款32位嵌入式处理芯片(如ARM、Power PC)将Linux操作系统和MiniGUI图形库经过裁减移植到这些嵌入式处理芯片所构建的硬件平台上。由于Linux具有强大的网络功能而MiniGUI是一款优秀的针对嵌入式Linux的轻量级图形用户界面库在它们的基础上做应用开发能够保证IP电话的稳定性和功能扩展也能开发出漂亮的人机交互界面。目前用来实现VoIP系统的协议有三种SIP、MGCP和H.323其中SIP协议是应用得最广泛的协议所谓SIP电话就是支持SIP协议的IP电话。1 SIP电话实现方案根据IP电话的功能需求SIP电话应当实现人机界面的交互、呼叫处理、语音的采集和播放、语音的编码和解码、语音的实时传输。本设计人机界面的交互使用嵌入式系统硬件平台上的LCD和功能按键采用MiniGUI图形库和Linux按键驱动;呼叫处理模块使用硬件平台上的网络接口采用eXoSIP协议栈;语音的采集与播放使用硬件平台上的音频接口采用Linux音频设备驱动;语音的编码和解码直接采用开源G.7-29A源代码;语音的实时传输使用RTP协议采用开源的JRTPLIB库。SIP电话软件结构图如图1所示。SIP电话由八个模块组成。每一模块对应一个线程。其中主线程(线程1)的任务是a.加载配置文件到内存中;b.初始化音频设备和功能按键设备;c.创建RTP会话实例和初始化eXoSIP协议栈;d.初始化四个数据区缓冲结构;e.创建、管理、撤消子线程;f. 显示SIP配置文件的配置信息和状态信息处理来自呼叫处理模块子线程的消息。呼叫处理模块子线程(线程2)的任务是通过调用eXoSIP协议栈的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转换成模拟语音信号。2 各线程模块的实现主线程模块主要完成系统各个功能模块的初始化工作也是程序的入口点MiniGUI程序的入口点为MiniGUIMain()函数;配置文件的加载拟完成从根文件系统到内存的加载然后进行解析存放在全局SIP配置参数结构中。配置文件用来存放呼叫处理模块和语音传输模块使用的参数具体包括本机IP地址、子网掩码、网关地址、SIP服务器IP地址SIP端口号、用户名、本机电话号码、密码、RTP端口号、被叫电话号码和注册间隔时间。初始化音频设备拟完成打开音频设备文件设置音频设备的采样频率量化位数和声道数目。打开音频设备文件可通过调用Linux系统函数audio_fdopen(“/dev/dsp”O_RDWR)来实现调用成功后将返回音频设备的文件描述符。设置音频设备的采样频率量化位数和声道数目可通过调用ioctl(fd….)函数来实现。功能按键设备的初始化很简单直接调用buttons_fdopen“/dev/b-uttons”,O)函数打开按键设备文件即可。创建RTP会话实例可通过调用JRTPLIB库的RTPSession类来完成然后调用RTPSession类的Create()方法来对其进行初始化创建完成后需设置RTP会话实例的传输参数和会话参数。eXoSIP协议栈的初始化直接调用eXoSIP协议栈所提供的初始化函数。七个子线程的创建可通过调用pthread_create函数来完成。SIP配置信息的显示拟完成配置文件中的信息在MiniGUI主窗口上的显示主要显示本机的IP地址和端口号、SIP服务器的IP地址、本机号码、本机用户名。SIP状态信息的显示拟完成对整个SIP事务迁移状态的显示。例如如果收到180Ringing消息则在MiniGUI主窗口上显示“对方正在响铃”如果收到定时器的超时消息则在MiniGUI主窗口上显示“无人接听请稍后再拨”。SIP状态信息的显示是一个消息驱动的动态显示。SIP配置信息和状态信息的显示直接采用MiniGUI的窗口模型和消息处理机制。SIP配置信息的显示直接通过调用MiniGUI提供的TextOut(hdc,O,O,host_ip)将SIP参数结构中的参数显示在MiniGUI主窗口上。SIP状态信息的显示必须为每个SIP事务消息定义相对应的MiniGUI消息以180 Ringing消息和定时器超时消息为例自定义消息如下#define MSG_180Ringing(MSG_USER10)#define MSG_TimerC(MSG_USER11)当呼叫处理模块子线程收到IP网络上的“180 Ringing”消息和Linux内核的定时器超时消息后则通过调用SendMessage(hWnd,MSG_180-Ringing,0,0L)向MiniGUI主线程发送MSG_180Ringing消息主线程通过调用GetMessage()函数获取呼叫处理模块子线程所发过来的消息通过调用DispatchMessage(Msg)函数把这些消息发送到窗口过程函数进行处理。窗口过程函数收到相应的消息首先判断消息的类型若是MSG_180Ringing消息然后调用TextOut(hdc,0,0,“对方正在响铃”)函数在窗口上显示“对方正在响铃”字样。呼叫处理模块子线程可直接调用eXoSIP协议栈所提供的API函数集,eXoSIP是在oSIP2的基础上对SIP消息的API作了更上层的封装能够很容易实现SIP电话的呼叫过程控制。呼叫处理模块子线程实现的难点是当呼叫连接成功后如何启动语音采集、语音编码、数据发送、数据接收、语音解码和语音播放6个子线程。本设计采用Linux线程间通信-管道机制向其它6个子线程发送启动标识6个子线程接收到启动标识后唤醒各自的线程进行相应的语音处理和语音的传输。同样当呼叫连接释放时呼叫处理模块子线程向6个子线程发送停止标识6个子线程接收到停止标识后停止语音处理和语音的传输阻塞各自的线程。语音采集模块、语音编码模块、数据发送模块、数据接收模块、语音解码模块和语音播放模块6个子线程的过程控制是一样的首先进入主循环调用Linux系统函数select()阻塞本线程侦听本线程与呼叫处理模块子线程之间的管道若管道中有数据则调用系统函数read()读取数据判断数据是否为启动标识若是则进入子循环进行相应的处理;若为其它数据则重新回到新一轮的循环。进入子循环进行相应的处理的同时将select()设为非阻塞模式调用select()函数侦听本线程与呼叫处理模块子线程之间的管道若管道中有数据则调用系统函数read()读取数据判断数据是否为停止标识若为停止标识则跳出子循环重新回到主循环线程重新回到阻塞状态;若为其它数据则不做任何处理重新回到子循环。由于各子线程共享数据缓冲区队列为了正确读写数据在设计数据缓冲区队列结构和读写操作函数时使用了Linux下线程间的同步和互斥机制保证了对内存资源的安全共享。为了设计出通用的数据缓冲区队列结构和读写操作函数不妨将向缓冲区写数据的子线程定义为生产者线程将从缓冲区读取数据的子线程定义为消费者线程。为了保证对数据缓冲区队列进行安全的读写操作生产者线程和消费者线程必须满足两个条件(1)生产者线程写入缓冲区的数目不能超过缓冲区容量;(2)消费者线程读取的数目不能超过生产者线程写入的数目。为了实现这两个条件在程序实现中使用了写指针和读指针来判断缓冲区是空还是满。在初始化时读指针和写指针为0;如果读指针等于写指针则缓冲区是空的;如果(写指针1)%N等于读指针则缓冲区是满的%表示取余数N表示缓冲区队列的长度。3 结语本文提出了基于嵌入式Linux和MiniGUI的SIP电话终端的实现方案并给出了各线程模块的实现方法与传统的台式IP网络电话解决方案相比本方案具有如下突出的特点与创新点a.体积小、功耗低由于系统所依赖的硬件平台是嵌入式系统平台而嵌入式硬件平台本身具有体积小、功耗低特点。b.功能可扩展。由于嵌入式系统软硬件可裁剪可以方便开发人员进行功能扩展。c.图形界面漂亮。由于系统采用嵌入式图形界面MiniGUI可以开发出漂亮的图形界面。d.采用多线程机制和缓冲区队列对语音的采集与播放、语音的编码与解码和语音的实时传输进行并行处理保证了语音通话的连续性。对系统进行测试的结果表明本设计能够对呼叫进行稳键的控制能够保证语音通话的连续性对从事相关产品的开发具有一定的参考价值。欲了解更多信息请登录电子发烧友网(http://)
http://www.zqtcl.cn/news/979607/

相关文章:

  • 如何搭建自己得网站树状wordpress主题
  • 公司网站是别人做的如何换logo北京网站设计浩森宇特
  • 直播网站制作做阿里巴巴网站电话
  • 免费建一个自己的网站做国内网站花费
  • 苏州手机网站搭建郑州建设网站制作公司
  • 贵阳网站建设kuhugz沽源网站建设
  • 深圳网站seo推广河北建设工程信息网停用公告
  • 给公司建网站 深圳wordpress去掉cat
  • 网站建设推荐华网天下土巴兔装修平台怎么收费
  • 微网站 网页成品网站模块
  • soap公司网站wordpress 相关推荐
  • 浙江质监站网址固始网站建设公司
  • 济南 外贸网站建设怎么知道网站是哪个公司做的
  • 分享wordpress优秀主题东莞百度seo找谁
  • 顺德网站制作案例价位超兽vps群
  • 网站建设 搜狐号电脑赚钱的项目有哪些
  • 做生意的网站广州互联网企业100强
  • 网站单页支付宝支付怎么做网站制作公司套路
  • 本网站维护升级官方网站建设滞后
  • 网站上漂亮的甘特图是怎么做的江门seo方法
  • 局域网建设网站seo优化查询
  • 网站安装模板wordpress多个函数文件
  • 网站建设飠金手指排名十二毕业设计论文网
  • 高密哪里做网站好网络营销的四大特点
  • 网站锚文本怎么做怎么在网上接网站建设
  • php做公司网站中国大工程建设需要什么样的人才
  • 优化公司怎么优化网站的技能网站建设项目需求
  • wordpress怎么修改主页网站改版seo
  • 做视频网站需要多少带宽lnmp wordpress 数据库
  • 网站速度慢wordpress徐州网络推广公司