一种基于内外网的数据通讯方法、装置及系统与流程

文档序号:11517808阅读:226来源:国知局
一种基于内外网的数据通讯方法、装置及系统与流程

本发明涉及公共网络与局域网络通讯领域,尤其涉及一种基于内外网的数据通讯方法、装置及系统。



背景技术:

随着互联网的迅猛发展,使用互联网进行通讯得到了广泛的使用。在互联网的通讯中,通讯的双方以特定的互联网协议(internetprotocal,ip)地址,作为确认通讯双方的来源与目的地址,也就是,网络通讯要求每一个通讯端都需要有一个公共的ip(publicip),以作为网络通讯上辨认目的地址之用,这里的网络是指公共网络(publicnetwork),又称为外部网络。随着企业或单位的一些需求,局域网络(localareanetwork),又称为内部网络,逐渐兴起,内部网络中的用户可以相互联机,但是无法与外部网络直接通讯。一般内部网络中用户与外部网络的通讯采用间接的方式来进行,例如通过网络地址转换(networkaddresstranslation,nat)将内部网络中的用户的私有ip转换为nat本身的公共ip,使外部网络能够加以辨认,从而完成内部网络与外部网络的通讯。

然而采用上述方式完成内部网络与外部网络的通讯,对于一般数据的通讯并无问题;但是话初始协议(sessioninitiationprotocal,sip)所提供的多媒体会议通讯,由于nat或/和防火墙的存在,在按照sip通讯协议进行多媒体会议的联机呼叫时,无法呼叫成功,即内部网络与外部网络无法直接进行多媒体会议通讯。

为解决上述问题,现有技术中多采用“路由器端口映射”方案。即在出口路由器上配置内网服务器的某个端口与外部网络的某个端口的映射,从而实现一台内部网络服务器既能向内部网络用户提供服务,又能向外部网络的用户提供服务,完成内部网络与外部网络的通讯。然而该“路由器端口映射”方案需要专业网管人员参与配置路由器规则,从而增加了人工成本,并且不同品牌的路由器的性能也有很大差异,有些路由器并不一定能够支持“路由器端口映射”方案,使得在路由器等硬件挑选方面存在限制。在拨号网络环境下,出口路由器并没有固定的外网ip,即出口路由器在公共网络的ip是在一定范围内变化的,每次变化,内部网络服务器以及外部网络服务器为了保证通讯,都必须重新配置出口路由器,进一步增加了网管人员的配置难度,并且增大了配置错误的可能性,如果配置的不正确将无法实现通讯。



技术实现要素:

本发明提供一种基于内外网的数据通讯方法、装置及系统,用以解决现有技术中内外网多媒体通讯时,路由器不支持,及每次进行出口配置增加配置难度并增大了出现错误的可能性的问题。

为了解决上述问题,依据本发明实施例的一个方面,提供了一种基于内外网的数据通讯方法,包括:

接收位于外部网络的终端通过第一套接字socket发送的第一数据传输请求消息;并接收内网服务器通过第二socket发送的第二数据传输请求消息;

接收所述内网服务器发送的socket配对请求消息,生成所述第一socket和所述第二socket之间的映射;

接收所述终端通过所述第一socket传输的数据信息,根据所述第一socket与所述第二socket的映射,将所述数据信息通过所述第二socket发送至内网服务器。

进一步地,在所述接收位于外部网络的终端通过第一套接字socket发送的第一数据传输请求消息之前,所述方法还包括:

接收所述终端发送的基础会议getconferencebasic请求消息,将所述getconferencebasic请求消息中的联络地址信息替换为所述代理服务器的ip地址;

将地址信息替换后的所述getconferencebasic请求消息转发至所述内网服务器;

接收所述内网服务器发送的getconferencebasic响应消息,其中所述getconferencebasic响应消息中携带所述代理服务器的ip地址及其数据端口号,所述代理服务器的ip地址及其数据端口号为所述内网服务器根据保存的代理服务器与其ip地址、数据端口号的对应关系,在接收到所述代理服务器发送的getconferencebasic请求消息后确定的;

将所述getconferencebasic响应消息转发至所述终端;

所述接收位于外部网络的终端通过第一套接字socket发送的第一数据传输请求消息包括:

所述ip地址的代理服务器通过所述数据端口号接收所述终端发送的所述第一数据传输请求消息。

进一步地,在所述接收所述终端发送的基础会议getconferencebasic请求消息之前,所述方法还包括:

接收所述内网服务器发送的第二sip请求消息,将传输所述第二sip请求消息的第二传输控制协议tcpsocket保存为sipssocket;

所述将地址信息替换后的所述getconferencebasic请求消息转发至所述内网服务器包括:

将地址信息替换后的所述getconferencebasic请求消息通过所述sipssocket转发至所述内网服务器。

进一步地,在所述接收内网服务器通过第二socket发送的第二数据传输请求消息之前,所述方法还包括:

接收所述终端发送的第一会话初始协议sip请求消息,将所述第一sip请求消息转发至内网服务器。

进一步地,所述将所述第一sip请求消息转发至内网服务器,包括:

将所述第一sip请求消息中的联络地址信息替换为所述代理服务器的ip地址;

将地址替换后的第一sip请求消息转发至所述内网服务器。

进一步地,在将所述第一sip请求消息转发至内网服务器之前,所述方法还包括:

解析所述第一sip请求消息,获取所述第一sip请求消息中携带的源端的标识信息;

根据所述源端的标识信息以及发送所述第一sip请求消息的第一传输控制协议套接字tcpsocket,建立所述源端的标识信息与所述第一tcpsocket的映射。

进一步地,在所述将所述第一sip请求消息转发至内网服务器之后,所述方法还包括:

接收并解析所述内网服务器发送的所述第一sip响应消息,识别所述第一sip响应消息中携带的源端的标识信息;

根据所述源端的标识信息与所述第一tcpsocket的映射,将所述第一sip响应消息通过第一tcpsocket转发至所述终端,所述数据信息为所述终端接收到所述代理服务器发送的第一sip响应消息之后发送的。

依据本发明实施例的又一个方面,提供了一种基于内外网的数据通讯方法,包括:

通过第二套接字socket向代理服务器发送第二数据传输请求消息;

向所述代理服务器发送套接字socket配对请求消息,以使所述代理服务器生成第一socket和第二socket之间的映射,其中所述第一socket为位于外部网络的终端向所述代理服务器发送第一数据传输请求消息的socket;

接收所述代理服务器通过所述第二socket传输的数据信息,其中所述数据信息由所述终端通过所述第一socket传输至所述代理服务器,所述代理服务器根据所述第一socket与第二socket的映射,通过所述第二socket传输至内网服务器。

进一步地,在所述通过第二套接字socket向代理服务器发送第二数据传输请求消息之前,所述方法还包括:

接收所述代理服务器发送的基础会议getconferencebasic请求消息,其中所述getconferencebasic请求消息为所述代理服务器接收到所述终端发送的getconferencebasic请求消息后,将所述getconferencebasic请求消息中的联络地址信息替换为所述代理服务器的ip地址后发送的;

解析所述getconferencebasic请求消息;

若所述getconferencebasic请求消息中联络地址信息与所述内网服务器中预存的代理服务器的ip地址相同,根据保存的代理服务器的ip地址及其数据端口号的对应关系,确定所述ip地址的代理服务器对应的数据端口号;

将所述ip地址及确定的所述数据端口号携带在getconferencebasic响应消息中发送给所述代理服务器;

所述通过第二socket向所述代理服务器发送第二数据传输请求消息包括:

根据所述数据端口号向所述ip地址的代理服务器发送第二数据传输请求消息。

进一步地,在所述接收所述代理服务器发送的基础会议getconferencebasic请求消息之前,所述方法还包括:

发送第二sip请求消息至所述代理服务器,以使所述代理服务器将传输所述第二sip请求消息的传输控制协议tcpsocket保存为sipssocket,并采用保存的所述sipssocket转发所述getconferencebasic请求消息。

进一步地,在所述通过第二套接字socket向代理服务器发送第二数据传输请求消息之前,所述方法还包括:

接收第一会话初始协议sip请求消息;

解析所述第一sip请求消息,获取所述第一sip请求消息中的联络地址信息;

若解析得到的所述联络地址信息与所述内网服务器中预存的代理服务器的ip地址相同,向所述代理服务器发送套接字socket配对请求消息。

依据本发明实施例的又一个方面,提供了一种基于内外网的数据通讯装置,所述装置包括:

媒体流代理模块,用于接收位于外部网络的终端通过第一套接字socket发送的第一数据传输请求消息;并接收内网服务器通过第二socket发送的第二数据传输请求消息;

代理服务模块,用于接收所述内网服务器发送的socket配对请求消息;

所述媒体流代理模块,还用于生成所述第一socket和所述第二socket之间的映射;接收所述终端通过所述第一socket传输的数据信息,根据所述第一socket与所述第二socket的映射,将所述数据信息通过所述第二socket发送至内网服务器。

进一步地,所述装置还包括:会话初始协议代理模块,用于接收所述终端发送的基础会议getconferencebasic请求消息,将所述getconferencebasic请求消息中的联络地址信息替换为所述代理服务器的ip地址;将地址信息替换后的所述getconferencebasic请求消息转发至所述内网服务器;接收所述内网服务器发送的getconferencebasic响应消息,其中所述getconferencebasic响应消息中携带所述代理服务器的ip地址及其数据端口号,所述代理服务器的ip地址及其数据端口号为所述内网服务器根据保存的代理服务器与其ip地址、数据端口号的对应关系,在接收到所述代理服务器发送的getconferencebasic请求消息后确定的;将所述getconferencebasic响应消息转发至所述终端;所述媒体流代理模块,具体用于通过所述数据端口号接收所述终端发送的所述第一数据传输请求消息。

进一步地,所述会话初始协议代理模块,还用于接收所述内网服务器发送的第二sip请求消息,将传输所述第二sip请求消息的第二传输控制协议tcpsocket保存为sipssocket;将地址信息替换后的所述getconferencebasic请求消息通过所述sipssocket转发至所述内网服务器。

进一步地,所述会话初始协议代理模块,还用于接收所述终端发送的第一会话初始协议sip请求消息,将所述第一sip请求消息转发至内网服务器。

进一步地,所述会话初始协议代理模块,具体用于将所述第一sip请求消息中的联络地址信息替换为所述代理服务器的ip地址;将地址替换后的第一sip请求消息转发至所述内网服务器。

进一步地,所述会话初始协议代理模块,还用于解析所述第一sip请求消息,获取所述第一sip请求消息中携带的源端的标识信息;根据所述源端的标识信息以及发送所述第一sip请求消息的第一传输控制协议套接字tcpsocket,建立所述源端的标识信息与所述第一tcpsocket的映射。

进一步地,所述会话初始协议代理模块,还用于接收并解析所述内网服务器发送的所述第一sip响应消息,识别所述第一sip响应消息中携带的源端的标识信息;根据所述源端的标识信息与所述第一tcpsocket的映射,将所述第一sip响应消息通过第一tcpsocket转发至所述终端,所述数据信息为所述终端接收到所述代理服务器发送的第一sip响应消息之后发送的。

依据本发明实施例的又一个方面,提供了一种基于内外网的数据通讯装置,所述装置包括:

媒体流服务模块,通过第二套接字socket向代理服务器发送第二数据传输请求消息;

内网服务模块,还用于向所述代理服务器发送套接字socket配对请求消息,以使所述代理服务器生成第一socket和第二socket之间的映射,其中所述第一socket为位于外部网络的终端向所述代理服务器发送第一数据传输请求消息的socket;

所述媒体流服务模块,还用于接收所述代理服务器通过所述第二socket传输的数据信息,其中所述数据信息由所述终端通过所述第一socket传输至所述代理服务器,所述代理服务器根据所述第一socket与第二socket的映射,通过所述第二socket传输至内网服务器。

进一步地,所述装置还包括:会话初始协议服务模块,用于接收所述代理服务器发送的基础会议getconferencebasic请求消息,其中所述getconferencebasic请求消息为所述代理服务器接收到所述终端发送的getconferencebasic请求消息后,将所述getconferencebasic请求消息中的联络地址信息替换为所述代理服务器的ip地址后发送的;解析所述getconferencebasic请求消息;若所述getconferencebasic请求消息中联络地址信息与所述内网服务器中预存的代理服务器的ip地址相同,根据保存的代理服务器的ip地址及其数据端口号的对应关系,确定所述ip地址的代理服务器对应的数据端口号;将所述ip地址及确定的所述数据端口号携带在getconferencebasic响应消息中发送给所述代理服务器;所述媒体流服务模块,具体用于根据所述数据端口号向所述ip地址的代理服务器发送第二数据传输请求消息。

进一步地,所述会话初始协议服务模块,还用于发送第二sip请求消息至所述代理服务器,以使所述代理服务器将传输所述第二sip请求消息的传输控制协议tcpsocket保存为sipssocket,并采用保存的所述sipssocket转发所述getconferencebasic请求消息。

进一步地,所述会话初始协议服务模块,还用于接收第一会话初始协议sip请求消息;所述内网服务模块,还用于解析所述第一sip请求消息,获取所述第一sip请求消息中的联络地址信息;若解析得到的所述联络地址信息与所述内网服务器中预存的代理服务器的ip地址相同,向所述代理服务器发送套接字socket配对请求消息。

依据本发明实施例的又一个方面,提供了一种基于内外网的数据通讯系统,包括上述应用于代理服务器的基于内外网的数据通讯装置,上述应用于内网服务器的基于内外网的数据通讯装置,以及与上述内网服务器进行数据通讯的位于外部网络的终端。

本发明有益效果如下:

本发明实施例提供了一种基于内外网的数据通讯的方法、装置及系统,该方法中通过接收位于外部网络的终端通过第一套接字socket发送的第一数据传输请求消息;并接收内网服务器通过第二socket发送的第二数据传输请求消息;接收所述内网服务器发送的socket配对请求消息,生成所述第一socket和所述第二socket之间的映射;接收所述终端通过所述第一socket传输的数据信息,根据所述第一socket与所述第二socket的映射,将所述数据信息通过所述第二socket发送至内网服务器。由于本发明实施例通过代理服务器完成内网服务器与位于外部网络的终端之间的通讯,无需人工在出口路由器上配置内网服务器的某个端口与外部网络的某个端口的映射,解决了路由器选择的限制以及在拨号网络环境下重新配置出口路由器的问题,并且保证了内外网的准确通讯。

