部分客户常常要求在私网内部署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服务器。某些设备可能只能采用IP地址方式访问,此时就只能部署公网地址方案。