Browsed by
Tag: voip

如何在私网中部署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地址方式访问,此时就只能部署公网地址方案。

V6.1版本以及IVR-XML

V6.1版本以及IVR-XML

MSS稳定版本从V6.0版本升级到V6.1版本。

本次升级主要引入了IVR-XML特性。有了IVR-XML特性,我们可以使用XML文件来实现IVR过程,非常轻松和简单。我们重新编写了自动话务员业务,您可以看到这非常简单。最新的自动话务员脚本存放在’xml’子目录下,文件名为’aa.xml’。

自动话务员文档也同步进行了更新,参考:

http://www.myvoipapp.com/docs/mss_services/auto_attendant/index.html

最重要的是,采用IVR-XML后,我们在IVR业务流程中可以轻松实现多级语音菜单。

请试试IVR-XML,相信您会喜欢这个特性!

miniSipServer长期支持版本以及稳定版本升级

miniSipServer长期支持版本以及稳定版本升级

长期支持版本升级到V4.0。我们强烈建议客户们将系统升级到这个新的LTS版本。

V4.0版本是用于替换前一个LTS版本V2.x。新版本更加稳定,也支持更多业务特性。

稳定版本升级到V6.0,新特性将基于这个版本开发。

V5.0版本保留给miniSipServer云通信平台。

云通信之主叫预付费业务

云通信之主叫预付费业务

我们很高兴地宣布:云端miniSipServer今天成功进行升级,可以支持主叫预付费业务了!

“主叫预付费”业务是本地miniSipServer的一项重要业务,在世界范围内有广泛地部署。越来越多的客户采用这个特性来构建自己简单的虚拟VoIP运营系统。

而现在,我们可以在云通信中也部署这个业务了。云端的主叫预付费业务,听起来是不是很酷?我们相信这个业务将有助于我们的客户拓展他们的VoIP事业。

有了云端主叫预付费业务,可以非常容易就成为一个虚拟的VoIP运营商,为什么不试试呢? 请访问http://minisipserver.com并注册一个帐号试试吧。免费试用!

如何解决语音单通甚至双不通的问题?

如何解决语音单通甚至双不通的问题?

在前面的blog中,我们已经讨论了为什么会有语音单通问题。在这篇blog中,我们继续讨论如何解决这个问题。

正如我们看到的,sip电话(100)将自己的私有地址告诉给sip软终端(101),这就导致了语音单通问题。因此我们自然想到:为什么不将它的公共地址8.8.8.8告诉给sip软终端呢?如果它能做到这点,sip软终端自然可以将它的语音流发送给这个公共地址,路由器也会将这个语音流转发给sip电话,sip电话也就可以听到sip软终端侧的声音了。对吗?

非常正确!这是个很好的解决方案。但是我们接着需要问:sip电话(100)如何才能知道它自己的外网地址呢?

答案就是STUN。STUN是“Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs)基于UDP协议对网络地址转换的简单穿越”的缩写。这是个非常拗口的定义啊。简单而言,STUN就是用来私网内设备获取外网地址的一种协议工具。

请参考下面这张图:

– STUN process

在SIP电话拨打电话之前,它先向STUN服务器请求获取外部地址。完成之后,SIP电话开始发起呼叫,它告诉对方说:喂,我是100,我的语音地址是8.8.8.8:100,请发送语音流给我

顺便说一下,在本文中一个公共地址由一个公共IP地址+一个端口号组成。例如“8.8.8.8:10000”,“8.8.8.8”是公共IP地址,“10000”是端口号。”8.8.8.8:10001″是另外一个不同的公共地址(因为虽然IP地址一样,但是端口变了)。

既然8.8.8.8是公共地址,因此SIP软终端毫无疑问能将它的语音流发送到这个地址。因此呼叫双方现在都能听到对方的语音。

几乎所有的SIP设备,无论是SIP电话还是SIP软终端,都能支持STUN协议。我们唯一需要知道的是设置STUN服务器地址。在我们的step by step文档中,我们针对X-lite给出了一个简单的示例:

https://www.myvoipapp.com/docs/faq/setup_ippbx_for_small_business_step_by_step/index_cn.html#faq_stun

支持STUN后,是否能解决所有的语音单通问题呢?

很不幸,不能。在多数情况下,STUN能很好的工作,但是它无法解决所有的语音单通问题。这取决于私网的类型。简单而言,取决于路由器(当然,在某些网络,也可能是防火墙设备)。

– Special network for STUN

请参考上面这张图。图中描绘了两个会话:一个会话是SIP电话向STUN服务器请求获取公共地址。另一个会话是SIP电话与SIP软终端之间的呼叫。

众所周知,路由器将维持私网地址与公网地址之间的映射关系。缺省情况下,大多数路由器对来自私网内同一个设备同一个端口的不同会话,会分配并维持同一个外部地址映射关系。因此SIP电话在这两个会话中,会有同一个外部地址。

但是有些路由器会为不同的会话分配不同的映射关系,也就是说SIP电话在这两个不同的会话中会有两个不同的外部地址对应,因此实际上在与sip软终端的对话中,SIP电话还是无法知道对应的外部地址。

如果STUN不能解决语音单通的问题,根本原因就是路由器或者私网类型导致。此时,最终的解决方案就是建立VPN网络,将所有的SIP电话和SIP终端至于同一个逻辑网络内。这就是另外一个讨论议题了。(补充说明:也有可能采用ICE协议解决私网穿越问题,但是不是所有的设备都能支持ICE协议。)

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

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

几乎所有的人在部署第一个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软终端的语音。这就是个非常典型的语音单通问题案例。

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

 

miniSipServer稳定版本升级到V3.1.2

miniSipServer稳定版本升级到V3.1.2

在新版本中,主要进行了以下改动:

1、对于FXO外线类型,限制其同时呼叫数缺省为1。

2、更改了安装包流程。安装过程中将检测旧版本是否存在。如果当前目录下有旧版本,安装过程中将自动删除旧版本,然后才安装新版本。这么做是为了防止新版本使用旧版本的文件,导致运行不稳定的情况。

V2.10.4, V3.1以及V4.0版本升级

V2.10.4, V3.1以及V4.0版本升级

LTS版本升级到V2.10.4,解决一个SIP注册过程中的bug。其他版本(V3.x以及V4.x)也已经修正了这个bug。

Stable版本升级到V3.1版本,包含更多的特性,例如web服务器等,同时也修正了V3.0.x版本中的若干bug。

最重要的消息是:V4.0版本正式发布了!V4.0版本是支持跨平台的VOIP服务器软件,能支持Windows以及Linux(主要是Ubuntu)。在本Blog中,我们将继续介绍V4.0版本的相关信息。

V4.0版本即将推出……

V4.0版本即将推出……

miniSipServer V4.0版本即将推出。。。

V4.0版本是个非常重要的版本,其中最主要的特性是对Linux系统的支持!

是的,这个消息是真的!MSS V4.0可以原生地运行在Ubuntu/Kubuntu系统上,不需要WINE的帮助。从这个版本开始,MSS将是一个跨平台的、纯软件解决方案的SIP服务器(或者说VOIP服务器)。

目前已经完成了基本的开发工作,我们正集中进行系统测试。我们希望在本月底或者下月初正式推出V4.0版本。