附图说明

图1为本发明实施例1提供的一种基于内外网的数据通讯方法示意图;

图2为本发明实施例2提供的一种基于内外网的数据通讯过程示意图;

图3为本发明实施例4提供的一种基于内外网的数据通讯过程示意图;

图4为本发明实施例5提供的一种基于内外网的数据通讯方法示意图;

图5为本发明实施例6提供的一种基于内外网的数据通讯过程示意图;

图6为本发明实施例7提供的一种基于内外网的数据通讯过程示意图;

图7为本发明实施例8提供的一种基于内外网的数据通讯装置示意图;

图8为本发明实施例提供9的一种基于内外网的数据通讯装置示意图;

图9为本发明实施例提供10的一种基于内外网的数据通讯装系统示意图。

具体实施方式

下面结合说明书附图,对本发明实施例提供的一种基于内外网的数据通讯方法、装置及系统的具体实施方式进行说明。

实施例1:

本发明实施例提供了一种基于内外网的数据通讯方法,如图1所示,包括以下步骤:

s11:接收位于外部网络的终端通过第一套接字(socket)发送的第一数据传输请求消息;并接收内网服务器通过第二socket发送的第二数据传输请求消息。

本发明实施例提供的基于内外网的数据通讯方法应用于代理服务器,较佳地,为云代理服务器。

外部网络也可以称为公共网络,内部网络也可以称为局域网络,当位于外部网络的终端与位于内部网络中的终端进行多媒体会议时,位于外部网络的终端主动接入内部网络,从而进行多媒体会议。这里的第一数据传输请求消息用于建立位于外部网络的终端与代理服务器之间的第一数据信息交互通道;第二数据传输请求消息用于建立内网服务器与代理服务器之间的第二数据信息交互通道,第一数据信息交互通道为第一socket,第二数据信息交互通道为第二socket,因此,第一数据传输请求消息与第二数据传输请求消息可以是网络连接(raknet)请求消息,也可以是用户数据报协议(userdatagramprotocol,udp)请求消息。

当所述数据传输请求消息为raknet请求消息时,具体的,接收位于外部网络的终端通过第一套接字(socket)发送的第一数据传输请求消息包括:接收位于外部网络的终端通过第一套接字(socket)发送的第一网络连接raknet请求消息;

接收内网服务器通过第二socket发送的第二数据传输请求消息包括:接收内网服务器通过第二socket发送的第二raknet请求消息。

s12:接收所述内网服务器发送的socket配对请求消息,生成所述第一socket和所述第二socket之间的映射。

为了实现位于外部网络的终端与内网服务器之间的数据传输,在第一socket和第二socket建立之后。代理服务器接收socket配对请求消息,建立第一socket和第二socket之间的映射。

因为位于外部网络的终端与内网服务器之间数据信息的交互是通过代理服务器转发完成的,这样通过第一socket和第二socket之间的映射就可以将位于外部网络的终端通过第一socket发送的数据信息通过第二socket发送至内网服务器。

s13:接收所述终端通过所述第一socket传输的数据信息,根据所述第一socket与所述第二socket的映射,将所述数据信息通过所述第二socket发送至内网服务器。

代理服务器生成了第一socket和第二socket之间的映射,因此位于外部网络的终端与内网服务器之间可以进行数据信息的交互。终端可以通过第一socket将数据信息发送给代理服务器,代理服务器根据生成的第一socket和第二socket之间的映射,查找该第一socket映射的第二socket,将该数据信息通过第二socket发送至内网服务器,数据信息的交互是双向的,当然也可以是内网服务器通过第二socket将数据信息发送给代理服务器,代理服务器根据生成的第一socket和第二socket之间的映射,查找该第二socket映射的第一socket,将该数据信息通过第一socket发送至终端。

本发明实施例通过代理服务器完成内网服务器与位于外部网络的终端之间的通讯,无需人工在出口路由器上配置内网服务器的某个端口与外部网络的某个端口的映射,解决了路由器选择的限制以及在拨号网络环境下重新配置出口路由器的问题,并且保证了内外网的准确通讯。

实施例2:

为了实现位于外部网络的终端与代理服务器之间的数据信息交互通道的建立,因此在上述实施例的基础上,本发明实施例中,在所述接收位于外部网络的终端通过第一socket发送的第一数据传输请求消息之前,所述方法还包括:

接收所述终端发送的基础会议(getconferencebasic)请求消息,将所述getconferencebasic请求消息中的联络地址信息替换为所述代理服务器的ip地址;

将地址信息替换后的所述getconferencebasic请求消息转发至所述内网服务器;

接收所述内网服务器发送的getconferencebasic响应消息,其中所述getconferencebasic响应消息中携带所述代理服务器的ip地址及其数据端口号,所述代理服务器的ip地址及其数据端口号为所述内网服务器根据保存的代理服务器与其ip地址、数据端口号的对应关系,在接收到所述代理服务器发送的getconferencebasic请求消息后确定的;

将所述getconferencebasic响应消息转发至所述终端;

所述接收位于外部网络的终端通过第一socket发送的第一数据传输请求消息包括:

所述ip地址的代理服务器通过所述数据端口号接收所述终端发送的所述第一数据传输请求消息。

第一数据传输请求消息可以是raknet请求消息,也可以是udp请求消息,第一数据传输请求消息用于建立位于外部网络的终端与代理服务器之间的第一数据信息交互通道。

应当说明的是,可以在getconferencebasic请求消息中添加contact字段保存联络地址信息,代理服务器将接收到的getconferencebasic请求消息的contact字段中的内容替换为本身的ip地址,内网服务器预存有代理服务器的信息,具体的包括:若第一数据传输请求消息是raknet请求消息,内网服务器预存有代理服务器的ip地址(cloudproxyip),raknet代理端口(proxyraknetport),但不仅限于此,并且代理服务器的ip地址与raknet代理端口相对应,当代理服务器的ip地址确定后,相应的raknet代理端口也会确定

如果内网服务器检测到getconferencebasic请求消息的contact字段中的ip地址与自身预存的cloudproxyip相同,内网服务器将在针对getconferencebasic请求消息的getconferencebasic响应消息中,添加自身预存的cloudproxyip以及与该cloudproxyip对应的proxyraknetport,使得发送getconferencebasic请求消息的终端接收到代理服务器转发的getconferencebasic响应消息时,向getconferencebasic响应消息中携带的ip地址的代理服务器的raknet端口发送第一raknet请求消息。

若第一数据传输请求消息是udp请求消息,内网服务器预存有代理服务器的ip地址(cloudproxyip),udp代理端口(proxyudpport),但不仅限于此,并且代理服务器的ip地址与udp代理端口相对应,当代理服务器的ip地址确定后,相应的udp代理端口也会确定。

如果内网服务器检测到getconferencebasic请求消息的contact字段中的ip地址与自身预存的cloudproxyip相同,内网服务器将在针对getconferencebasic请求消息的getconferencebasic响应消息中,添加自身预存的cloudproxyip以及与该cloudproxyip对应的proxyudpport,使得发送getconferencebasic请求消息的终端接收到代理服务器转发的getconferencebasic响应消息时,向getconferencebasic响应消息中携带的ip地址的代理服务器的udp端口发送第一udp请求消息。

