具体实施方式
本发明实施例提供了一种数据传输方法、相关装置及其系统,用于解决公网终端的单向码流或间歇性码流穿越NAT设备向私网终端传输的问题。
请参阅图1,本发明实施例中数据传输方法的一个实施例包括:
101、建立SIP通信;
当公网终端与私网终端需要进行SIP业务时,私网终端与公网终端之间可以首先建立SIP通信。
私网终端与公网终端建立SIP通信的过程为本领域技术人员的公知常识,具体此处不作限定。
102、获取公网发送地址;
在建立私网终端和公网终端的SIP通信后,私网终端可以通过SIP信令获取公网终端发送的公网发送地址,该公网发送地址用于公网终端向私网终端发送码流。
本实施例中私网终端可以通过多种方式获取公网发送地址,具体将在后续的实施例中进行详细描述。
103、发送存活包;
私网终端在获取到公网发送地址后,每隔预置周期,可以通过NAT设备向该公网发送地址发送存活包,该预置的周期时间小于NAT设备中建立的该私网终端的私网地址与该公网发送地址之间的映射关系的失效时间。
本实施例中,NAT设备上保存的映射关系通常会设置有一个失效时间,若在该失效时间内私网终端没有向公网终端发送码流,则该私网终端的私网地址与该公网终端的公网地址之间的映射关系就会失效。所以,在建立私网地址与公网发送地址之间的映射关系后,私网终端需要每隔预置周期通过NAT设备向该公网发送地址发送存活包,以保持该映射关系,且该预置周期的时间要小于NAT设备中该映射关系的失效时间。
在存活包经过NAT设备时,NAT设备将存活包的源地址转换为可以在公共网络传输的地址,该地址是采用静态映射,动态映射,动态端口映射的方式生成的,同时NAT设备也会建立或保持私网地址与公网发送地址之间的映射关系:(私网地址,私网地址经过NAT转换后的地址,公网发送地址)。
存活包的源地址即私网终端的私网地址,在NAT设备建立私网地址与公网发送地址之间的映射关系后,当公网终端向私网终端发送码流时,NAT设备就可以利用该映射关系对码流进行反向映射,从而转发至私网终端。
在单向码流传输过程中,由于只有公网终端向私网终端发送码流,私网终端不会向公网终端发送码流,所以该公网终端只存在公网发送地址,私网终端需要向该公网发送地址发送存活包才能使得公网终端接收到该存活包,并且使得NAT设备可以建立或保持私网地址与公网发送地址之间的映射关系。
本实施例中,私网终端与公网终端建立SIP通信后,私网终端获取公网发送地址,并通过NAT设备向该公网发送地址发送存活包,该存活包可以使得NAT设备建立或保持私网终端的私网地址与该公网发送地址之间的映射关系,使得公网终端在进行单向码流或间歇性码流传输时,能够在NAT设备中找到对应的映射关系,从而实现公网终端的码流穿越NAT设备向私网终端的传输。
请参阅图2,本发明实施例中数据传输方法的另一个实施例包括:
201、建立SIP通信;
本实施例中的步骤201的内容与前述图1所示的实施例中步骤101的内容相同,此处不再赘述。
202、接收通信请求;
私网终端接收公网终端发送的传输单向码流请求,该传输单向码流请求用于表示公网终端将要向私网终端发送单向码流,该传输单向码流请求具体可以通过SIP信令进行发送。
具体的单向码流可以是辅流,只有一方在发送,对端只负责接收,而不会向发送方发送码流。
203、获取公网发送地址;
本实施例中,私网终端获取公网发送地址具体可以使用以下几种方式:
(1)、私网终端从传输单向码流请求中获取公网发送地址:
公网终端可以对传输单向码流请求进行扩展,使用该请求中的扩展位携带公网终端的公网发送地址。
当私网终端在接收到公网终端发送的传输单向码流请求后,由于该传输单向码流请求中携带有公网发送地址,因此,私网终端可以从公网终端发送的传输单向码流请求中提取出该公网发送地址。
(2)、私网终端从公网终端主动发送的SIP信令中获取公网发送地址:
若公网终端未在传输单向码流请求中携带公网发送地址,那么公网终端也可以使用通知INFO消息携带公网发送地址,并主动将INFO消息发送给私网终端,私网终端可以从该INFO消息中提取出该公网发送地址。
需要说明的是,该INFO消息为SIP信令的一种,可以理解的是,除了INFO消息之外,公网终端还可以使用其他的SIP信令向私网终端发送公网发送地址,具体此处不作限定。
(3)、私网终端主动向公网终端请求公网发送地址:
当私网终端在接收到公网终端发送的传输单向码流请求后,若该传输单向码流请求中未携带公网发送地址,则私网终端可以等待公网终端发送的单向码流,若在预置的时长后仍未收到公网终端发送的单向码流,则私网终端可以向公网终端发送地址请求,该地址请求可以由私网终端通过SIP信令向公网终端发送,公网终端在收到该地址请求之后,可以通过例如INFO消息等SIP信令向私网终端反馈公网发送地址,则私网终端可以从例如INFO消息等SIP信令中提取出该公网发送地址。
上面举例说明了本实施例中私网终端获取公网发送地址的方式,可以理解的是,在实际应用中,私网终端还可以通过其他方式获取公网发送地址,具体此处不做限定。
204、发送存活包;
本实施例中的步骤204的内容与前述图1所示的实施例中步骤103的内容相同,此处不再赘述。
本实施例中,私网终端与公网终端建立SIP通信后,私网终端获取公网发送地址,并通过NAT设备向该公网发送地址发送存活包,该存活包可以使得NAT设备建立或保持私网终端的私网地址与该公网发送地址之间的映射关系,使得公网终端在进行单向码流或间歇性码流传输时,能够在NAT设备中找到对应的映射关系,从而实现公网终端的码流穿越NAT设备向私网终端的传输;
其次,本实施例中,私网终端可以通过多种方式获取到公网发送地址,所以能够提高方案的使用灵活性。
上述图2所示的实施例是以单向码流的发送为例进行说明,在实际应用中,除了单向码流之外,还会存在间歇性的码流,具体的处理过程请参阅图3,本发明实施例中数据传输方法的另一个实施例包括:
301、码流交换;
私网终端与公网终端建立SIP通信之后,双方通过NAT设备向对端发送码流,例如双方正在进行远程视频会议,则会互相发送视频码流,NAT设备上保存私网地址与公网发送地址的映射关系。
302、暂停码流发送;
在SIP业务过程中,私网终端可以暂停码流的发送,例如视频会议进行了一段时间,私网终端需要就前述视频会议的内容进行一次内部讨论,此时不希望将内部讨论过程的视频和音频信息传送给对端的公网终端,故而可以关闭视频码流的发送通道,或暂停码流发送。
303、发送存活包;
如果私网终端关闭视频码流的发送通道,或暂停码流发送的持续时间超过NAT设备上对应的映射关系的失效时间,则会导致该映射关系的失效,并且使公网终端后续发送的码流无法穿越NAT设备到达私网终端从而彻底中断视频会议。
为了避免出现上述情况,本实施例中,当私网终端关闭码流发送通道或暂停码流发送时,则私网终端每隔预置周期通过NAT设备向公网终端的公网发送地址发送存活包,以保持NAT设备中的映射关系,该预置周期小于该映射关系的失效时间。
304、重启码流发送;
私网终端关闭视频码流的发送通道,或暂停码流发送后,可以重新开启码流发送通道,继续向公网终端发送码流,例如内部讨论结束,继续进行视频会议。
305、停止发送存活包;
当私网终端重启码流发送通道或继续码流发送时,则NAT设备上的映射关系可以通过该数据码流来保持,为了避免不必要的数据传输,私网终端可以停止发送存活包。
本实施例中进行间歇性码流传输时,若私网终端关闭视频码流的发送通道,或暂停码流发送,则私网终端会主动发送存活包,以保持NAT设备中的映射关系,保证了公网终端发送的码流可以穿越NAT设备向私网终端传输;
其次,当私网终端重新开启码流发送通道,继续向公网终端发送码流时,私网终端可以停止发送存活包,从而避免不必要的数据传输,节约网络资源。
除了上述提到了单向码流以及间歇性码流可能会导致映射关系失效之外,在实际应用中,突发的码流,和断续的码流也可能导致NAT设备中的映射关系失效,具体的处理过程如下:
一、针对突发的码流:
在媒体通话中,某些码流不是持续存在的,是突发的。如果私网终端和公网终端已经建立了SIP的双向通道,在私网终端没有发送码流之前,NAT设备上不存在映射关系,所以公网终端的码流将无法穿越NAT设备。
因此,本实施例中,在建立了私网终端和公网终端之间的SIP双向通道之后,私网终端可以主动通过NAT设备向公网终端发送存活包,建立对应的映射关系。
二、断续的码流:
在上述SIP业务中,即使私网终端已经向公网终端发送了码流,在NAT设备中建立了对应的映射关系,但由于码流是断续的,有可能因断开的时间超过了映射关系的失效时间,而导致公网终端的码流将无法穿越NAT设备。
因此,本实施例中,在建立了私网终端和公网终端之间的SIP双向通道之后,私网终端可以每隔预置周期持续通过NAT设备发送存活包,以保持对应的映射关系。
为便于理解,下面以远端摄像机控制为例对突发码流以及断续码流进行说明:
远端摄像机控制是通过私网终端(例如控制端)发送控制数据(如:放大、缩小、左右移动)给公网终端(例如摄像机),该控制数据就是一种突发而又断续的码流。
控制端和摄像机之间的SIP双向通道建立之后,摄像机会持续向控制端发送视频数据,而只有控制端进行了控制操作之后,控制端才会向摄像机发送控制码流,而在控制端进行控制之前,摄像机发送的视频数据就成为了单向码流。
即使控制端已经进行过操作,在NAT设备上形成了对应的映射关系,但是如果超过映射关系的失效时间而又没有再次进行操作,则该映射关系将会失效,摄像机发送的视频数据则无法穿越NAT设备,所以在建立了控制端和摄像机之间的SIP双向通道之后,控制端可以每隔预置周期持续通过NAT设备向摄像机发送存活包,该预置周期小于该对应映射关系的失效时间,从而在NAT设备中建立和保持对应的映射关系。
上面仅以一些例子对本发明实施例中的应用场景进行了说明,可以理解的是,在实际应用中,还可以有更多的应用场景,具体此处不作限定。
上述实施例是从私网终端的角度对本发明数据传输方法进行描述的,下面从公网终端的角度对本发明数据传输方法进行描述,请参阅图4,本发明实施例中的数据传输方法另一实施例包括:
401、建立SIP通信;
本实施例中的步骤401的内容与前述图1所示的实施例中步骤101的内容相同,此处不再赘述。
402、发送公网发送地址;
本实施例中,公网终端可以通过如下一些方式向私网终端发送公网发送地址:
(1)、公网终端通过传输单向码流请求发送公网发送地址:
公网终端需要向私网终端传输单向码流时,公网终端可以向私网终端发送传输单向码流请求,该传输单向码流请求可以通过SIP信令实现,具体的,公网终端可以使用传输单向码流请求中的扩展位携带公网发送地址,公网终端就可以通过传输单向码流请求来发送公网发送地址。
(2)、公网终端主动发送包含公网发送地址的SIP信令:
若公网终端未在传输单向码流请求中携带公网发送地址,那么公网终端也可以使用通知INFO消息携带公网发送地址,并主动将INFO消息发送给私网终端。
需要说明的是,该INFO消息为SIP信令的一种,可以理解的是,除了INFO消息之外,公网终端还可以使用其他的SIP信令向私网终端发送公网发送地址,具体此处不作限定。
(3)、公网终端根据私网终端的请求发送公网发送地址:
公网终端向私网终端发送传输单向码流请求后,若该传输单向码流请求中未携带公网发送地址,则私网终端可以等待公网终端发送的单向码流,若在预置的时长后仍未收到公网终端发送的单向码流,则私网终端可以向公网终端发送地址请求,该地址请求可以由私网终端通过SIP信令向公网终端发送,公网终端在收到该地址请求之后,可以通过例如INFO消息等SIP信令向私网终端反馈公网发送地址。
上面举例说明了本实施例中公网终端向私网终端发送公网发送地址的方式,可以理解的是,在实际应用中,公网终端可以通过其他方式向私网终端发送公网发送地址,具体此处不做限定。
403、接收存活包;
公网终端向私网终端发送了公网发送地址之后,可以通过该公网发送地址接收私网终端所发送的存活包。
404、丢弃存活包;
由于私网终端发送存活包的目的是为了在NAT设备中建立或保持私网终端和公网终端的映射关系,所以公网终端通过公网发送地址接收到该存活包之后,可以直接丢弃该存活包。
为了便于理解,下面以一具体应用场景对上述的实施例中描述的数据传输方法进行详细描述,请参考图5,具体为:
501、SIP通信的建立;
当私网终端和公网终端之间需要进行SIP业务时,私网终端可以与公网终端建立SIP通信。
502、发送辅流请求;
若公网终端需要向私网终端发送辅流,则公网终端可以通过SIP信令向私网终端发送辅流请求,在该辅流请求中携带有公网终端的公网发送地址ip3。
503、接收并应答辅流请求;
私网终端接收公网终端发送的辅流请求。
本实施例中的辅流可以是视频流,用于向私网终端展示视频,属于点对点的单向码流,只有一方在发送辅流,而对端只接收辅流。
当私网终端确认可以接收该辅流之后,私网终端向公网终端应答该辅流请求。
504、获取公网发送地址;
私网终端在接收到公网终端发送的辅流请求后,私网终端在公网终端发送的辅流请求中提取ip3。
需要说明的是,本实施例中是以辅流请求中携带有公网终端的公网发送地址为例进行说明的,可以理解的是,在实际应用中,私网终端还可以通过其他方式获取公网发送地址,具体方式与前述图2所示的实施例中描述的方式类似,此处不再赘述。
505、发送存活包;
私网终端在获取到ip3后,每隔预置周期通过NAT设备向公网终端的ip3发送KeepAlive包(src_ip1,dst_ip3);该预置周期的时间要小于NAT设备中对应映射关系的失效时间。src_ip1为私网终端的私网地址,也是码流的接收地址。
506、建立映射关系;
NAT设备在接收到KeepAlive包(src_ip1,dst_ip3)之后,将KeepAlive包(src_ip1,dst_ip3)转换为KeepAlive包(src_ip2,dst_ip3),ip2为ip1在公共网络传输的地址,是NAT设备根据ip1采用静态映射,动态映射,动态端口映射的方式生成的。
NAT设备将ip1转换为ip2后,建立ip1与ip3的映射关系(ip1,ip2,ip3)。
507、发送转换后的存活包;
NAT设备将KeepAlive(src_ip2,dst_ip3)根据ip3发送给公网终端。
508、发送辅流;
公网终端在收到KeepAlive包(src_ip2,dst_ip3)后,确认NAT设备中已经存在公网发送地址与私网地址之间的映射关系,故可以开始发送辅流。
由于私网终端发送存活包的目的是为了在NAT设备中建立或保持私网地址和公网发送地址之间的映射关系,所以公网终端接收存活包后可以直接丢弃。
509、转发辅流;
NAT设备接收到公网终端发送的辅流(src_ip3,dst_ip2)之后,查询映射关系(ip1,ip2,ip3),将辅流的反向映射为(src_ip2,dst_ip1),发送至私网终端。
本实施例中,NAT设备上保存有映射关系,该映射关系可以为(ip1,ip2,ip3),其中ip1实际上是(私网地址+端口号),ip3实际上是(公网终端+端口号),在实际应用中,一般来说每一种媒体类型的码流会对应一个端口号,不同的媒体类型的码流使用的端口号不同,由于私网终端和公网终端之间往往需要传输多种不同的媒体类型,因此对于某私网终端以及某公网终端而言,NAT设备上可能保存有很多组不同的映射关系,区别仅在于端口号不相同,这样使得NAT设备需要使用大量的资源来存储和维护这些映射关系。
为减轻NAT设备的负担,本实施例中提出一种数据传输方法,具体请参阅图6,本发明实施例中数据传输方法的另一个实施例包括:
601、建立SIP通信;
当公网终端和私网终端之间需要传输码流数据时,公网终端和私网终端建立SIP通信,并通过SIP信令传输双方的控制指令。
602、协商通信端口;
私网终端与公网终端之间通过SIP信令进行协商,确定第一通信端口和第二通信端口。该第一通信端口为协商后私网终端的预置通信端口,该第二通信端口为协商后公网终端预置的通信端口。
私网终端与公网终端通过协商后确定了双方进行码流传输固定的通信端口,在之后所进行的码流传输中,无论是哪一种媒体类型的码流数据都通过该第一通信端口和第二通信端口进行收发。
603、私网终端发送码流;
当私网终端需要发送码流时,使用第一通信端口通过NAT设备向公网终端的第二通信端口发送码流。
该码流包含至少一个数据包,每个数据包中包括:属性标识,私网地址,公网发送地址,实时传输协议文件头(RTP Head,Real-time Transport Protocol)以及至少一种媒体数据。
该属性标识用于区分不同的媒体数据,便于公网终端分别对不同类型的媒体数据进行处理。
604、私网终端再次发送码流;
当私网终端需要再次向该公网终端发送码流时,无论是哪一种媒体类型的码流数据,都继续使用第一通信端口通过NAT设备向公网终端的第二通信端口进行发送。
在本实施例中,同一个私网终端通过NAT设备向同一个公网终端发送码流时,无论是哪一种媒体类型的码流数据,都统一使用一个预置通信端口进行收发,由于映射关系是根据通信端口、私网地址和公网发送地址建立的,所以在NAT设备中该私网终端与公网终端只需建立一种映射关系,节省了NAT设备上的链路资源。
上述从私网终端的角度进行了说明,下面从公网终端的角度进行说明,请参阅图7,本发明实施例中数据传输方法的另一个实施例包括:
701~703、本实施例中的步骤701至703的内容与前述图6所示的实施例中步骤601至603的内容相同,此处不再赘述。
704、公网终端接收码流;
公网终端通过NAT设备,从第二通信端口接收私网终端发送的码流;并根据该码流的数据包中包含的属性标识区分不同的媒体数据,对码流中不同的媒体数据进行相应的处理;
705、公网终端发送码流;
当公网终端需要向该私网终端发送码流时,无论这种码流的媒体类型是什么,无论这种码流之前有没有发送过,公网终端都可以使用第二通信端口通过NAT设备向私网终端的第一通信端口发送。
在本实施例中,公网终端需要向私网终端发送码流时,只要在之前NAT设备中已经保存有私网终端与公网终端的映射关系,无论码流的媒体类型是什么,无论是单向码流还是双向码流,都可以利用之前的映射关系进行码流的传输。
为了便于理解,下面以一具体应用场景对上述的实施例中描述的数据传输方法进行详细描述,具体为:
一、协商通信端口;
私网终端和公网终端在建立SIP通信后,通过SIP信令协商确定第一通信端口和第二通信端口,该第一通信端口为协商后私网终端的预置通信端口,该第二通信端口为协商后公网终端预置的通信端口。
二、私网终端通过第一通信端口发送码流;
私网终端首先通过NAT设备向公网终端对应的公网发送地址和预置的通信端口ip3+port3发送码流。假设私网终端的私网地址和其预置的通信端口为ip1+port1,在经过NAT设备时,ip1+port1被转换为公共网络传输的网络地址ip2+port2,并建立固定的映射关系(ip1+port1,ip2+port2,ip3+port3),ip1+port1与ip2+port2是一一对应的。NAT设备再根据映射关系向公网终端发送码流,而公网终端则通过预置的通信端口接收。
三、双方都复用预置的通信端口进行传输;
当私网终端需要再次向该公网终端发送码流时,无论再次发送的码流类型是否与首次发送的码流类型相同,都统一使用ip1+port1向ip3+port3发送,在经过NAT设备时就可以复用映射关系(ip1+port1,ip2+port2,ip3+port3)。
当公网终端需要向该私网终端发送码流时,假设该码流的媒体类型为辅流,而私网终端从未向公网终端发送过辅流,但只要上述映射关系(ip1+port1,ip2+port2,ip3+port3)没有失效,公网终端就能使用ip3+port3向ip2+port2发送,由于ip1+port1与ip2+port2是一一对应的,公网终端利用NAT设备中的(ip1+port1,ip2+port2,ip3+port3)就能反向映射到ip1+port1,辅流数据就能成功传输。
四、添加属性标识;
当所有媒体数据类型收发时都复用同一个通信端口,无论哪一方发送码流时,都需要为码流中的数据包添加属性标识。该属性标识可以在SIP通信过程中协商得到(如,音频可以为“001”,视频可以为“002”),还可以是其他形式的数据代码,具体此处不作限定。
在接收方收到码流后,可以先解析该属性标识,区分出视频、音频、辅流、远端摄像机控制数据等不同类型的媒体数据,再进行相应的媒体处理。
下面对用于执行上述数据传输方法的本发明私网终端的实施例进行说明,其逻辑结构请参考图8,本发明实施例中私网终端的一个实施例包括:
获取单元801,用于当本终端和公网终端之间的SIP通信建立之后,获取公网发送地址,该公网发送地址为公网终端向本终端发送码流的地址;
第一发送单元802,用于每隔预置周期通过NAT设备,向公网发送地址发送存活包,使得NAT设备建立或保持本终端的私网地址与公网发送地址之间的映射关系,该预置周期小于NAT设备中对应映射关系的失效时间。
本发明实施例中的私网终端还可以进一步包括:
第一接收单元803,用于接收公网终端发送的传输单向码流请求,并触发获取单元801从传输单向码流请求获取公网发送地址。
该传输单向码流请求可以是公网终端通过SIP信令发送的,该传输单向码流请求的扩展位可以携带公网发送地址。
或,本发明实施例中的私网终端还可以进一步包括:
第二接收单元804,用于接收公网终端主动发送的含有公网发送地址的SIP信令,并触发获取单元801从该SIP信令中获取公网发送地址。
或,本发明实施例中的私网终端还可以进一步包括:
第三接收单元805,用于接收公网终端发送的传输单向码流请求,该传输单向码流请求可以是公网终端通过SIP信令发送的;
第二发送单元806,用于当收到公网终端发送的传输单向码流请求起,经过预置时长后,若未收到公网终端发送的单向码流时,通过SIP信令向公网终端发送地址请求,该地址请求用于请求公网终端返回公网发送地址;
第四接收单元807,用于接收公网终端根据该地址请求发送的含有公网发送地址的SIP信令,并触发获取单元801从该SIP信令中获取公网发送地址。
为便于理解,下面以一具体应用场景对本发明实施例中私网终端的各个单元具体的交互过程进行描述:
当私网终端和公网终端之间的SIP通信建立之后,私网终端中的第一接收单元803接收公网终端发送的传输单向码流请求,并触发获取单元801从该传输单向码流请求中获取公网发送地址。
若传输单向码流请求未携带公网发送地址,则私网终端中的第二接收单元804可以接收公网终端发送的含有公网发送地址的SIP信令,并触发获取单元801从该SIP信令中获取公网发送地址。
私网终端获取公网发送地址还可以通过第三接收单元805、第二发送单元806和第四接收单元807实现:第三接收单元805接收公网终端发送的传输单向码流请求,该传输单向码流请求中没有携带公网发送地址;经过预置时长后,若未收到公网终端发送的单向码流,则私网终端的第二发送单元806可以向公网终端发送地址请求,该地址请求用于请求公网终端返回公网发送地址;当公网终端使用INFO消息返回公网发送地址时,私网终端的第四接收单元807接收公网发送的含有公网发送地址SIP信令,并触发获取单元801从该SIP信令中获取公网发送地址。
在获取公网发送地址后,第一发送单元802每隔预置周期通过NAT设备向公网终端的公网发送地址发送存活包,使得NAT设备建立或保持私网地址与公网发送地址之间的映射关系,该预置周期小于NAT设备中对应映射关系的失效时间。
下面对用于执行上述数据传输方法的本发明公网终端的实施例进行说明,其逻辑结构请参考图9,本发明实施例中公网终端的一个实施例包括:
地址发送单元901,用于当私网终端和本终端之间的SIP通信建立之后,向私网终端发送公网发送地址;
接收处理单元902,用于通过公网发送地址接收私网终端发送的存活包,并丢弃接收到的存活包。
本发明实施例中的地址发送单元901可以进一步包括:
第一请求发送模块9011,用于通过SIP信令向私网终端发送传输单向码流请求,在该传输单向码流请求中携带公网发送地址。
或,本发明实施例中的地址发送单元901可以进一步包括:
第一地址发送模块9012,用于主动向私网终端发送含有公网发送地址的SIP信令。
或,本发明实施例中的地址发送单元901可以进一步包括:
第二请求发送模块9013,用于通过SIP信令向私网终端发送传输单向码流请求;
请求接收模块9014,用于接收私网终端发送的地址请求;
第二地址发送模块9015,用于根据该地址请求向私网终端发送含有公网发送地址的SIP信令。
本发明实施例中公网终端的各个单元具体的交互过程如下:
当私网终端和公网终端之间的SIP通信建立之后,公网终端的第一请求发送模块9011可以通过SIP信令向私网终端发送包含公网发送地址的传输单向码流请求;
或,公网终端的第一地址发送模块9012主动向私网终端发送含有公网发送地址的SIP信令;
或,第二请求发送模块9013向私网终端发送未携带公网发送地址的传输单向码流请求后,公网终端的请求接收模块9014接收私网终端发送的地址请求,公网终端的第二地址发送模块9015根据该地址请求向私网终端发送含有公网发送地址的SIP信令。
接收处理单元902在私网终端获取到公网发送地址,并通过公网发送地址向公网终端发送存活包后,通过NAT设备接收私网终端发送的存活包。由于私网终端发送存活包的目的是为了在NAT设备中建立或保持私网终端和公网终端的映射关系,所以接收处理单元902接收存活包后可以直接丢弃。
下面对用于执行上述数据传输方法的本发明数据传输系统的实施例进行说明,其逻辑结构请参考图10,本发明实施例中数据传输系统的一个实施例包括:
私网终端1001,用于当和公网终端1003之间的SIP通信建立之后,获取公网发送地址,公网发送地址为公网终端1003向本终端发送码流的地址,每隔预置周期,向公网发送地址发送存活包,使得NAT设备1002根据存活包建立或保持本终端的私网地址与公网发送地址之间的映射关系,预置周期小于映射关系的失效时间;
NAT设备1002,用于对私网终端1001与公网终端1003之间的网络地址进行转换,接收私网终端1001发送的存活包,根据存活包建立或保持私网终端1001的私网地址与公网发送地址之间的映射关系;
公网终端1003,用于当本终端和私网终端1001之间的SIP通信建立之后,向私网终端1001发送公网发送地址,通过公网发送地址接收私网终端1001发送的存活包,并丢弃接收到的存活包。
上述系统应用于如图5所示的实施例中所描述的应用场景。
下面对用于执行上述数据传输方法的本发明数据传输系统的另一个实施例进行说明,其逻辑结构同样请参考图10,本发明实施例中数据传输系统的另一个实施例包括:
私网终端1001,用于当本终端和公网终端1003之间的SIP通信建立之后,与公网终端1003确定第一通信端口和第二通信端口,第一通信端口为协商后本终端的预置通信端口,第二通信端口为协商后公网终端1003预置的通信端口,当需要向公网终端1003发送各种媒体类型的码流时,复用第一通信端口向公网终端1003的第二通信端口发送码流;
NAT设备1002,用于对私网终端1001与公网终端1003之间的网络地址进行转换;
公网终端1003,用于当本终端和私网终端1001之间的SIP通信建立之后,与私网终端1001确定第一通信端口和第二通信端口,当需要向私网终端1001发送各种媒体类型的码流时,复用第二通信端口向私网终端1001的第一通信端口发送码流。
上述系统应用于如图6或7实施例中所描述的应用场景。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种数据传输方法、相关装置及其系统进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,因此,本说明书内容不应理解为对本发明的限制。