家电数码 > 手机 > 详情

SIP协议模拟电台语音通信系统设计

发布时间:2024-05-31 发布时间:
|
编者按:为了提高模拟电台训练系统的仿真程度,在模拟电台语音通信系统中以计算机网络通信技术为核心,构建一种基于SIP协议的语音通信技术。经过实验测试,在多部电台模拟器之间相互构建语音组网通信时延小于200ms,音质清晰,能够清楚分辨出发话人的语音特征,满足了设计的要求。
 

  

引言

 当前大部分模拟电台训练系统基于电台界面的操作,对语音通信交互及组网的构建存在一定的缺陷,随着计算机技术及仿真技术的飞速发展,以局域网为依托,利用计算机技术,基于SIP协议的多线程即时语音通信技术,构建模拟仿真电台一对一、一对多、多对多的即时语音通信组网效果,以适应当前开展多元化、现代化的仿真模拟训练需求。

 SIP协议是一种网络电话协议,可以在局域网络中即时构建一对一、一对多、多对多参与者之间的语音交互通信。由于SIP协议开源、简单、快捷、灵活、扩展性强等特点,当前国内外企业研制出很多基于SIP协议的视频语音会议解决方案及网络电话设备,极大地推进了SIP协议技术的发展。

1 SIP协议

 SIP(Session Initiation Protocol)是一个基于IP应用层控制协议,继承了互联网通信一些设计理念,它高效、稳定、简单、扩展方便而又不缺乏灵活性,可以在几分钟之内构建出一个可以在多系统平台运行的服务器和客户端。主要功能是以服务器为中心,即时建立、调整、撤消客户端的呼叫与会话,同时可进行用户定位、用户交换、呼叫建立、处理等,构建完整的语音通信网络系统。

 SIP协议采用了C/S模式,包括SIP代理客户端和SIP服务器。其中,代理客户端是一个交互的系统接口,又分为负责发起SIP呼叫请求的用户代理客户端和负责对呼叫请求做出响应的用户代理服务器。而SIP服务器主要包括注册、代理、位置、重定向服务器,它们之间可以共存于一个设备当中,也可以分布在整个物理实体中,SIP服务器并不依赖硬件系统,完全是基于软件实现的文本协议,主要负责接收和处理用户端请求、注册、鉴权、认证、处理呼叫相关信令的网络等服务。

 SIP作为一个开源的协议栈,编码方式是采用扩展的BNF范式来规定的,不是一个垂直集成的通讯系统,本身不提供服务,往往与实时数据传输协议(RTP)、实时流协议(RSTP)、媒体网关控制协议、会话描述协议(SDP)等协同合作,来实现不同的网络通信服务,构造完整的多媒体网络通信架构。同时,SIP的技术核心是采用了标准C语言编写开源的OSIP协议栈,并可在VC6.0编译器中运行,并为语音通信提供了一些解析消息的API和事物处理状态机。

2 设计思路

 SIP协议的语音通信模块设计的目的是把分布在计算机局域网内的半实物电台模拟器实时构建语音通信网,该语音通信网络的设计主要采用模块设计,各模块之间松耦合且相对独立,主要的模块包括:SIP注册模块、语音处理模块、实时语音传输模块、SIP消息处理模块。模块的总体框图如图1所示。其中,SIP注册是认证各电台模拟训练器子系统组网的状态;语音处理模块包括语音采集、播放、编码和解码过程;实时语音传输主要包括SIP线程、发送线程、接收线程和网络状态反馈线程;SIP信息处理主要记录各模拟电台通信组网状态,发起或拆除语音系统组网以及相对应的消息处理,实时调整处于不同组别电台模拟训练器的组网连接状态。

3 模块具体实现

3.1 SIP注册

 SIP服务器设置在主控计算机上,主控计算机IP地址设置为:168.192.1.1,端口为:5060;每一台电台模拟器在系统中充当SIP客户端,设置的IP地址为:168.192.1.(2-12),端口为5061-5071。根据C/S模式把主控SIP服务器、电台模拟器进行组网连接,如图5所示,并依次分配IP、端口地址、用户名字,以及设定的密码。此系统第一次使用时,需要取得服务器的注册认证,否则无法进行组网通信,SIP的注册过程如图2所示。

 第一步,首次启动语音通信时,SIP客户端先通过局域网向安装在主控计算机上的SIP服务器发起REGISTER注册申请;

 第二步,SIP服务器对SIP客户端进行查询并认证该客户的信息,确保这名客户信息是一个新的用户,服务器对该用户返回401 Unauthorized质询信息及所需的安全认证令牌;

 第三步,用户根据服务器的提示,输入相应的标识及用户信息,再次向服务器发出REGISTER消息请求;

 第四步,服务器收到请求后,检查用户信息的正确性,质询信息验证用户的合法性,若是用户信息错误,返回失败,若是户信息合法,把用户信息保存到数据库当中,最后返回成功的相应消息200 OK。