为了实现内网服务器与代理服务器之间的信令交互,本发明实施例中,在所述接收所述终端发送的基础会议getconferencebasic请求消息之前,所述方法还包括:

接收所述内网服务器发送的第二会话初始协议(sessioninitiationprotocol,sip)请求消息,将传输所述第二sip请求消息的第二传输控制协议(transmissioncontrolprotocol,tcp)socket保存为sipssocket;

所述将地址信息替换后的所述getconferencebasic请求消息转发至所述内网服务器包括:

将地址信息替换后的所述getconferencebasic请求消息通过所述sipssocket转发至所述内网服务器。

为了实现内网服务器与代理服务器之间的信令交互,内网服务器预存有代理服务器的信息,具体的包括:代理服务器的ip地址(cloudproxyip)和代理服务器的sip代理端口(proxysipport)。内网服务器根据预存的代理服务器的信息,向代理服务器的proxysipport发送第二sip请求消息,即通过第二tcpsocket向代理服务器主动发送第二sip请求消息,建立代理服务与内网服务器之间的信令交互通道。代理服务器接收到getconferencebasic请求消息后,通过建立起的代理服务器与内网服务器之间的信令交互通道,将该getconferencebasic请求消息转发至内网服务器。并且在该sip会话的过程中,后续内网服务器与代理服务器之间的信令交互都可以通过该sipssocket进行发送,从而实现内网服务器与代理服务器之间连接的复用。

图2为本发明实施例提供的一种基于内外网的数据通讯过程示意图,该过程包括以下步骤:

s201:内网服务器通过第二tcpsocket发送第二sip请求消息至代理服务器。

s202:代理服务器将第二tcpsocket保存为sipssocket。

s203:位于外部网络的终端发送getconferencebasic请求消息至代理服务器。

s204:代理服务器将getconferencebasic请求消息中的联络地址信息替换为代理服务器的ip地址。

s205:代理服务器将地址替换后的getconferencebasic请求消息通过sipssocket转发至内网服务器。

s206:内网服务器发送getconferencebasic响应消息至代理服务器,其中getconferencebasic响应消息中携带代理服务器的ip地址及代理服务器的raknet端口号。

应当说明的是,代理服务器的ip地址及代理服务器的raknet端口号为内网服务器根据保存的代理服务器与其ip地址、raknet端口号的对应关系,在接收到代理服务器发送的getconferencebasic请求消息后确定的。例如内网服务器保存有代理服务器a的ip地址以及raknet端口号,当内网服务器接收到getconferencebasic请求消息后,检测到getconferencebasic请求消息的联络地址信息与代理服务器a的ip地址相同,则将代理服务a的ip地址以及raknet端口号添加到针对getconferencebasic请求消息生成的getconferencebasic响应消息中。

s207:代理服务器将getconferencebasic响应消息转发至位于外部网络的终端。

s208:位于外部网络的终端发送第一raknet请求消息至代理服务器。

s209:内网服务器发送第二raknet请求消息至代理服务器。

s210:内网服务器发送socket配对请求消息至代理服务器。

s211:代理服务器根据第一raknet请求消息、第二raknet请求消息和socket配对请求消息,生成第一socket和第二socket之间的映射,其中第一socket为终端与代理服务器之间的socket,第二socket为内网服务器与代理服务器之间的socket。

s212:位于外部网络的终端通过第一socket发送数据信息至代理服务器。

s213:代理服务器根据第一socket与第二socket的映射,将数据信息通过第二socket转发至内网服务器。

实施例3:

为了建立位于外部网络的终端与内网服务器之间的会话,在上述各实施例的基础上,本发明实施例中,在所述接收内网服务器通过第二socket发送的第二数据传输请求消息之前,所述方法还包括:

接收所述终端发送的第一sip请求消息,将所述第一sip请求消息转发至内网服务器。

为了实现内网服务器与代理服务器之间的信令交互,并后续实现终端与内网服务器之间数据信息的传输,因此在上述实施例的基础上,本发明实施例中,所述将第一sip请求消息转发至内网服务器,包括:

将第一sip请求消息中的联络地址信息替换为代理服务器的ip地址;

将地址替换后的第一sip请求消息转发至内网服务器。

第一sip请求消息可以是邀请(invite)请求,位于外部网络的终端通过invite请求向内网服务器发起会话。每个内网服务器通过特定的代理服务器完成与外部网络的终端的数据交互,因此为了保证数据传输的合法性,内网服务器预存有其对应的代理服务器的信息,具体的包括:代理服务器的ip地址(cloudproxyip),但不仅限于此。当代理服务器接收到位于外部网络的终端发送的第一sip请求消息后,将第一sip请求消息中的联络地址信息替换为代理服务器的ip地址,内网服务器检测第一sip请求消息的联络地址信息与自身预存的cloudproxyip是否相同,若相同,则内网服务器就会与代理服务器进行后续通讯,否则,对该第一sip请求消息不进行后续处理。该方法既保证了代理服务器与内网服务器能够进行通讯,同时也避免了没有在内网服务器上保存ip地址的代理服务器的干扰。

实施例4:

为了保证生成的第一sip响应消息,能够准确传输至发送第一sip请求消息的终端,在上述各实施例的基础上,本发明实施例中,在将所述第一sip请求消息转发至内网服务器之前,所述方法还包括:解析所述第一sip请求消息,获取所述第一sip请求消息中携带的源端的标识信息;

根据所述源端的标识信息以及发送所述第一sip请求消息的第一tcpsocket,建立所述源端的标识信息与所述第一tcpsocket的映射。

在所述将所述第一sip请求消息转发至内网服务器之后,所述方法还包括:

接收并解析所述内网服务器发送的所述第一sip响应消息,识别所述第一sip响应消息中携带的源端的标识信息;

根据所述源端的标识信息与所述第一tcpsocket的映射,将所述第一sip响应消息通过第一tcpsocket转发至所述终端,所述数据信息为所述终端接收到所述代理服务器发送的第一sip响应消息之后发送的。

本发明实施例中,第一数据传输请求消息可以是raknet请求消息,也可以是udp请求消息,对应的第二数据传输请求消息可以是raknet请求消息,也可以是udp请求消息。sip请求消息中的不同字段携带不同信息,例如from字段携带了该sip消息的源端,to字段携带了该sip消息的目的端。在本发明实施例中通过解析来自终端的第一sip请求消息的from字段就可以得到发送该第一sip请求消息的终端的标识信息(identification,id)。为了保证sip响应消息的发送,代理服务器在本地建立终端的id与终端发送第一sip请求消息的第一tcpsocket的映射。因为针对第一sip请求消息的第一sip响应消息携带的from字段与该第一sip请求消息的from字段相同,因此当代理服务器接收到第一sip响应消息时,解析其from字段得到终端的id,根据建立的终端的id与第一tcpsocket的映射,通过第一tcpsocket将该第一sip响应消息转发至终端。

具体的终端a的id为aa,终端a通过aatcpsocket发送第一sip请求消息至代理服务器,代理服务器接收该第一sip请求消息,并解析第一sip请求消息的from字段的内容得到终端a的id为aa,建立aa与aatcpsocket的映射,代理服务器将第一sip请求消息转发至内网服务器;然后接收内网服务器根据第一sip请求消息生成的第一sip响应消息,第一sip响应消息的from字段的内容与第一sip请求消息的from字段的内容相同,代理服务器接收第一sip响应消息并解析得到第一sip响应消息的from字段的内容为aa,根据aa与aatcpsocket的映射,将第一sip响应消息通过aatcpsocket发送至id为aa的终端。

图3为本发明实施例提供的一种基于内外网的数据通讯过程示意图,该过程包括以下步骤:

s301:内网服务器通过第二tcpsocket发送第二sip请求消息至代理服务器。

s302:代理服务器将第二tcpsocket保存为sipssocket。

s303:位于外部网络的终端发送getconferencebasic请求消息至代理服务器。

s304:代理服务器将getconferencebasic请求消息中的联络地址信息替换为代理服务器的ip地址。

s305:代理服务器将地址替换后的getconferencebasic请求消息通过sipssocket转发至内网服务器。

s306:内网服务器发送getconferencebasic响应消息至代理服务器,其中getconferencebasic响应消息中携带代理服务器的ip地址及代理服务器的raknet端口号。

应当说明的是,代理服务器的ip地址及代理服务器的raknet端口号为内网服务器根据保存的代理服务器与其ip地址、raknet端口号的对应关系,在接收到代理服务器发送的getconferencebasic请求消息后确定的。例如内网服务器保存有代理服务器a的ip地址以及raknet端口号,当内网服务器接收到getconferencebasic请求消息后,检测到getconferencebasic请求消息的联络地址信息与代理服务器a的ip地址相同,则将代理服务a的ip地址以及raknet端口号添加到针对getconferencebasic请求消息生成的getconferencebasic响应消息中。

s307:代理服务器将getconferencebasic响应消息转发至位于外部网络的终端。

s308:位于外部网络的终端发送第一raknet请求消息至代理服务器。

s309:位于外部网络的终端发送第一sip请求消息至代理服务器。

s310:代理服务器将第一sip请求消息中的联络地址信息替换为本身的ip地址。

s311:代理服务器将地址替换后的第一sip请求消息通过sipssocket转发至内网服务器。

s312:内网服务器发送第二raknet请求消息至代理服务器。

s313:内网服务器发送socket配对请求消息至代理服务器。

s314:代理服务器根据第一raknet请求消息、第二raknet请求消息和socket配对请求消息,生成第一socket和第二socket之间的映射,其中第一socket为终端与代理服务器之间的socket,第二socket为内网服务器与代理服务器之间的socket。

s315:内网服务器发送第一sip响应消息至代理服务器。

这里的第一sip响应消息为内网服务器根据第一sip请求消息生成的,具体为会话连接成功消息,若会话连接不成功,则根据现有技术终端会继续发送第一sip请求消息,在此不再赘述。

s316:代理服务器转发第一sip响应消息至位于外部网络的终端。

s317:位于外部网络的终端通过第一socket发送数据信息至代理服务器。

s318:代理服务器根据第一socket与第二socket的映射,将数据信息通过第二socket转发至内网服务器。

实施例5:

本发明实施例提供了一种基于内外网的数据通讯方法,如图4所示,包括以下步骤:

s41:通过第二socket向代理服务器发送第二数据传输请求消息。

本发明实施例提供的基于内外网的数据通讯方法应用于内网服务器,外部网络也可以称为公共网络,内部网络也可以称为局域网络,位于内部网络的服务器称为内网服务器,当位于外部网络的终端与内部网络中的终端进行多媒体会议时,位于外部网络的终端主动接入内部网络,从而进行多媒体会议。第二数据传输请求消息用于建立内网服务器与代理服务器之间的第二数据信息交互通道,第二数据信息交互通道为第二socket。第二数据传输请求消息可以是网络连接(raknet)请求消息,也可以是用户数据报协议(userdatagramprotocol,udp)请求消息。

当所述数据传输请求消息为raknet请求消息时,具体的,通过第二socket向代理服务器发送第二数据传输请求消息包括:通过第二socket向代理服务器发送第二raknet请求消息。

s42:向所述代理服务器发送套接字socket配对请求消息,以使所述代理服务器生成第一socket和第二socket之间的映射,其中所述第一socket为位于外部网络的终端向所述代理服务器发送第一数据传输请求消息的socket。

为了实现位于外部网络的终端与内网服务器之间的数据传输,在第一socket和第二socket建立之后。当代理服务器接收到socket配对请求消息之后,建立第一socket和第二socket之间的映射。

因为位于外部网络的终端与内网服务器之间数据信息的交互是通过代理服务器转发完成的,这样通过第一socket和第二socket之间的映射就可以将位于外部网络的终端通过第一socket发送的数据信息通过第二socket发送至内网服务器。

s43:接收所述代理服务器通过所述第二socket传输的数据信息,其中所述数据信息由所述终端通过所述第一socket传输至所述代理服务器,所述代理服务器根据所述第一socket与第二socket的映射,通过所述第二socket传输至内网服务器。

代理服务器生成了第一socket和第二socket之间的映射,因此位于外部网络的终端与内网服务器之间可以进行数据信息的交互。终端可以通过第一socket将数据信息发送给代理服务器,代理服务器根据生成的第一socket和第二socket之间的映射,查找该第一socket映射的第二socket,将该数据信息通过第二socket发送至内网服务器,数据信息的交互是双向的,当然也可以是内网服务器通过第二socket将数据信息发送给代理服务器,代理服务器根据生成的第一socket和第二socket之间的映射,查找该第二socket映射的第一socket,将该数据信息通过第一socket发送至终端。

本发明实施例通过代理服务器完成内网服务器与位于外部网络的终端之间的通讯,无需人工在出口路由器上配置内部网络服务器的某个端口与外部网络的某个端口的映射,解决了路由器选择的限制以及在拨号网络环境下重新配置出口路由器的问题,并且保证了内外网的准确通讯。

实施例6:

为了实现位于外部网络的终端与代理服务器之间的数据信息交互通道的建立,在上述实施例的基础上,本发明实施例中,在所述通过第二socket向代理服务器发送第二数据传输请求消息之前,所述方法还包括:

接收所述代理服务器发送的基础会议getconferencebasic请求消息,其中所述getconferencebasic请求消息为所述代理服务器接收到所述终端发送的getconferencebasic请求消息后,将所述getconferencebasic请求消息中的联络地址信息替换为所述代理服务器的ip地址后发送的;

解析所述getconferencebasic请求消息;

若所述getconferencebasic请求消息中联络地址信息与所述内网服务器中预存的代理服务器的ip地址相同,根据保存的代理服务器的ip地址及其数据端口号的对应关系,确定所述ip地址的代理服务器对应的数据端口号;

将所述ip地址及确定的所述数据端口号携带在getconferencebasic响应消息中发送给所述代理服务器;

所述通过第二socket向所述代理服务器发送第二数据传输请求消息包括:

根据所述数据端口号向所述ip地址的代理服务器发送第二数据传输请求消息。

第二数据传输请求消息可以是raknet请求消息,也可以是udp请求消息,第二数据传输请求消息用于建立内网服务器与代理服务器之间的第二数据信息交互通道。

