Browsed by
Tag: 私网

如何在私网中部署MSS,并提供公共服务?

如何在私网中部署MSS,并提供公共服务?

部分客户常常要求在私网内部署MSS,同时又要允许对外提供服务。这就意味着,MSS是部署在私网内,而部分SIP终端或者SIP电话将部署在公网,或者MSS需要与公网的VoIP服务器进行连通。

下图描述了这种场景的一个简单网络部署:

部署网络

在这个网络中,我们可以看到:

(1)私网通过路由器与外部连通。路由器的公网地址是8.8.8.8,而私网地址是192.168.1.1.

(2)MSS部署在私网内,地址是192.168.1.2.

(3)部分SIP电话部署在私网内,例如分机100和101。同时,也有部分分机部署在公网,例如分机102.

对于分机100和分机101而言,由于它们与MSS在同一个网内,因此注册(或者呼叫)到MSS上是没有任何问题的。因此问题是,如何让外部用户,例如分机102,也能访问到MSS?

我们可以通过在路由器中配置“端口转发”来实现这点。

首先,在路由器中,我们需要配置转发UDP端口5060以及10000~20000这些端口,将它们的数据转发到MSS所在的PC上,即192.168.1.2。大多数路由器都能支持端口转发。其中5060端口是SIP协议标准端口,而10000~20000端口一般是RTP媒体流端口。

其次,我们必须指示MSS采用公网地址通信。请点击菜单“数据/ 系统配置 / SIP”,并将”首选地址“配置为公共地址“8.8.8.8”。SIP电话可以通过该地址与MSS通信。

这儿有另外一个问题。在上述应用中,路由器是配置了一个固定的公网地址。然而在现实部署中,通常也有可能部署一个动态地址,例如ADSL路由器情况。外部用户采用动态地址来访问MSS显然不太方便,也不太可能。那我们如何来提供外部服务呢?

要解决这个问题,我们需要采用域名。例如,我们可以采用DynDNS为MSS提供域名访问功能(大陆用户也可以使用花生壳免费域名服务)。路由器必须要支持“Dynamic DNS(动态域名解析)”功能。在我们的示例中,我们假定在DynDNS中注册了一个域名”sip.dyndns.org”,并且已经将其配置在路由器中。接下来,我们就可以采用该域名作为miniSIPServer的SIP服务器“首选地址”,同时将私网地址配置为“次选地址”:

SIP服务器地址配置
SIP服务器地址配置

当然,这要求SIP电话或者终端必须允许采用域名访问SIP服务器。某些设备可能只能采用IP地址方式访问,此时就只能部署公网地址方案。

为什么会语音单通甚至双不通?

为什么会语音单通甚至双不通?

几乎所有的人在部署第一个VoIP网络时,都会遇到这个问题。我们经常会觉得困扰:为什么我听不到对方而对方却能听到我呢?为什么双方都听不到对方呢?

这个问题的根本原因在于:VoIP部署涉及两个不同的网络,通常是私网和公网(当然,也有部署在两个不同私网内的情况)。如果呼叫双方位于两个不同的网络内,“语音单通”问题就极有可能发生。请参考下面的图例,该图描绘了一个非常简单的VoIP网络:

语音单通问题网络拓扑

在这个简单的网络中,我们部署了两个VoIP设备:一个是SIP电话,电话号码是100。另一个是SIP软终端,电话号码是101。

SIP电话位于私网中,其私网地址是192.168.1.100,通过路由器与公网相连。路由器地址为8.8.8.8.

SIP软终端安装在PC中,PC接入到公网,地址为8.8.4.4。

那么,当SIP电话向SIP软终端发起呼叫,会发生什么情况呢?

SIP电话说:喂,我是100,我的语音地址是192.168.1.100, 请发送语音流给我。

SIP软终端回答说:没问题。我这是101,我的语音地址是8.8.4.4. 请把你的语音流发给我。

SIP电话将语音流发给SIP软终端。既然 “8.8.4.4 ”是公共地址,因此SIP软终端能成功收到SIP电话的语音流。也就是说,SIP软终端能听到SIP电话的语音了。

SIP软终端将它的语音流发送给SIP电话的地址“192.168.1.100″。可以看到,这个地址是个私网地址,位于公网内的SIP软终端实际上无法连接该地址,因此最终也就无法将语音流发送到这个地址上去。

最后,SIP软终端能听到来自SIP电话的语音,而SIP电话无法听到SIP软终端的语音。这就是个非常典型的语音单通问题案例。

那么,我们如何解决这个问题呢?待续 ……