3.2 语音处理模块

 当客户端完成注册验证之后,由主控计算机选择相应的电台模拟训练器进行组网,构建SIP语音会议通信系统。语音的采集是由模拟电台训练器终端负责语音采集,语音处理的流程如图3所示,首先判断手咪的PTT按键是否触发,若是没有被触发,该电台模拟训练器处于接收语音状态,即时对语音信息进行解码及播放;若是被触发,该电台模拟训练器进行语音采集,初始化语音存储的数据结构,调用录音设备,并根据电台设定的电磁干扰类型的强度,对语音信息进行编码,当保存数据的缓冲区满时,对语音数据进行打包,并发送到会议系统中进行组播。

3.3 语音传输模块

 语音传输模块包括SIP线程、发送线程、接收线程和网络状态反馈线程四个线程,为了满足建立多线程的C/S模型和严格的异常处理机制,局域网中采用UDP协议进行传输。UDP协议传输是一种单向的传输方式,事前不必与对方进行连接,直接发送数据,例如微信,不用担心对方是否在线,都可以向对方发送数据,不仅可以实现一对多点的数据广播,还可以进行用户分组通信,具有通信效率高,占用网络资源少等特点。然而UDP协议存在的缺点是存在数据的丢包现象,不能完全确保对方接收到完整的数据包。为了解决这种问题,采用了三个UDP控件,如图4所示,MUUDP1负责SIP线程及网络转状态反馈线程,MUUDP2负责语音发送线程,MUUDP3负责语音接收线程,这样可以有效地解决传输信息存在的丢包现象。

3.4 SIP信息处理模块

 当主控在进行组网语音通信时,根据当前所有电台模拟器设置的工作参数进行组网,在主控服务器中生成模拟器会话会议号,例如根据1号、5号、8号电台模拟器设置的工作参数一致,建立组网号186001, 1、5、8号电台模拟器就可以在构建的网络内进行语音交互通信。组网的过程一般包括创建组网、加入组网、退出组网、结束组网等步骤。

 创建组网方式采用即时会议的形式进行,首先主控服务器对每台电台模拟训练器工作参数进行周期扫描,并进行匹配对比,若发现电台的工作参数有相同的组合,则即时生成新的会议号进行组网。

 加入组网方式采用Call—In方式,当建立组网完成之后,主控利用即时消息的方式向具有相同工作参数的电台模拟器终端发送相对应的会议号,各电台模拟器终端根据接收到的会议号,向主控发送INVITE消息,请求加入相对应的会议号,具体的流程如图5所示。首先主控SIP服务器根据创建的会议号向模拟器客户端提出邀请INVITE消息,带有新的协商信息;然后模拟器客户端回复200 OK,并将协商后的信息带回;最后服务器发送ACK给模拟器客户端进行答复,成功邀请新的成员加入组网,即时可进行语音通信。

 退出组网模式是基于电台模拟器工作参数的改变,当某电台的工作参数发生改变时,该电台模拟器需要向主控服务器发送BYE消息进行申请退出当前会议号,服务器接收到BYE请求后,对该模拟器语音通信链路进行切断。

 当系统内所有模拟器的工作参数不相同或退出组网模拟时,组网结束,主控服务器会向所有模拟器终端发送BYE请求,中断所有的组网。

4 系统测试

 电台模拟器训练系统主要有主控计算机、局域网、电台模拟训练器组成,如图6所示。其中把SIP的注册服务器、代理服务器、位置服务器及重定向服务器安装在一台主控计算上,每一台电台模拟训练器都是基于ARM11的嵌入式SIP客户终端,以局域网技术为依托,构建电台模拟训练系统强大的语音交互网。在模拟电台通信过程中,主控计算机周期扫描模拟电台训练器的工作参数,用模拟器工作参数相同的组合构建实时的语音通信网,经过测试,通信延时小于200ms,音质清晰,能够清楚分辨出发话人的语音特征,满足了设计的要求。

5 结论

 本文基于局域网通信技术,利用SIP协议,构建了电台模拟训练系统的语音通信系统,并在VC6.0平台上编译通过,实现了多台电台模拟训练器之间的组网语音通信,通信效果良好,对电台模拟器的语音仿真训练具有很强的实际参考价值。

参考文献:

 [1]GNU Organization Stabs[Z]. 2004-10.  

 [2]魏春城.SIP协议的特点及应用[J].电信科学,2002, 18(9):64-66.

 [3]杨俊智.基于IP的可视电话中H.263+编码器的实现及其优化[D].浙江大学,2003.

 [4] Wind River Systems Inc. Tornado API Guide 1.0.1[Z].Alameda,CA,2002.


 



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
工业交换机对智能电网电力系统的应用