CN115225847A - 一种跨安全边界的视频通话方法及系统 - Google Patents
一种跨安全边界的视频通话方法及系统 Download PDFInfo
- Publication number
- CN115225847A CN115225847A CN202210738435.0A CN202210738435A CN115225847A CN 115225847 A CN115225847 A CN 115225847A CN 202210738435 A CN202210738435 A CN 202210738435A CN 115225847 A CN115225847 A CN 115225847A
- Authority
- CN
- China
- Prior art keywords
- network
- server
- media
- user
- webrtc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
- H04N7/147—Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明涉及一种跨安全边界的视频通话方法及系统,网络A与网络B间设安全边界,网络A的第一用户与网络B的第二用户跨安全边界视频通话采用以下步骤:第一用户发布本地媒体到网络B,发布时会形成WebRTC流且将WebRTC流转成RTSP流,然后通过安全边界将网络A中的RTSP流转发至网络B;第一用户订阅网络B的远端媒体,订阅时会将从网络B转发至网络A的RTSP流转成WebRTC流;第二用户发布本地媒体到网络A、第二用户订阅网络A的远端媒体的方法步骤同上;当第一用户成功发布本地媒体和成功订阅远端媒体且第二用户成功发布本地媒体和成功订阅远端媒体时,第一用户和第二用户就能实现跨安全边界视频通话。本发明改进视频通话方法和系统架构能很好地实现跨网WebRTC视频通话。
Description
技术领域
本发明涉及视频通话技术领域,特别涉及一种跨安全边界的视频通话方法及系统。
背景技术
随着目前数字信息联网技术的快速发展,各行业专用通信网络的建立,形成包括公安专网、铁路专网、教育专网、石化专网等信息网络分层的多元化广域网络。各个行业对信息联网应用建设日趋成熟。而某些特殊的网络应用,需要在不同的网络之间交互数据。比如公安系统一线部门需要实时与公安数据中心交换信息,传统模式是采用开放端口的方式,实现数据的交换。但在某些特殊的网络环境下或者对安全方面的需要,是无法开放所有的网络端口的。在这种情况下很多网络应用就无法部署了。
WebRTC是近年流行的实时通讯技术,它使得视频通话技术门槛被大幅降低,更多的人愿意参与到这项功能的开发。但基于上述背景,在某些对数据安全要求较高的网络环境中,都会部署安全边界及防火墙等安全设备,这就会导致在很多跨网环境中无法应用基于WebRTC技术实现的通讯功能。针对上述缺陷,本发明作出了改进。
发明内容
为了克服背景技术的不足,本发明提供一种跨安全边界的视频通话方法及系统,通过改进视频通话方法流程和系统架构设计,能使安全边界两边的WebRTC实现双向互通,以传统Rtsp协议为媒介打通网络安全边界,来实现跨网WebRTC视频通话,从而可以很好地满足实际需求。
本发明提供一种跨安全边界的视频通话方法,网络A与网络B之间布置有安全边界,网络A的第一用户与网络B的第二用户跨安全边界视频通话的方法包括以下步骤:
第一用户发布本地媒体到网络B,发布时会形成WebRTC流且将WebRTC流转成RTSP流,然后通过安全边界将网络A中的RTSP流转发至网络B;
第一用户订阅网络B的远端媒体,订阅时会将从网络B转发至网络A的RTSP流转成WebRTC流;
第二用户发布本地媒体到网络A,发布时会形成WebRTC流且将WebRTC流转成RTSP流,然后通过安全边界将网络B中的RTSP流转发至网络A;
第二用户订阅网络A的远端媒体,订阅时会将从网络A转发至网络B的RTSP流转成WebRTC流;
当第一用户成功发布本地媒体到网络B和成功订阅网络B的远端媒体且第二用户成功发布本地媒体到网络A和成功订阅网络A的远端媒体时,第一用户和第二用户就能实现跨安全边界的视频通话。
优选的,网络A的第一用户发布本地媒体到网络B包括以下步骤:
网络A的第一用户向网络A的WebRTC服务器请求发布本地媒体;
鉴权通过,第一用户和网络A的WebRTC服务器进行ICE媒体协商;
协商成功,第一用户发布本地媒体到网络A的WebRTC服务器;
网络A的MediaProxy服务器获取到本地媒体成功发布到WebRTC服务器的通知;
网络A的MediaProxy服务器从WebRTC服务器获取媒体流;
网络A的MediaProxy服务器将获取到的媒体流通过Rtsp协议转发;
网络A的Rtsp服务器接收到MediaProxy服务器推送的媒体流;
安全边界将网络A的Rtsp服务器中的媒体流转发至网络B,至此网络A的第一用户成功发布本地媒体到网络B。
优选的,网络A的第一用户订阅网络B的远端媒体包括以下步骤:
网络A的第一用户向网络A的WebRTC服务器请求订阅远端媒体;
鉴权通过,第一用户和网络A的WebRTC服务器进行ICE媒体协商;
网络A的MediaProxy服务器获取到第一用户请求订阅远端媒体的通知;
网络A的MediaProxy服务器向网络A的Rtsp服务器拉取媒体流;
拉流成功且ICE媒体协商成功,此时网络A的第一用户成功订阅网络B的远端媒体。
优选的,网络A的第一用户向网络A的WebRTC服务器请求发布本地媒体或请求订阅远端媒体时会向WebRTC服务器发出加入通话房间请求,加入通话房间请求包括鉴权信息,所述鉴权信息包括房间号、用户名和密码。
优选的,将WebRTC流转成RTSP流包括以下步骤:
MediaProxy服务器接收到同一网络中WebRTC服务器的通知消息;
MediaProxy服务器判断接收到的通知消息是否是用户发布本地媒体的通知类型;
判断为是,MediaProxy服务器获取与发布本地媒体的用户对应的用户ID和媒体ID;
MediaProxy服务器创建用于接收来自WebRTC服务器转发的媒体流的网络端口;
MediaProxy服务器发送HTTP请求至WebRTC服务器并等待接收媒体流;
接收成功,MediaProxy服务器通过Rtsp协议和同一网络中的Rtsp服务器建立会话;
MediaProxy服务器发送Rstp流至Rtsp服务器。
优选的,将RTSP流转成WebRTC流包括以下步骤:
MediaProxy服务器接收到同一网络中WebRTC服务器的通知消息;
MediaProxy服务器判断接收到的通知消息是否是用户订阅远端媒体的通知类型;
判断为是,MediaProxy服务器获取与订阅远端媒体中被订阅用户对应的用户ID;
MediaProxy服务器和同一网络中的Rtsp服务器建立会话;
MediaProxy服务器从Rtsp服务器拉取Rtsp流;
拉取成功,MediaProxy服务器发送HTTP请求至WebRTC服务器,通知其创建用于接收媒体流的网络端口;
网络端口创建成功,MediaProxy服务器发送媒体流至WebRTC服务器。
优选的,MediaProxy服务器接收到同一网络中WebRTC服务器的通知消息,所述通知消息包括WebRTC服务器地址和用户ID。
本发明还提供一种跨安全边界的视频通话系统,包括网络A和网络B,所述网络A与网络B之间布置有安全边界,所述网络A布置有WebRTC服务器、MediaProxy服务器和Rtsp服务器,所述网络B布置有WebRTC服务器、MediaProxy服务器和Rtsp服务器;
所述WebRTC服务器用于实现WebRTC协议服务,包括面向同一网络中用户的通话房间管理功能、媒体分发功能以及ICE功能,还包括向同一网络中的MediaProxy服务器发送通知消息;
所述MediaProxy服务器用于监听同一网络中WebRTC服务器的消息及管理同一网络中的Rtsp服务器,管理同一网络中的Rtsp服务器包括向Rtsp服务器发出媒体推送请求和拉取请求;
所述Rtsp服务器用于媒体流在不同网络之间的摆渡功能及用于接收来自同一网络中MediaProxy服务器的媒体推送和拉取请求。
优选的,所述MediaProxy服务器包括SessionManager媒体会话模块、WebRTCAdapter模块和RtspAdapter模块;
所述SessionManager媒体会话模块用于监听来自同一网络中WebRTC服务器的通知消息,通知消息包括同一网络中用户是否加入通话房间、是否发布本地媒体及是否订阅远端媒体,同时用于创建或删除本地接收媒体的网络端口,还用于通过HTTP接口订阅同一网络中WebRTC服务器通话房间内的媒体流;
所述WebRTCAdapter模块用于接收从同一网络中WebRTC服务器通话房间内订阅到的媒体流并转换成RTP的封装格式,然后转发给所述RtspAdapter模块,或用于接收来自所述RtspAdapter模块的RTP流并通过WebRTC协议将其发布到同一网络中的WebRTC服务器中;
所述RtspAdapter模块用于接收来自所述WebRTCAdapter模块的RTP流并通过Rtsp协议将其推送至同一网络中的Rtsp服务器中,同时也用于从同一网络中的Rtsp服务器拉取RTSP流转换成RTP后转发至所述WebRTCAdapter模块。
优选的,所述MediaProxy服务器还用于管理同一网络中的其他媒体处理服务器,包括媒体存储服务器、视频分发服务器以及视频算法服务器。
综上所述,本发明有益效果为:
本发明在方法流程和系统架构方面提供了综合的解决方案,当网络A的第一用户发起通话请求的时候,第一用户发布的本地媒体首先通过ICE协商,发布至WebRTC服务器当中,MediaProxy服务器会监测到该媒体流,并通过发送消息拉取该媒体流,并转码成Rtsp协议推送至网络A的Rtsp服务器,此时安全边界会以Rtsp服务器为媒体转发服务,将媒体数据转发到网络B的Rtsp服务器当中,同时网络A的第一用户会不断尝试订阅网络B中第二用户发布的本地媒体,网络A的MediaProxy服务器从网络A的Rtsp服务器拉取网络B摆渡过来的第二用户的媒体流,并发布到WebRTC服务器,本发明能使安全边界两边的WebRTC实现双向互通,以传统Rtsp协议为媒介打通网络安全边界,来实现跨网WebRTC视频通话,从而可以很好地满足实际需求。
下面结合附图对本发明作进一步说明。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种跨安全边界的视频通话系统的网络拓扑图;
图2是本实施例提供的一种跨安全边界的视频通话系统的结构框图;
图3是本发明实施例提供的跨安全边界的视频通话系统中发布本地媒体的一种流程图;
图4是本发明实施例提供的跨安全边界的视频通话系统中订阅远端媒体的一种流程图;
图5是本发明实施例提供的跨安全边界的视频通话系统中WebRTC转RTSP的一种流程图;
图6是本发明实施例提供的跨安全边界的视频通话系统中RTSP转WebRTC的一种流程图。
具体实施方式
下面将结合本发明实施例中的图1至图6,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。
如图1至图6所示,本实施例公开一种跨安全边界的视频通话方法,网络A与网络B之间布置有安全边界,网络A的第一用户与网络B的第二用户跨安全边界视频通话的方法包括以下步骤:
第一用户发布本地媒体到网络B,发布时会形成WebRTC流且将WebRTC流转成RTSP流,然后通过安全边界将网络A中的RTSP流转发至网络B;
第一用户订阅网络B的远端媒体,订阅时会将从网络B转发至网络A的RTSP流转成WebRTC流;
第二用户发布本地媒体到网络A,发布时会形成WebRTC流且将WebRTC流转成RTSP流,然后通过安全边界将网络B中的RTSP流转发至网络A;
第二用户订阅网络A的远端媒体,订阅时会将从网络A转发至网络B的RTSP流转成WebRTC流;
当第一用户成功发布本地媒体到网络B和成功订阅网络B的远端媒体且第二用户成功发布本地媒体到网络A和成功订阅网络A的远端媒体时,第一用户和第二用户就能实现跨安全边界的视频通话。
上述步骤给出了跨安全边界视频通话的基本方法,视频通话,包含发布本地媒体和订阅远端媒体,其中,发布本地媒体就是本地视频采集发布(即发布自己的图像),订阅远端媒体就是远端视频的订阅(即订阅对方的图像),视频通话过程中,发布本地媒体和订阅远端媒体的两种流程是可以独立存在的。跨安全边界视频通话可以是网络A的第一用户向网络B的第二用户发起视频通话请求,网络B的第二用户接受网络A的第一用户发起的视频通话请求,第一用户向第二用户发起视频通话请求时会发布本地媒体到网络B并同时订阅网络B的远端媒体,第二用户接受第一用户发起的视频通话请求时会发布本地媒体到网络A并同时订阅网络A的远端媒体,跨安全边界视频通话也可以是网络B的第二用户向网络A的第一用户发起视频通话请求,网络A的第一用户接受网络B的第二用户发起的视频通话请求,原理同上。当第一用户成功发布本地媒体到网络B和成功订阅网络B的远端媒体且第二用户成功发布本地媒体到网络A和成功订阅网络A的远端媒体时,第一用户和第二用户就能实现跨安全边界的视频通话。上述技术方案使安全边界两边的WebRTC实现双向互通,以传统Rtsp协议为媒介打通网络安全边界,来实现跨网WebRTC视频通话,从而可以很好地满足实际需求。上述技术方案中的第一用户和第二用户均可理解为终端。
作为优选的一种技术方案,网络A的第一用户发布本地媒体到网络B包括以下步骤:
步骤301,网络A的第一用户向网络A的WebRTC服务器请求发布本地媒体;
在本步骤中,网络A的第一用户向网络A的WebRTC服务器请求发布本地媒体时会向WebRTC服务器发出加入通话房间请求,加入通话房间请求包括鉴权信息,所述鉴权信息包括但不限于房间号、用户名和密码等。
步骤302,鉴权通过,第一用户和网络A的WebRTC服务器进行ICE媒体协商;
在本步骤中,鉴权通过后第一用户就加入通话房间,第一用户开始同WebRTC服务器进行ICE媒体协商。
步骤303,协商成功,第一用户发布本地媒体到网络A的WebRTC服务器;
在本步骤中,如果协商成功,会创建第一用户与WebRTC服务器之间的媒体传输通道,建立媒体通道后,调用浏览器的getusermedia接口采集第一用户的本地视频流,一般会是摄像头的画面,而后传入媒体通道,第一用户成功发布本地媒体到网络A的WebRTC服务器,然后进入步骤305。如果协商失败,则进入步骤304。
步骤304,协商失败,ICE协商失败导致发布本地媒体的流程失败,即流程结束;
步骤305,网络A的MediaProxy服务器获取到本地媒体成功发布到WebRTC服务器的通知;
在本步骤中,WebRTC服务器接收的用户加入通话房间或本地媒体成功发布到WebRTC服务器,会发送HTTP通知消息给MediaProxy服务器,MediaProxy服务器获取到通知消息后,会解析出用户ID和创建本地用于接收媒体的网络端口,并发送HTTP请求至WebRTC服务器,携带已经创建的网络端口号。
步骤306,网络A的MediaProxy服务器从WebRTC服务器获取媒体流;
在本步骤中,MediaProxy服务器通过创建的本地网络接收端口接收来自WebRTC服务器发送的媒体流。
步骤307,网络A的MediaProxy服务器将获取到的媒体流通过Rtsp协议转发;
在本步骤中,MediaProxy服务器构建推流地址与RTSP服务器建立会话,并将接收到的媒体流发送到Rtsp服务器。
步骤308,网络A的Rtsp服务器接收到MediaProxy服务器推送的媒体流;
步骤309,安全边界将网络A的Rtsp服务器中的媒体流转发至网络B,至此网络A的第一用户成功发布本地媒体到网络B。
上述流程通过将WebRTC流转换成RTSP流,并以Rtsp协议将数据流摆渡至对端网络,从而实现了媒体的跨网发布。
作为优选的一种技术方案,网络A的第一用户订阅网络B的远端媒体包括以下步骤:
步骤401,网络A的第一用户向网络A的WebRTC服务器请求订阅远端媒体;
在本步骤中,网络A的第一用户向网络A的WebRTC服务器请求订阅远端媒体时会向WebRTC服务器发出加入通话房间请求,加入通话房间请求包括鉴权信息,所述鉴权信息包括但不限于房间号、用户名和密码。
步骤402,鉴权通过,第一用户和网络A的WebRTC服务器进行ICE媒体协商;
在本步骤中,鉴权通过后第一用户就加入通话房间,第一用户开始同WebRTC服务器进行ICE媒体协商,协商成功就创建第一用户与WebRTC服务器之间的媒体传输通道,用于接收远端媒体流,协商失败就不断尝试协商直至成功。
步骤403,网络A的MediaProxy服务器获取到第一用户请求订阅远端媒体的通知;
在本步骤中,WebRTC服务器接收的用户加入通话房间并请求订阅远端媒体时,会发送HTTP通知消息给MediaProxy服务器,MediaProxy服务器会获取到该HTTP消息订阅请求。
步骤404,网络A的MediaProxy服务器向网络A的Rtsp服务器拉取媒体流;
在本步骤中,MediaProxy服务器获取到HTTP消息订阅请求时会向网络A的Rtsp服务器拉取媒体流。
步骤405,拉流成功且ICE媒体协商成功,此时网络A的第一用户成功订阅网络B的远端媒体。
在本步骤中,ICE媒体协商成功会成功创建用于接收远端媒体流的媒体传输通道并将消息反馈给第一用户,拉流成功且ICE媒体协商成功时网络A的第一用户就成功订阅网络B的远端媒体。拉流失败或ICE协商失败会将消息反馈给第一用户,第一用户会收到拉流失败或协商失败的消息,提示订阅远端媒体失败。
上述流程通过将对端网络摆渡过来的RTSP流转换成WebRTC流,从而实现了远端媒体的订阅。
作为优选的一种技术方案,将WebRTC流转成RTSP流包括以下步骤:
步骤501,MediaProxy服务器接收到同一网络中WebRTC服务器的通知消息;
在本步骤中,MediaProxy服务器接收到同一网络中WebRTC服务器的通知消息,通知消息包括WebRTC服务器地址和用户ID,WebRTC服务器地址能表明是哪台WebRTC服务器的通话房间有用户加入,用户ID作为指示该用户的标识。
步骤502,MediaProxy服务器判断接收到的通知消息是否是用户发布本地媒体的通知类型;
在本步骤中,具体实施时接收到的通知消息除了用户发布本地媒体的通知类型外还存在其他通知类型,不同通知类型会对应不同的处理流程,故通过本步骤来判断接收到的通知消息是否是用户发布本地媒体的通知类型。
步骤503,判断为是,MediaProxy服务器获取与发布本地媒体的用户对应的用户ID和媒体ID;
在本步骤中,判断接收到的通知消息是用户发布本地媒体的通知类型,即有通话房间内发布本地媒体了,则MediaProxy服务器就会获取与发布本地媒体的用户对应的用户ID和媒体ID,然后进入步骤505,媒体ID对应该用户发布的本地媒体。判断为否,则进入步骤504。
步骤504,其它处理流程,包括但不限于录像存储、媒体流转发第三方模块等。
步骤505,MediaProxy服务器创建用于接收来自WebRTC服务器转发的媒体流的网络端口;
步骤506,MediaProxy服务器发送HTTP请求至WebRTC服务器并等待接收媒体流;
在本步骤中,MediaProxy服务器发送HTTP请求至WebRTC服务器时会携带媒体ID和已经创建的网络端口,此处已经创建的网络端口指步骤505中创建好的网络端口。
步骤507,接收成功,MediaProxy服务器通过Rtsp协议和同一网络中的Rtsp服务器建立会话;
在本步骤中,MediaProxy服务器的本地网络端口成功接收到WebRTC服务器发送的媒体流后,MediaProxy服务器会以用户ID来构建URL地址,并和同一网络中的Rtsp服务器建立会话。MediaProxy服务器接收媒体流失败时则转发失败。
步骤508,MediaProxy服务器发送Rstp流至Rtsp服务器。
在本步骤中,MediaProxy服务器和Rtsp服务器建立会话后MediaProxy服务器就能发送Rstp流至Rtsp服务器,至此MediaProxy服务器的WebRTC流转RTSP流的流程完成。
作为优选的一种技术方案,将RTSP流转成WebRTC流包括以下步骤:
步骤601,MediaProxy服务器接收到同一网络中WebRTC服务器的通知消息;
在本步骤中,MediaProxy服务器接收到同一网络中WebRTC服务器的通知消息,通知消息包括WebRTC服务器地址和用户ID,WebRTC服务器地址能表明是哪台WebRTC服务器的通话房间有用户加入,用户ID作为指示该用户的标识。
步骤602,MediaProxy服务器判断接收到的通知消息是否是用户订阅远端媒体的通知类型;
在本步骤中,具体实施时接收到的通知消息除了用户订阅远端媒体的通知类型外还存在其他通知类型,不同通知类型会对应不同的处理流程,故通过本步骤来判断接收到的通知消息是否是用户订阅远端媒体的通知类型。
步骤603,判断为是,MediaProxy服务器获取与订阅远端媒体中被订阅用户对应的用户ID;
在本步骤中,判断接收到的通知消息是用户订阅远端媒体的通知类型,即有通话房间内订阅远端媒体了,则MediaProxy服务器就会获取用户ID,该用户ID对应订阅远端媒体中被订阅的用户,然后进入步骤605。判断为否,则进入步骤604。
步骤604,其它处理流程,包括但不限于录像存储、媒体流转发第三方模块等。
步骤605,MediaProxy服务器和同一网络中的Rtsp服务器建立会话;
在本步骤中,MediaProxy服务器通过Rtsp协议和同一网络中的Rtsp服务器建立会话。
步骤606,MediaProxy服务器从Rtsp服务器拉取Rtsp流;
在本步骤中,MediaProxy服务器和Rtsp服务器建立会话后MediaProxy服务器就会从Rtsp服务器拉取Rtsp流。
步骤607,拉取成功,MediaProxy服务器发送HTTP请求至WebRTC服务器,通知其创建用于接收媒体流的网络端口;
在本步骤中,MediaProxy服务器从Rtsp服务器成功拉取Rtsp流后MediaProxy服务器会发送HTTP请求至WebRTC服务器,通知其创建用于接收媒体流的网络端口。
步骤608,网络端口创建成功,MediaProxy服务器发送媒体流至WebRTC服务器。
在本步骤中,WebRTC服务器成功创建网络端口后MediaProxy服务器就会转发媒体流至WebRTC服务器,至此MediaProxy服务器的RTSP流转WebRTC流的流程完成。当WebRTC服务器未成功创建网络端口时则转发失败。
本实施例还公开一种跨安全边界的视频通话系统,包括网络A和网络B,所述网络A与网络B之间布置有安全边界,所述网络A布置有WebRTC服务器、MediaProxy服务器和Rtsp服务器,所述网络B布置有WebRTC服务器、MediaProxy服务器和Rtsp服务器;如图1所示,是本发明实施例提供的一种跨安全边界视频通话系统的网络拓扑图,具体实施时Rtsp服务器可以包含多台服务器,图1中都以单台服务器、单次双向通话请求为例进行说明,所述系统通过HTTP/JSON-RPC消息和终端用户通信。
所述WebRTC服务器用于实现WebRTC协议服务,包括面向同一网络中用户的通话房间管理功能、媒体分发功能以及ICE功能,还包括向同一网络中的MediaProxy服务器发送通知消息;WebRTC服务器用于通话房间管理和媒体分发,以及包含底层的WebRTC协议实现,具体可以为收到来自终端用户的加入通话房间请求,用户加入通话房间后,即可以发布直接的媒体流,同时会获取到房间内其它用户的用户信息和媒体信息,用户可以选择订阅或不订阅其它用户的媒体,至此简单的通话房间管理和媒体分发流程完成。用户发布完本地媒体或订阅远端媒体之后,WebRTC服务器会立即通知MediaProxy服务器,同时也会提供HTTP接口方便第三方服务订阅房间内的媒体流,可参考现有技术,在此不做具体说明。对于ICE功能,主要是终端用户和同一网络的WebRTC服务器进行ICE媒体协商,协商成功就创建终端用户与WebRTC服务器之间的媒体通道,可便于媒体流的传送。
所述MediaProxy服务器用于监听同一网络中WebRTC服务器的消息及管理同一网络中的Rtsp服务器,管理同一网络中的Rtsp服务器包括向Rtsp服务器发出媒体推送请求和拉取请求;MediaProxy服务器专门用于监听WebRTC服务器的消息,包括但不限于用户的加入、本地媒体的发布和远端媒体的订阅以及用户的离开、本地媒体的发布取消和远端媒体的订阅取消等,同时用于将媒体或信令通知转发给第三方服务器,它会管理多台服务器,从中选取合适的转发,比如Rtsp服务器,进而便于实现分发功能(拉取和推送),即通过MediaProxy服务器向Rtsp服务器发出媒体推送请求和拉取请求。作为优选的一种技术方案,MediaProxy服务器管理多台服务器时还用于管理同一网络中的其他媒体处理服务器,包括媒体存储服务器、视频分发服务器以及视频算法服务器,可有利于更好地满足实际使用需求。
所述Rtsp服务器用于媒体流在不同网络之间的摆渡功能及用于接收来自同一网络中MediaProxy服务器的媒体推送和拉取请求。Rtsp服务器,用于Rtsp服务的实现,可以从MediaProxy服务器接收到通话的媒体流并将其转换成rtsp格式播放地址,提供媒体摆渡媒介,为网络安全边界实施媒体转发提供服务,还可以在MediaProxy服务器发出拉取媒体请求时将从对端网络转发过来的Rtsp流发送给MediaProxy服务器。
由此可知采用上述视频通话系统实施前述视频通话方法就能很好地进行跨安全边界的视频通话,可有利于更好地满足实际需求。
作为优选的一种技术方案,所述MediaProxy服务器包括SessionManager媒体会话模块、WebRTCAdapter模块和RtspAdapter模块;
所述SessionManager媒体会话模块用于监听来自同一网络中WebRTC服务器的通知消息,通知消息包括同一网络中用户是否加入通话房间、是否发布本地媒体及是否订阅远端媒体,同时用于创建或删除本地接收媒体的网络端口,还用于通过HTTP接口订阅同一网络中WebRTC服务器通话房间内的媒体流;SessionManager媒体会话模块主要用于实现媒体监听功能和分发功能(拉取和推送),进而便于实现双向视频通话功能。
所述WebRTCAdapter模块用于接收从同一网络中WebRTC服务器通话房间内订阅到的媒体流并转换成RTP的封装格式,然后转发给所述RtspAdapter模块,或用于接收来自所述RtspAdapter模块的RTP流并通过WebRTC协议将其发布到同一网络中的WebRTC服务器中;WebRTCAdapter模块可以理解为面向WebRTC服务器的适配端口。
所述RtspAdapter模块用于接收来自所述WebRTCAdapter模块的RTP流并通过Rtsp协议将其推送至同一网络中的Rtsp服务器中,同时也用于从同一网络中的Rtsp服务器拉取RTSP流转换成RTP后转发至所述WebRTCAdapter模块。RtspAdapter模块可以理解为面向Rtsp服务器的适配端口。
本实施例中未涉及部分均与现有技术相同或可采用现有技术加以实现,在此不做进一步说明。
各位技术人员须知:虽然本发明已按照上述具体实施方式做了描述,但是本发明的发明思想并不仅限于此发明,任何运用本发明思想的改装,都将纳入本专利权保护范围内。
Claims (10)
1.一种跨安全边界的视频通话方法,其特征在于,网络A与网络B之间布置有安全边界,网络A的第一用户与网络B的第二用户跨安全边界视频通话的方法包括以下步骤:
第一用户发布本地媒体到网络B,发布时会形成WebRTC流且将WebRTC流转成RTSP流,然后通过安全边界将网络A中的RTSP流转发至网络B;
第一用户订阅网络B的远端媒体,订阅时会将从网络B转发至网络A的RTSP流转成WebRTC流;
第二用户发布本地媒体到网络A,发布时会形成WebRTC流且将WebRTC流转成RTSP流,然后通过安全边界将网络B中的RTSP流转发至网络A;
第二用户订阅网络A的远端媒体,订阅时会将从网络A转发至网络B的RTSP流转成WebRTC流;
当第一用户成功发布本地媒体到网络B和成功订阅网络B的远端媒体且第二用户成功发布本地媒体到网络A和成功订阅网络A的远端媒体时,第一用户和第二用户就能实现跨安全边界的视频通话。
2.根据权利要求1所述的一种跨安全边界的视频通话方法,其特征在于,网络A的第一用户发布本地媒体到网络B包括以下步骤:
网络A的第一用户向网络A的WebRTC服务器请求发布本地媒体;
鉴权通过,第一用户和网络A的WebRTC服务器进行ICE媒体协商;
协商成功,第一用户发布本地媒体到网络A的WebRTC服务器;
网络A的MediaProxy服务器获取到本地媒体成功发布到WebRTC服务器的通知;
网络A的MediaProxy服务器从WebRTC服务器获取媒体流;
网络A的MediaProxy服务器将获取到的媒体流通过Rtsp协议转发;
网络A的Rtsp服务器接收到MediaProxy服务器推送的媒体流;
安全边界将网络A的Rtsp服务器中的媒体流转发至网络B,至此网络A的第一用户成功发布本地媒体到网络B。
3.根据权利要求1所述的一种跨安全边界的视频通话方法,其特征在于,网络A的第一用户订阅网络B的远端媒体包括以下步骤:
网络A的第一用户向网络A的WebRTC服务器请求订阅远端媒体;
鉴权通过,第一用户和网络A的WebRTC服务器进行ICE媒体协商;
网络A的MediaProxy服务器获取到第一用户请求订阅远端媒体的通知;
网络A的MediaProxy服务器向网络A的Rtsp服务器拉取媒体流;
拉流成功且ICE媒体协商成功,此时网络A的第一用户成功订阅网络B的远端媒体。
4.根据权利要求2或3所述的一种跨安全边界的视频通话方法,其特征在于,网络A的第一用户向网络A的WebRTC服务器请求发布本地媒体或请求订阅远端媒体时会向WebRTC服务器发出加入通话房间请求,加入通话房间请求包括鉴权信息,所述鉴权信息包括房间号、用户名和密码。
5.根据权利要求1所述的一种跨安全边界的视频通话方法,其特征在于,将WebRTC流转成RTSP流包括以下步骤:
MediaProxy服务器接收到同一网络中WebRTC服务器的通知消息;
MediaProxy服务器判断接收到的通知消息是否是用户发布本地媒体的通知类型;
判断为是,MediaProxy服务器获取与发布本地媒体的用户对应的用户ID和媒体ID;
MediaProxy服务器创建用于接收来自WebRTC服务器转发的媒体流的网络端口;
MediaProxy服务器发送HTTP请求至WebRTC服务器并等待接收媒体流;
接收成功,MediaProxy服务器通过Rtsp协议和同一网络中的Rtsp服务器建立会话;
MediaProxy服务器发送Rstp流至Rtsp服务器。
6.根据权利要求1所述的一种跨安全边界的视频通话方法,其特征在于,将RTSP流转成WebRTC流包括以下步骤:
MediaProxy服务器接收到同一网络中WebRTC服务器的通知消息;
MediaProxy服务器判断接收到的通知消息是否是用户订阅远端媒体的通知类型;
判断为是,MediaProxy服务器获取与订阅远端媒体中被订阅用户对应的用户ID;
MediaProxy服务器和同一网络中的Rtsp服务器建立会话;
MediaProxy服务器从Rtsp服务器拉取Rtsp流;
拉取成功,MediaProxy服务器发送HTTP请求至WebRTC服务器,通知其创建用于接收媒体流的网络端口;
网络端口创建成功,MediaProxy服务器发送媒体流至WebRTC服务器。
7.根据权利要求5或6所述的一种跨安全边界的视频通话方法,其特征在于,MediaProxy服务器接收到同一网络中WebRTC服务器的通知消息,所述通知消息包括WebRTC服务器地址和用户ID。
8.一种跨安全边界的视频通话系统,其特征在于,包括网络A和网络B,所述网络A与网络B之间布置有安全边界,所述网络A布置有WebRTC服务器、MediaProxy服务器和Rtsp服务器,所述网络B布置有WebRTC服务器、MediaProxy服务器和Rtsp服务器;
所述WebRTC服务器用于实现WebRTC协议服务,包括面向同一网络中用户的通话房间管理功能、媒体分发功能以及ICE功能,还包括向同一网络中的MediaProxy服务器发送通知消息;
所述MediaProxy服务器用于监听同一网络中WebRTC服务器的消息及管理同一网络中的Rtsp服务器,管理同一网络中的Rtsp服务器包括向Rtsp服务器发出媒体推送请求和拉取请求;
所述Rtsp服务器用于媒体流在不同网络之间的摆渡功能及用于接收来自同一网络中MediaProxy服务器的媒体推送和拉取请求。
9.根据权利要求8所述的一种跨安全边界的视频通话系统,其特征在于,所述MediaProxy服务器包括SessionManager媒体会话模块、WebRTCAdapter模块和RtspAdapter模块;
所述SessionManager媒体会话模块用于监听来自同一网络中WebRTC服务器的通知消息,通知消息包括同一网络中用户是否加入通话房间、是否发布本地媒体及是否订阅远端媒体,同时用于创建或删除本地接收媒体的网络端口,还用于通过HTTP接口订阅同一网络中WebRTC服务器通话房间内的媒体流;
所述WebRTCAdapter模块用于接收从同一网络中WebRTC服务器通话房间内订阅到的媒体流并转换成RTP的封装格式,然后转发给所述RtspAdapter模块,或用于接收来自所述RtspAdapter模块的RTP流并通过WebRTC协议将其发布到同一网络中的WebRTC服务器中;
所述RtspAdapter模块用于接收来自所述WebRTCAdapter模块的RTP流并通过Rtsp协议将其推送至同一网络中的Rtsp服务器中,同时也用于从同一网络中的Rtsp服务器拉取RTSP流转换成RTP后转发至所述WebRTCAdapter模块。
10.根据权利要求8所述的一种跨安全边界的视频通话系统,其特征在于,所述MediaProxy服务器还用于管理同一网络中的其他媒体处理服务器,包括媒体存储服务器、视频分发服务器以及视频算法服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210738435.0A CN115225847A (zh) | 2022-06-27 | 2022-06-27 | 一种跨安全边界的视频通话方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210738435.0A CN115225847A (zh) | 2022-06-27 | 2022-06-27 | 一种跨安全边界的视频通话方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115225847A true CN115225847A (zh) | 2022-10-21 |
Family
ID=83609727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210738435.0A Pending CN115225847A (zh) | 2022-06-27 | 2022-06-27 | 一种跨安全边界的视频通话方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115225847A (zh) |
-
2022
- 2022-06-27 CN CN202210738435.0A patent/CN115225847A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108881133B (zh) | 一种媒体数据的通信方法和装置 | |
CN108965776B (zh) | 一种通信方法以及通信系统 | |
US9014059B2 (en) | Quality of service setup on a time reservation basis | |
EP0902569B1 (en) | Method and system for a unicast endpoint client to access a multicast internet protocol (ip) session | |
CN112565234B (zh) | 基于WebRTC的跨网传输系统及方法 | |
CN101753961B (zh) | 视频监控系统中会议的实现方法和视频监控会议系统 | |
US20050226172A1 (en) | Video conference call set up | |
TW200427268A (en) | Method and system for group communications | |
CN108881149B (zh) | 一种可视电话设备的接入方法和系统 | |
WO2011160561A1 (zh) | 视频浏览的实现方法、ims视频监控系统及监控前端 | |
CN101938494B (zh) | 一种平安城市视频监控中的媒体连接方式智能切换方法 | |
CN107888544B (zh) | 一种视联网终端与通讯设备之间建立通讯的方法和系统 | |
CN110113299A (zh) | 数据传输方法、装置、信令服务器和计算机可读介质 | |
US9801031B2 (en) | Method, apparatus and system for group session | |
WO2011147217A1 (zh) | 应用于机顶盒的消息发送、接收方法及机顶盒 | |
CN111614927A (zh) | 视频会话建立法、装置、电子设备及存储介质 | |
CN109963108A (zh) | 一种一对多对讲的方法和装置 | |
CN109286775A (zh) | 一种多人会议控制方法及系统 | |
CN110430385B (zh) | 视频会议处理方法、装置及存储介质 | |
CN111541857A (zh) | 一种入会方法、装置、电子设备及存储介质 | |
CN115225847A (zh) | 一种跨安全边界的视频通话方法及系统 | |
CN110198384A (zh) | 一种基于视联网的通讯方法和中转服务器 | |
JP2013510477A (ja) | メディアセッションのネゴシエーションのための方法、機器およびシステム | |
CN110784678B (zh) | 一种会议数据录制方法、装置和可读存储介质 | |
CN111327534B (zh) | 一种跨域单播转组播传输方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |