CN101888301B - 基于sip协议的群发文件方法 - Google Patents
基于sip协议的群发文件方法 Download PDFInfo
- Publication number
- CN101888301B CN101888301B CN2010102131748A CN201010213174A CN101888301B CN 101888301 B CN101888301 B CN 101888301B CN 2010102131748 A CN2010102131748 A CN 2010102131748A CN 201010213174 A CN201010213174 A CN 201010213174A CN 101888301 B CN101888301 B CN 101888301B
- Authority
- CN
- China
- Prior art keywords
- file
- transmit leg
- recipient
- server
- msrp
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于SIP协议的文件群发方法,包括:文件发送方与每个文件接收方建立P2P连接,直接向各个文件接收方发送文件;若步骤S1中所述文件发送方与多个文件接收方无法建立P2P连接,则所述文件发送方与MSRP服务器建立连接,通过MSRP服务器即时向不能与发送方建立P2P连接的所有接收方发送文件;若步骤S2中所述文件发送方不能与MSRP服务器建立连接,则文件发送方通过位于公网的中转服务器将文件发送给MSRP服务器,再由MSRP服务器即时向不能与发送方建立P2P连接的多个接收方发送文件。本发明实现了IP多媒体子系统客户端软件的群发文件功能,并且按三种不同优先顺序的群发机制来群发文件,保证了群发文件的高效性和实时性。
Description
技术领域
本发明涉及互联网通信技术领域,特别涉及一种基于SIP协议的文件群发方法。
背景技术
在市场上流行的即时通信(Instant Message,IM)软件中,一对一的文件传输已经成为它的一个不可或缺的功能,但是没有对多人同时群发文件的功能。现有技术中有两种将一个文件传送至多人的方案:
1、现有的IM软件采用了先把文件上传至服务器,上传完毕后其它需要该文件的用户再从服务器下载它这种方式作为群发文件的一种折衷方案,但是由于先上传后下载这种方式在时间上并不交叉,不是一个实时的交互过程,这就导致了在文件发送效率低,而且要占用服务器的存储空间;
2、发送方把文件作为邮件附件的形式来发送给接收方,以实现群发功能。这种方式在发送的过程中需经过邮件服务器,同样文件发送效率低,实时性不高。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何及时有效的实现IP多媒体子系统(IP Multimedia Subsystem,IMS)领域中文件群发功能,并具有较高的实时性。
(二)技术方案
一种基于SIP协议的文件群发方法,包括以下步骤:
S1:文件发送方与每个文件接收方建立P2P连接,如连接成功, 则直接向各个文件接收方发送文件;
S2:若步骤S1中所述文件发送方与多个文件接收方无法建立P2P连接,则所述文件发送方和所述多个文件接收方与消息会话中继协议MSRP服务器建立连接,若连接成功,则通过MSRP服务器向不能与发送方建立P2P连接的所有接收方发送文件;
S3:若步骤S2中所述文件发送方不能与MSRP服务器建立连接,则文件发送方通过位于公网的中转服务器将文件发送给MSRP服务器,再由MSRP服务器向不能与发送方建立P2P连接的多个接收方发送文件。
其中,所述步骤S1具体包括:
S11:所述文件发送方获取所述每个接收方的NAT IP和Port,并且每个接收方获取发送方的NAT IP和Port;
S12:所述文件发送方和每个接收方检测各自所在网络的Port上和对方所在网络的Port上是否可相互通信,若能通信,则发送方和各个接收方建立P2P连接,并进行文件发送。
其中,所述步骤S11具体包括:
所述文件发送方对每个接收方分别发出一个文件传输请求,并在所述请求的SDP消息体中加入自己的NAT IP和Port信息;
MSRP服务器接收所述文件传输请求并将其转发给每个接收方;
每个接收方接收到所述请求,记录SDP消息体中的文件发送方的NAT IP和Port信息,然后各自向发送方发送一个应答,并在应答的SDP消息体中加入自己的NAT IP和Port信息;
文件发送方接收到返回的各个所述应答,记录其中的多个接收方的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信息,并各自返回一个应答,如200OK,且在该200OK的SDP消息体中加入各自的NAT IP和Port信息,其加入方式和步骤S201中相同。
步骤S203,该200OK经过NAT路由器的路由发送到MSRP服务器。
步骤S204,MSRP服务器将该200OK转发给发送方,发送方解析该200OK,记录每个接收方的NAT IP和Port。并会向每个接收方发送一个Ack确认收到200OK的消息。
经过上述步骤,文件发送方获取每个接收方的NAT IP和Port,并且每个接收方也获取发送方的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,并在回复的200OK的SDP消息体中加入自己的NAT IP及TCP Port,并将该200OK发送给MSRP服务器。
步骤S304,MSRP服务器接收该200OK请求,记录各个接收方的NAT IP及TCP Port,并构造一个新的200OK,在其中SDP消息体中加入自己的IP和TCP Port,并将该200OK返回给发送方,发送方记录MSRP的IP和TCP Port,并发送Ack确认收到200OK。
经过上述步骤,MSRP服务器获得了发送方和不能建立P2P连接的所有接收方的NAT IP和TCP Port,发送方和不能建立P2P连接的所有接收方也获得了MSRP服务器的IP和TCP Port。然后发送方和不能建立P2P连接的所有接收方分别和MSRP服务器建立TCP连接,若都连接成功,则通过MSRP协议,发送方把文件传给MSRP服务器,由MSRP服务器对不能建立P2P连接的所有接收方发送文件;并且是即 时发送给不能建立P2P连接的所有接收方。
如果由于防火墙或者NAT的原因导致上述两种方案均无法实现群发文件时,即某些接收方无法和MSRP服务器建立TCP连接或发送方无法和MSRP服务器建立TCP连接时,则采用中转服务器的方式,该中转服务器是在公网上部署的一个客户端可以访问的私有服务器,发送方先把文件内容发给中转服务器,中转服务器在收到内容的同时发给位于公网的MSRP服务器,MSRP服务器再对不能和发送方建立P2P连接的接收方发送文件,并且是即时发送给不能建立P2P连接的所有接收方。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (8)
1.一种基于SIP协议的文件群发方法,其特征在于,包括以下步骤:
S1:文件发送方与每个文件接收方建立P2P连接,如连接成功,则直接向各个文件接收方发送文件;
S2:若步骤S1中所述文件发送方与多个文件接收方无法建立P2P连接,则所述文件发送方和所述多个文件接收方与消息会话中继协议MSRP服务器建立连接,若连接成功,则通过MSRP服务器向不能与发送方建立P2P连接的所有接收方发送文件;
S3:若步骤S2中所述文件发送方不能与MSRP服务器建立连接,则文件发送方通过位于公网的中转服务器将文件发送给MSRP服务器,再由MSRP服务器向不能与发送方建立P2P连接的多个接收方发送文件。
2.如权利要求1所述的基于SIP协议的文件群发方法,其特征在于,所述步骤S1具体包括:
S11:所述文件发送方获取所述每个接收方的NAT IP和Port,并且每个接收方获取发送方的NAT IP和Port;
S12:所述文件发送方和每个接收方检测各自所在网络的Port上和对方所在网络的Port上是否可相互通信,若能通信,则发送方和各个接收方建立P2P连接,并进行文件发送。
3.如权利要求2所述的基于SIP协议的文件群发方法,其特征在于,所述步骤S11具体包括:
所述文件发送方对每个接收方分别发出一个文件传输请求,并在所述请求的SDP消息体中加入自己的NAT IP和Port信息;
MSRP服务器接收所述文件传输请求并将其转发给每个接收方;
每个接收方接收到所述请求,记录SDP消息体中的文件发送方的NAT IP和Port信息,然后各自向发送方发送一个应答,并在应答 的SDP消息体中加入自己的NAT IP和Port信息;
文件发送方接收到返回的各个所述应答,记录其中的多个接收方的NAT IP和Port信息。
4.如权利要求1所述的基于SIP协议的文件群发方法,其特征在于,所述步骤S2具体包括:
S21:所述文件发送方和每个接收方获取MSRP服务器的IP和TCP Port,并且MSRP服务器获取文件发送方和每个接收方的NAT IP和TCP Port及不能进行P2P连接的所有接收方的SIP URI;
S22:文件发送方和不能进行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发送的接收方发送文件的方式为即时发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102131748A CN101888301B (zh) | 2010-06-30 | 2010-06-30 | 基于sip协议的群发文件方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102131748A CN101888301B (zh) | 2010-06-30 | 2010-06-30 | 基于sip协议的群发文件方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101888301A CN101888301A (zh) | 2010-11-17 |
CN101888301B true CN101888301B (zh) | 2011-12-14 |
Family
ID=43074036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102131748A Active CN101888301B (zh) | 2010-06-30 | 2010-06-30 | 基于sip协议的群发文件方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101888301B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103037314B (zh) * | 2011-09-30 | 2016-03-09 | 国际商业机器公司 | 用于在自主网络中的移动终端上群发消息的方法 |
CN110581866B (zh) * | 2018-06-07 | 2022-09-23 | 中国电信股份有限公司 | 文件传输方法和ip多媒体子系统ims网络终端 |
CN109787848A (zh) * | 2019-04-02 | 2019-05-21 | 浙江数值跳跃网络科技有限公司 | 一种通过内网穿透技术组建去中心化网络架构技术 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4154615B2 (ja) * | 2005-12-08 | 2008-09-24 | 日本電気株式会社 | Sipサーバ共有モジュール装置、sipメッセージ中継方法、及びプログラム |
CN101047664A (zh) * | 2006-06-09 | 2007-10-03 | 华为技术有限公司 | 用于实现多目标方业务或操作的方法和装置 |
CN101588251A (zh) * | 2008-05-20 | 2009-11-25 | 华为技术有限公司 | 一种ims即时消息群发的方法及设备 |
-
2010
- 2010-06-30 CN CN2010102131748A patent/CN101888301B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101888301A (zh) | 2010-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102130845B (zh) | 回执报告的发送方法及处理系统 | |
WO2012034309A1 (zh) | Nat网络中sip终端间文件传输的方法、终端及系统 | |
CN102664899B (zh) | 一种业务处理方法、装置及系统 | |
WO2016141612A1 (zh) | 融合通信方法、终端、服务器和融合通信系统 | |
CN103428168A (zh) | 一种sip客户端访问rtsp媒体资源的方法、系统及信令网关 | |
CN102223293B (zh) | 消息请求的路由方法及处理系统 | |
CN103312571A (zh) | 一种发现设备的方法及装置 | |
CN102123133A (zh) | 不同消息业务平台互通时传送消息回执的方法和消息系统 | |
KR101397633B1 (ko) | 아이엠에스 기반 인스턴트 메시지 서비스 제공 시스템 및방법 | |
CN101888301B (zh) | 基于sip协议的群发文件方法 | |
CN101909019A (zh) | 请求消息的处理方法和系统 | |
WO2012003668A1 (zh) | 一种消息发送方法、系统及互通服务器 | |
ES2548142T3 (es) | Método y sistema para transmitir mensajes de Mensajería de Protocolo de Internet Convergente (CPM) de modo de mensaje grande | |
EP2429256A1 (en) | Method for negotiating message session relay protocol connection parameters | |
WO2010127526A1 (zh) | 向群组发送大消息模式cpm消息的方法 | |
WO2012155652A1 (zh) | 跨社交网络的通信方法、网元及系统 | |
US8719424B2 (en) | Transmission method and system for converged IP messaging | |
CN101207579B (zh) | 实现网络短信服务的服务器及其客户机间通讯方法 | |
CN104518959A (zh) | 一种设备间通信的方法及装置 | |
US8462669B2 (en) | Method and apparatus for determining PT server having controlling function | |
WO2011017987A1 (zh) | 一种即时消息的路由系统及方法 | |
KR101372385B1 (ko) | 대형 메시지 모드 통합 ip 메시지의 전송방법 및 시스템 | |
KR101328028B1 (ko) | 세션 기반 메시지 전송 시스템 및 그 방법 | |
CN101883144A (zh) | 基于sip的文件断点续传方法 | |
JP2012516501A5 (zh) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: Room 818, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080 Patentee after: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd. Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building A block 5 layer Patentee before: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |