一种IP电话系统及其通信方法
本发明涉及一种IP电话技术,尤指一种可实现PC机与普通电话通信的IP电话系统及其通信方法。
随着英特网应用的不断扩展和IP电话的日趋成熟与完善,人们对IP电话的认识和使用需求越来越多,也越来越高。目前有两种方式能提供IP电话服务:电话终端对电话终端(Phone to Phone)、电脑终端对电脑终端(PC to PC)。
其中,电话终端对电话终端(Phone to Phone)的IP电话系统,如图1所示,是将一端的本地电话网接入到英特网上,使通信数据通过英特网传输,当到达目的地时,再将英特网数据传到目的地的本地电话网上,实现电话两端通话。它主要由电话网、网关、网守和功能服务器组成,呼叫的建立是由本地电话通过本地电话网向本地网关呼叫,本地网关通过与本地网守通信,得到对方网关的路由地址,本地网关根据路由地址访问对方网关,由对方网关向对方网守发出呼叫请求,当请求通过后,双方网关可以进行语音包的互相传递,实现通话。其中,网关可实现协议转换并负责接续;网守向网关提供路由信息,使网关完成正常的接序,并提供认证和计费接口;功能服务器中的管理系统用于完成对用户身份认证及通话计费等功能。但该系统目前没有统一的规范,各种设备(如网关、网守)之间的标准和性能差异又大,相互之间的互通性不好实现。
电脑终端对电脑终端(PC to PC)是利用因特网上的通话工具软件NetMeeting实现,如图2所示,只要主、被叫同时上网,就可以通话,语音编码由NetMeeting完成后打成数据包发出,通过因特网到达对方。对方一侧的NetMeeting软件拆包、解码转化为语音信号。使用NetMeeting软件通话完全是在英特网内,不需要协议转换,也无需网关支持,实现简单方便。但它不能提供网络安全性保证措施,不具有对用户权限和身份的认证功能以及通话计费功能。
根据上述分析可以看出,Phone to Phone的IP电话系统具有网络安全保证措施、认证功能和计费功能,但互通性差;而PC to PC的IP电话系统互通性好,但不具有网络安全保证措施、认证和计费,这两种IP电话系统各自存在的缺点正好是对方的优势所在,因此,如果将上述两种形式相结合,利用两种方法各自具有的优点相互补充,即可解决上述两种方法所存在的问题。
有鉴于此,本发明的主要目的在于提供一种IP电话系统,使得该系统可以通过英特网提供PC机与普通电话之间的IP电话服务,以方便用户使用。
本发明的另一目的在于提供一种上述IP电话系统的通信方法,使得该IP电话系统不仅互通性好,且具有完整的网络安全保证、认证功能以及通话计费功能,从而使得IP电话的使用更安全、更可靠。
为达到上述目的,本发明的技术方案是这样实现的:
一种IP电话系统;包括主叫端、被叫端和IP网,主叫端和被叫端通过IP网相连,被叫端主要由网关、电话网构成,被叫端网关与电话网连接,并通过IP网与主叫端呼叫服务器相连;重要的是:
主叫端主要由一个以上客户终端、呼叫服务器和主叫侧网守组成,呼叫服务器、客户终端与网守均在IP网上;该客户终端中至少包括客户应用模块、客户辅助处理模块以及语音通信模块;其中,客户应用模块与客户辅助处理模块相连,客户辅助处理模块与语音通信模块相连;该客户辅助处理模块由决策处理模块和消息收发模块构成;呼叫服务器至少含有一接续辅助处理模块,该接续辅助处理模块与客户辅助处理模块和语音通信模块互通,以传递消息或数据。
该主叫端还可进一步包括一台认证服务器,该认证服务器直接连入IP网。
所述的被叫端还可进一步包括一台认证服务器,该认证服务器直接与IP网相连。该被叫端还可包括一网守,该网守与所述的网关相连。
所述的呼叫服务器可提供计费接口,用以连接计费系统,并将计费数据传送给计费系统。
一种实现上述IP电话系统通信的IP电话通信方法,该方法是由用户通过客户终端发出呼叫请求;呼叫请求被允许后,在主、被叫间建立呼叫,主叫端用户与被叫端网关进行语音包的相互传递,实现通话;当一端挂机后,释放呼叫,回到等待呼叫请求状态;其特征在于:主叫端呼叫建立的过程是由呼叫服务器代替客户终端完成的,客户终端发请求给呼叫服务器,由呼叫服务器与被叫网关互通消息,呼叫服务器接收到被叫网关的每个消息同时转发给客户终端。
该主叫端呼叫建立过程至少包括以下几个步骤:
a.用户请求登录,并输入登录请求信息,再由客户终端发登录请求给呼叫服务器;
b.呼叫服务器收到登录请求后,经确认,如果同意,则向客户终端发允许登录消息,否则向客户终端发拒绝登录消息,并回到步骤a等待用户请求;
c.登录成功后,由用户输入被叫号码,并由客户终端向呼叫服务器发呼叫请求;
d.呼叫服务器收到呼叫请求消息后,经确认,如同意,呼叫服务器向客户终端发呼叫请求通过消息,并同时设立定时、向网守发接入请求,由网守提供被叫端网关的路由地址,否则,呼叫服务器向客户终端发呼叫失败消息,回到步骤c;
e.如果呼叫服务器在定时内接到网守发的接入请求通过消息,呼叫服务器向客户终端发接入通过消息;如呼叫服务器在定时内未接到网守的消息或接到网守的接入拒绝消息,呼叫服务器向客户终端发网络故障或路由失败或拒绝接入消息,回到步骤c;
f.如果呼叫服务器从网守处得到被叫网关路由地址,且呼叫服务器按路由地址与被叫网关发起呼叫,当被叫网关可以接入认可时,该网关向呼叫服务器发正在接续消息,呼叫服务器在定时内接到该消息后,呼叫服务器向客户终端发正在接续消息;否则,呼叫服务器向客户终端发路由接续失败消息,回到步骤c;
g.呼叫服务器收到被叫网关的正在接续消息后,刷新定时,如在新定时段内收到被叫网关的振铃消息,呼叫服务器向客户终端发被叫振铃消息;否则,呼叫服务器向客户终端发呼叫失败消息,回到步骤c;
h.呼叫服务器收到被叫网关的被叫振铃消息后,刷新定时,如在新定时段内收到被叫网关的被叫摘机消息,呼叫服务器向客户终端发被叫摘机消息;否则,呼叫服务器向客户终端发呼叫失败消息,回到步骤c;
i.客户终端接到被叫摘机消息后,客户终端启动语音通信模块与被叫网关开始通话,否则回到步骤c。
其中,登录请求信息至少包括用户卡号和用户密码号。步骤b和步骤d中所述的确认可进一步包括以下步骤:呼叫服务器将请求信息发给认证服务器,由认证服务器认证后,返回认证信息。
客户终端进入登录等待状态后还可包括一修改密码的过程。
本发明IP电话系统的构成一端采用与Phone to Phone的IP电话系统电话终端完全一致的结构作为被叫端,那么,被叫端的IP通信处理方法、流程与Phone to Phone是完全一致;而另一端采用客户终端、呼叫服务器以及网守构成主叫端,只要其能完成与原来电话终端同样的功能即可实现互通。
具体的说就是,在现有Phone to Phone的IP电话系统中,主叫端主要是通过本地网关配合本地网守完成建立呼叫、语音及信令处理、认证等功能,而本发明中IP电话系统的主叫端是采用客户终端和呼叫服务器配合网守完成呼叫建立、语音及信令处理、认证等IP电话业务,因此本发明的重点就是使客户终端与呼叫服务器能够替代网关,共同完成网关的功能。实际上,网关的功能主要包括两大部分:协议转换和通信处理,因为本发明主叫端的客户终端和呼叫服务器均在IP网内部,无需与其他网络相连,故此不存在协议转换的问题,只要本发明IP电话系统的通信方法能实现由客户终端和呼叫服务器完成与被叫端之间的呼叫接续、互通、语音及信令处理等通信功能即可。
在互通性上,本发明主要是利用PC to PC中所采用的NetMeeting软件作为基础,因为NetMeeting具有与标准网关互通的能力。所说的互通包括信令互通和语音互通,而NetMeeting只能通过标准协议H.245实现与被叫端网关的语音通信,但其不能实现IP网的信令互通,故此,信令互通可采用代理的方式。如图4所示,将原来NetMeeting与被叫网关的直接通信变为由NetMeeting通过呼叫服务器与被叫网关的间接通信,即让呼叫服务器成为NetMeeting与被叫端网关通话的“翻译”。具体地说就是:首先由呼叫服务器代替客户终端呼叫被叫端网关,并与被叫端网关之间建立起呼叫通道后,再真正由客户终端中的NetMeeting与被叫端网关按标准协议进行通话。由于存在呼叫服务器的代理关系,双方的信令完全在呼叫服务器的掌握之中,虽然NetMeeting不具有认证功能、计费功能及网络安全措施,但可由呼叫服务器为认证服务器、计费系统提供接口,输送数据,从而实现计费、认证功能,同时,还可在呼叫服务器上增加保证网络安全的措施。
综上所述,本发明所提供的IP电话系统及其通信方法,是建立在现有的Phone to Phone以及PC to PC两种IP电话系统的基础之上,是两种形式的结合,它由主叫端的客户终端和呼叫服务器取代了原有网关,并由呼叫服务器代理了客户终端在呼叫建立之前与被叫端网关的通信事务,从而达到既可实现各产品之间的互通,又可保证网络安全,实现计费与认证功能的目的,令用户使用起来更方便、安全、可靠。如此设计IP电话系统,不仅结构简单,实现方便,且由于该系统可借用大量现有资源,因此降低了硬件成本和组网成本。另外,由于PC机上网方便,费用低廉,从而为用户提供了方便,尤其是需要与国际联络的用户,大大节省了通话成本。
有关本发明的详细说明及技术内容,配合附图说明如下:
图1为现有Phone to Phone型IP电话系统的组成结构示意图;
图2为现有PC to PC型IP电话系统的组成结构示意图;
图3为本发明的IP电话系统的组成结构示意图;
图4为采用呼叫服务器代理客户终端完成信令互通的原理示意图;
图5为本发明主叫端客户终端中模块之间的调用关系示意图;
图6为本发明主叫端客户终端与呼叫服务器之间的通信原理示意图;
图7为客户终端完成登录的流程图;
图8为客户终端登录后完成呼叫接续的流程图;
图9为客户终端在通话状态时收到主叫挂机的流程图;
图10为客户终端在通话状态时收到被叫挂机的流程图;
图11为客户终端在登录状态下收到修改密码的流程图。
如图3所示,本发明具体是采用电脑终端对电话终端(PC to Phone)的IP通话方式,一端采用与Phone to Phone型IP电话系统相同的电话终端结构,而另一端由多个客户终端和一呼叫服务器组成。其呼叫过程的实现是由用户首先发出呼叫请求给呼叫服务器,然后由呼叫服务器呼叫被叫网关,经过认证后,建立起一话路通道,再由用户通过客户终端上的NetMeeting直接与被叫网关通话,进行语音传递。由于该系统在建立呼叫之前是用呼叫服务器代替客户终端与被叫端进行标准的信令通信,而在呼叫建立之后由客户终端利用其内部的NetMeeting直接与被叫端进行标准的语音通信,因此互通性好,具有与多种网关互通的能力。另外,由于采用呼叫服务器代理通信的方法,那么呼叫服务器就可以掌握呼叫全过程中双方的所有信令传递,因此它可以为认证服务器、计费系统提供接口,输送数据,从而实现计费、认证功能,同时,还可在呼叫服务器上增加各种保证网络安全的防护措施,如:增加防火墙、验证和防黑客软件等等,以防止黑客对网守或计费系统的攻击。
如图5所示,客户终端至少包括三部分:客户应用模块、客户辅助处理模块以及语音通信模块。其中,客户应用模块有两个主要作用:一是用于接收用户的输入信息,比如接收客户输入的卡号、密码、被叫号码等等信息;另一方面是向用户显示当前系统状态,可以显示通话接续过程的状态信息,比如:卡无效、密码错误、卡中余额等等。语音通信模块主要由NetMeeting构成,在通话时被调用,用来进行与被叫网关的语音交互,实现通话。客户辅助处理模块是客户终端中最重要的一部分,主要完成消息收发和消息处理,它可以将客户应用模块的用户输入信息根据需要传到被叫方网关或传送到NetMeeting,比如:将客户应用模块传来的用户数据交给网守,实现认证,接到认证结果后再传回客户应用模块显示出来。因此,根据其功能客户辅助处理模块又分为消息收发模块和决策处理模块,消息收发模块负责接收来自网上的消息和发送客户终端的消息到网上,即:将从网上接收来的消息进行格式整理后发给决策处理模块进行处理;同时,它还将决策处理模块送来的消息经过打包送上IP网。决策处理模块是通过对内部状态变量、接到网上消息、以及用户操作进行综合分析后,决定应该如何处理,下一步将进行何种操作,比如:决定在当前状态下应该向呼叫服务器发何种消息;决定当前是否需要调用语音通信模块;决定当前应向用户界面显示何种信息等等。
如图6所示,图6为本发明主叫端呼叫服务器与客户终端之间的通信原理示意图。本发明的IP电话系统在通话之前采用呼叫服务器代理客户终端的通信业务,实际上是由客户终端发出请求信息给呼叫服务器,再由呼叫服务器与网守或与被叫网关通信,当网守或被叫网关有回应消息给呼叫服务器时,实际上呼叫服务器不仅发消息答复对方,同时也将同样的消息发给客户终端,使客户终端随时了解当前通信状态。那么客户终端与呼叫服务器之间的通信全部是通过客户终端中的客户辅助处理模块、语音通信模块和呼叫服务器中的接续辅助处理模块完成的,它们之间采用标准的Radius协议或RAS协议或Q.931协议,或者私有协议定义的消息来实现通信,该私有协议定义的消息分两种:一种是客户终端(PCC)发出的消息,其消息格式如表1所示:
消息号 |
用户卡号 |
用户密码 |
修改密码 |
被叫号码 |
PCS呼叫块号 |
表1另一种是由呼叫服务器(PCS)发出的消息,该消息格式如表2所示:
表2其中消息的具体定义及说明如表3所示:
消息号 |
消息名称 |
发出点 |
消息说明 |
1 |
登录请求 |
PCC |
PCC要求登录PCS |
2 |
允许登录 |
PCS |
PCS同意登录 |
3 |
登录拒绝 |
PCS |
PCS拒绝登录 |
4 |
接入请求 |
PCC |
PCC向PCS发出接续请求 |
5 |
接入通过 |
PCS |
PCS同意PCC接入 |
6 |
拒绝接入 |
PCS |
PCS拒绝PCC接入 |
7 |
路由失败 |
PCS |
PCS从网守处未获得路由地址 |
8 |
被叫振铃 |
PCS |
接到被叫网关“被叫振铃”消息后,PCS通知PCC |
9 |
被叫摘机 |
PCS |
接到被叫网关“被叫摘机”消息后,PCS通知PCC |
10 |
被叫挂机 |
PCS |
接到被叫网关“被叫挂机”消息后,PCS通知PCC |
11 |
修改密码请求 |
PCC |
PCC提出修改密码请求 |
12 |
修改密码成功 |
PCS |
修改密码成功 |
13 |
修改密码失败 |
PCS |
修改密码失败 |
14 |
心博信号 |
PCC |
PCC向PCS定时发“空信号”,表示处于接续状态 |
15 |
心博信号 |
PCS |
PCS定时向PCC发“空信号”,表示处于接续状态 |
表3那么,整个呼叫的具体实现时这样完成的:
a.用户请求登录,通过客户终端的客户应用模块输入登录请求信息,并由客户终端的客户辅助处理模块生成登录请求,并发登录请求给呼叫服务器的接续辅助处理模块;
b.呼叫服务器的接续辅助处理模块收到登录请求后,经确认,如果同意,则向客户终端发允许登录消息,否则向客户终端发拒绝登录消息,并回到步骤a等待用户请求;
c.登录成功后,用户再通过客户应用模块输入被叫号码,然后由客户辅助处理模块生成呼叫请求,并将该呼叫请求发给呼叫服务器的接续辅助处理模块;
d.呼叫服务器的接续辅助处理模块收到呼叫请求消息后,经确认,如同意,接续辅助处理模块向客户终端发呼叫请求通过消息,并同时由呼叫服务器的接续模块设立定时、向网守发接入请求,请求网守提供被叫端网关的路由地址,否则,接续辅助处理模块向客户终端发拒绝接入消息,回到步骤c;
e.如果呼叫服务器在定时内接到网守发的接入请求通过消息,呼叫服务器向客户终端发接入通过消息;如呼叫服务器在定时内未接到网守的消息或接到网守的接入拒绝消息,呼叫服务器向客户终端发网络故障或路由失败或拒绝接入消息,回到步骤c;
f.如果呼叫服务器从网守处得到被叫网关路由地址,且呼叫服务器按路由地址与被叫网关发起呼叫,当被叫网关可以接入认可时,该网关向呼叫服务器发正在接续消息,呼叫服务器在定时内接到该消息后,呼叫服务器向客户终端发正在接续消息;否则,呼叫服务器向客户终端发路由接续失败消息,回到步骤c;
g.呼叫服务器收到被叫网关的正在接续消息后,刷新定时,如在新定时段内收到被叫网关的振铃消息,呼叫服务器向客户终端发被叫振铃消息;否则,呼叫服务器向客户终端发呼叫失败消息,回到步骤c;
h.呼叫服务器收到被叫网关的被叫振铃消息后,刷新定时,如在新定时段内收到被叫网关的被叫摘机消息,呼叫服务器向客户终端发被叫摘机消息;否则,呼叫服务器向客户终端发呼叫失败消息,回到步骤c;
i.客户终端接到被叫摘机消息后,客户终端启动语音通信模块与被叫网关开始通话,否则回到步骤c;
j.在通话状态下,如果主叫挂机,客户辅助处理模块将该消息传给呼叫服务器的接续辅助处理模块,由呼叫服务器发给被叫网关,同时释放语音通信模块;如果呼叫服务器收到被叫网关发来的被叫挂机消息,由接续辅助处理模块将该消息发给客户终端,客户终端回到登录等待状态。
上述通信过程由呼叫服务器完成全过程的信令传递,因此互通性好。
参见图7所示,客户终端的登录过程至少包括以下步骤:
1)用户通过客户应用模块输入登录请求信息,该信息包括用户卡号和用户密码,客户应用模块通知客户辅助处理模块发请求,并由客户辅助处理模块创建一套接字(Socket)通信接口模块;
2)在客户辅助处理模块中生成登录请求消息,并按RAS协议打包发送给呼叫服务器的接续辅助处理模块,然后等待回送消息;
3)收到呼叫服务器接续辅助处理模块发来的允许登录消息后,再将登录请求信息打包发给呼叫服务器接续辅助处理模块,然后等待回送消息;否则,回到步骤1);
4)收到呼叫服务器接续辅助处理模块发来的登录成功消息后,进入登录状态,否则,回到步骤1)。
进入登录状态后,用户输入被叫号码,继续呼叫请求,如图8所示,具体流程是这样的:
1)首先由用户通过客户终端的客户应用模块输入被叫号码;
2)再由客户辅助处理模块生成呼叫请求,并按RAS协议将数据打包发送给呼叫服务器的接续辅助处理模块,然后等待呼叫服务器回送消息;
3)如收到呼叫服务器发送的接续通过的消息,则客户辅助处理模块启动语音通信模块与被叫网关通信,进入通话状态;否则,回到步骤1)。
在上述登录过程和呼叫接续过程中,对登录请求和呼叫请求需经过认证服务器的认证,该认证过程是这样的:首先由客户终端发出请求给呼叫服务器;再由呼叫服务器将该请求发给认证服务器认证该请求信息是否合法,是否可以通过,或查找其他相关信息;认证服务器经过认证后,将认证结果回传给呼叫服务器,呼叫服务器再将此消息发给客户终端。其中,登录请求认证时,认证服务器发回的消息中还包括卡中的余额信息,可以让用户自己了解卡中情况,确定是否能继续打电话。
在通话状态下,如果客户终端收到呼叫服务器发来的主叫挂机消息,其具体处理过程如图9所示:
1)由客户辅助处理模块生成释放消息,并将该消息按RAS协议打包发给呼叫服务器的接续辅助处理模块,同时打开定时器,以检测是否超时无答复,然后等待呼叫服务器回送消息;
2)当收到呼叫服务器发来的同意拆线的消息后,由客户应用模块显示“主叫挂机”,同时释放语音通信模块,然后回到登录等待状态;否则,如果超时,直接释放语音通信模块,回到登录等待状态。
在通话状态下,当客户终端收到呼叫服务器发来的被叫挂机消息,其具体处理过程如图10所示:直接由客户应用模块显示“被叫挂机”,然后回到登录等待状态。
当客户终端处于登录状态时,还可以修改用户密码,如果此时用户要求修改密码,如图11所示,具体包括以下的处理步骤:
1)用户从客户应用模块输入修改密码信息;
2)由客户辅助处理模块生成修改密码请求,并按RAS协议将数据打包发送给呼叫服务器的接续辅助处理模块,然后等待呼叫服务器回送消息;
3)如收到呼叫服务器发回的修改密码成功的消息,则由客户应用模块显示“修改密码成功”,并回到登录等待状态;否则,由客户应用模块显示“修改密码失败”,然后回到登录等待状态。
在客户终端登录成功与呼叫服务器连通后,客户终端和呼叫服务器在没有消息传递时,会定时向对方发一个心博信号,即一个空消息,以表示双方处于接续状态。
上面所述的一台呼叫服务器可同时支持多个客户终端的呼叫,一般可在2000个用户以上。
在实际应用中,本发明的IP电话系统可以采用多种不同的网关或网守实现,互通性能良好。其具体的实现可在本发明总体技术方案下作适应性设计,皆不脱出本发明的保护范围。