应当说明的是,可以在getconferencebasic请求消息中添加contact字段保存联络地址信息,代理服务器将接收到的getconferencebasic请求消息的contact字段中的内容替换为本身的ip地址,内网服务器预存有代理服务器的信息,具体的包括:若第二数据传输请求消息是raknet请求消息,内网服务器预存有代理服务器的ip地址(cloudproxyip),raknet代理端口(proxyraknetport),但不仅限于此,并且代理服务器的ip地址与raknet代理端口相对应,当代理服务器的ip地址确定后,相应的raknet代理端口也会确定。

如果内网服务器检测到getconferencebasic请求消息的contact字段中的ip地址与自身预存的cloudproxyip相同,内网服务器将在针对getconferencebasic请求消息的getconferencebasic响应消息中,添加自身预存的cloudproxyip以及与该cloudproxyip对应的proxyraknetport,使得发送getconferencebasic请求消息的终端接收到代理服务器转发的getconferencebasic响应消息时,向getconferencebasic响应消息中携带的ip地址的代理服务器的raknet端口发送第一raknet请求消息,内网服务器根据自身预存的cloudproxyip以及与该cloudproxyip对应的proxyraknetport,向所述ip地址的代理服务器的raknet端口发送第二raknet请求消息。

若第二数据传输请求消息是udp请求消息,内网服务器预存有代理服务器的ip地址(cloudproxyip),udp代理端口(proxyudpport),但不仅限于此,并且代理服务器的ip地址与udp代理端口相对应,当代理服务器的ip地址确定后,相应的udp代理端口也会确定。

如果内网服务器检测到getconferencebasic请求消息的contact字段中的ip地址与自身预存的cloudproxyip相同,内网服务器将在针对getconferencebasic请求消息的getconferencebasic响应消息中,添加自身预存的cloudproxyip以及与该cloudproxyip对应的proxyudpport,使得发送getconferencebasic请求消息的终端接收到代理服务器转发的getconferencebasic响应消息时,向getconferencebasic响应消息中携带的ip地址的代理服务器的udp端口发送第二udp请求消息。

为了实现内网服务器与代理服务器之间的信令交互,本发明实施例中,在所述接收所述代理服务器发送的基础会议getconferencebasic请求消息之前,所述方法还包括:

发送第二sip请求消息至所述代理服务器,以使所述代理服务器将传输所述第二sip请求消息的传输控制协议tcpsocket保存为sipssocket,并采用保存的所述sipssocket转发所述getconferencebasic请求消息。

为了实现内网服务器与代理服务器之间的信令交互,内网服务器预存有代理服务器的信息,具体的包括:代理服务器的ip地址(cloudproxyip)和代理服务器的sip代理端口(proxysipport)。内网服务器根据预存的代理服务器的信息,向代理服务器的proxysipport发送第二sip请求消息,即通过第二tcpsocket向代理服务器主动发送第二sip请求消息,建立代理服务与内网服务器之间的信令交互通道。代理服务器接收到getconferencebasic请求消息后,通过建立起的代理服务器与内网服务器之间的信令交互通道,将该getconferencebasic请求消息转发至内网服务器。并且在该sip会话的过程中,后续内网服务器与代理服务器之间的信令交互都可以通过该sipssocket进行发送,从而实现内网服务器与代理服务器之间连接的复用。

图5为本发明实施例提供的一种基于内外网的数据通讯过程示意图,该过程包括以下步骤:

s501:内网服务器通过第二tcpsocket发送第二sip请求消息至代理服务器。

s502:代理服务器将第二tcpsocket保存为sipssocket。

s503:位于外部网络的终端发送getconferencebasic请求消息至代理服务器。

s504:代理服务器将getconferencebasic请求消息中的联络地址信息替换为代理服务器的ip地址。

s505:代理服务器将地址替换后的getconferencebasic请求消息通过sipssocket转发至内网服务器。

s506:内网服务器发送getconferencebasic响应消息至代理服务器,其中getconferencebasic响应消息中携带代理服务器的ip地址及代理服务器的raknet端口号。

应当说明的是,代理服务器的ip地址及代理服务器的raknet端口号为内网服务器根据保存的代理服务器与其ip地址、raknet端口号的对应关系,在接收到代理服务器发送的getconferencebasic请求消息后确定的。例如内网服务器保存有代理服务器a的ip地址以及raknet端口号,当内网服务器接收到getconferencebasic请求消息后,检测到getconferencebasic请求消息的联络地址信息与代理服务器a的ip地址相同,则将代理服务a的ip地址以及raknet端口号添加到针对getconferencebasic请求消息生成的getconferencebasic响应消息中。

s507:代理服务器将getconferencebasic响应消息转发至位于外部网络的终端。

s508:位于外部网络的终端发送第一raknet请求消息至代理服务器。

s509:内网服务器发送第二raknet请求消息至代理服务器。

s510:内网服务器发送socket配对请求消息至代理服务器。

s511:代理服务器根据第一raknet请求消息、第二raknet请求消息和socket配对请求消息,生成第一socket和第二socket之间的映射,其中第一socket为终端与代理服务器之间的socket,第二socket为内网服务器与代理服务器之间的socket。

s512:位于外部网络的终端通过第一socket发送数据信息至代理服务器。

s513:代理服务器根据第一socket与第二socket的映射,将数据信息通过第二socket转发至内网服务器。

实施例7:

为了建立位于外部网络的终端与内网服务器之间的会话,在上述各实施例的基础上,本发明实施例中,在所述通过第二socket向代理服务器发送第二数据传输请求消息之前,所述方法还包括:接收第一sip请求消息;

解析所述第一sip请求消息,获取所述第一sip请求消息中的联络地址信息;

若解析得到的所述联络地址信息与所述内网服务器中预存的代理服务器的ip地址相同,向所述代理服务器发送socket配对请求消息。

本发明实施例中,第一数据传输请求消息可以是raknet请求消息,也可以是udp请求消息,对应的第二数据传输请求消息可以是raknet请求消息,也可以是udp请求消息。

应当说明的是,第一sip请求消息可以是邀请(invite)请求,位于外部网络的终端通过invite请求向内网服务器发起会话。位于外网的终端在接收到内网服务器发送的针对第一sip请求消息的第一sip响应消息之后才会发送数据信息至代理服务器。

图6为本发明实施例提供的一种基于内外网的数据通讯过程示意图,该过程包括以下步骤:

s601:内网服务器通过第二tcpsocket发送第二sip请求消息至代理服务器。

s602:代理服务器将第二tcpsocket保存为sipssocket。

s603:位于外部网络的终端发送getconferencebasic请求消息至代理服务器。

s604:代理服务器将getconferencebasic请求消息中的联络地址信息替换为代理服务器的ip地址。

s605:代理服务器将地址替换后的getconferencebasic请求消息通过sipssocket转发至内网服务器。

s606:内网服务器发送getconferencebasic响应消息至代理服务器,其中getconferencebasic响应消息中携带代理服务器的ip地址及代理服务器的raknet端口号。

应当说明的是,代理服务器的ip地址及代理服务器的raknet端口号为内网服务器根据保存的代理服务器与其ip地址、raknet端口号的对应关系,在接收到代理服务器发送的getconferencebasic请求消息后确定的。例如内网服务器保存有代理服务器a的ip地址以及raknet端口号,当内网服务器接收到getconferencebasic请求消息后,检测到getconferencebasic请求消息的联络地址信息与代理服务器a的ip地址相同,则将代理服务a的ip地址以及raknet端口号添加到针对getconferencebasic请求消息生成的getconferencebasic响应消息中。

