基于FreeSWITCH构建远程监控系统的探索

2018-05-14 18:45贾夫松王希常
科技风 2018年3期
关键词:多媒体

贾夫松 王希常

摘 要:基于当前监控系统的特点,本文进行基于FreeSWITCH的远程监控系统的研究。针对当前人们对监控的需求,以开源的软交换机FreeSWITCH为软交换平台,以SIP协议为信令协议,设计实现了一种方便,廉价,高效和实时的监控系统。该系统与传统的监控系统相比较,灵活性好,扩展性高,即摆脱了对硬件设施的依赖,又实现了高品质的视频监控,实践表明该系统处理能力强,视频效果好,通过对SIP信令和视频数据包的分离来减小服务器压力,对处理并发视频流传输具有良好的效果,为开发监控系统提供了参考价值。

关键词:VoIP;FreeSWITCH;SIP协议;多媒体

远程监控系统是一种让身首异处的人们通过网络实现“实时、方便、可视”的通信技术。传统的监控系统采用专门的硬件来完成监控业务,这种设计依赖硬件,费用高、可扩展性不强,更无法实现异地实时监控。随着VoIP(Voice over IP)技术的兴起和计算机处理能力的增强,可在计算机上利用软件实现实时监控。这里以支持SIP协议的FreeSWITCH为平台搭建监控系统。

SIP协议是基于文本的应用层协议,可以综合语音、数字和视频业务,支持终端能力检测,这里采用SIP协议作为信令协议。该系统除了信令控制以为,还需要媒体处理,要求终端使用相同的视频编码这里采用的是H.264。本文基于以上分析,设计一种扩展性高、管理方便的远程监控系统。

1 系统结构设计与分析

1.1 FreeSWITCH介绍

FreeSWITCH是一款开源的、跨平台的、伸缩性极好的、免费的、多协议的电话软件换平台。它能原生地运行于Windows、Max OS X、Linux、BSD及Solaris等诸多平台上,支持SIP、H323、Skype、Google Talk等多种通信协议,并很容易地与各种开源的PBX系统(如sipXecs、Call Weaver、Bayonne、YATE及Asterisk等)互通,而且支持很多高级的SIP特性,如Presence、BLF、SLA以及TCP、TLS和sRTP等。它也可以作为一个SBC进行透明的SIP代理(proxy)以支持其他媒体,如T.38等。

1.2 系统结构分析

以FreeSWITCH为核心组件,结合其他软件和设备,设计一种基于SIP协议的远程监控系统,该系统选用SIP协议作为信令协议,完成注册、代理、重定向等功能。该系统主要有FreeSWITCH构成服务器,终端设备是有一款支持SIP协议的摄像机和IP软电话。系统的整体结构如图所示。

功能方面:FreeSWITCH作为服务器,其主要功能是接受终端的注册,处理交互控制信令,并协调终端之间的会话连接。终端则是进行对数据的采集、处理、发送、接受、播放,从而实现实时的、有效的监控服务。

2 系统功能实现

2.1 功能模块

FreeSWITCH由一个稳定的核心(Core)和一些外围模块组成,外围模块可以动态加载,比如mod_sofia/mod_socket等。

Core的主要功能:Core是利用APR库(Apache提供的跨平台的C库)来完成,完成内存管理/线程管理/常用算法/数据结构等,还包括动态库的加载卸载、呼叫控制、日志管理、存储、内核任务调度等

外围模块(Mod_xxx):可加载卸载外围模块的FreeSWITC的一个特色,功能的扩展主要依靠外围动态模块的增加来实现,每个模块加载后提供相应的API和APP来进一步增强FreeSWITCH的功能,Core和模块之间通过调用API实现与Core的交互。

2.2 SIP的实现

FreeSWITCH的SIP功能是在mod_sofia模块中实现的,FreeSWITCH并没有自己开发新的SIP协议栈,而是使用了比较成熟的Nokia的开源SIP协议栈Sofia-SIP。

mod_sofia是FreeSWITCH中最重要的一个模块,所有的SIP通话都是从它开始和终止。它实现了SIP注册、呼叫、终止等一系列的SIP特性。

Endpoint:在FreeSWITCH中,实现一些互联协议接口的模块称为Endpoint。FreeSWITCH支持很多类型的Endpoint,如SIP、H.323等。这些不同的Endpoint主要使用不同的控制协议跟其他的Endpoint通话。SIP Profile相当于SIP UA,在启动后它会监听一个”IP地址:端口”对。

UA首先向FreeSWITCH内部的SIP(sofia_SIP)模塊发起注册。然后发出Invite请求,该请求带有SDP(Session De-scription Protocol)的媒体信息,协商双方媒体功能,发起呼叫实现互通。

2.3 媒体绕过(Bypass Media)

FreeSWITCH作为服务器,用户发起的SIP消息通过FreeSWITCH进行建立连接,连接建立之后的媒体流相对SIP消息的庞大的,如果都通过FreeSWITCH转发会给服务器造成巨大压力,所以采用媒体绕过技术,即真正的媒体流使用点对点传输,不经过FreeSWITCH,直接通过RTP的点对点传输。设置Bypass Media:在Profile中添加如下设置

3 系统搭建与测试

3.1 安装

FreeSWITCH安装Linux Ubuntu14.04系统当中,终端则运行在同一网络下。准备一个支持SIP协议的摄像机并注册在FreeSWITCH上面。

本文软电话采用的是能运行于安卓系统下的Jitsi,电脑端可采用Microsip,注册过程类似,并调试双方为同一编码方式,本文采用H.264。注册检测,在FreeSWITCH上输出sofia status profile internal reg。

3.2 测试

摄像机以一个SIP客户端的方式注册到FreeSWITCH上,摄像机不会主动发起呼叫,我们用软电话呼叫摄像机时,摄像机会自动应答,就可以通过软电话观看摄像机了,本文测试中,摄像机的地址为192.168.1.216,软电话地址为192.168.1.17,FreeSWITCH的地址为192.168.1.21。

4 结语

本文基于FreeSWITCH软交换机设计了一种简单、高效的远程监控系统。该系统使用SIP协议进行信令交互,并结合RTP协议和终端设备的特点,实现了远程监控系统的基本功能。该系统与硬件系统相比,价格上更具优势,而性能上该系统的扩展性和维护性也具有较大优势。并且媒体绕过技术使得服务器具有高并发性,处理能力更加简洁高效。当然该系统只是基本达到了远程实时监控的功能,在监控控制,记录方面还需做进一步完善,使其更加符合监控系统的特点和要求。

參考文献:

[1]Rosenberg,J.Framework for Conferencing with the Session Initiation Protocol [S].IETF Internal Draft,2003.

[2]J.Rosenberg,H.Schulzrinne,et.al,SIP:Session Initiation Protocol[S]. IETF RFC3261,2002.

[3]DuJjinfang, ZhangLingkao, FreeSWITCH:The Definitive Guide, Beijing, China Machine Press, 2014.

[4]Yan Wei, Pan Aimin, Computer Network. BeiJing, Tsinghua University Press.

[5]Asterisk:Theroadtothe future, CHN2.0[EB/01].http//asterisker.cn.2010.

作者简介:贾夫松(1991-),男,汉族,山东泰安人,硕士,计算机网络;王希常(1964-),男,汉族,山东茌平县人,研究员,处长,九三学社社员,博士,计算机图像。

猜你喜欢
多媒体
核心素养理念下依托多媒体构建高效课堂
借助多媒体探寻有效设问的“四度”
疫情下多媒体教室管理常见问题及措施
多媒体视角下的初中英语教学思考
多媒体情境下培养学生阅读素养的三个维度
如何有效利用多媒体课件为教学服务
多媒体在高中物理教学中的应用
播放所有格式的多媒体文件
浅谈HTML5的发展与应用趋势
浅谈多媒体教室的管理