发明内容
有鉴于此,本发明致力于提供一种基于P2P的超大规模会议级联的方法,以便在互联网上提供互动性很强的视频社区的功能。
本发明的上述目的是通过如下的技术方案予以实现的:
P2P覆盖是一组运行同一P2P算法的IP节点的集合;P2P资源分布于P2P覆盖以便共享,每一P2P资源通过一个哈希算法得到唯一的资源识别号;P2P节点号是用于标识P2P节点并用于P2P算法的标号,资源识别号和P2P节点号通过P2P算法组成P2P路由表;在任意P2P节点上使用一个资源识别号作为关键字去查询P2P路由表,将得到一致的结果:某个特定的P2P节点保持这个资源。
P2PSIP是基于P2P的分布式SIP协议,P2PSIP对等是超级P2P节点,P2PSIP客户端没有路由表,但P2PSIP客户端可通过一个哈希算法得到一个资源的识别号,然后向P2PSIP对等发出路由请求。
MCU是多点视频会议系统的关键设备,它的作用相当于一个交换机的作用,它将来自各会议场点的信息流,经过同步分离后,抽取出音频,视频,数据等信息和信令,再将各会议场点的信息和信令,送入同一种处理模块,完成相应的音频混合或切换,视频混合或切换,数据广播和路由选择,定时和会议控制等过程,最后将各会议场点所需的各种信息重新组合起来,送往各相应的终端系统设备。
1、一种基于P2P的超大规模会议级联的方法,其步骤包括:
a1)设立P2PSIP/MCU覆盖,MCU网络服务器为这个覆盖的超级节点,每个会议触发点为这个覆盖的客户端;会议触发时,会议通过P2PSIP注册到P2PSIP/MCU覆盖,为这个会议服务的MCU网络服务器称为这个会议的主场;
b1)设立P2PSIP用户覆盖,会议中继服务器为这个覆盖的超级节点,称为分会场;会议终端服务器为这个覆盖的客户端,称为客场;客场通过P2PSIP注册到某个分会场;为描述方便,在不需要区别的情况下,主场也称为分会场;
c1)用户通过SIP注册到客场,用户电话添加到P2P路由表;
d1)用户参加会议时,用户主动呼叫或主持人邀请用户,通过客场、分会场和主场之间的级联,单方向进入会议主场;
e1)主场或分会场根据客场的数量、处理能力、网络带宽以及邻近关系对客场会议级联进行优化;
f1)如果某个用户需要主动参与会议互动,用户可直接呼叫到MCU主场会议,或呼叫主持人而主持人将用户转移到MCU主场会议,并取消从客场会议的媒体流;
所述步骤d1之后进一步包括:
a2)用户主动呼叫时,SIP消息INVITE从用户发送到客场会议,从客场会议发送到分会场会议,再从分会场会议发送到主会场会议;SIP消息200 OK往相反的方向传递,即从主场会议发送到分会场会议,从分会场会议发送到客场会议,再从客场会议发送到用户;
b2)主持人邀请用户时,SIP消息INVITE从主场会议发送到分会场会议,从分会场会议到客场会议,再从客场会议到用户;SIP消息200 OK往相反的方向传递,即从用户发送到客场会议,从客场会议发送到分会场会议,再从分会场会议发送到主会场会议;
c2)为实现主场到分会场会议再到客场会议的单方向媒体流,所有下行SIP消息中的SDP不包含IP和端口信息,或注明只发送(SENDONLY)。
所述步骤e1之后进一步包括:
a3)当分会场会议所承担的客场超过一定数量时,为了不形成带宽瓶颈,根据客场的数量、处理能力、网络带宽以及邻近关系,构建媒体分发树;
b3)对于分发树中的每一客场节点,如果它的父节点不是分会场自己,分会场发送SIP消息REFER(呼叫转移)给这个客场节点,其中的Refer-To(转移目标)是父节点;
c3)客场节点收到REFER,从客场会议向父节点会议发送SIP消息INVITE,父节点回送SIP消息200 OK,客场会议与父节点会议级联;为实现父节点到客场会议的单方向媒体流,此消息中的SDP不包含IP和端口信息,或注明只发送(SENDONLY);
d3)客场节点发送SIP消息BYE给分会场,取消与分会场会议的级联;分会场回应200 OK;
e3)如果父节点因某种原因不能正常工作,客场节点通过与分会场的一对SIP消息INVITE和200 OK,重新与分会场会议级联;
f3)分会场时常根据需要优化媒体分发树;优化后,父子关系发生变化的客场节点再执行步骤b3)-d3)来调整级联关系;
所述步骤f1之后进一步包括:
a4)用户直接呼叫到MCU主场会议参与互动:用户发送SIP消息INVITE到MCU主场会议,主场回应200 OK;
b4)用户呼叫主持人而主持人将用户转移到MCU主场会议参与互动:用户发送SIP消息INVITE到主持人,主持人回应200 OK;主持人审核后,通过SIP消息REFER将用户与主持人之间的互动转移到主场会议;
c4)用户取消从客场会议的媒体流:用户向客场发送SIP消息BYE,客场回应200 OK。
本发明具有如下技术效果:
1、本发明使得超大规模视频会议变成可能;
2、本发明使得交互式视频直播变成可能;
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
视频会议系统
如图一所示,MCU会议主场和两个分会场A和B是P2PSIP的超级节点,客场A1、A2、A3是分会场A的P2PSIP客户端,客场B1、B2、B3是分会场B的P2PSIP客户端。用户UA1、UA2、UA3分别注册在A1、A2、A3,用户UB1、UB2、UB3分别注册在B1、B2、B3。
例A P2P会议级联
例A1 UA1作为观众进入会议
UA1发送INVITE给客场A1的会议,客场A1回送200 OK,其中SDP不包含A1的1P和端口而且是SENDONLY,UA1进入客场会议,只能接收媒体流,UA1通过DTMF告诉A1只接收从分会场A的媒体流;
由于还没有与分会场A会议级联,客场A1从会议发送INVITE给分会场A的会议,分会场A回送200 OK,其中SDP不包含A的IP和端口而且是SENDONLY,A1会议与分会场会议级联,只能接收媒体流,A1通过DTMF告诉A只接收从主场的媒体流;
由于还没有与主场会议级联,分会场A从会议发送INVITE给主场的会议,主场回送200 OK,其中SDP不包含主场的IP和端口而且是SENDONLY,分会场A会议与主场会议级联,只能接收媒体流,分会场A通过DTMF告诉主场只接收从MCU的媒体流;
例A2 UA2作为观众进入会议
UA2发送INVITE给客场A2的会议,客场A2回送200 OK,其中SDP不包含A2的IP和端口而且是SENDONLY,UA2进入客场会议,只能接收媒体流,UA2通过DTMF告诉A2只接收从分会场A的媒体流;
由于还没有与分会场A会议级联,客场A2从会议发送INVITE给分会场A的会议,分会场A回送200 OK,其中SDP不包含A的IP和端口而且是SENDONLY,A2会议与分会场会议级联,只能接收媒体流,A2通过DTMF告诉A只接收从主场的媒体流;
由于分会场A会议已经与主场会议级联,主场媒体流进入分会场会议,分会场A无需再从会议发送INVITE给主场的会议。
例A3 UA3作为观众进入会议
UA3发送INVITE给客场A3的会议,客场A3回送200 OK,其中SDP不包含A3的IP和端口而且是SENDONLY,UA3进入客场会议,只能接收媒体流,UA3通过DTMF告诉A3只接收从分会场A的媒体流;
由于还没有与分会场A会议级联,客场A3从会议发送INVITE给分会场A的会议,分会场A回送200 OK,其中SDP不包含A的IP和端口而且是SENDONLY,A3会议于分会场A会议级联,只能接收媒体流,A3通过DTMF告诉A只接收从主场的媒体流;
由于分会场A会议已经与主场会议级联,主场媒体流进入分会场会议,分会场A无需再从会议发送INVITE给主场的会议。
例A4 分会场优化媒体分发
为了避免媒体流的瓶颈,分会场A构建媒体分发树,以A自己为根,A2为A的子节点,A1和A3为A2的子节点。
A2的父节点是A,无需改变级联关系;
A1的父节点是A2,A发送REFER给A1,Refer-To是A2,要求A1转移级联关系从A到A2;A1回应200 OK;A1向A2发送INVITE以建立A1与A2的单向级联关系,A2回应200 OK,其中SDP不包含A2的IP和端口而且是SENDONLY;A1在向A发送BYE以取消A1与A的级联关系,A回应200 OK。
A3的父节点是A2,A发送REFER给A3,Refer-To是A2,要求A3转移级联关系从A到A2;A3回应200 OK;A3向A2发送INVITE以建立A3与A2的单向级联关系,A2回应200 OK,其中SDP不包含A2的IP和端口而且是SENDONLY;A3在向A发送BYE以取消A3与A的级联关系,A回应200 OK。
这样,媒体流从主场到分会场A,再从分会场A到A2,再从A2到A1和A3,再从A1到UA1、从A2到UA2、从A3到UA3。
例A5 与主场互动
UA1希望与主场互动,向MCU发送INVITE,MCU回应200 OK,UA1进入主场MCU开始互动;UA1发送BYE给客场A1退出客场会议,A2回应200 OK。