s607:代理服务器将getconferencebasic响应消息转发至位于外部网络的终端。

s608:位于外部网络的终端发送第一raknet请求消息至代理服务器。

s609:位于外部网络的终端发送第一sip请求消息至代理服务器。

s610:代理服务器将第一sip请求消息中的联络地址信息替换为本身的ip地址。

s611:代理服务器将地址替换后的第一sip请求消息通过sipssocket转发至内网服务器。

s612:内网服务器发送第二raknet请求消息至代理服务器。

s613:内网服务器发送socket配对请求消息至代理服务器。

s614:代理服务器根据第一raknet请求消息、第二raknet请求消息和socket配对请求消息,生成第一socket和第二socket之间的映射,其中第一socket为终端与代理服务器之间的socket,第二socket为内网服务器与代理服务器之间的socket。

s615:内网服务器发送第一sip响应消息至代理服务器。

这里的第一sip响应消息为内网服务器根据第一sip请求消息生成的,具体为会话连接成功消息,若会话连接不成功,则根据现有技术终端会继续发送第一sip请求消息,在此不再赘述。

s616:代理服务器转发第一sip响应消息至位于外部网络的终端。

s617:位于外部网络的终端通过第一socket发送数据信息至代理服务器。

s618:代理服务器根据第一socket与第二socket的映射,将数据信息通过第二socket转发至内网服务器。

实施例8:

基于同一发明构思,本发明的又一实施例提供了一种基于内外网的数据通讯装置,如图7所示,该装置包括:

媒体流代理模块73,用于接收位于外部网络的终端通过第一socket发送的第一数据传输请求消息;并接收内网服务器通过第二socket发送的第二数据传输请求消息;

代理服务模块72,用于接收所述内网服务器发送的socket配对请求消息;

所述媒体流代理模块73,还用于生成所述第一socket和所述第二socket之间的映射;接收所述终端通过所述第一socket传输的数据信息,根据所述第一socket与所述第二socket的映射,将所述数据信息通过所述第二socket发送至内网服务器。

会话初始协议代理模块71,用于接收所述终端发送的基础会议getconferencebasic请求消息,将所述getconferencebasic请求消息中的联络地址信息替换为所述代理服务器的ip地址;将地址信息替换后的所述getconferencebasic请求消息转发至所述内网服务器;接收所述内网服务器发送的getconferencebasic响应消息,其中所述getconferencebasic响应消息中携带所述代理服务器的ip地址及其数据端口号,所述代理服务器的ip地址及其数据端口号为所述内网服务器根据保存的代理服务器与其ip地址、数据端口号的对应关系,在接收到所述代理服务器发送的getconferencebasic请求消息后确定的;将所述getconferencebasic响应消息转发至所述终端;所述媒体流代理模块73,具体用于通过所述数据端口号接收所述终端发送的所述第一数据传输请求消息。

所述会话初始协议代理模块71,还用于接收所述内网服务器发送的第二sip请求消息,将传输所述第二sip请求消息的第二传输控制协议tcpsocket保存为sipssocket;将地址信息替换后的所述getconferencebasic请求消息通过所述sipssocket转发至所述内网服务器。

所述会话初始协议代理模块71,还用于接收所述终端发送的第一sip请求消息,将所述第一sip请求消息转发至内网服务器。

所述会话初始协议代理模块71,具体用于将所述第一sip请求消息中的联络地址信息替换为所述代理服务器的ip地址;将地址替换后的第一sip请求消息转发至所述内网服务器。

所述会话初始协议代理模块71,还用于解析所述第一sip请求消息,获取所述第一sip请求消息中携带的源端的标识信息;根据所述源端的标识信息以及发送所述第一sip请求消息的第一tcpsocket,建立所述源端的标识信息与所述第一tcpsocket的映射。

所述会话初始协议代理模块71,还用于接收并解析所述内网服务器发送的所述第一sip响应消息,识别所述第一sip响应消息中携带的源端的标识信息;根据所述源端的标识信息与所述第一tcpsocket的映射,将所述第一sip响应消息通过第一tcpsocket转发至所述终端,所述数据信息为所述终端接收到所述代理服务器发送的第一sip响应消息之后发送的。

本发明实施例提供的该基于内外网的数据通讯装置应用于代理服务器。

代理服务器生成了第一socket和第二socket之间的映射,因此位于外部网络的终端与内网服务器之间可以进行数据信息的交互。终端可以通过第一socket将数据信息发送给代理服务器,代理服务器根据生成的第一socket和第二socket之间的映射,查找该第一socket映射的第二socket,将该数据信息通过第二socket发送至内网服务器。该过程无需人工在出口路由器上配置内部网络服务器的某个端口与外部网络的某个端口的映射,解决了路由器选择的限制以及在拨号网络环境下重新配置出口路由器的问题,并且保证了内外网的准确通讯。

实施例9:

本发明的又一实施例提供了一种基于内外网的数据通讯装置,如图8所示,该装置包括:

媒体流服务模块83,通过第二socket向代理服务器发送第二数据传输请求消息;

内网服务模块82,用于向所述代理服务器发送socket配对请求消息,以使所述代理服务器生成第一socket和第二socket之间的映射,其中所述第一socket为位于外部网络的终端向所述代理服务器发送第一数据传输请求消息的socket;

所述媒体流服务模块83,还用于接收所述代理服务器通过所述第二socket传输的数据信息,其中所述数据信息由所述终端通过所述第一socket传输至所述代理服务器,所述代理服务器根据所述第一socket与第二socket的映射,通过所述第二socket传输至内网服务器。

会话初始协议服务模块81,用于接收所述代理服务器发送的基础会议getconferencebasic请求消息,其中所述getconferencebasic请求消息为所述代理服务器接收到所述终端发送的getconferencebasic请求消息后,将所述getconferencebasic请求消息中的联络地址信息替换为所述代理服务器的ip地址后发送的;解析所述getconferencebasic请求消息;若所述getconferencebasic请求消息中联络地址信息与所述内网服务器中预存的代理服务器的ip地址相同,根据保存的代理服务器的ip地址及其数据端口号的对应关系,确定所述ip地址的代理服务器对应的数据端口号;将所述ip地址及确定的所述数据端口号携带在getconferencebasic响应消息中发送给所述代理服务器;所述媒体流服务模块83,具体用于根据所述数据端口号向所述ip地址的代理服务器发送第二数据传输请求消息。

所述会话初始协议服务模块81,还用于发送第二sip请求消息至所述代理服务器,以使所述代理服务器将传输所述第二sip请求消息的传输控制协议tcpsocket保存为sipssocket,并采用保存的所述sipssocket转发所述getconferencebasic请求消息。

所述会话初始协议服务模块81,还用于接收第一会sip请求消息;所述内网服务模块,还用于解析所述第一sip请求消息,获取所述第一sip请求消息中的联络地址信息;若解析得到的所述联络地址信息与所述内网服务器中预存的代理服务器的ip地址相同,向所述代理服务器发送socket配对请求消息。

本发明实施例提供的基于内外网的数据通讯装置应用于内网服务器。

