CN101938521B - 一种VoIP系统中信令的传输方法 - Google Patents

一种VoIP系统中信令的传输方法 Download PDF

Info

Publication number
CN101938521B
CN101938521B CN2010102782132A CN201010278213A CN101938521B CN 101938521 B CN101938521 B CN 101938521B CN 2010102782132 A CN2010102782132 A CN 2010102782132A CN 201010278213 A CN201010278213 A CN 201010278213A CN 101938521 B CN101938521 B CN 101938521B
Authority
CN
China
Prior art keywords
node
message
server
invite
conversation
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.)
Expired - Fee Related
Application number
CN2010102782132A
Other languages
English (en)
Other versions
CN101938521A (zh
Inventor
金海�
舒畅
廖小飞
蒋洪磊
徐飞
钱力
邱飞
郭峰江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN2010102782132A priority Critical patent/CN101938521B/zh
Publication of CN101938521A publication Critical patent/CN101938521A/zh
Application granted granted Critical
Publication of CN101938521B publication Critical patent/CN101938521B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种基于P2P的SIP VoIP系统中可靠信令传输方法,各用户终端执行以下步骤:①用户终端向服务器发送注册消息,得到两个服务器节点;②用户终端之间通过SIP信令建立呼叫;③呼叫建立后,用户终端之间可以通话了;在通话过程中,用户终端还会定期向服务器节点发送注册消息,告诉服务器节点当前自己的状态;④通话完成后,一方向另一方发送挂机消息;⑤用户终端之间通过SIP信令释放呼叫,正常结束通话。本发明保证了系统的可靠性和动态性,避免了网络状况造成的节点失效导致无法正常通话的情况,并提高了系统的可用性。

Description

一种VoIP系统中信令的传输方法
技术领域
本发明属于计算机网络传输领域,具体涉及是一种VoIP系统中信令的传输方法。
背景技术
VoIP(Voice over Internet Protocol)即网络电话,通俗来说也就是互联网电话或IP电话。其基本原理就是通过语音压缩设备对我们的语音进行压缩编码处理,然后再把这些语音数据根据相关的协议进行打包,经过IP网络把数据包传送到目的地后,再把这些语音数据包串起来,经过解压解码处理后,恢复成原来的信号,从而达到由IP网络发送语音的目的。简而言之,VOIP网络电话就是通过互联网打电话,将网络电话机直接接上诸如非对称数字用户环路(ADSL,Asymmetric Digital Subscriber Line)、有线宽带、局域网等任何宽带接口,简单设置所申请的地址号码后,即可像打普通电话一样随意拨打想通话的号码了。
网络电话自从1995年首次面世以来已经成为世界上使用最广泛的电话产品。将打电话通过互联网传输的VoIP技术也是目前世界上最经济的电话技术之一。VoIP技术发展到今天,已经比较成熟,传统网络电话中都是建立在客户/服务器系统模式下,服务器必须负责所有用户在通话过程中的数据包的转发,当通话用户不断增加的时候,服务器端的压力会越来越大,直到达到服务能力上限。这种解决方案通常是以增加服务器的数量和提高带宽的大小来增强系统的服务能力。因此,这种办法有一定的局限性,其一是随着用户的增加,广播包的数量会以指数增加,其二是随着用户的不断递增,服务器的服务能力难以达到要求。
对等网络技术(P2P,Peer-to-Peer)是一项新的利用终端个人计算机(PC,Personal Computer)计算能力以及终端网络带宽在用户之间进行文件共享的技术。它具有可扩展性,负载均衡,灵活等优点。近几年来,基于这种技术的文件共享已基本成熟,基于这种技术的流媒体技术也日趋广泛,这也为VOIP的发展提供了一个更有创造性的思路。VoIP与P2P融合,P2P技术综合利用分散的网络资源,使得语音呼叫的接通率、语音质量在很大程度上甚至超过传统的电话网络。P2P技术是一种用于不同PC用户之间,不经过中继设备直接交换数据或服务的技术。P2P技术主要指由硬件形成连接后的信息控制技术,其代表形式是软件。它打破了传统的客户机/服务器(C/S,Client/Server)模式,在对等网络中,每个节点的地位都是相同的,同时具备客户端和服务器双重特性,既享用服务也提供服务。
VoIP充分利用了P2P技术的特点。非集中式P2P网络可以无限的扩展,并且不会因为扩展而导致搜索时间的延长和费用的增加——利用终端用户机器的处理能力和网络带宽,每增加一个节点,P2P网络的处理能力和带宽都相应增加;P2P技术在穿透防火墙和网络地址转换(NAT,NetworkAddressTranslation)方面也具有优势。传统的集中式网络也可以穿透防火墙和NAT,但通常会因此增加非常昂贵的费用,用户越多费用越高。使用P2P技术的典型VoIP产品是Skype,Skype实现了将网络资源分散(即不是利用集中式的服务器资源,而是利用各节点的网络资源),使得语音呼叫接通率、语音质量在很大程度上甚至超过传统电话。
发明内容
本发明的目的在于提供一种基于P2P的SIP VoIP系统中信令的传输方法,该方法保证了会话发起协议(SIP,Session Initiation Protocol)信令能够在进行通话的用户客户端之间可靠的传输,避免了由于某些网络状况而导致SIP信令丢失的无法正常建立通话的情况。
实现本发明目的所采用的具体技术方案如下:
一种VoIP系统中信令的传输方法,基于P2P技术实现SIP信令的可靠传输,具体包括如下步骤:
(1)首先终端节点向引导节点发送注册消息,并从引导节点提供的服务器节点中选择两个服务器节点,将该终端节点注册到所述两个服务器节点上;
其中,所述引导节点指覆盖网的启动节点,其指导服务器节点加入覆盖网,并响应终端节点的消息,返回服务器节点给终端节点;所述服务器节点响应终端节点的各种SIP信令消息;
(2)注册成功之后的终端节点之间即可建立通话过程,具体建立过程如下:
(2.1)任意终端节点UE1作为通话发起方将邀请(INVITE)消息分别发给其注册的服务器节点SN-C1和SN-C2,并通过SN-C1和SN-C2将INVITE消息发送给作为通话接受方的终端节点UE2;
(2.2)UE2通过其所注册的两个服务器节点SN-C3和SN-C4收到UE1的INVITE消息;
(2.3)UE2收到INVITE消息后,将180消息后分别发给SN-C3和SN-C4,并通过SN-C3和SN-C4将180消息发给UE1;
(2.4)UE1收到180消息,等待UE2接听;
(2.5)若UE2确认接听,UE2会将OK消息发给SN-C3和SN-C4,并通过SN-C3和SN-C4将OK消息发给UE1;
(2.6)UE1接收到OK消息后,将确认字符(ACK)消息分别发到SN-C1和SN-C2,并通过SN-C1和SN-C2发给UE2;
(2.7)UE2收到ACK消息后,两个客户端间通话建立;
(3)通话建立后,在通话过程中用户终端定期向服务器节点发送注册消息,进行注册更新;
(4)通话完成后,一个用户终端会向另一方发送挂机消息来释放呼叫,该过程包含以下步骤:
(4.1)当UE1要结束通话时,UE1将BYE消息分别转发到SN-C1和SN-C2;
(4.2)UE2接收到BYE消息后,结束通话,将发送OK消息给SN-C3和SN-C4,通过他们发给UE1;
(4.4)UE1收到OK消息后,呼叫释放完成,本次通话结束。
作为本发明的进一步改进,所述的步骤(1)的具体注册过程为:
(1.1)终端节点向引导节点发送注册消息;
(1.2)引导节点通过负载均衡算法选择服务器节点,并将服务器节点列表转发给终端节点;
(1.3)终端节点从服务器节点列表中任选2个服务器节点,并将用户标识(UID)和这2个服务器节点的IP保存在本地列表中;
(1.4)终端节点分别向上述两个服务器节点发送注册消息;
(1.5)终端节点收到来自上述两个服务器节点的Ok消息,则表示注册成功。
作为本发明的进一步改进,在步骤(1)或步骤(3)的注册过程中由于网络问题出现服务器节点失效的情况时,为保证信令的可靠传输,进行如下处理:
(A)在注册过程中,若终端节点检测到所注册的两个服务器节点中有服务器节点失效时,终端节点再向引导节点发送注册消息;
(B)引导节点根据IP邻近原则返回服务器节点的IP列表给终端节点;
(C)终端节点再次从中选择新的服务器节点,重新向其发送注册消息;
(D)当该再次选择的服务器节点返回OK消息后,终端节点更新本地列表,该再次选择的服务器节点成为终端节点的服务器节点。
本发明根据VOIP系统的需求,采用可靠信令传输方法来传输系统SIP信令,保证了系统通话的可靠性。具体而言,本发明具有以下特征:
(1)可靠性
在本系统中一直有两个SN-C节点服务器用户UE,系统的SIP信令流必须分别向两个服务器节点发送,当出现由于网络原因导致的单服务器节点(其中一个SN-C)失效时,剩下的服务器节点能够完成SIP信令的继续传送,保证了通话的正常进行。
(2)稳定性
从系统的整体架构图可以看出在构成的分布式哈希表(DHT,Distributed Hash Table)网络中有许多SN-C超级节点,它们是系统部署在网络环境中的,具有较好的性能,能够保证用户节点之间的通话要求。由于是固定部署的节点,也就不存在这些节点进入和退出对系统造成的影响,而各用户节点的随意进入和退出也不会对系统造成影响。
(3)自适应性
用户节点在进入系统中以后,一直都保持着动态的调整,在不影响系统性能的前提下,与自己的每个SN-C服务器节点保持一定频率的心跳(具体表现为定期向服务器节点发送register信息)。当出现单个服务器节点失效的时候,用户节点回向SN-T节点发送注册消息,SN-T会向用户节点返回新的可用的SN-C节点,从而避免了服务器节点失效造成的影响。
(4)较强的可扩展性
由于系统是采用P2P模式的,所以相对于C/S模式,有较强的可扩展性,服务器的压力和网络承受的带宽并不会因为节点的增加,而呈线性增长,因此对服务器和带宽的要求并不高。同时,也不会产生其他P2P结构所会引起的单一服务器节点失效和消息冗余等问题。并且本系统基于SIP的VOIP,而SIP协议本身遵循因特网基本原则,协议很容易进行扩展,便于增加新的业务,具有较强的互操作性,所以本系统也比较容易进行新业务的扩展。
(5)负载均衡
用户要进行通话前回向SN-T发送register消息,而SN-T节点会通过载均衡算法选择合适(当前负载较小)SN-C节点,并将SN-C列表转发给用户UE,这样就能保证系统在任何时候各SN-C节点负载均衡。
附图说明
图1为整个系统通话过程的流程图;
图2为正常情况下注册的SIP信令流程示意图;
图3为正常情况下呼叫发起的SIP信令流程示意图;
图4为正常情况下呼叫释放的SIP信令流程图;
图5为非正常情况下通话过程中(注册)的SIP信令流程图;
图6为非正常情况下呼叫发起的SIP信令流程图;
图7为非正常情况下呼叫结束的SIP信令流程图;
图8为利用实验室的设备部署的本发明的一个实例。
具体实施方式
本发明根据VOIP系统保证通话的正常进行的需要而设计的SIP信令的可靠传输方法,下面结合附图和具体实施对本发明作详细的说明。
本发明中涉及的三种节点类型的说明:
终端节点(UE,User Edge):指运行标准SIP协议或流媒体协议的终端节点。
引导节点(SN-T,Server Node-Track):覆盖网的启动节点,指导SN-C加入覆盖网,并响应UE的消息,返回SN-C给UE。
服务器节点(SN-C,Server Node-Core):服务器节点SN-C通过SN-T加入到覆盖网中,SN-C响应UE的各种SIP信令消息。
一种VoIP系统中信令的传输方法,基于P2P技术实现SIP信令的可靠传输,具体包括如下步骤:
(1)首先UE向SN-T发送注册消息,得到两个SN-C,并注册到所述两个SN-C上。该过程(如图2所示)包含以下步骤:
(1.1)UE向SN-T发送register(注册)消息。
用户要使用本系统与其它用户进行通话,必须首先注册到网络中,通过向SN-T发送Register消息实现,用于向SIP网络服务器登记用户位置和账号信息,只有注册成功后才能通过该用户名进行通话。
(1.2)SN-T通过负载均衡算法选择SN-C节点,并将SN-C列表转发给UE。
SN-T管理着域内所有的SN-C节点,为了保证所有的SN-C均衡负载,SN-T通常选择负载最小的SN-C,负载均衡保证了所有的SN-C能够共同分担任务,不会出现某些SN-C负载过大而其它SN-C空闲的状态,提高了系统的可用性。
(1.3)UE选择2个SN-C,并将用户标识(UID)和这2个SN-C的IP保存在本地列表中。
(1.4)UE分别向两个SN-C发送register消息。
在发送给两个SN-C的register消息中,会附加上相同的时间戳,并附加不同的编号来区分。在消息中附加时间戳主要是为了方便消息的接收者能够根据时间先后顺序,用当前最新的消息替代相同的旧信息,以保证实时的反映系统的最新网络状况。
(1.5)UE收到来自两个SN-C的Ok消息,则表示注册成功。
SN-C收到UE的register消息后,会分别返回OK消息并附加上时间戳。UE接收到第一个OK后,并缓存OK消息。此后,UE收到OK,将其时间戳与缓存的OK消息时间戳进行比较。如果时间戳相同,则忽略该消息;如果时间戳不同,则接受该消息,并将其替换原缓存的消息。
在注册过程中很可能由于网络问题出现服务器节点失效的情况,如图5所示则会包含以下过程:
(A)在注册过程中,若UE检测到其中一个服务器节点失效时,UE再向SN-T发送注册消息。
(B)SN-T根据IP邻近原则返回部分SN-C节点IP列表给用户UE。
(C)UE从中再次选择一个节点,重新向其发送注册消息。
(D)当该再次选择的节点返回OK消息后,UE更新本地的对应表,该再次选择的节点成为UE的服务器节点。
(2)注册成功之后两个终端节点UE1和UE2之间如果想通话,假定由一方UE1发起呼叫,整个呼叫发起建立过程(如图3)包含以下步骤,其中包括了在单服务器节点失效的情况下如何完成通话建立的SIP信令流程(如图6):
(2.1)UE1将INVITE(邀请)消息分别发给其注册的服务器节点SN-C1和SN-C2,通过这两个服务器节点将INVITE消息发送给UE2,具体包含以下过程:
(2.1.1)UE1将INVITE消息加上时间戳和序列号后分别发到SN-C1和SN-C2。
(2.1.2)SN-C1解析INVITE消息,通过分布式哈希表(DHT)网络找到UE2注册的服务器节点SN-C3和SN-C4,并将INVITE消息发送到SN-C3和SN-C4。
(2.1.3)SN-C3和SN-C4接收到INVITE消息后,都将INVITE消息发送给UE2。
(2.2)UE2通过SN-C3和SN-C4收到UE1的INVITE消息。
UE2接受第一个INVITE消息,并缓存INVITE消息,以后UE2收到INVITE后,将其时间戳与缓存的INVITE消息时间戳进行比较。如果时间戳相同,则忽略该消息;如果时间戳不同,则接受该消息,并将其替换原缓存的消息。
所有SN-C在收到INVITE消息后都向发送方返回一个100消息。服务器节点发送的100信息,表示对收到主叫的INVITE消息应答,并开始处理INVITE消息。
(2.3)UE2收到INVITE消息后,将180消息后分别发给SN-C3和SN-C4,并通过SN-C3和SN-C4将180消息发给UE1。
当UE2收到INVITE消息后,开始振铃,并发送180信息给其注册的服务器节点,表示被叫正在振铃。UE2会在180消息中加上时间戳和序列号后分别发给SN-C3和SN-C4,SN-C3和SN-C4都将其收到的消息分别发给SN-C1和SN-C2,SN-C1和SN-C2都将该消息发给UE1。
由于网络的不稳定性在通话建立过程的各个阶段都可能发生服务器节点失效的情况,最普遍的情况就是单服务器节点失效。在通话建立的任何时候都可能发生但服务器节点失效的情况,下面我们仅结合图6对这种情况进行说明。如图6所示(红色消息表示在正常流程中SN-C1发出的消息)在通话过程中SN-C1失效,SN-C1无法再接收或传送SIP信令,只有SN-C2可以正常传输SIP信令。UE2振铃后,UE2将180消息加上时间戳和序列号后分别发给SN-C3和SN-C4,SN-C3和SN-C4都将其收到的消息分别发给SN-C1和SN-C2,由于SN-C1失效,最终只有SN-C2收到来自SN-C3和SN-C4的180信息并将该信息发给UE1。
(2.4)UE1收到来自SN-C1和SN-C2的180消息。
UE1将接受第一个180消息,并缓存180消息,以后UE1收到180消息后,将其时间戳与缓存的180消息时间戳进行比较。如果时间戳相同,则忽略该消息;如果时间戳不同,则接受该消息,并将其替换原缓存的消息。
若在非正常情况下:如图6所示SN-C1失效,只有SN-C2发送180消息给UE1,UE1最终只收到SN-C2的180消息,但是通过该消息UE1足以知道UE2已经收到INVITE消息并开始振铃。
(2.5)若UE2确认接听,UE2会将OK消息发给SN-C3和SN-C4,通过SN-C3和SN-C4将该消息发给UE1。
UE1收到200(OK)消息表明UE2接受了UE1的INVITE消息,即UE2用户接起了电话。UE2会在发送的OK消息加上时间戳和序列号后发给SN-C3和SN-C4,SN-C3和SN-C4都将该消息分别发给SN-C1和SN-C2,SN-C1和SN-C2都将该消息发给UE1。
若在非正常情况下:如图6所示SN-C1失效,UE2接听后,UE2将OK消息发给SN-C3和SN-C4,SN-C3和SN-C4都将该消息分别发给SN-C1和SN-C2,只有SN-C2收到OK信息,并将消息发给UE1。
(2.6)UE1接收到OK消息后,将确认字符(ACK)消息分别发到SN-C1和SN-C2,通过它们发给UE2,具体包含以下过程:
(2.6.1)UE1会在ACK消息中加上时间戳和编号后分别转发到SN-C1和SN-C2,并缓存OK消息,以后UE1收到OK消息后,将其时间戳与缓存的OK消息时间戳进行比较。如果时间戳相同,则忽略该消息;如果时间戳不同,则接受该消息,并将其替换原缓存的消息。
若在非正常情况下:如图6所示SN-C1失效,UE1只收到了来自SN-C2的OK消息,但是已经足以让UE1知道被叫UE2已经接听了电话,所以UE1会发送ACK消息给服务器节点SN-C1和SN-C2,虽然只有SN-C2能收到消息。
(2.6.2)SN-C1和SN-C2都将ACK消息分别发送给SN-C3和SN-C4。
若在非正常情况下:如图6所示SN-C1失效,只有SN-C2将ACK消息发送给SN-C3和SN-C4。
(2.6.3)SN-C3和SN-C4接收到ACK消息后,都将ACK消息发送给UE2。
(2.7)UE2收到其服务器节点发来的ACK消息后,两个客户端间通话建立。
UE2接受第一个ACK消息,并缓存ACK消息,以后UE2收到ACK消息后,将其时间戳与缓存的ACK消息时间戳进行比较。如果时间戳相同,则忽略该消息;如果时间戳不同,则接受该消息,并将其替换原缓存的消息。
若在非正常情况下:如图6所示SN-C1失效,但是由于另一个服务器节点SN-C2仍能够正常传输消息,所以在单服务器节点失效的情况下,另一个服务器节点还是完成整个呼叫建立过程中的SIP信令传输,整个呼叫建立过程依然可以顺利完成,并且对用户而言保持透明(红色消息表示在正常流程中SN-C1发出的消息)。对于其它SN-C,在呼叫建立过程中的任意时刻失效,整个呼叫发起流程可以顺利进行,正常建立通话(只考虑一个客户端的两个服务器节点中一个失效的这一普遍情况下出现的问题)。
(3)通话建立后,用户终端之间可以一直通话,在通话过程中用户终端还要定期向服务器节点发送注册消息(相当于心跳包),在服务器节点上重新注册。
UE在Register消息中附加上相同的时间戳,并附加上不同的编号,UE根据本地列表中服务器节点的信息,分别发送给2个SN-C节点,建立注册,具体如步骤(1.4)-(1.5)。
在注册过程中很可能由于网络问题出现服务器节点失效的情况,则执行步骤(1.6)建立注册。
(4)通话完成后,一个用户终端会向另一方发送挂机消息来释放呼叫,该过程(如图4所示)包含以下步骤:
(4.1)当UE1要结束通话时,UE1将BYE消息分别转发到SN-C1和SN-C2,通过SN-C1和SN-C2发送给UE2,具体包含以下过程:
(4.1.1)当UE1要结束通话时,UE1在BYE消息加上时间戳和编号后分别转发到SN-C1和SN-C2。
(4.1.2)SN-C1和SN-C2都将BYE消息分别发送给SN-C3和SN-C4。
(4.1.3)SN-C3和SN-C4接收到BYE消息后,都将BYE消息发送给UE2。
(4.2)UE2通过SN-C3和SN-C4收到BYE消息发。
UE2接收第一个BYE消息,并缓存BYE消息,以后UE2收到BYE消息后,将其时间戳与缓存的BYE消息时间戳进行比较。如果时间戳相同,则忽略该消息;如果时间戳不同,则接受该消息,并将其替换原缓存的消息。
(4.3)UE2接收到BYE消息后,结束通话,将发送OK消息给SN-C3和SN-C4,通过SN-C3和SN-C4发给UE1。
UE2将该消息加上时间戳和序列号后发给SN-C3和SN-C4,SN-C3和SN-C4都将该消息分别发给SN-C1和SN-C2,SN-C1和SN-C2都将该消息发给UE1。
由于网络的不稳定性在结束通话过程的各阶段都可能发生服务器节点失效的情况,最普遍的情况就是单服务器节点失效。在结束通话释放呼叫的任何时候都可能发生单服务器节点失效的情况,下面我们仅结合图7对这种情况进行说明。如图7所示(红色消息表示在正常流程中SN-C1发出的消息)在释放呼叫过程中SN-C1失效,SN-C1无法再接收或传送SIP信令,只有SN-C2可以正常传输SIP信令。UE2接收到BYE消息后,结束通话,将发送OK消息,UE2将该消息加上时间戳和序列号后发给SN-C3和SN-C4,SN-C3和SN-C4都将该消息分别发给SN-C1和SN-C2,由于SN-C1失效,只有SN-C2收到OK消息并将将该消息发给UE1。
(4.4)UE1通过其注册的服务器节点SN-C1和SN-C2收到OK消息后,本次通话完全结束。
UE1将接受第一个OK消息,并缓存OK消息,以后UE1收到OK消息后,将其时间戳与缓存的OK消息时间戳进行比较。如果时间戳相同,则忽略该消息;如果时间戳不同,则接受该消息,并将其替换原缓存的消息。
若在非正常情况下:如图7所示在释放呼叫过程中SN-C1失效,UE1只收到来自SN-C2的OK消息,但是已经足以让UE1知道被叫端同意正常挂机结束通话。由于另一个服务器节点SN-C2仍能够正常传输消息,所以在单服务器节点失效的情况下,另一个节点还是完成整个呼叫释放过程中的SIP信令传输,整个呼叫释放过程依然可以顺利完成,并且对用户而言保持透明(红色消息表示在正常流程中SN-C1发出的消息)。对于其它SN-C节点,在呼叫释放过程中的任意时刻失效,整个呼叫释放流程可以顺利进行,正常结束通话(只考虑一个客户端的两个服务器节点中一个失效的这一普遍问题)。
(5)呼叫释放完成,用户终端正常结束通话。
至此,基于P2P的SIP VoIP系统中可靠信令传输方法完成了VOIP系统中需要的各种SIP信令传输。
实例:
利用本发明所阐述基于P2P的SIP VoIP系统中可靠信令传输方法,实验室提供了10个超级节点以及2台普通PC机。PC机的硬件配置如下:
  机器名   CPU   内存   硬盘   网络带宽
  超级节点   PIIII2.0G   2G   40G   100M
  终端节点PC   PIIII1.7G   256M   40G   10M
如图8利用实验室的设备部署的本系统,本系统主要有超级节点和终端节点组成。超级节点分为核心超级节点SN-C和资源索引超级节点SN-T。核心超级节点SN-C的功能有:会话控制和业务处理,分布式数据存储与定位(Reload),周期地报告自身状态给资源索引超级节点SN-T。索引超级节点SN-T的功能有:指导SN-C加入业务网络,指导UE找到管理节点SN-C,周期性统计核心超级节点SN-C的状态。终端节点UE是指运行标准SIP协议或流媒体协议的终端节点,这类终端既可以是PC等设备也可以是可移动的手持设备。标准的终端节点通过标准的SIP协议或流媒体协议接入到业务网络。
在搭建好的实验环境下,用户终端UE1、UE2首先向SN-T节点发送注册消息,SN-T节点根据负载均衡原则分别向UE1、UE2返回SN-C列表,用户终端挑选SN-C1、SN-C2作为服务器节点,为了验证在单服务器节点失效的情况下SIP信令流程,我们人为的在注册过程中是SN-C2失效,注册完成后我们查看UE1的UID-IP对应表,我们发现表中没有SN-C2,取而代之的是SN-3节点作为服务器节点。接着,开始模拟通话建立的过程,UE1有服务器节点SN-C1和SN-C3,我们在任意时刻SN-C3失效断开网络,UE2均能顺利收到了UE1的呼叫消息,UE2接通后可以与UE1进行通话,通过全过程的抓包,我们发现是SIP信令流程符合我们的分析的。最后,我们完成通话,UE2挂机,人为的使UE1的一个服务器节点失效,UE1能够收到UE2的BYE消息,UE1确认后,两边终端正常完成呼叫的释放,通过抓包分析,呼叫释放过程中SIP信令流程是按我们上述预期进行的。
经多次测试,采用本发明所论述的可靠SIP信令传输方法,在任意时刻使用户终端的一个服务器节点失效,终端用户都能完成注册、呼叫建立、呼叫释放的SIP信令流程,整个系统能够稳定地工作。
本领域一般技术人员根据本发明公开的内容,能够采用其它具体实施方式实现本发明创造。

Claims (3)

1.一种VoIP系统中信令的传输方法,基于P2P技术实现SIP信令的可靠传输,该方法具体包括如下步骤:
(1)首先终端节点向引导节点发送注册消息,并从引导节点提供的服务器节点中选择两个服务器节点,将该终端节点注册到所述两个服务器节点上;
其中,所述引导节点指覆盖网的启动节点,其指导服务器节点加入覆盖网,并响应终端节点的消息,返回服务器节点给终端节点;所述服务器节点响应终端节点的各种SIP信令消息;
(2)注册成功之后的终端节点之间即可建立通话过程,具体建立过程如下:
(2.1)任意终端节点UE1作为通话发起方将邀请INVITE消息分别发给其注册的服务器节点SN-C1和SN-C2,并通过SN-C1和SN-C2将邀请INVITE消息发送给作为通话接受方的终端节点UE2,具体包含以下过程:
(2.1.1)UE1将邀请INVITE消息加上时间戳和序列号后分别发到SN-C1和SN-C2;
(2.1.2)SN-C1解析邀请INVITE消息,通过分布式哈希表(DHT)网络找到UE2注册的服务器节点SN-C3和SN-C4,并将邀请INVITE消息发送到SN-C3和SN-C4;
(2.1.3)SN-C3和SN-C4接收到邀请INVITE消息后,都将邀请INVITE消息发送给UE2;
(2.2)UE2通过其所注册的两个服务器节点SN-C3和SN-C4收到UE1的邀请INVITE消息;
(2.3)UE2收到邀请INVITE消息后,将180消息分别发给SN-C3和SN-C4,并通过SN-C3和SN-C4将180消息发给UE1;
(2.4)UE1收到180消息,等待UE2接听;
(2.5)若UE2确认接听,UE2会将OK消息发给SN-C3和SN-C4,并通过SN-C3和SN-C4将OK消息发给UE1;
(2.6)UE1接收到OK消息后,将确认字符ACK消息分别发到SN-C1和SN-C2,并通过SN-C1和SN-C2发给UE2;
(2.7)UE2收到确认字符ACK消息后,两个客户端间通话建立;
(3)通话建立后,在通话过程中用户终端定期向服务器节点发送注册消息,进行注册更新;
(4)通话完成后,一个用户终端会向另一方发送挂机消息来释放呼叫,该过程包含以下步骤:
(4.1)当UE1要结束通话时,UE1将BYE消息分别转发到SN-C1和SN-C2;
(4.2)UE2接收到BYE消息后,结束通话,将发送OK消息给SN-C3和SN-C4,通过他们发给UE1;
(4.4)UE1收到OK消息后,呼叫释放完成,本次通话结束。
2.根据权利要求1所述的传输方法,其特征在于,所述的步骤(1)的具体注册过程为:
(1.1)终端节点向引导节点发送注册消息;
(1.2)引导节点通过负载均衡算法选择服务器节点,并将服务器节点列表转发给终端节点;
(1.3)终端节点从服务器节点列表中任选2个服务器节点,并将用户标识(UID)和这2个服务器节点的IP保存在本地列表中;
(1.4)终端节点分别向上述两个服务器节点发送注册消息;
(1.5)终端节点收到来自上述两个服务器节点的Ok消息,则表示注册成功。
3.根据权利要求1或2所述的传输方法,其特征在于,在步骤(1)或步骤(3)的注册过程中由于网络问题出现服务器节点失效的情况时,为保证信令的可靠传输,进行如下处理:
(A)在注册过程中,若终端节点检测到所注册的两个服务器节点中有服务器节点失效时,终端节点再向引导节点发送注册消息;
(B)引导节点根据IP邻近原则返回服务器节点的IP列表给终端节点;
(C)终端节点再次从中选择新的服务器节点,重新向其发送注册消息;
(D)当该再次选择的服务器节点返回OK消息后,终端节点更新本地列表,该再次选择的服务器节点成为终端节点的服务器节点。
CN2010102782132A 2010-09-10 2010-09-10 一种VoIP系统中信令的传输方法 Expired - Fee Related CN101938521B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102782132A CN101938521B (zh) 2010-09-10 2010-09-10 一种VoIP系统中信令的传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102782132A CN101938521B (zh) 2010-09-10 2010-09-10 一种VoIP系统中信令的传输方法

Publications (2)

Publication Number Publication Date
CN101938521A CN101938521A (zh) 2011-01-05
CN101938521B true CN101938521B (zh) 2012-11-21

Family

ID=43391648

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102782132A Expired - Fee Related CN101938521B (zh) 2010-09-10 2010-09-10 一种VoIP系统中信令的传输方法

Country Status (1)

Country Link
CN (1) CN101938521B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103971687B (zh) * 2013-02-01 2016-06-29 腾讯科技(深圳)有限公司 一种语音识别系统中的负载均衡实现方法和装置
CN104702667B (zh) * 2015-01-30 2018-04-27 武汉大学 一种应用服务系统扩展的方法及装置
CN108540487B (zh) * 2018-04-24 2020-12-08 深圳震有科技股份有限公司 一种呼叫释放方法、存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101102310A (zh) * 2007-07-25 2008-01-09 中国科学院沈阳计算技术研究所有限公司 支持p2p媒体传输的sip软交换系统及其实现方法
CN101420434A (zh) * 2008-12-03 2009-04-29 深圳市众方信息科技有限公司 一种支持VoIP通信的P2P方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201029413A (en) * 2009-01-21 2010-08-01 Univ Nat Taipei Technology NAT traversal method in Session Initial Protocol

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101102310A (zh) * 2007-07-25 2008-01-09 中国科学院沈阳计算技术研究所有限公司 支持p2p媒体传输的sip软交换系统及其实现方法
CN101420434A (zh) * 2008-12-03 2009-04-29 深圳市众方信息科技有限公司 一种支持VoIP通信的P2P方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
余林琛 等.基于P2P-SIP的语音组通讯机制研究.《微电子学与计算机》.2009, *

Also Published As

Publication number Publication date
CN101938521A (zh) 2011-01-05

Similar Documents

Publication Publication Date Title
KR101130398B1 (ko) 제3자 호 및 장치 제어를 용이하게 하기 위한 시스템 및방법
KR100921554B1 (ko) 음성통화중에 다양한 콘텐츠를 공유 및 제어할 수 있는콘텐츠공유서비스를 제공하는 시스템 및 그 방법
US6567398B1 (en) Distributed call system
CN102232291B (zh) 一种通信的方法、系统及装置
WO2007031021A1 (en) Method for multi-channel multi-device call transfer
CN101453524B (zh) 一种多媒体业务的实现方法
CN1611084A (zh) 电路交换通信和分组交换通信
KR20070118003A (ko) 얼리 세션을 이용한 세션 설정 프로토콜 기반의 얼리미디어 서비스 제공 방법
TW576085B (en) Pervasive voice handset system
CN1984373B (zh) 通信系统中提供多媒体内容的系统和方法
CN105577605A (zh) 网页实时通信中采用基于WebSocket协议的双向REST的方法与服务器
CN101467420A (zh) 提供基于会话发起协议的早期媒体服务的方法
CN101938521B (zh) 一种VoIP系统中信令的传输方法
US7609663B2 (en) Method for establishing a communication connection in a direct communication network
WO2018006678A1 (zh) 语音通话方法及装置
CN101534312B (zh) 基于初始会话协议的点击拨号代理呼叫方法及装置
US8983043B2 (en) Data communication
CN103595704B (zh) 一种面向voip的企业通信应用一键呼叫方法
CN101296193B (zh) 一种refer消息扩展参数的支持方法
CN212305377U (zh) 一种ims办公业务系统
US20140211788A1 (en) Method and a system to discover and establish an enriched communication channel in a voice call
CN100542354C (zh) 终端配置方法和终端配置系统
CN102185828B (zh) 一种pc软件与sip ua绑定及控制的方法
CN101197888A (zh) 实现非智能sip终端呼叫等待选择挂机的方法和系统
GB2553725A (en) Data communication

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121121

Termination date: 20150910

EXPY Termination of patent right or utility model