首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

mod_verto

前一阵,我们讲了mod_rtc。mod_rtc是一个纯媒体的模块,目的是为了支持WebRTC。然而,任何的通信都需要一定的信令支持,mod_verto就是配合mod_rtc的信令模块。 众所周知,WebRTC从诞生的第一天起就只定义了媒体的交互和传输,而把信令留给大家自己实现,以便有更大的自由度。最初,大部分WebRTC的例子都是基于GAE的,但在电信的VoIP领域,SIP还是占统治地位的,因而,包括FreeSWITCH在内,又有一些SIP代理和软交换设备实现了配合WebRTC使用的SIP信令,这但是SIP over WebSocket。FreeSWITCH对SIP over WebSocket的支持是直接扩展了Sofia-SIP协议栈。 但无论如何,虽然SIP与传统的VoIP协议如H323相比,脱离了老式的电信信令思维,采用了类似HTTP协议的文本协议,但,它从电信领域诞生的基因决定了它还是很难融入互联网,退一步讲,人们还是认为SIP通信专业性太强了,SIP就是SIP,互联网就是互联网。 单从协议内容角度讲,SIP对于浏览器尤其是对于移动浏览器来说,还是有些庞大了。而基于文本的SIP协议解析起来对浏览器来说,即使不是一种负担,也不是非常的优雅。对浏览器来说,最适合的数据格式是JSON已是不争的事实。 我们很高兴地看到,FreeSWITCH团队开放了mod_verto。它采用了JSON及JSON-RPC相关的信令协议,非常优雅的与mod_rtc相配合,将热闹的互连网与冷冰冰的SIP通信结合在了一起。也就是说,FreeSWITCH不再是互联网从业者眼里专业的运动员,而跟MySQL,Apache一样,可以实实在在的融入互联网了。 在在WebRTC设计之初,就非常重视安全问题,因而,一切都是加密的,不管是在媒体层还是在信令层,这是个好事,唯一比较麻烦的是,对于没有耐心的实践者来说,你在跑通mod_verto前要设置好你的Web服务器以及证书。 笔者经过测试,顺利的跑通了该模块。有兴趣的读者也可以试试啊,步骤有些复杂,点击下面的「阅读原文」原文可以看到详细的Wiki说明。 https://confluence.freeswitch.org/display/FREESWITCH/mod_verto

02

mod_sofia