代理服务器生成了第一socket和第二socket之间的映射,因此位于外部网络的终端与内网服务器之间可以进行数据信息的交互。终端可以通过第一socket将数据信息发送给代理服务器,代理服务器根据生成的第一socket和第二socket之间的映射,查找该第一socket映射的第二socket,将该数据信息通过第二socket发送至内网服务器。该过程无需人工在出口路由器上配置内部网络服务器的某个端口与外部网络的某个端口的映射,解决了路由器选择的限制以及在拨号网络环境下重新配置出口路由器的问题,并且保证了内外网的准确通讯。

实施例10:

图9为本发明实施例提供的一种基于内外网的数据通讯系统结构示意图,所述系统包括图7所示的应用于代理服务器91的基于内外网的数据通讯装置、图8所示的应用于内网服务器92的基于内外网的数据通讯装置、以及位于外部网络的终端93。

现结合图9,对位于外部网络的终端93和内网服务器92之间的数据通讯过程进行详细说明。

内网服务器92通过会话初始协议服务模块发送第二sip请求消息至代理服务器91;代理服务器91通过会话初始协议代理模块接收该第二sip请求消息并将传输该第二sip请求消息的tcpsocket标记为sipssocket,并进行存储。

位于外部网络的终端93发送getconferencebasic请求消息至代理服务器91,代理服务器91通过会话初始协议代理模块将getconferencebasic请求消息的联络地址信息替换为代理服务器91的ip地址,并将地址替换后的getconferencebasic请求消息通过sipssocket转发至内网服务器92。

内网服务器92预存有代理服务器91的ip地址以及与代理服务器91的ip地址对应的数据端口号,内网服务器92通过会话初始协议服务模块接收getconferencebasic请求消息,若检测到getconferencebasic请求消息的联络地址信息与预存的代理服务器91的ip地址相同,生成getconferencebasic响应消息并添加该预存的代理服务器91的ip地址以及与该ip地址对应的数据端口号,并且将该getconferencebasic响应消息通过sipssocket发送至代理服务器91。

代理服务器91通过会话初始协议代理模块接收该getconferencebasic响应消息,并转发至位于外部网络的终端93。位于外部网络的终端93根据getconferencebasic响应消息中代理服务器91的ip地址以及相应的数据端口号,向代理服务器91相应的数据端口号发送第一数据传输请求。

上述为建立位于外部网络的终端93与代理服务器91之间的第一数据信息交互通道的过程。

为了建立内网服务器92与位于外部网络的终端93之间的会话,以及建立内网服务器92与代理服务器91之间的第二数据信息交互通道,并且将第一数据信息交互通道和第二数据信息交互通道进行配对,从而保证位于外部网络的终端93发送的数据信息能够传输到内网服务器92。位于外部网络的终端93发送第一sip请求消息至代理服务器91,代理服务器91通过会话初始协议代理模块接收第一sip请求消息并解析第一sip请求消息中携带的源端的标识信息,得到位于外部网络的终端93的标识信息,建立位于外部网络的终端93的标识信息与传输第一sip请求消息的tcpsocket之间的映射。在上述过程中代理服务器解析第一sip请求消息的from字段,得到传输第一sip请求消息的位于外部网络的终端93的id,这里每个终端的id各不相同,建立该终端的id与发送第一sip请求消息的tcpsocket的映射,例如位于外部网络的终端93的id为aa,传输第一sip请求消息的tcpsocket为aatcpsocket,则建立aa到aatcpsocket的映射。

代理服务器91通过会话初始协议代理模块将第一sip请求消息中的联络地址信息替换为代理服务器91的ip地址,并将地址替换后的第一sip请求消息,通过sipssocket转发至内网服务器92。

内网服务器92预存有代理服务器91的ip地址以及与该ip地址对应的数据端口号,内网服务器92通过内网服务模块解析第一sip请求消息,若得到的第一sip请求消息的联络地址信息与预存的代理服务器91的ip地址相同,内网服务器92根据预存的代理服务器91的ip地址以及与该ip地址对应的数据端口号通过媒体流服务模块向代理服务器91的相应的数据端口发送第二数据请求。具体的,内网服务器92生成并发送增加客户端(addclient)消息至媒体流服务模块,并在addclient消息中添加网络连接代理端口(proxyraknetport)、源自代理(fromproxy)字段并对其对应的内容进行设置,例如将fromproxy字段对应的内容设置为true,将proxyraknetport字段对应的内容设置为内网服务器91预存的proxyraknetport端口号,当然添加的字段也不仅限于此;媒体流服务模块检测到addclient消息中带有fromproxy字段并且该字段对应的内容为true,媒体流服务模块创建raknetclient,并根据proxyraknetport字段的内容向代理服务器91相应的数据端口号发送第二数据传输请求。内网服务器92发送socket配对请求消息至代理服务器91,较佳的,socket配对请求消息携带有位于外部网络的终端93的发送第一数据传输请求的终端端口号和内网服务器92的发送第二数据传输请求的内网服务器端口号。

代理服务器91的代理服务模块根据socket配对请求消息,建立传输位于外部网络的终端93发送的第一数据传输请求的第一socket与传输内网服务器92发送的第二数据传输请求的第二socket之间的映射。

内网服务器92通过会话初始协议服务模块根据第一sip请求消息生成第一sip响应消息,并发送至代理服务器91,代理服务器91的会话初始协议代理模块解析第一sip响应消息,将第一sip响应消息转发至位于外部网络的终端93,具体的,因为第一sip响应消息from字段对应的内容与第一sip请求消息from字段对应的内容相同,得到第一sip响应消息中from字段对应的内容即位于外部网络的终端93的id,根据该id与tcpsocket的映射,将第一sip响应消息发送至位于外部网络的终端93。

位于外部网络的终端93收到第一sip响应消息,将通过第一socket发送数据信息至代理服务器91,代理服务器91通过媒体流代理模块将数据信息发送至内网服务器92,从而完成内外网的通讯。

并且内网服务器92可以周期性的向代理服务器91发送proxyhearbeat消息,维护两者之间的连接,proxyhearbeat消息机制为现有技术在此不再赘述,会话初始协议代理模块向会话初始协议服务模块主动连接,即主动发送第二sip请求消息完成两者之间的连接。

本发明实施例通过代理服务器91完成内网服务器92与位于外部网络的终端93之间的通讯,而位于内部网络的终端与位于外部网络的终端93进行多媒体会议时,位于内部网络的终端与内网服务器92完成数据的交互为现有技术在此不再赘述,本发明通过上述方法完成位于外部网络的终端93与内网服务器92之间进行数据的交互,从而实现了位于内部网络的终端与位于外部网络的终端93在内网服务器的参与下完成多媒体会议。

本发明实施例提供了一种基于内外网的数据通讯系统,通过接收位于外部网络的终端通过第一socket发送的第一数据传输请求消息;并接收内网服务器通过第二socket发送的第二数据传输请求消息;接收所述内网服务器发送的socket配对请求消息,生成所述第一socket和所述第二socket之间的映射;接收所述终端通过所述第一socket传输的数据信息,根据所述第一socket与所述第二socket的映射,将所述数据信息通过所述第二socket发送至内网服务器。由于本发明实施例通过代理服务器完成内网服务器与位于外部网络的终端之间的通讯,无需人工在出口路由器上配置内网服务器的某个端口与外部网络的某个端口的映射,解决了路由器选择的限制以及在拨号网络环境下重新配置出口路由器的问题,并且保证了内外网的准确通讯。

对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1