基本概念很多协定与语音通信相关。我们只是简要地提及其中的一部分。在没有任何用于单纯网络电话(VoIP)应用的其它硬件的情形下,此电话系统也能被使用。它需要其它的适配卡才能去接合那些旧式的PBX或类似的电话,除非那些设备也是使用经由以太网络界面的通信方法。
了解从哪里发送讯息去抵达目的地,是任何通信设备的基本通信运作原理。该服务器是作为一个通讯箱,这样其它的终端用户可以认知到它,知道在此处可以发送讯息到其它地方。从功能要点来看,所有发送语音流至服务器的终端用户设备遵循特定的协定,我们可以将它们都称作“电话”。通常,那些在多用途的计算机上运作的语音通信被归诸为“软件电话”;而那些主要功能是语音通信的硬件设备则被视为“硬件电话”。但实际上在硬件电话上也是有部分的软件在运转的。
简而言之,我们只需透过通信协定来鉴别这些电话。比如,那些运作SIP(会议初始化协定)的电话,我们称之为“SIP电话”;那些运作IAX协定的电话,我们就将它们称作IAX电话,而不管它们究竟是“软件”电话还是“硬件”电话。
SIP是IETF(因特网工程工作特别小组)提出的一种协定;IAX( Inter-Asterisk eXchange )协定最初是由一个开放原始码的PBX server Asterisk发展出来的。我们通常所说的“IAX”,实际上是指“IAX2”,因为IAX协定的原始版本一般不太为人赞同。我们在此文件中将使用“SIP电话”或“IAX电话”来表述那些终端用户设备或程序。
许多供货商提供SIP的硬件电话。这样,SIP电话比PC更易被人常用。但在一个拥有NAT的防火墙后配置一台SIP服务器会有一些问题存在。SIP使用UDP端口5060去建构最初的连接,如果它在防火墙后,那可以透过“端口转送”来克服这一问题。但RTP(实时传输协定)的语音流,则是使用UDP端口8000至30000的。所以,通常您只能使用“Full NAT”来向防火墙外的网络曝光服务器,而非仅仅开启部分的端口。甚至当您在防火墙所在的同一台机器上配置SIP服务器时,我们仍然不建议您打开SIP去存取公共网络,因为会有那么多的端口需要开启。
替代的方案是,针对IAX电话,当从防火墙外的网络连接过来时,仅需要开启UDP端口4569。请将防火墙事项列入您的考虑范围。
在深入到更多细节之前,我们用此基本布局去建构一个网络电话。
下图是非常简单的架构︰SW是语音通信服务器,若干“电话客户端程序”连接至SW,所以如果系统完全配置好,它们可以“呼叫”彼此。

例如,如果A的分机号码是7111,而B的是7112,那A处的用户可以拨7112去联系B处的用户。如果B没有应答,您可以在SW上做一些配置,使A可以留言给B。
您也可能要联系另一台服务器上的用户。那可以考虑使用下面的配置。在下图中,SW1和SW2是语音服务器,A、B、C、D是电话客户端,A和B连接至SW1,C和D连接至SW2。

每个服务器可以单独配置,您可在SW1这样设︰
A的分机号码: 7111
B的分机号码: 7112
同样地,在SW2,您可设置︰
C的分机号码: 7111
D的分机号码: 7112
一开始,SW1和SW2这两个系统是各别独立工作,所以SW1上的A可以拨7112联系到B,SW2上的C也可以拨7112联系到D。但我们会碰到SW1上的A要联系SW2上的D这样的需求。此时,我们需要创建SW1和SW2之间的连接,这样如下图所示,SW1和SW2之间可以彼此进行电话呼叫。
如果您想要联系SW2,可以在SW1上先拨打“371”。这样,对于A用户来说,如果拨打7112,那可以联系到B,如果拨打3717112,那就可以联系到D了。在SW2也是如此,您可作相似的设置,即在拨打到另一台服务器前先要拨打某些号码。当然,SW1和SW2必须要免除某些验证,从而允许来自彼此的呼叫进入。我们将透过Web 画面介绍如何操作。此时我们只是关注“思考”如何去作计划。

在上面的图表中,如果SW1和SW2属于不同的公司,它们可以有不同的拨打计划。但如果它们属于同一个公司,那必须要有个整体的统一的拨打计划,这样更易使用户了解如何拨打。
在下面的图表中我们引进了稍多一些的语音服务器,使情形变得更复杂一些。SW1、SW2、SW3、SW4每个节点,都拥有各自的计划去直接呼叫其它服务器。图表中的红色连接箭头表示该服务器可以向其它服务器送出呼叫。有时候,类似于SW1、SW2、SW3、SW4这样处于不同公司不同人管理之下的情形,是没有办法避免的。

但在同一个公司内部,您大概需要考虑采用下图中的层级架构。SW0决定着将到达的呼叫发送至哪个目标服务器。如果这些呼叫未表明它们从何而来,其它所有服务器都将呼叫发送给SW0。这样做的缺陷是︰如果SW0瘫痪了,所有的电话呼叫都无法透过这些服务器。

如果您手头有数量众多的用户,那些情形无疑都是需要被考虑到的。语音通信与电子邮件不同,它几乎是实时的应用,所以极易受制于CPU的处理能力或是网络的频宽。设计一个拨打规划来避免用户需要拨打一长串号码才能联系其它人的状况,是稍微有点棘手的。
|