CN102664901A - Sip呼叫中自适应穿越nat的方法 - Google Patents
Sip呼叫中自适应穿越nat的方法 Download PDFInfo
- Publication number
- CN102664901A CN102664901A CN2012101493666A CN201210149366A CN102664901A CN 102664901 A CN102664901 A CN 102664901A CN 2012101493666 A CN2012101493666 A CN 2012101493666A CN 201210149366 A CN201210149366 A CN 201210149366A CN 102664901 A CN102664901 A CN 102664901A
- Authority
- CN
- China
- Prior art keywords
- address
- transfer
- network address
- call
- public network
- 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.)
- Pending
Links
Images
Abstract
本发明公开了一种
SIP
呼叫中自适应穿越
NAT
的方法
,通过
对
NAT
设备情况能进行自适应分析,判定得出最优媒体传输路径,来完成
NAT
穿越。该方法可以通过检测网络状况,按照优先级顺序,选出最优媒体传输路径;能按照用户的实际情况来设定优先级策略,如果使用网络类型排序策略,可降低中转服务器的使用成本,如果使用
RTT
值排序策略,则可以使媒体传输质量达到最优;使用
SDP
的扩展属性,不会破坏其标准性。
Description
技术领域
本发明属于媒体数据网络传输技术领域,具体涉及一种SIP呼叫中自适应穿越NAT的方法。
背景技术
SIP是会话初始化协议的缩写,是一种用于建立、修改和终止VOIP电话通话的IP电话信号协议。随着互联网技术的迅猛发展,基于SIP等多媒体信令协议的语音和视频通信也得到了广泛应用。在当前IPv4环境下,由于我国IP地址严重缺乏,用户必须使用带有NAT功能的网络接入设备,从而使用私有地址扩展其地址空间。NAT设备带来一个问题,处于不同私网中的SIP用户,媒体数据却无法完成互通。
目前解决私网穿越问题主要有STUN、TURN等协议。STUN(SimpleTraversal of UDP Through NAT),即UDP对NAT的简单穿越方式。SIP终端(即STUN Client)向NAT外的STUN Server查询其映射地址(通常情况下就是公网地址)。终端获取到公网地址后,并将其填入到SIP消息中,告知对端。由于通过STUN协议已在NAT上建立的NAT映射表项,故媒体流可顺利穿越NAT。STUN的缺点是不支持对称NAT(Symmetric NAT)类型穿越。
TURN(Traversal Using Relay NAT),即通过Relay方式穿越NAT。SIP终端向TURN Server请求建立中转会话和中转地址,用该地址作为对外的媒体流接收地址,填入到SIP消息中,对端收到消息后,发送媒体流到该中转地址,即数据流经过TURN Server进行Relay转发,这种方式可解决所有的NAT穿越问题,但所有的媒体数据需要经过TURN Server转发,增加了中转服务器的成本开销。
由于STUN无法完成所有情况的NAT穿越,而TURN虽然可以解决穿越问题,但全部使用这种方式会大量消耗服务器资源,本发明因此而来。
发明内容
本发明目的在于提供一种SIP呼叫中自适应穿越NAT的方法,解决了现有技术中STUN无法完成所有情况的NAT穿越,而TURN虽然可以解决穿越问题,但全部使用这种方式会大量消耗服务器资源等问题。
为了解决现有技术中的这些问题,本发明提供的技术方案是:
一种SIP呼叫中自适应穿越NAT的方法,其穿越的公共网络上设置有同时具备STUN Server和TURN Server功能的中转服务器,其特点在于所述方法包括以下步骤:
(1)呼叫发起方向呼叫接收方发起呼叫时,先到中转服务器上获取公网地址和中转地址,然后在呼叫请求中携带公网地址、中转地址和本身的私网地址至呼叫接收方;
(2)呼叫接收方收到呼叫请求后,先获取本地媒体地址,并通过中转服务器获取相应的公网地址,然后将呼叫请求中的私网地址、公网地址和中转地址取出,通过媒体地址分别向私网地址、公网地址和中转地址发送网络状况测试包;
(3)呼叫接收方收到网络状况测试包的响应包时或者等待超时时,根据对方私网地址、公网地址和中转地址的到达记录或往返时延RTT确定呼叫应答时的网络地址类型;
(4)呼叫发起方收到应答后,根据呼叫接收方应答信息选择的网络地址类型进行媒体数据传输。
优选的,所述方法步骤(3)中当呼叫接收方收到网络状况测试包的响应包,表明向私网地址、公网地址和中转地址的网络畅通,则设置呼叫应答时的网络地址类型的优先级次序是先私网地址,再之公网地址,次之中转地址。
优选的,所述方法步骤(3)中当呼叫接收方等待超时时,计算向私网地址、公网地址和中转地址发送测试包的RTT值,并按RTT值进行排序,选取RTT值最小的地址作为呼叫应答时的网络地址类型。
优选的,所述方法步骤(4)中当呼叫应答时的网络地址类型为私网地址或公网地址时,呼叫发起方直接向其目的地址发送媒体数据,并删除中转服务器上的会话;如果呼叫应答时的网络地址类型是中转地址,呼叫发起方则向中转地址发送数据,由中转服务器进行数据转发给呼叫接收方。
优选的,所述方法呼叫双方消息遵循offer/answer模型。
本发明的方法能自适应各种网络情况,完成NAT穿越,克服了各种NAT穿越技术存在的不足,能按照用户设定的策略自适应完成NAT穿越。
本发明的技术方案采取如下的步骤实现自适应网络穿越:
A、在公网上建立一个中转服务器(包含STUN Server和TURN Server的功能),可用于终端获取公网地址(地址包含IP和端口)及转发数据;
B、假定呼叫中INVITE和200 OK分别携带SDP Offer和Answer。主叫发起呼叫时,先到中转服务器上获取公网地址和中转地址,然后将这两个地址和私网地址,通过SDP中的扩展属性,携带至被叫;
C、被叫收到呼叫后,首先获取本地媒体地址,并通过中转服务器获取相应的公网地址,然后将SDP其中的私网地址、公网地址和中转地址取出,通过媒体地址给这三个地址各发一组测试包,测试其网络状况;
D、被叫收到测试响应包或等待超时后,记录三个地址是否可达和往返时延RTT,再按照用户设定的策略确定最后的目的地址。对于可达地址,有两种选取策略:
①按私网>公网>中转优先级从高到低来选取;
②按RTT值来排序,选取RTT值最小的地址;
被叫在构造SDP时,在SDP中标识选定的地址类型,同时根据该地址类型设定其媒体地址:如果选定地址类型为私网地址,携带被叫的私网地址,否则携带公网地址;
E.主叫收到应答后,分析被叫SDP中选择的网络地址类型:如果是私网或公网,则直接向其目的地址发送媒体数据,并删除中转服务器上的会话;如果是中转,则向中转地址发送数据,由中转服务器进行数据转发。
相对于现有技术中的方案,本发明的优点是:
本发明综合利用了STUN和TURN的优点,对NAT设备情况能进行自适应分析,判定得出最优媒体传输路径,来完成NAT穿越。有如下优点:1、通过检测网络状况,按照优先级顺序,选出最优媒体传输路径;2、能按照用户的实际情况来设定优先级策略,如果使用网络类型排序策略,可降低中转服务器的使用成本,如果使用RTT值排序策略,则可以使媒体传输质量达到最优;3、使用SDP的扩展属性,不会破坏其标准性。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1是本发明实施例的系统网络架构示意图;
图2是本发明实施例主叫的呼叫处理流程图;
图3是本发明实施例被叫的呼叫处理流程图。
具体实施方式
以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。
实施例
本实施例在SIP终端发起呼叫时,通过中转服务器获取本端的公网地址(地址包含IP和端口)和中转地址,和私网地址一起,发送到对端;对端对这三个地址进行探测,并从可达地址中按用户设定的策略选取最优目的地址,并通过SIP消息告知呼叫发起端。
地址选择策略包含两种:1、按私网>公网>中转优先级从高到低来选取,可尽量减少对中转服务器的依赖;2、按RTT值来排序,选取RTT值最小的地址,可以使媒体传输质量达到最佳。这样,SIP终端可在所有的网络情况下完成NAT穿越,并根据网络情况自适应选择最佳传输路径,尽可能满足用户各策略的需求。
RTT值计算方法:发送端在时间t1向接收端发送测试包,接收端收到测试包立即发送响应包,发送端在时间t2收到响应包,RTT值就是t2-t1的值。
参见附图1,它是本系统的网络架构图。由图1可见,完成NAT穿越时,数据流可以走TURN中转方式,也可以走STUN方式。需要用户策略根据网络类型优先级选取目标地址。
参见附图2,SIP终端A发起呼叫时,获取到本地的IP:Port为172.16.123.156:15001,然后向中转服务器发送Binding Request和AllocateRequest消息,来获取公网地址和转发地址。收到Binding Response,可得到公网IP:Port为218.16.12.142:7805;收到Allocate Response,可得到转发IP:Port为211.133.52.12:10012。将这三个地址填入到SDP中,发送至SIP终端B。该SDP内容如下:
v=0
o=termA 0 0 IN IP4 172.16.123.156
s=-
c=IN IP4 172.16.123.156
a=stunip:218.16.12.142
a=turnip:211.133.52.12
t=0 0
m=audio 15001 RTP/AVP 0
a=stunport:7805
a=turnport:10012
a=rtpmap:0 PCMU/8000
a=ptime:20
参见附图3,SIP终端B获取到终端A的呼叫(包含SDP)后,获取本地私网IP:Port为192.168.0.12:12003,并通过Binding Request向中转服务器获取到公网IP:Port为183.105.23.16:9556。然后获取终端A的私网、公网、转发地址后,进行网络探测,并设定探测超时时长为1秒。
探测1秒超时后,发现没有收到终端A私网地址的响应包,但收到公网地址218.16.12.142:7805和转发地址211.133.52.12:10012的响应包,并计算出RTT值分别为523和210毫秒。
假定用户策略为按私网>公网>中转优先级从高到低来选取,由于私网不同,则会选择终端A的公网IP:Port作为媒体传输目的地址,在SDP的S行标记为stun,并携带其公网IP:Port,回响应消息告知主叫。这样可避免使用中转服务器进行转发。终端B发出的SDP为:
v=0
o=termB 0 0 IN IP4 183.105.23.16
s=stun
c=IN IP4 183.105.23.16
t=0 0
m=audio 9556 RTP/AVP 0
a=rtpmap:0PCMU/8000
a=ptime:20
假定用户策略为选取RTT值最小的地址作为目标地址,而且SIP终端A和B分别处于电信和联通的网络中,而中转服务器位于电信和联通的双通机房中。
根据选取策略,与终端A转发地址211.133.52.12:10012的RTT值最小,被叫选择该转发地址作为媒体传输目的地址,在SDP的S行标记为turn,并携带其公网IP:Port,然后回响应消息告知主叫。这样虽然会消耗中转服务器的资源,但能是媒体传输质量达到最优,保证用户的体验效果。终端B发出的SDP为:
v=0
o=termB 0 0 IN IP4 183.105.23.16
s=turn
c=IN IP4 183.105.23.16
t=0 0
m=audio 9556 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=ptime:20
上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
Claims (5)
1. 一种SIP呼叫中自适应穿越NAT的方法,其穿越的公共网络上设置有同时具备STUN Server和TURN Server功能的中转服务器,其特点在于所述方法包括以下步骤:
(1)呼叫发起方向呼叫接收方发起呼叫时,先到中转服务器上获取公网地址和中转地址,然后在呼叫请求中携带公网地址、中转地址和本身的私网地址至呼叫接收方;
(2)呼叫接收方收到呼叫请求后,先获取本地媒体地址,并通过中转服务器获取相应的公网地址,然后将呼叫请求中的私网地址、公网地址和中转地址取出,通过媒体地址分别向私网地址、公网地址和中转地址发送网络状况测试包;
(3)呼叫接收方收到网络状况测试包的响应包时或者等待超时时,根据对方私网地址、公网地址和中转地址的到达记录或往返时延RTT确定呼叫应答时的网络地址类型;
(4)呼叫发起方收到应答后,根据呼叫接收方应答信息选择的网络地址类型进行媒体数据传输。
2. 根据权利要求1所述的方法,其特征在于所述方法步骤(3)中当呼叫接收方收到网络状况测试包的响应包,表明向私网地址、公网地址和中转地址的网络畅通,则设置呼叫应答时的网络地址类型的优先级次序是先私网地址,再之公网地址,次之中转地址。
3. 根据权利要求1所述的方法,其特征在于所述方法步骤(3)中当呼叫接收方等待测试响应包超时时,计算向私网地址、公网地址和中转地址发送测试包的RTT值,并按RTT值进行排序,选取RTT值最小的地址作为呼叫应答时的网络地址类型。
4. 根据权利要求1所述的方法,其特征在于所述方法步骤(4)中当呼叫应答时的网络地址类型为私网地址或公网地址时,呼叫发起方直接向其目的地址发送媒体数据,并删除中转服务器上的会话;如果呼叫应答时的网络地址类型是中转地址,呼叫发起方则向中转地址发送数据,由中转服务器进行数据转发给呼叫接收方。
5. 根据权利要求1所述的方法,其特征在于所述方法呼叫双方消息遵循offer/answer模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101493666A CN102664901A (zh) | 2012-05-15 | 2012-05-15 | Sip呼叫中自适应穿越nat的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101493666A CN102664901A (zh) | 2012-05-15 | 2012-05-15 | Sip呼叫中自适应穿越nat的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102664901A true CN102664901A (zh) | 2012-09-12 |
Family
ID=46774311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101493666A Pending CN102664901A (zh) | 2012-05-15 | 2012-05-15 | Sip呼叫中自适应穿越nat的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102664901A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102984696A (zh) * | 2012-12-04 | 2013-03-20 | 中国联合网络通信集团有限公司 | 基于移动终端的ip通信方法、设备和系统 |
CN103139209A (zh) * | 2013-02-01 | 2013-06-05 | 杭州常春藤软件科技有限公司 | 媒体码流获取方法、unisaf服务器及软交换通信系统 |
CN106131084A (zh) * | 2016-08-30 | 2016-11-16 | 迈普通信技术股份有限公司 | Rtp媒体流穿越方法、sip服务器和sip通信系统 |
CN106559508A (zh) * | 2015-09-29 | 2017-04-05 | 深圳市潮流网络技术有限公司 | 一种服务器公私网ip地址的自动切换方法 |
WO2017135254A1 (ja) * | 2016-02-02 | 2017-08-10 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 端末、中継装置選択装置、通信方法、中継装置選択方法、及びプログラム |
WO2017206600A1 (zh) * | 2016-05-30 | 2017-12-07 | 深圳市鼎盛智能科技有限公司 | 通话连接方法及客户端 |
CN109510810A (zh) * | 2018-09-20 | 2019-03-22 | 广州亦云信息技术股份有限公司 | 一种基于p2p的虚拟资源访问方法及装置 |
WO2019184262A1 (zh) * | 2018-03-28 | 2019-10-03 | 北京大米科技有限公司 | 多类型媒体数据网络地址转换穿越方法、终端及系统 |
CN111131315A (zh) * | 2019-12-31 | 2020-05-08 | 西安抱朴通信科技有限公司 | 一种会话连接方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101257433A (zh) * | 2007-03-01 | 2008-09-03 | 华为技术有限公司 | 实现网络地址转换穿越的方法和系统 |
CN101860536A (zh) * | 2010-05-31 | 2010-10-13 | 北京邮电大学 | 一种基于sip软终端的私网穿越系统和方法 |
CN102025594A (zh) * | 2009-09-14 | 2011-04-20 | 中国科学院声学研究所 | Nat环境下的路由动态调整方法和系统 |
-
2012
- 2012-05-15 CN CN2012101493666A patent/CN102664901A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101257433A (zh) * | 2007-03-01 | 2008-09-03 | 华为技术有限公司 | 实现网络地址转换穿越的方法和系统 |
CN102025594A (zh) * | 2009-09-14 | 2011-04-20 | 中国科学院声学研究所 | Nat环境下的路由动态调整方法和系统 |
CN101860536A (zh) * | 2010-05-31 | 2010-10-13 | 北京邮电大学 | 一种基于sip软终端的私网穿越系统和方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102984696B (zh) * | 2012-12-04 | 2015-09-16 | 中国联合网络通信集团有限公司 | 基于移动终端的ip通信方法、设备和系统 |
CN102984696A (zh) * | 2012-12-04 | 2013-03-20 | 中国联合网络通信集团有限公司 | 基于移动终端的ip通信方法、设备和系统 |
CN103139209A (zh) * | 2013-02-01 | 2013-06-05 | 杭州常春藤软件科技有限公司 | 媒体码流获取方法、unisaf服务器及软交换通信系统 |
CN103139209B (zh) * | 2013-02-01 | 2016-01-13 | 杭州常春藤软件科技有限公司 | 媒体码流获取方法、unisaf服务器及软交换通信系统 |
CN106559508A (zh) * | 2015-09-29 | 2017-04-05 | 深圳市潮流网络技术有限公司 | 一种服务器公私网ip地址的自动切换方法 |
WO2017135254A1 (ja) * | 2016-02-02 | 2017-08-10 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 端末、中継装置選択装置、通信方法、中継装置選択方法、及びプログラム |
JP2017139567A (ja) * | 2016-02-02 | 2017-08-10 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 端末、中継装置選択装置、通信方法、中継装置選択方法、及びプログラム |
US11178593B2 (en) | 2016-02-02 | 2021-11-16 | Ntt Communications Corporation | Terminal, relay apparatus selection apparatus, communication method, relay apparatus selection method, and program |
WO2017206600A1 (zh) * | 2016-05-30 | 2017-12-07 | 深圳市鼎盛智能科技有限公司 | 通话连接方法及客户端 |
CN106131084A (zh) * | 2016-08-30 | 2016-11-16 | 迈普通信技术股份有限公司 | Rtp媒体流穿越方法、sip服务器和sip通信系统 |
CN106131084B (zh) * | 2016-08-30 | 2019-07-02 | 迈普通信技术股份有限公司 | Rtp媒体流穿越方法、sip服务器和sip通信系统 |
WO2019184262A1 (zh) * | 2018-03-28 | 2019-10-03 | 北京大米科技有限公司 | 多类型媒体数据网络地址转换穿越方法、终端及系统 |
CN109510810A (zh) * | 2018-09-20 | 2019-03-22 | 广州亦云信息技术股份有限公司 | 一种基于p2p的虚拟资源访问方法及装置 |
CN111131315A (zh) * | 2019-12-31 | 2020-05-08 | 西安抱朴通信科技有限公司 | 一种会话连接方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102664901A (zh) | Sip呼叫中自适应穿越nat的方法 | |
US8082324B2 (en) | Method of establishing a tunnel between network terminal devices passing through firewall | |
CN103634299B (zh) | 基于多连接的实时流媒体传输终端与方法 | |
TWI357749B (zh) | ||
KR101369106B1 (ko) | 세션의 라우트 선택을 위한 방법 및 수단 | |
US7792116B2 (en) | Method and device for interworking between internet protocol networks | |
US8340089B2 (en) | Apparatus and method for managing data transfer in VoIP gateway | |
CN104040998A (zh) | 基于ice的nat遍历 | |
JP4728586B2 (ja) | Ip電話方法 | |
CN101478835B (zh) | 基于1X EvDO-WiFi无线路由器的VoWLAN系统 | |
US20130308628A1 (en) | Nat traversal for voip | |
US20110019650A1 (en) | Methods and apparatus for optimization of device capability exchange in a network | |
CN103107983B (zh) | 网络系统的数据管理方法及其相关系统 | |
US9497108B2 (en) | Media sessions | |
TW201320804A (zh) | 網路系統之連線建立管理方法及其相關系統 | |
US20130007291A1 (en) | MEDIA INTERWORKING IN IPv4 AND IPv6 SYSTEMS | |
WO2009074846A1 (en) | Location tagging method for packet based signalling | |
CN102497369A (zh) | 一种在voip语音通信系统中实现多wan连接的路由方法 | |
US20050044247A1 (en) | Communication between users located behind a NAT device | |
US20070204065A1 (en) | Method and system for providing communication protocol interoperability | |
US8374178B2 (en) | Apparatus and method for supporting NAT traversal in voice over internet protocol system | |
CN102984402A (zh) | 一种VoIP数据包的处理方法及系统 | |
AU2005239680B2 (en) | VOIP (voice over internet protocol) call processing | |
US8457111B2 (en) | Voice communication method and system in ubiquitous robotic companion environment | |
CN101873392B (zh) | 一种基于VoIP的呼叫方法、系统及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120912 |