CN105516058B - 用于建立VoIP呼叫的方法和*** - Google Patents
用于建立VoIP呼叫的方法和*** Download PDFInfo
- Publication number
- CN105516058B CN105516058B CN201410495095.9A CN201410495095A CN105516058B CN 105516058 B CN105516058 B CN 105516058B CN 201410495095 A CN201410495095 A CN 201410495095A CN 105516058 B CN105516058 B CN 105516058B
- Authority
- CN
- China
- Prior art keywords
- call
- user terminal
- called user
- address
- candidate site
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种用于建立VoIP呼叫的方法和***。其中主叫用户终端向被叫用户终端发起呼叫时,判断自身是否为对称型NAT类型。若主叫用户终端自身不为对称型NAT类型,则执行第一呼叫建立流程;若主叫用户终端自身为对称型NAT类型,则主叫用户终端向呼叫服务器发送类型查询请求,以查询被叫用户终端的NAT类型。主叫用户终端在接收到呼叫服务器发送的查询响应后,判断被叫用户终端是否为对称型NAT类型。若被叫用户终端不为对称型NAT类型,则执行第一呼叫建立流程;若被叫用户终端为对称型NAT类型,则执行第二呼叫建立流程。通过根据主叫用户终端和被叫用户终端的NAT类型选择相应的呼叫流程,从而可省略冗余的步骤,大大加快呼叫建立的速度。
Description
技术领域
本发明涉及通信领域,特别涉及一种用于建立VoIP呼叫的方法和***。
背景技术
VoIP是互联网上非常流行的一种应用。由于NAT设备的广泛存在,一般采用ICE(Interactive Connection Establishment,IETF RFC5245)技术。该技术需要通信双方客户端分别执行以下过程:
1.收集客户端本地地址和在公网上的映射地址;
2.向中转服务器请求媒体中转服务并获得中转地址;
3.上述三个候选地址通过信令交互,主被叫两端分别形成3x3的候选地址对进行有效性验证;
4.选择能够互通的地址对作为媒体通路,建立起呼叫。
上述基于ICE的呼叫建立过程可以很好地穿越全部四种NAT:Full Cone NAT,IPRestricted NAT,Port Restricted NAT以及对称型NAT,但操作步骤多,导致呼叫建立的时间比较长。经过深入分析发现,其中的有些步骤其实是冗余的。只有当主叫和被叫双方同时处于对称型NAT类型时才需要执行申请媒体中转服务和获得中转地址的相关步骤。这一操作非常费时间而且容易因中转资源不足等原因而导致呼叫失败。
通过上述分析可知,ICE流程不考虑通话双方所处的防火墙类型,导致有些步骤存在冗余,呼叫建立时间长而且有时候会因为冗余步骤的失败导致整个呼叫建立的失败。
目前在IETF研究中的Trickle ICE技术,要解决的问题是加快呼叫建立过程,但Trickle ICE采用的方式是把ICE的各个步骤并行起来,边探测地址边进行地址交换。这样做带来的一个显著缺陷就是渐进式地反复地址交换会带来大量的信令交互,产生大量信令流量,这对于移动互联网应用而言是致命的缺陷。
发明内容
本发明实施例提供一种用于建立VoIP呼叫的方法和***。通过根据主叫用户终端和被叫用户终端的NAT类型选择相应的呼叫流程,从而可省略冗余的步骤,大大加快呼叫建立的速度。
根据本发明的一个方面,提供一种用于建立VoIP呼叫的方法,包括:
主叫用户终端向被叫用户终端发起呼叫时,判断自身是否为对称型NAT类型;
若主叫用户终端自身为对称型NAT类型,则主叫用户终端向呼叫服务器发送类型查询请求,以查询被叫用户终端的NAT类型;
主叫用户终端在接收到呼叫服务器发送的查询响应后,判断被叫用户终端是否为对称型NAT类型;
若被叫用户终端不为对称型NAT类型,则主叫用户终端向被叫用户终端发送第一呼叫请求,其中第一呼叫请求中包括第一候选地址,第一候选地址为主叫用户终端的本地地址和公网地址;
被叫用户终端接收到第一呼叫请求后,向主叫用户终端发送第一呼叫应答,其中第一呼叫应答包括第二候选地址,第二候选地址为被叫用户终端的本地地址和公网地址;
主叫用户终端和被叫用户终端分别利用第一候选地址和第二候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
在一个实施例中,主叫用户终端向被叫用户终端发送第一呼叫请求的步骤包括:
主叫用户终端查询自身的本地地址;
主叫用户终端通过STUN服务器获取自身的公网地址;
主叫用户终端将自身的本地地址和公网地址组装为第一候选地址,并向被叫用户终端发送第一呼叫请求。
在一个实施例中,被叫用户终端接收到第一呼叫请求后,向主叫用户终端发送第一呼叫应答的步骤包括:
被叫用户终端接收到第一呼叫请求后,查询自身的本地地址;
被叫用户终端通过STUN服务器获取自身的公网地址;
被叫用户终端将自身的本地地址和公网地址组装为第二候选地址,并向主叫用户终端发送第一呼叫应答。
在一个实施例中,若主叫用户终端自身不为对称型NAT类型,则执行主叫用户终端向被叫用户终端发送第一呼叫请求的步骤。
在一个实施例中,若被叫用户终端为对称型NAT类型,则主叫用户终端向被叫用户终端发送第二呼叫请求,其中第二呼叫请求中包括第三候选地址,第三候选地址为主叫用户终端的本地地址和中转服务器为主叫用户终端分配的中转地址;
被叫用户终端接收到第二呼叫请求后,向主叫用户终端发送第二呼叫应答,其中第二呼叫应答包括第四候选地址,第四候选地址为被叫用户终端的本地地址和公网地址;
主叫用户终端和被叫用户终端分别利用第三候选地址和第四候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
在一个实施例中,主叫用户终端向被叫用户终端发送第二呼叫请求的步骤包括:
主叫用户终端查询自身的本地地址;
主叫用户终端向中转服务器发送媒体中转服务请求,以便中转服务器为主叫用户终端分配中转资源,并将分配的中转地址发送给主叫用户终端;
主叫用户终端在接收到中转服务器提供的中转地址时,将自身的本地地址和中转服务器为主叫用户终端分配的中转地址组装为第三候选地址,并向被叫用户终端发送第三呼叫请求。
在一个实施例中,被叫用户终端接收到第二呼叫请求后,向主叫用户终端发送第二呼叫应答的步骤包括:
被叫用户终端接收到第二呼叫请求后,查询自身的本地地址;
被叫用户终端通过STUN服务器获取自身的公网地址;
被叫用户终端将自身的本地地址和公网地址组装为第四候选地址,并向主叫用户终端发送第四呼叫应答。
在一个实施例中,若被叫用户终端为对称型NAT类型,则主叫用户终端向被叫用户终端发送第二呼叫请求,其中第二呼叫请求中包括第五候选地址,第五候选地址为主叫用户终端的本地地址和公网地址;
被叫用户终端接收到第二呼叫请求后,向主叫用户终端发送第二呼叫应答,其中第二呼叫应答包括第六候选地址,第六候选地址为被叫用户终端的本地地址和中转服务器为被叫用户终端分配的中转地址;
主叫用户终端和被叫用户终端分别利用第五候选地址和第六候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
根据本发明的另一方面,提供一种用于建立VoIP呼叫的***,包括主叫终端、呼叫服务器和被叫终端,其中:
主叫用户终端,用于在向被叫用户终端发起呼叫时,判断自身是否为对称型NAT类型;若自身为对称型NAT类型,则向呼叫服务器发送类型查询请求;在接收到呼叫服务器发送的查询响应后,判断被叫用户终端是否为对称型NAT类型;若被叫用户终端不为对称型NAT类型,则向被叫用户终端发送第一呼叫请求,其中第一呼叫请求中包括第一候选地址,第一候选地址为主叫用户终端的本地地址和公网地址;在接收到被叫用户终端发送的第一呼叫应答后,利用第一候选地址和第二候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫;
呼叫服务器,用于在接收到类型查询请求后,查询被叫用户终端的NAT类型,并向主叫用户终端发送查询响应,查询响应中包括查询结果;
被叫用户终端,用于在接收到第一呼叫请求后,向主叫用户终端发送第一呼叫应答,其中第一呼叫应答包括第二候选地址,第二候选地址为被叫用户终端的本地地址和公网地址;利用第一候选地址和第二候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
在一个实施例中,***还包括STUN服务器,其中:
主叫用户终端具体在向被叫用户终端发送第一呼叫请求时,查询自身的本地地址;通过STUN服务器获取自身的公网地址;将自身的本地地址和公网地址组装为第一候选地址,并向被叫用户终端发送第一呼叫请求;
STUN服务器,用于向主叫用户终端提供主叫用户终端的公网地址。
在一个实施例中,被叫用户终端具体在接收到第一呼叫请求后,查询自身的本地地址;通过STUN服务器获取自身的公网地址;将自身的本地地址和公网地址组装为第二候选地址,并向主叫用户终端发送第一呼叫应答;
STUN服务器还用于向被叫用户终端提供被叫用户终端的公网地址。
在一个实施例中,主叫用户终端还用于在自身不为对称型NAT类型时,执行向被叫用户终端发送第一呼叫请求的操作。
在一个实施例中,主叫用户终端还用于在被叫用户终端为对称型NAT类型时,向被叫用户终端发送第二呼叫请求,其中第二呼叫请求中包括第三候选地址,第三候选地址为主叫用户终端的本地地址和中转服务器为主叫用户终端分配的中转地址;当接收到被叫用户终端发送的第二呼叫应答后,用第三候选地址和第四候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫;
被叫用户终端还用于在接收到第二呼叫请求后,向主叫用户终端发送第二呼叫应答,其中第二呼叫应答包括第四候选地址,第四候选地址为被叫用户终端的本地地址和公网地址;利用第三候选地址和第四候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
在一个实施例中,***还包括中转服务器,其中:
主叫用户终端具体在向被叫用户终端发送第二呼叫请求时,查询自身的本地地址,向中转服务器发送媒体中转服务请求;在接收到中转服务器提供的中转地址时,将自身的本地地址和中转服务器分配的中转地址组装为第三候选地址,并向被叫用户终端发送第三呼叫请求;
中转服务器,用于在接收到媒体中转服务请求后,为主叫用户终端分配中转资源,并将分配的中转地址发送给主叫用户终端。
在一个实施例中,被叫用户终端具体在接收到第二呼叫请求后,查询自身的本地地址;通过STUN服务器获取自身的公网地址;将自身的本地地址和公网地址组装为第四候选地址,并向主叫用户终端发送第四呼叫应答。
在一个实施例中,主叫用户终端还用于在被叫用户终端为对称型NAT类型时,向被叫用户终端发送第二呼叫请求,其中第二呼叫请求中包括第五候选地址,第五候选地址为主叫用户终端的本地地址和公网地址;当接收到被叫用户终端发送的第二呼叫应答后,用第五候选地址和第六候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫;
被叫用户终端还用于在接收到第二呼叫请求后,向主叫用户终端发送第二呼叫应答,其中第二呼叫应答包括第六候选地址,第六候选地址为被叫用户终端的本地地址和中转服务器为被叫用户终端分配的中转地址;利用第五候选地址和第六候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
本发明通过根据主叫用户终端和被叫用户终端的NAT类型选择相应的呼叫流程,从而可省略冗余的步骤,大大加快呼叫建立的速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明用于建立VoIP呼叫的方法一个实施例的示意图。
图2为本发明第一呼叫建立流程一个实施例的示意图。
图3为本发明第一呼叫建立流程另一实施例的示意图。
图4为本发明用于建立VoIP呼叫的方法另一实施例的示意图。
图5为本发明第二呼叫建立流程一个实施例的示意图。
图6为本发明第二呼叫建立流程另一实施例的示意图。
图7为本发明第二呼叫建立流程又一实施例的示意图。
图8为本发明NAT类型检测一个实施例的示意图。
图9为本发明用于建立VoIP呼叫的***一个实施例的示意图。
图10为本发明用于建立VoIP呼叫的***另一实施例的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1为本发明用于建立VoIP呼叫的方法一个实施例的示意图。
步骤101,主叫用户终端向被叫用户终端发起呼叫时,判断自身是否为对称型NAT类型。
步骤102,若主叫用户终端自身为对称型NAT类型,则主叫用户终端向呼叫服务器发送类型查询请求,以查询被叫用户终端的NAT类型。
步骤103,主叫用户终端在接收到呼叫服务器发送的查询响应后,判断被叫用户终端是否为对称型NAT类型。
步骤104,若被叫用户终端不为对称型NAT类型,则执行第一呼叫建立流程。
其中,第一呼叫建立流程如图2所示:
步骤201,主叫用户终端向被叫用户终端发送第一呼叫请求。
其中第一呼叫请求中包括第一候选地址,第一候选地址为主叫用户终端的本地地址和公网地址。
步骤202,被叫用户终端接收到第一呼叫请求后,向主叫用户终端发送第一呼叫应答。
其中第一呼叫应答包括第二候选地址,第二候选地址为被叫用户终端的本地地址和公网地址。
步骤203,主叫用户终端和被叫用户终端分别利用第一候选地址和第二候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
由于最后形成的候选地址对从3x3简化为2x2,从而显著减少呼叫建立时间,避免了因中转服务请求识别而导致的呼叫失败。
基于本发明上述实施例提供的用于建立VoIP呼叫的方法,通过根据主叫用户终端和被叫用户终端的NAT类型选择相应的呼叫流程,从而可省略冗余的步骤,大大加快呼叫建立的速度。
图3为本发明第一呼叫建立流程另一实施例的示意图。如图3所示:
步骤301,主叫用户终端获取本地地址。
步骤302,主叫用户终端向STUN服务器发送公网地址请求。
步骤303,STUN服务器接收到请求后,获取主叫用户终端的公网地址。
步骤304,STUN服务器将公网地址发送给主叫用户终端。
步骤305,主叫用户终端利用本地地址和公网地址组装成第一候选地址。
步骤306,主叫用户终端向被叫用户终端发送呼叫请求,呼叫请求中包括第一候选地址。
步骤307,被叫用户终端接收到呼叫请求后,获取本地地址。
步骤308,被叫用户终端向STUN服务器发送公网地址请求。
步骤309,STUN服务器接收到请求后,获取被叫用户终端的公网地址。
步骤310,STUN服务器将公网地址发送给被叫用户终端。
步骤311,被叫用户终端利用本地地址和公网地址组装成第二候选地址。
步骤312,被叫用户终端向主叫用户终端发送呼叫应答,其中呼叫应答中包括第二候选地址。
步骤313a,主叫用户终端利用第一候选地址和第二候选地址进行有效性验证。
步骤313b,被叫用户终端利用第一候选地址和第二候选地址进行有效性验证。
步骤314,主叫用户终端和被叫用户终端选择能够互通的地址对作为媒体通路以建立呼叫。
图4为本发明用于建立VoIP呼叫的方法另一实施例的示意图。如图4所示,本实施例的方法步骤如下:
步骤401,主叫用户终端向被叫用户终端发起呼叫时,判断自身是否为对称型NAT类型。若主叫用户终端自身为对称型NAT类型,则执行步骤402;若主叫用户终端自身不为对称型NAT类型,则执行步骤404。
步骤402,主叫用户终端向呼叫服务器发送类型查询请求,以查询被叫用户终端的NAT类型。
步骤403,主叫用户终端在接收到呼叫服务器发送的查询响应后,判断被叫用户终端是否为对称型NAT类型。若被叫用户终端不为对称型NAT类型,则执行步骤404;若被叫用户终端为对称型NAT类型,则执行步骤405。
步骤404,执行第一呼叫建立流程。之后,不再执行本实施例的其它步骤。
步骤405,执行第二呼叫建立流程。
这里的第一呼叫建立流程为上述实施例涉及的第一呼叫建立流程。下面对第二呼叫建立流程进行描述。
图5为本发明第二呼叫建立流程一个实施例的示意图。其中:
步骤501,主叫用户终端向被叫用户终端发送第二呼叫请求,其中第二呼叫请求中包括第三候选地址。
第三候选地址为主叫用户终端的本地地址和中转服务器为主叫用户终端分配的中转地址。
步骤502,被叫用户终端接收到第二呼叫请求后,向主叫用户终端发送第二呼叫应答,其中第二呼叫应答包括第四候选地址。
第四候选地址为被叫用户终端的本地地址和公网地址。
步骤503,主叫用户终端和被叫用户终端分别利用第三候选地址和第四候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
由于最后形成的候选地址对从3x3简化为2x2,从而显著减少呼叫建立时间。
图6为本发明第二呼叫建立流程另一实施例的示意图。其中:
步骤601,主叫用户终端获取本地地址。
步骤602,主叫用户终端向中转服务器发送媒体中转服务请求。
步骤603,中转服务器接收到请求后,为主叫用户终端分配中转资源和地址。
步骤604,中转服务器将中转地址发送给主叫用户终端。
步骤605,主叫用户终端利用本地地址和中转地址组装成第三候选地址。
步骤606,主叫用户终端向被叫用户终端发送呼叫请求,呼叫请求中包括第三候选地址。
步骤607,被叫用户终端接收到呼叫请求后,获取本地地址。
步骤608,被叫用户终端向STUN服务器发送公网地址请求。
步骤609,STUN服务器接收到请求后,获取被叫用户终端的公网地址。
步骤610,STUN服务器将公网地址发送给被叫用户终端。
步骤611,被叫用户终端利用本地地址和公网地址组装成第四候选地址。
步骤612,被叫用户终端向主叫用户终端发送呼叫应答,其中呼叫应答中包括第四候选地址。
步骤613a,主叫用户终端利用第三候选地址和第四候选地址进行有效性验证。
步骤613b,被叫用户终端利用第三候选地址和第四候选地址进行有效性验证。
步骤614,主叫用户终端和被叫用户终端选择能够互通的地址对作为媒体通路以建立呼叫。
第二呼叫建立流程和第一呼叫建立流程相比,主要的区别在于:
1.在第二呼叫建立流程中,主叫用户终端侧省去的是获取公网地址的环节,而第一呼叫建立流程省去的是请求中转服务和获取中转地址环节。
2.最终的候选地址对都是2x2,但第一呼叫建立流程是(主叫的私网地址,主叫的公网地址)x(被叫的私网地址,被叫的公网地址),而第二呼叫建立流程是(主叫的私网地址,主叫的中转地址)x(被叫的私网地址,被叫的公网地址),即主叫侧的候选地址集合不同。
在另一实施例中,第二呼叫建立流程还可采用另一可替代的实施例。其中若被叫用户终端为对称型NAT类型,则主叫用户终端向被叫用户终端发送第二呼叫请求,其中第二呼叫请求中包括第五候选地址,第五候选地址为主叫用户终端的本地地址和公网地址。被叫用户终端接收到第二呼叫请求后,向主叫用户终端发送第二呼叫应答,其中第二呼叫应答包括第六候选地址,第六候选地址为被叫用户终端的本地地址和中转服务器为被叫用户终端分配的中转地址。主叫用户终端和被叫用户终端分别利用第五候选地址和第六候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
相应的具体步骤可由图7所示。其中:
步骤701,主叫用户终端获取本地地址。
步骤702,主叫用户终端向STUN服务器发送公网地址请求。
步骤703,STUN服务器接收到请求后,获取主叫用户终端的公网地址。
步骤704,STUN服务器将公网地址发送给主叫用户终端。
步骤705,主叫用户终端利用本地地址和公网地址组装成第五候选地址。
步骤706,主叫用户终端向被叫用户终端发送呼叫请求,呼叫请求中包括第五候选地址。
步骤707,被叫用户终端接收到呼叫请求后,获取本地地址。
步骤708,被叫用户终端向中转服务器发送媒体中转服务请求。
步骤709,中转服务器接收到请求后,为被叫用户终端分配中转资源和地址。
步骤710,中转服务器将中转地址发送给被叫用户终端。
步骤711,被叫用户终端利用本地地址和中转地址组装成第六候选地址。
步骤712,被叫用户终端向主叫用户终端发送呼叫应答,其中呼叫应答中包括第六候选地址。
步骤713a,主叫用户终端利用第五候选地址和第六候选地址进行有效性验证。
步骤713b,被叫用户终端利用第五候选地址和第六候选地址进行有效性验证。
步骤714,主叫用户终端和被叫用户终端选择能够互通的地址对作为媒体通路以建立呼叫。
在一个实施例中,主叫用户终端和被叫用户终端在接入网络或者登录完成后,都会检测它所处的NAT类型是否为对称型NAT。如图8所示:
步骤801,用户终端向STUN服务器发送查询请求,查询请求中包括用户终端的IP地址和端口信息。
步骤802,STUN服务器在接收到查询请求后,获取与用户终端相关联的反射地址。
步骤803,STUN服务器将查询响应发送给用户终端,查询响应中包括反射地址。
步骤804,用户终端根据反射地址,检测自身所处的网络NAT类型是否为对称型NAT。
步骤805,用户终端将检测结果保存在本地。
步骤806,用户终端将检测结果发送给呼叫服务器。
步骤807,呼叫服务器保存检测结果。
图9为本发明用于建立VoIP呼叫的***一个实施例的示意图。如图9所示,该***可包括主叫终端901、呼叫服务器902和被叫终端903,其中:
主叫用户终端901,用于在向被叫用户终端发起呼叫时,判断自身是否为对称型NAT类型;若自身为对称型NAT类型,则向呼叫服务器发送类型查询请求;在接收到呼叫服务器发送的查询响应后,判断被叫用户终端是否为对称型NAT类型;若被叫用户终端不为对称型NAT类型,则向被叫用户终端发送第一呼叫请求,其中第一呼叫请求中包括第一候选地址,第一候选地址为主叫用户终端的本地地址和公网地址;在接收到被叫用户终端发送的第一呼叫应答后,利用第一候选地址和第二候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
呼叫服务器902,用于在接收到类型查询请求后,查询被叫用户终端的NAT类型,并向主叫用户终端发送查询响应,查询响应中包括查询结果。
被叫用户终端903,用于在接收到第一呼叫请求后,向主叫用户终端发送第一呼叫应答,其中第一呼叫应答包括第二候选地址,第二候选地址为被叫用户终端的本地地址和公网地址;利用第一候选地址和第二候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
基于本发明上述实施例提供的用于建立VoIP呼叫的***,通过根据主叫用户终端和被叫用户终端的NAT类型选择相应的呼叫流程,从而可省略冗余的步骤,大大加快呼叫建立的速度。
图10为本发明用于建立VoIP呼叫的***另一实施例的示意图。与图9所示实施例相比,在图10所示实施例中,***还可包括STUN服务器1001。其中:
主叫用户终端901具体在向被叫用户终端发送第一呼叫请求时,查询自身的本地地址;通过STUN服务器1001获取自身的公网地址;将自身的本地地址和公网地址组装为第一候选地址,并向被叫用户终端发送第一呼叫请求。
STUN服务器1001,用于向主叫用户终端提供主叫用户终端的公网地址。
在一个实施例中,被叫用户终端903具体在接收到第一呼叫请求后,查询自身的本地地址;通过STUN服务器1001获取自身的公网地址;将自身的本地地址和公网地址组装为第二候选地址,并向主叫用户终端发送第一呼叫应答。
STUN服务器1001还用于向被叫用户终端提供被叫用户终端的公网地址。
在一个实施例中,主叫用户终端901还用于在自身不为对称型NAT类型时,执行向被叫用户终端发送第一呼叫请求的操作。
在一个实施例中,主叫用户终端901还用于在被叫用户终端为对称型NAT类型时,向被叫用户终端发送第二呼叫请求,其中第二呼叫请求中包括第三候选地址,第三候选地址为主叫用户终端的本地地址和中转服务器为主叫用户终端分配的中转地址;当接收到被叫用户终端发送的第二呼叫应答后,用第三候选地址和第四候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
被叫用户终端903还用于在接收到第二呼叫请求后,向主叫用户终端发送第二呼叫应答,其中第二呼叫应答包括第四候选地址,第四候选地址为被叫用户终端的本地地址和公网地址;利用第三候选地址和第四候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
优选的,***还可包括中转服务器1002,其中:
主叫用户终端901具体在向被叫用户终端发送第二呼叫请求时,查询自身的本地地址,向中转服务器发1002送媒体中转服务请求;在接收到中转服务器1002提供的中转地址时,将自身的本地地址和中转服务器分配的中转地址组装为第三候选地址,并向被叫用户终端发送第三呼叫请求。
中转服务器1002,用于在接收到媒体中转服务请求后,为主叫用户终端分配中转资源,并将分配的中转地址发送给主叫用户终端。
在一个实施例中,被叫用户终端903具体在接收到第二呼叫请求后,查询自身的本地地址;通过STUN服务器获取自身的公网地址;将自身的本地地址和公网地址组装为第四候选地址,并向主叫用户终端发送第四呼叫应答。
通过实施本发明,有效地减少了ICE过程中的冗余步骤,特别是省略了最为耗时的请求中转服务和获取中转服务地址的过程,最后形成的候选地址对也从3x3减少为2x2,显著缩短了呼叫建立时间,减少因中转资源请求不足而导致的呼叫失败。
在另一实施例中,主叫用户终端901还用于在被叫用户终端为对称型NAT类型时,向被叫用户终端903发送第二呼叫请求,其中第二呼叫请求中包括第五候选地址,第五候选地址为主叫用户终端的本地地址和公网地址;当接收到被叫用户终端903发送的第二呼叫应答后,用第五候选地址和第六候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
被叫用户终端903还用于在接收到第二呼叫请求后,向主叫用户终端901发送第二呼叫应答,其中第二呼叫应答包括第六候选地址,第六候选地址为被叫用户终端的本地地址和中转服务器为被叫用户终端分配的中转地址;利用第五候选地址和第六候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
本发明适用于涉及实时媒体流建立的各类应用,包括音视频通信、视频监控等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (12)
1.一种用于建立VoIP呼叫的方法,其特征在于,包括:
主叫用户终端向被叫用户终端发起呼叫时,判断自身是否为对称型NAT类型;
若主叫用户终端自身为对称型NAT类型,则主叫用户终端向呼叫服务器发送类型查询请求,以查询被叫用户终端的NAT类型;
主叫用户终端在接收到呼叫服务器发送的查询响应后,判断被叫用户终端是否为对称型NAT类型;
若被叫用户终端不为对称型NAT类型,则主叫用户终端向被叫用户终端发送第一呼叫请求,其中第一呼叫请求中包括第一候选地址,第一候选地址为主叫用户终端的本地地址和公网地址;
被叫用户终端接收到第一呼叫请求后,向主叫用户终端发送第一呼叫应答,其中第一呼叫应答包括第二候选地址,第二候选地址为被叫用户终端的本地地址和公网地址;
主叫用户终端和被叫用户终端分别利用第一候选地址和第二候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫;
若被叫用户终端为对称型NAT类型,则主叫用户终端向被叫用户终端发送第二呼叫请求,其中第二呼叫请求中包括第三候选地址,第三候选地址为主叫用户终端的本地地址和中转服务器为主叫用户终端分配的中转地址;
被叫用户终端接收到第二呼叫请求后,向主叫用户终端发送第二呼叫应答,其中第二呼叫应答包括第四候选地址,第四候选地址为被叫用户终端的本地地址和公网地址;
主叫用户终端和被叫用户终端分别利用第三候选地址和第四候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫;
若主叫用户终端自身不为对称型NAT类型,则执行主叫用户终端向被叫用户终端发送第一呼叫请求的步骤。
2.根据权利要求1所述的方法,其特征在于,
主叫用户终端向被叫用户终端发送第一呼叫请求的步骤包括:
主叫用户终端查询自身的本地地址;
主叫用户终端通过STUN服务器获取自身的公网地址;
主叫用户终端将自身的本地地址和公网地址组装为第一候选地址,并向被叫用户终端发送第一呼叫请求。
3.根据权利要求2所述的方法,其特征在于,
被叫用户终端接收到第一呼叫请求后,向主叫用户终端发送第一呼叫应答的步骤包括:
被叫用户终端接收到第一呼叫请求后,查询自身的本地地址;
被叫用户终端通过STUN服务器获取自身的公网地址;
被叫用户终端将自身的本地地址和公网地址组装为第二候选地址,并向主叫用户终端发送第一呼叫应答。
4.根据权利要求3所述的方法,其特征在于,
主叫用户终端向被叫用户终端发送第二呼叫请求的步骤包括:
主叫用户终端查询自身的本地地址;
主叫用户终端向中转服务器发送媒体中转服务请求,以便中转服务器为主叫用户终端分配中转资源,并将分配的中转地址发送给主叫用户终端;
主叫用户终端在接收到中转服务器提供的中转地址时,将自身的本地地址和中转服务器为主叫用户终端分配的中转地址组装为第三候选地址,并向被叫用户终端发送第三呼叫请求。
5.根据权利要求4所述的方法,其特征在于,
被叫用户终端接收到第二呼叫请求后,向主叫用户终端发送第二呼叫应答的步骤包括:
被叫用户终端接收到第二呼叫请求后,查询自身的本地地址;
被叫用户终端通过STUN服务器获取自身的公网地址;
被叫用户终端将自身的本地地址和公网地址组装为第四候选地址,并向主叫用户终端发送第四呼叫应答。
6.根据权利要求3所述的方法,其特征在于,
若被叫用户终端为对称型NAT类型,则主叫用户终端向被叫用户终端发送第二呼叫请求,其中第二呼叫请求中包括第五候选地址,第五候选地址为主叫用户终端的本地地址和公网地址;
被叫用户终端接收到第二呼叫请求后,向主叫用户终端发送第二呼叫应答,其中第二呼叫应答包括第六候选地址,第六候选地址为被叫用户终端的本地地址和中转服务器为被叫用户终端分配的中转地址;
主叫用户终端和被叫用户终端分别利用第五候选地址和第六候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
7.一种用于建立VoIP呼叫的***,其特征在于,包括主叫终端、呼叫服务器和被叫终端,其中:
主叫用户终端,用于在向被叫用户终端发起呼叫时,判断自身是否为对称型NAT类型;若自身为对称型NAT类型,则向呼叫服务器发送类型查询请求;在接收到呼叫服务器发送的查询响应后,判断被叫用户终端是否为对称型NAT类型;若被叫用户终端不为对称型NAT类型,则向被叫用户终端发送第一呼叫请求,其中第一呼叫请求中包括第一候选地址,第一候选地址为主叫用户终端的本地地址和公网地址;在接收到被叫用户终端发送的第一呼叫应答后,利用第一候选地址和第二候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫;还用于在被叫用户终端为对称型NAT类型时,向被叫用户终端发送第二呼叫请求,其中第二呼叫请求中包括第三候选地址,第三候选地址为主叫用户终端的本地地址和中转服务器为主叫用户终端分配的中转地址;当接收到被叫用户终端发送的第二呼叫应答后,用第三候选地址和第四候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫;还用于在自身不为对称型NAT类型时,执行向被叫用户终端发送第一呼叫请求的操作;
呼叫服务器,用于在接收到类型查询请求后,查询被叫用户终端的NAT类型,并向主叫用户终端发送查询响应,查询响应中包括查询结果;
被叫用户终端,用于在接收到第一呼叫请求后,向主叫用户终端发送第一呼叫应答,其中第一呼叫应答包括第二候选地址,第二候选地址为被叫用户终端的本地地址和公网地址;利用第一候选地址和第二候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫;还用于在接收到第二呼叫请求后,向主叫用户终端发送第二呼叫应答,其中第二呼叫应答包括第四候选地址,第四候选地址为被叫用户终端的本地地址和公网地址;利用第三候选地址和第四候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
8.根据权利要求7所述的***,其特征在于,还包括STUN服务器,其中:
主叫用户终端具体在向被叫用户终端发送第一呼叫请求时,查询自身的本地地址;通过STUN服务器获取自身的公网地址;将自身的本地地址和公网地址组装为第一候选地址,并向被叫用户终端发送第一呼叫请求;
STUN服务器,用于向主叫用户终端提供主叫用户终端的公网地址。
9.根据权利要求8所述的***,其特征在于,
被叫用户终端具体在接收到第一呼叫请求后,查询自身的本地地址;通过STUN服务器获取自身的公网地址;将自身的本地地址和公网地址组装为第二候选地址,并向主叫用户终端发送第一呼叫应答;
STUN服务器还用于向被叫用户终端提供被叫用户终端的公网地址。
10.根据权利要求9所述的***,其特征在于,还包括中转服务器,其中:
主叫用户终端具体在向被叫用户终端发送第二呼叫请求时,查询自身的本地地址,向中转服务器发送媒体中转服务请求;在接收到中转服务器提供的中转地址时,将自身的本地地址和中转服务器分配的中转地址组装为第三候选地址,并向被叫用户终端发送第三呼叫请求;
中转服务器,用于在接收到媒体中转服务请求后,为主叫用户终端分配中转资源,并将分配的中转地址发送给主叫用户终端。
11.根据权利要求10所述的***,其特征在于,
被叫用户终端具体在接收到第二呼叫请求后,查询自身的本地地址;通过STUN服务器获取自身的公网地址;将自身的本地地址和公网地址组装为第四候选地址,并向主叫用户终端发送第四呼叫应答。
12.根据权利要求9所述的***,其特征在于,
主叫用户终端还用于在被叫用户终端为对称型NAT类型时,向被叫用户终端发送第二呼叫请求,其中第二呼叫请求中包括第五候选地址,第五候选地址为主叫用户终端的本地地址和公网地址;当接收到被叫用户终端发送的第二呼叫应答后,用第五候选地址和第六候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫;
被叫用户终端还用于在接收到第二呼叫请求后,向主叫用户终端发送第二呼叫应答,其中第二呼叫应答包括第六候选地址,第六候选地址为被叫用户终端的本地地址和中转服务器为被叫用户终端分配的中转地址;利用第五候选地址和第六候选地址进行有效性验证,以便选择能够互通的地址对作为媒体通路以建立呼叫。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410495095.9A CN105516058B (zh) | 2014-09-25 | 2014-09-25 | 用于建立VoIP呼叫的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410495095.9A CN105516058B (zh) | 2014-09-25 | 2014-09-25 | 用于建立VoIP呼叫的方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105516058A CN105516058A (zh) | 2016-04-20 |
CN105516058B true CN105516058B (zh) | 2019-04-23 |
Family
ID=55723706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410495095.9A Active CN105516058B (zh) | 2014-09-25 | 2014-09-25 | 用于建立VoIP呼叫的方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105516058B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113114702B (zh) * | 2021-05-13 | 2023-05-09 | 上海井星信息科技有限公司 | 一种IOS端基于SIP协议交互的WebRTC通信方法和*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873324A (zh) * | 2010-06-22 | 2010-10-27 | 北京神州泰岳软件股份有限公司 | 穿越防火墙的方法 |
CN102685141A (zh) * | 2012-05-22 | 2012-09-19 | 北京邮电大学 | 一种VoIP中基于语音可达性的融合穿越方法 |
CN102685268A (zh) * | 2012-05-22 | 2012-09-19 | 北京邮电大学 | 一种VoIP中基于ICE协议的快速私网穿越方法 |
CN102932235A (zh) * | 2012-10-09 | 2013-02-13 | 曙光信息产业(北京)有限公司 | 云计算环境下的即时通信方法和服务器*** |
-
2014
- 2014-09-25 CN CN201410495095.9A patent/CN105516058B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873324A (zh) * | 2010-06-22 | 2010-10-27 | 北京神州泰岳软件股份有限公司 | 穿越防火墙的方法 |
CN102685141A (zh) * | 2012-05-22 | 2012-09-19 | 北京邮电大学 | 一种VoIP中基于语音可达性的融合穿越方法 |
CN102685268A (zh) * | 2012-05-22 | 2012-09-19 | 北京邮电大学 | 一种VoIP中基于ICE协议的快速私网穿越方法 |
CN102932235A (zh) * | 2012-10-09 | 2013-02-13 | 曙光信息产业(北京)有限公司 | 云计算环境下的即时通信方法和服务器*** |
Non-Patent Citations (1)
Title |
---|
VoIP防火墙穿越方法的研究与比较;李颖晖,胡越明,陈凯;《微型电脑应用》;20060331;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN105516058A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108199921A (zh) | 一种模拟测试的方法、装置及存储介质 | |
CN110365793A (zh) | 违规外联监测方法、装置、***及存储介质 | |
CN106789851A (zh) | 身份验证方法、***、业务服务器和验证服务器 | |
CN103873449B (zh) | 网络接入方法与*** | |
CN103581351B (zh) | 网络访问的方法和装置 | |
CN105228140A (zh) | 一种数据访问方法及装置 | |
CN108055312A (zh) | 路由方法及其装置与计算机装置及其可读存储介质 | |
CN106656911A (zh) | 一种Portal认证方法、接入设备和管理服务器 | |
CN104519148B (zh) | 应用服务器地址的可达性检测方法与*** | |
CN105791206B (zh) | 局域网服务的获取方法及装置 | |
CN107241270A (zh) | 报文处理方法及装置 | |
CN107241301A (zh) | 防御反射攻击的方法、装置和*** | |
CN102136920A (zh) | 网络会议的方法和装置 | |
Farahbakhsh et al. | How far is Facebook from me? Facebook network infrastructure analysis | |
CN103905386B (zh) | Sip终端非注册接入的方法、边缘设备及网络 | |
CN105516058B (zh) | 用于建立VoIP呼叫的方法和*** | |
CN104539752B (zh) | 多级域平台间的访问方法及*** | |
CN104506405B (zh) | 跨域访问的方法及装置 | |
CN104009999B (zh) | 防止arp欺骗的方法、装置及网络接入服务器 | |
CN105847256A (zh) | 主叫接入域选择方法、装置、ims终端和归属签约用服务器 | |
CN105635316B (zh) | 一种家庭终端设备的控制方法及服务器 | |
CN107743304B (zh) | 一种设备识别方法及相关设备 | |
CN106341413A (zh) | 一种portal认证方法及装置 | |
CN107948022A (zh) | 一种对等网络流量的识别方法及识别装置 | |
US20090190726A1 (en) | End-to-end deployment validation of communication system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |