基于软交换的网络广播对讲系统研究与设计
2016-01-12刘薇,陈可新
基于软交换的网络广播对讲系统研究与设计
刘薇,陈可新
(福州职业技术学院 计算机系,福建 福州 350108)
摘要:简要介绍了软交换技术的功能与应用,阐述了基于软交换的网络广播对讲系统工作原理,设计了基于Asterisk软交换的智能化小区网络广播对讲系统,并给出系统的运行测试详细方法.该系统除具备传统的模拟对讲系统的语音广播对讲功能外,还可以实现更多的语音增值功能,为智能化小区的安保、保洁、维修等物业服务提供强有力的语音广播对讲平台.
关键词:软交换;智能化小区;网络;广播对讲系统
DOI:10.13877/j.cnki.cn22-1284.2015.10.002
收稿日期:2015-08-11
基金项目:福建省教育厅科研项目“基于Asterisk的云计算呼叫中心应用研究”(JA13422)
作者简介:刘薇,女,满族,辽宁抚顺人,副教授.
中图分类号:TP393文献标志码:A
随着社会科技的进步和经济的迅猛发展,住宅小区在满足场所和空间要求的同时,居住安全、信息互动、人文与科技共融共生的智能化小区时代已经到来.智能化小区融合网络技术、电子技术、计算机技术、自动控制技术等先进的技术手段,提高了小区的安全防范和物业管理等方面的自动化程度和综合服务水平,语音广播对讲系统为智能化小区各项管理与服务提供了重要保障.
当前,多数住宅小区采用模拟对讲系统,由于模拟系统音视频信号共用线路,存在抗干扰能力差,因干扰可能导致图像、声音不清晰;信号传输距离受限,容易衰减和失真;系统仅支持简单的通话、开锁等功能;由于技术上的原因,系统升级或扩充有较大的局限性,不能很好融入小区现有的计算机网络等缺陷.随着移动互联网技术的飞速发展和WIFI信号的广泛覆盖,如何基于智能化小区的网络基础设施设计具有实时广播及对讲功能的网络广播对讲系统,对于智能化小区的安保、保洁等服务的高效提供有着重要的意义[1].本文对智能化小区的网络广播对讲系统原理及设计方法进行了阐述.
1软交换技术及网络广播对讲系统工作原理
1.1软交换及Asterisk简介
软交换技术为下一代网络中具有实时性要求的业务提供呼叫控制和连接控制功能,它主要完成呼叫控制、资源分配、协议处理、路由、认证、计费等功能,同时可以向用户提供现有电路交换机所能提供的所有业务,并向第三方提供可编程能力.相对于传统的模拟对讲系统,基于软交换技术搭建的网络广播对讲系统能充分利用智能化小区网络基础设施,具有传输距离远,可扩充性好,维护成本低,较好克服了传统模拟对讲系统的缺点,为提升智能化小区物业管理和服务水平提供强有力的保障[2].
Asterisk是一个广泛应用的开源软交换系统,它支持主流的软交换协议,如:SIP、H.323、IAX等.通过Asterisk系统AGI(Asterisk Gateway Interface)网关编程接口,可以快速开发语音应用功能模块,实现网络广播对讲系统的快速部署和应用.Asterisk在一个特定通道上执行AGI接口程序,可以让用其他语言编写的程序控制电话通道,开发人员可以采用多种编程语言(Perl、PHP、C、Java等)编写脚本程序与Asterisk交互[3].基于Asterisk软交换的网络广播对讲系统,终端用户在系统中注册和登录后,用户就可以通过电话会议方式实现语音广播及对讲功能,并能及时对语音通话情况进行记录或重听.基于Asterisk软交换网络广播对讲系统,有效改进了传统模拟对讲系统的局限性,突破地域限制,实现语音广播、远程对讲、通话记录等功能,极大方便了智能化小区物业服务的提供,将大大提升物业服务水平和能力.
1.2网络广播对讲系统工作原理
基于智能化小区IP网络的网络广播对讲系统和传统模拟对讲系统的对讲机一样,可以实现一人发言多人收听的功能.软交换服务器是整个网络广播对讲系统的枢纽环节,负责提供语音广播及呼叫对讲等系统核心功能.基于目前广泛使用的Asterisk开源软交换搭建软交换服务器,可以为系统的语音广播对讲提供较好的功能和性能.在小区现有网络基础设施中搭建好语音软交换服务器后,用户可以通过将安装SIP软电话的移动终端注册到服务器,实现基于IP网络的语音广播对讲功能.同时系统还能提供多种语音增值服务功能,如语音信箱,实时录音等.同时,为方便系统运行管理,还可以对软交换进行二次开发,实现系统管理功能,包括用户管理、分组管理和对讲管理等.
2基于软交换的网络广播对讲系统设计
2.1基于软交换的网络广播对讲系统体系架构
智能化小区的网络基础设施是网络广播对讲系统运行的基础,广播对讲系统的网络搭建可通过结合小区网络基础设施建设来实施.项目实施中可使用光纤连接小区网络中心与各建筑物路由器之间的骨干网络,通过在室内和室外的合适位置配置无线控制器和无线路由,实现多点连接,提高了系统语音信息传输速率和可靠性,实现高速传输.基于Asterisk软交换的智能化小区网络广播对讲系统,由Asterisk软交换服务器、WEB管理服务器、定制的通用移动智能终端三部分构成.
Asterisk软交换服务器主要实现语音文件描述信息传递和发布,WEB管理服务器实现系统账号数据管理、终端注册登录、语音文件存储、语音信息下载传送等功能,移动对讲终端基于通用移动智能终端,通过绑定SIP软电话并进行初始化配置,实现语音信息的采集与编码、语音上传、数据更新请求的发送,用户交互界面呈现等功能.管理用户可以通过PC终端访问WEB管理服务器,对数据进行管理、维护和调度等,远程管理员可以通过PSTN或Internet网络实现对系统管理和调度[4].基于Asterisk软交换的智能化小区网络广播对讲系统的体系结构如图1所示.
图1 智能化小区网络广播对讲系统体系结构
2.2基于软交换的网络广播对讲系统设计实现
通过在Linux服务器中编译安装Asterisk软件,并在系统中配置网络广播对讲系统拨号方案,服务器运行期间将自动读取并加载后台数据库中的终端账户信息,实现终端用户语音呼叫和广播对讲功能.系统中的WEB管理服务器允许管理用户通过WEB方式进行连接和访问,可以完成用户手持终端的注册,并实时查看终端用户的在线状态,管理用户可以通过该服务器实施系统配置和管理,上传语音通告信息,并根据需要对终端用户进行调度或广播呼叫.
为了实现终端用户的广播对讲功能,需要为终端用户设置广播对讲的拨号方案.Asterisk软交换的拨号方案设置在extension.conf文件,终端用户在系统中注册后,可以通过该拨号方案实现终端用户的广播及对讲功能[5].
[sip-page]
exten => _X.,1,Macro(paging,${EXTEN}) //与特定终端用户对讲
exten => _[*#]X,1,Macro(paging,${EXTEN}) //对指定组或所有用户广播
[macro-paging]
exten => s,1,NoOp(${ARG1})
same => n,SIPAddHeader(Call-Info: ;answer-after=0)
same => n,SIPAddHeader(Call-Info: answer-after=0)
same => n,SIPAddHeader(Alert-Info: Ring Answer)
same => n,AGI(getPageUri.php,${CALLERID(ani)},${ARG1})
same => n,NoOp(${PAGE_URI})
same => n,Page(${PAGE_URI})
exten => h,1,Hangup()
在上述拨号方案中系统通过Asterisk软交换的AGI编程接口调用getPageUri.php脚本程序,脚本运行时从数据库中读取主叫及被叫用户信息,并根据相关用户类型及按键实现对指定用户或用户组的对讲或广播,具体见以下getPageUri.php脚本程序.
#!/usr/bin/php -q
$caller=$argv[1]; //主叫方账户信息
$called=$argv[2]; //被叫方信息
$pdo = new PDO('mysql:host=localhost;dbname=asterisk','root','123456');
$statement = $pdo -> query(“select g.type,s.group_id from sip_peers s,groups g where s.group_id=g.id and s.name='$caller'");
$row = $statement->fetch(PDO::FETCH_ASSOC);//访问数据库获取用户类型及部门ID
if(!empty($row)){ //主叫用户已在系统中注册
$type=$row['type'];
$groupId=$row['group_id'];
$firstCode=substr($called,0,1);
$uri='';
$uriCondition="";
if($called=='*0'){ //根据用户终端按键判断本次广播呼叫对象范围
$uriCondition="group_id='$groupId'"; }
elseif($type=="1" && $firstCode=='#'){
$calledGroupId=substr($called,1);
if($calledGroupId==="0"){ $uriCondition='1'; }
else{ $uriCondition="group_id='$calledGroupId'"; } }
elseif(is_numeric($called)){ $uri="SIP/$called"; }
if($uriCondition){
$statement = $pdo -> query("select name from sip_peers where $uriCondition and name !='$caller' "); //根据需要访问数据库获取被叫用户信息
while($row = $statement->fetch(PDO::FETCH_ASSOC)){
$uri.="SIP/{$row['name']}&"; }
$uri=substr($uri,0,-1); }
if(!empty($uri)){echo "SET VARIABLE PAGE_URI $uri "; } }
?>
3基于软交换的网络广播对讲系统运行测试
基于Asterisk软交换的网络广播对讲系统将为对讲系统终端用户接入、用户语音广播对讲及用户通话信息记录等提供强大的平台支持.在对系统运行测试中,终端用户开机后将自动连接小区WIFI网络,如该终端在系统中已注册,则终端将直接登录系统,系统服务器端显示终端状态在线,未注册的手持终端需要事先在系统的管理服务器中注册后才能使用.
手持终端用户需要语音广播或对讲时,可以通过手持终端上的按键呼叫系统中的指定用户,所有在线的被叫用户将自动收到广播或对讲的语音信号,并可进行实时语音对讲,未在线用户的语音信箱中将收到本次呼叫的语音邮件;管理端用户可以根据需要通过PC端或IP电话对手持终端用户进行呼叫和调度;同时系统将根据事先配置的系统录音策略自动记录相关用户语音通话信息.用户在系统中注册后,通过在用户终端上按下指定按键,如:管理用户通过按下*0键可以实现向本部门所有用户的语音广播;通过按下特定分组或用户编号和#键,可以实现向指定部门用户的语音广播.
4结语
本文阐述的基于软交换的网络广播对讲系统设计,采用开源软交换平台 Asterisk作为广播对讲系统中心服务器,搭建基于小区WIFI网络的网络广播对讲系统,实现在小区不同区域员工的统一内部语音通信和具有调度功能的协调通讯,这个平台投资运行费用较低,具有较好的应用价值.基于软交换的智能化小区网络广播对讲系统,所用的终端设备为通用移动终端,设备操作简单,安装和维护方便,每一个接入点不需要单独逐一布线,可以达到小区计算机网络、小区广播对讲、数字视频监控等系统的多网合一.虽然基于智能化小区计算机网络的网络广播系统目前还不能完全取代传统模拟广播系统,相信随着智能化小区及移动互联网技术的不断发展,它将是未来小区广播对讲系统发展的趋势,甚至未来在其他领域也将具有较好的应用和推广价值.
参考文献:
[1]尹文刚,杨斌.Android平台下基于WiFi的可视化VoIP通话系统设计[J].单片机与嵌入式系统应用,2012(08):70-72.
[2]陈顺祥.基于Android平台多方通话软件的研究与实现[J].电子世界,2014(12):111-112.
[3]刘志伟,余金山.基于Trixbox电话语音通知系统的设计与实现[J].计算机与数字工程,2010(02):148-151.
[4]陈可新,黄伟民.基于Asterisk的语音识别技术研究和实现[J].长春师范大学学报,2015(06):44-46.
[5]Leif Madsen,Jim Van Meggelen,Russell Bryant. Asterisk:The Definitive Guide,Third Edition [M].O'Reilly,2011.
(责任编辑:王前)