今天来说说mod_soifa,它就是FreeSWITCH中的SIP模块。 FreeSWITCH并没有自己开发新的SIP协议栈,而是使用了比较成熟的开源SIP协议栈Sofia-SIP,以避免“重复发明轮子”。Sofia-SIP是由诺基亚公司开发的SIP 协议栈,它以开源的许可证LGPL发布。参见 http://sofia-sip.sourceforge.net/ 。 在FreeSWITCH中,实现一些互联协议接口的模块称为Endpoint。FreeSWITH支持很多类型的Endpoint,如SIP、H232等。这些不同的Endpoint主要是使用不同的控制协议跟其他的Endpoint通话。所以说,Endpoint一般是跟通话相关的。 有的读者可能会问,那么实现SIP的模块为什么不支持叫mod_sip呢?这是由于 FreeSWITCH的Endpoint是一个抽象的概念,你可以用任何的技术来实现。实际上mod_sofia只是对Sofia-SIP库的一个粘合和封装。除Sofia-SIP外,还有很多开源的SIP协议栈,如pjsip、osip等。最初选型的时候,FreeSWITCH 的开发团队也对比过许多不同的SIP协议栈,最终选用了Sofia-SIP。FreeSWITCH 是一个高度模块化的结构,如果你喜欢其他协议栈,可以自己实现如mod_pjsip或mod_osip等,它们是互不影响的。这也正是FreeSWITCH架构设计的精巧之处。 mod_sofia实现了SIP中的注册服务器,重定向服务器,媒体服务器、呈现服务器、SBC等各种功能。它的定位是一个B2BUA,它不能实现SIP代理服务器的功能。实现SIP代理服务器的开源软件有OpenSIPS、Kamailio等。它们可以很好的与FreeSWITCH配合工作。 在mod_sofia中,有一个概念是SIP Profile,它相当于一个SIP UA,通过各种不同的配置参数可以配置一个UA的行为。一个系统中可以有多个Profile,每个Profile都可以监听不同的IP地址和端口对。 一个Profile中有多个Gateway,Gateway可以直译为网关,它主要用于定义一个远端的SIP服务器,使FreeSWITCH可以与其他服务器通信。FreeSWITCH可以作为一个SIP客户端(UAC)向远端的网关进行“注册”;当然也可以不注册,而是使用与远端服务器对等的方式(俗称SIP Trunk,即SIP中继)相互通信(我们将在第14章讲到FreeSWITCH与与它系统相连的各种拓扑结构)。 FreeSWITCH可以作为注册服务器,这时候,其他的SIP客户端就可以向它注册。FreeSWITCH将通过用户目录(Directory)中的配置信息对注册用户进行鉴权。这些SIP客户端所代表的用户就称为本地SIP用户、简称本地用户。 牢记FreeSWITCH是一个B2BUA。如果Alice通过FreeSWITCH给Bob打电话,Alice首先向FreeSWITCH发起呼叫,对FreeSWITCH而言,这路通话就称为来话(Inbound Call);然后FreeSWITCH再去呼叫B,这路通话称为去话(Oubtound Call)。如果来、去话都是在与本地用户之间的,又称为本地来话和本地去话。 如果来、去话的发起者和目的地不是本的用户。而是以中继方式进行的,就称为中继来话或中继去话。但是,中继的叫法只是沿用传统的PSTN网络中的概念,在SIP术语中,本来是没有中继的概念的。 FreeSWITCH默认配置了internal和external以及internal-ipv6等三个Profile。其中internal主要用于本地用户的注册,它与external的区别除了使用的端口号不同外,它们之间最大的区别就是发送到internal这个Profile上的呼叫(INVITE请求)是需要鉴权的,但发送到external上的INVITE请求却不需要鉴权。这一点,用户在使用中可以慢慢体会。只要不被它们的名字所迷惑,知道所有的Profile其实都是一样的,这两个Profile只是FreeSWITCH默认提供的两个例子而已,它们之间的不同在于使用了不同的配置参数。 该模块是FreeSWITCH中最大的一个模块,也是最主要的一个模块,它的功能和配置都很多,留待我们日后慢慢讲。点击左下角的「查看原文」也可以看到更多的信息。 ---------------------------------------- 题图:Sofia 来自wikipedia Sofia是保加利亚的首都和最大城市,跟我们的mod_sofia可没有半毛钱关系啊。 ---------------------------------------- FreeSWITCH-CN是什么? FreeSWITCH-CN是FreeSWITCH中文社区,

04

基于GB/T 28181 标准的监控摄像头视频接入技术

在安防AI领域,遍布城市或建筑内各个角落的摄像头是最边缘的设备,是一切AI处理和应用的数据源头。随着应用范围和场景的扩充,应用中摄像头的数量越来越大,对监控摄像头设备进行集中且有效的管控成为刚需。GB/T 28181标准作为公共安全视频监控联网系统的国家标准,受到海康、大华、英飞拓等国内大部分厂家的支持,协议覆盖摄像头、NVR、管理平台等设备。对GB/T 28181 标准的支持将会扩大各种基于视频处理智慧系统的应用范围,在实际项目中有推广和实用价值。本文提供一个通过GB/T 28181标准获取摄像头视频的演示样例,并通过样例展开所涉及到的其他内容,若因水平或对标准的认知有限导致内容有误,请指出。点击查看标准完整文本: 公共安全视频监控联网系统信息传输、交换、控制技术要求。

09
领券