专利名称:基于sip协议的群发文件方法
技术领域:
本发明涉及互联网通信技术领域,特别涉及一种基于SIP协议的文件群发方法。
背景技术:
在市场上流行的即时通信(Instant Message, IM)软件中,一对一的文件传输已经 成为它的一个不可或缺的功能,但是没有对多人同时群发文件的功能。现有技术中有两种 将一个文件传送至多人的方案1、现有的IM软件采用了先把文件上传至服务器,上传完毕后其它需要该文件的 用户再从服务器下载它这种方式作为群发文件的一种折衷方案,但是由于先上传后下载这 种方式在时间上并不交叉,不是一个实时的交互过程,这就导致了在文件发送效率低,而且 要占用服务器的存储空间;2、发送方把文件作为邮件附件的形式来发送给接收方,以实现群发功能。这种方 式在发送的过程中需经过邮件服务器,同样文件发送效率低,实时性不高。
发明内容
(一)要解决的技术问题本发明要解决的技术问题是如何及时有效的实现IP多媒体子系统(IP Multimedia Subsystem, IMS)领域中文件群发功能,并具有较高的实时性。( 二 )技术方案一种基于SIP协议的文件群发方法,包括以下步骤Sl 文件发送方与每个文件接收方建立P2P连接,如连接成功,则直接向各个文件 接收方发送文件;S2 若步骤Sl中所述文件发送方与多个文件接收方无法建立P2P连接,则所述文 件发送方和所述多个文件接收方与MSRP服务器建立连接,若连接成功,则通过MSRP服务器 向不能与发送方建立P2P连接的所有接收方发送文件;S3 若步骤S2中所述文件发送方不能与MSRP服务器建立连接,则文件发送方通过 位于公网的中转服务器将文件发送给MSRP服务器,再由MSRP服务器向不能与发送方建立 P2P连接的多个接收方发送文件。其中,所述步骤Sl具体包括Sll 所述文件发送方获取所述每个接收方的NAT IP和Port,并且每个接收方获 取发送方的NAT IP和Port;S12 所述文件发送方和每个接收方检测各自所在网络的Port上和对方所在网络 的Port上是否可相互通信,若能通信,则发送方和各个接收方建立P2P连接,并进行文件发送。其中,所述步骤Sll具体包括所述文件发送方对每个接收方分别发出一个文件传输请求,并在所述请求的SDP消息体中加入自己的NAT IP和Port信息;MSRP服务器接收所述文件传输请求并将其转发给每个接收方;每个接收方接收到所述请求,记录SDP消息体中的文件发送方的NAT IP和Port信 息,然后各自向发送方发送一个应答,并在应答的SDP消息体中加入自己的NAT IP和Port fn息;文件发送方接收到所述返回的各个应答,记录其中的多个接收方的NAT IP和 Port信息。其中,所述步骤S2具体包括S21 所述文件发送方和每个接收方获取MSRP服务器的IP和TCP Port,并且MSRP 服务器获取文件发送方和每个接收方的NAT IP和TCP Port及不能进行P2P连接的所有接 收方的SIP URI ;S22 文件发送方和不能进行P2P连接的所有接收方分别和MSRP服务器建立TCP 连接,若都连接成功,则通过MSRP协议,把文件传给MSRP服务器,由MSRP服务器对不能与 发送方建立P2P连接的接收方发送文件。其中,所述步骤S21具体包括所述文件发送方向MSRP服务器只发送一个文件传输请求,其中SDP消息体中加入 不能进行P2P连接的所有接收方的SIP URI及发送方的NAT IP和TCP Port ;MSRP服务器接收该文件传输请求后,记录发送方的NAT IP和TCP Port,并依次对 接收方列表中的每一个接收方发送一个文件传输请求,其中SDP消息体中加入MSRP服务器 的 IP 和 TCP Port ;每一个接收方接收该请求,记录MSRP服务器的IP和TCP Port,并在回复的应答的 SDP消息体中加入自己的NAT IP及TCP Port ;MSRP服务器收到应答后,记录接收方的NAT IP和TCP Port,并重新构造一个新的 应答,在该应答的SDP消息体加入MSRP服务器的IP和TCP Port,并回复给发送方;发送方接收到MSRP服务器发来的应答,记录所述MSRP服务器的IP和TCP Port。其中,所述步骤S3具体包括所述文件发送方将文件发送到位于公网的中转服务器;所述中转服务器将所述文件发送给所述MSRP服务器;MSRP服务器对不可以进行P2P连接的接收方发送文件。其中,所述中转服务器将所述文件发送给所述MSRP服务器的方式为即时发送。其中,所述MSRP服务器对不可以进行P2P发送的接收方发送文件的方式为即时发 送。(三)有益效果本发明通过扩展会话描述协议(Session Description Protocol,SDP),实现了 IMS客户端软件的群发文件功能,并且按三种优先顺序的群发机制来群发文件,保证了群发 文件的高效性和实时性。
图1是根据本发明实施例的基于SIP协议的文件群发方法流程图2是根据本发明实施例的基于SIP协议的文件群发方法中P2P文件传输SIP信 令交互程图;图3是根据本发明实施例的基于SIP协议的文件群发方法中经过MSRP服务器中 转的文件传输SIP信令交互程图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施 例用于说明本发明,但不用来限制本发明的范围。本发明基于会话初始协议(Session Initiation Protocol,SIP)和SDP协议实现 了 IMS客户端文件群发的功能。并提出了三种不同优先级的群发方式,具体过程如图1所 示步骤S101,文件发送方与每个文件接收方建立P2P连接;步骤S102,如连接成功,则执行步骤S103,若文件发送方与多个文件接收方无法 建立P2P连接,则执行步骤S104 ;步骤S103,以P2P方式直接向各个文件接收方发送文件;步骤S104,所述文件发送方和所述多个文件接收方与MSRP服务器建立TCP连接;步骤S105,若连接成功,则执行步骤S106,否则执行步骤S107 ;步骤S106,通过MSRP服务器向不能与发送方建立P2P连接的所有接收方发送文 件;步骤S107,文件发送方通过位于公网的中转服务器将文件发送给MSRP服务器,再 由MSRP服务器向不能与发送方建立P2P连接的多个接收方发送文件。其中,采用P2P群发文件的方式具体过程如下要成功发送文件,文件发送方需获取每个接收方的NAT IP和Port,并且每个接收 方也需获取发送方的NAT IP和Port。本实施例中采用SIP信令交互的方式使发送方和每 个接收方获取对方的NAT IP和Port,具体过程如图2所示步骤S201,作为文件的发送方的客户端发送一个文件传输请求,如Invite请求, 该请求包含了 SDP消息体,发送方在所述消息体中加入了自己的NAT(Network Address Translation) IP和Port信息,即内网中客户端经过NAT映射后的外网IP地址和端口。具 体加入方式是在SDP中加入一个扩展属性行natinfo :[nat地址]_[nat端口]。该Invite 请求经过NAT路由器的路由发送到消息会话中继协议(Message Session Relay Protocol, MSRP)服务器。步骤S202,MSRP服务器将该Invite请求发送到每个文件接收方。接收方接收并 解析该Invite请求,记录发送方的NAT IP和Port信息,并各自返回一个应答,如2000K,且 在该2000K的SDP消息体中加入各自的NAT IP和Port信息,其加入方式和步骤S201中相同。步骤S203,该2000K经过NAT路由器的路由发送到MSRP服务器。步骤S204,MSRP服务器将该2000K转发给发送方,发送方解析该2000K,记录每个 接收方的NAT IP和Port。并会向每个接收方发送一个Ack确认收到2000K的消息。经过上述步骤,文件发送方获取每个接收方的NAT IP和Port,并且每个接收方也
6获取发送方的NAT IP和Port。所述文件发送方和每个接收方的IMS客户端软件中的网络 模块检测各自所在网络的Port上和对方所在网络的Port上是否可相互通信,若能通信,则 发送方和各个接收方建立P2P连接,并直接将文件发送到各个接收方。由于此处的P2P发 送采用的UDP协议,效率高,而且不需要经过MSRP服务器中转,特别适合于发送方向位于同 一网段的接收方发送文件。当所述文件发送方检测到某些接收方所在网络的Port上和自己所在网络的Port 上不能相互通信,即不能建立P2P连接,则文件发送方通过MSRP服务器向不能建立P2P连 接的所有接收方转发文件,要完成文件的转发,发送方和接收方需要和MSRP服务器建立网 络连接,如TCP连接,建立TCP连接的过程如图3所示步骤S301,发送方向MSRP服务器只发送一个文件传输请求,如Invite请求,在该 请求的SDP消息体中加入了自己的NAT IP及TCPPort,并带上了不能和发送方建立P2P连 接的接收方的SIP URI列表。步骤S302,MSRP服务器接收该Invite请求,记录发送方的NAT IP及TCP Port, 并依次对接收方SIP URI列表中的每一个接收方发送一个Invite请求,在其中SDP消息体 中加入自己的IP和TCP Port,加入方式由规范RFC4975规定。步骤S303,接收方SIP URI列表中的接收方收到该Invite请求,记录MSRP服务器 的IP和TCP Port,并在回复的2000K的SDP消息体中加入自己的NAT IP及TCP Port,并 将该2000K发送给MSRP服务器。步骤S304,MSRP服务器接收该2000K请求,记录各个接收方的NAT IP及TCP Port, 并构造一个新的2000K,在其中SDP消息体中加入自己的IP和TCP Port,并将该2000K返 回给发送方,发送方记录MSRP的IP和TCP Port,并发送Ack确认收到2000K。经过上述步骤,MSRP服务器获得了发送方和不能建立P2P连接的所有接收方的 NAT IP和TCP Port,发送方和不能建立P2P连接的所有接收方也获得了 MSRP服务器的IP 和TCP Port0然后发送方和不能建立P2P连接的所有接收方分别和MSRP服务器建立TCP 连接,若都连接成功,则通过MSRP协议,发送方把文件传给MSRP服务器,由MSRP服务器对 不能建立P2P连接的所有接收方发送文件;并且是即时发送给不能建立P2P连接的所有接 收方。如果由于防火墙或者NAT的原因导致上述两种方案均无法实现群发文件时,即某 些接收方无法和MSRP服务器建立TCP连接或发送方无法和MSRP服务器建立TCP连接时, 则采用中转服务器的方式,该中转服务器是在公网上部署的一个客户端可以访问的私有服 务器,发送方先把文件内容发给中转服务器,中转服务器在收到内容的同时发给位于公网 的MSRP服务器,MSRP服务器再对不能和发送方建立P2P连接的接收方发送文件,并且是即 时发送给不能建立P2P连接的所有接收方。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通 技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有 等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
一种基于SIP协议的文件群发方法,其特征在于,包括以下步骤S1文件发送方与每个文件接收方建立P2P连接,如连接成功,则直接向各个文件接收方发送文件;S2若步骤S1中所述文件发送方与多个文件接收方无法建立P2P连接,则所述文件发送方和所述多个文件接收方与MSRP服务器建立连接,若连接成功,则通过MSRP服务器向不能与发送方建立P2P连接的所有接收方发送文件;S3若步骤S2中所述文件发送方不能与MSRP服务器建立连接,则文件发送方通过位于公网的中转服务器将文件发送给MSRP服务器,再由MSRP服务器向不能与发送方建立P2P连接的多个接收方发送文件。
2.如权利要求1所述的基于SIP协议的文件群发方法,其特征在于,所述步骤S1具体 包括511所述文件发送方获取所述每个接收方的NAT IP和Port,并且每个接收方获取发 送方的NAT IP和Port ;512所述文件发送方和每个接收方检测各自所在网络的Port上和对方所在网络的 Port上是否可相互通信,若能通信,则发送方和各个接收方建立P2P连接,并进行文件发送。
3.如权利要求2所述的基于SIP协议的文件群发方法,其特征在于,所述步骤SI1具体 包括所述文件发送方对每个接收方分别发出一个文件传输请求,并在所述请求的SDP消息 体中加入自己的NAT IP和Port信息;MSRP服务器接收所述文件传输请求并将其转发给每个接收方; 每个接收方接收到所述请求,记录SDP消息体中的文件发送方的NAT IP和Port信息, 然后各自向发送方发送一个应答,并在应答的SDP消息体中加入自己的NAT IP和Port信 息;文件发送方接收到所述返回的各个应答,记录其中的多个接收方的NAT IP和Port信息。
4.如权利要求1所述的基于SIP协议的文件群发方法,其特征在于,所述步骤S2具体 包括521所述文件发送方和每个接收方获取MSRP服务器的IP和TCP Port,并且MSRP服 务器获取文件发送方和每个接收方的NAT IP和TCP Port及不能进行P2P连接的所有接收 方的 SIP URI ;522文件发送方和不能进行P2P连接的所有接收方分别和MSRP服务器建立TCP连接, 若都连接成功,则通过MSRP协议,把文件传给MSRP服务器,由MSRP服务器对不能与发送方 建立P2P连接的接收方发送文件。
5.如权利要求4所述的基于SIP协议的文件群发方法,其特征在于,所述步骤S21具体 包括所述文件发送方向MSRP服务器只发送一个文件传输请求,其中SDP消息体中加入不能 进行P2P连接的所有接收方的SIP URI及发送方的NAT IP和TCP Port ;MSRP服务器接收该文件传输请求后,记录发送方的NAT IP和TCP Port,并依次对接收方列表中的每一个接收方发送一个文件传输请求,其中SDP消息体中加入MSRP服务器的IP 和 TCP Port ;每一个接收方接收该请求,记录MSRP服务器的IP和TCP Port,并在回复的应答的SDP 消息体中加入自己的NAT IP及TCP Port ;MSRP服务器收到应答后,记录接收方的NAT IP和TCP Port,并重新构造一个新的应 答,在该应答的SDP消息体加入MSRP服务器的IP和TCP Port,并回复给发送方;发送方接收到MSRP服务器发来的应答,记录所述MSRP服务器的IP和TCP Port。
6.如权利要求1所述的基于SIP协议的文件群发方法,其特征在于,所述步骤S3具体 包括所述文件发送方将文件发送到位于公网的中转服务器;所述中转服务器将所述文件发送给所述MSRP服务器;MSRP服务器对不可以进行P2P连接的接收方发送文件。
7.如权利要求6所述的基于SIP协议的文件群发方法,其特征在于,所述中转服务器将 所述文件发送给所述MSRP服务器的方式为即时发送。
8.如权利要求1-7中任一项所述的基于SIP协议的文件群发方法,其特征在于,所述 MSRP服务器对不可以进行P2P发送的接收方发送文件的方式为即时发送。
全文摘要
本发明公开了一种基于SIP协议的文件群发方法,包括文件发送方与每个文件接收方建立P2P连接,直接向各个文件接收方发送文件;若步骤S1中所述文件发送方与多个文件接收方无法建立P2P连接,则所述文件发送方与MSRP服务器建立连接,通过MSRP服务器即时向不能与发送方建立P2P连接的所有接收方发送文件;若步骤S2中所述文件发送方不能与MSRP服务器建立连接,则文件发送方通过位于公网的中转服务器将文件发送给MSRP服务器,再由MSRP服务器即时向不能与发送方建立P2P连接的多个接收方发送文件。本发明实现了IP多媒体子系统客户端软件的群发文件功能,并且按三种不同优先顺序的群发机制来群发文件,保证了群发文件的高效性和实时性。
文档编号H04L12/18GK101888301SQ20101021317
公开日2010年11月17日 申请日期2010年6月30日 优先权日2010年6月30日
发明者刘克雄, 宋志远 申请人:北京神州泰岳软件股份有限公司