Browsed by
标签:业务

V28与Lua业务

V28与Lua业务

V28版本正式发布!我们在这个版本花费了数月的时间。 本版本的关键特性是新的业务引擎,即“Lua业务引擎”。

如您所知,以前的MSS版本的业务引擎采用Python语言编写,工作得非常好,但是仍然有一些限制。现在新版本中业务引擎采用Lua语言重新编写,我们简单介绍作出这一决定的几个关键因素。

(1)Lua语言更简单。Python是全栈、通用型语言,而Lua是嵌入式语言。Lua比Python少很多特性,但是胜在更简单。我们尽管非常喜欢Python,但是分析后仍然发现Lua更适合用于MSS来实现业务引擎。我们不需要全功能,只需要能封装、提供MSS核心功能和能力即可。

(2)最重要的稳定性。Python业务引擎采用一个Python虚拟机支持所有的业务实例,一旦其中一个业务发生未知异常导致虚拟机崩溃,所有的业务都会收到影响。而在新的业务引擎中,每个业务都会采用一个单独的Lua虚拟机,如果一个业务发生未知异常,其他业务不会受到任何影响。这实在是太棒了!整个MSS系统的稳定性达到了更高水平!

(3)更快!更快!更快!仅仅是语言层面,Lua就比Python更快。由于GIL的存在,Python无法满足高性能的要求,因此只能被局限在业务引擎层面。而Lua没有这个限制,每个Lua虚拟机都很微小而且独立,我们现在只是用Lua替换了业务引擎,后续我们甚至可以考虑实现基本呼叫引擎,未来已来!

在V28版本中,所有的Python业务已经被替换为Lua业务。您可以在“lua/services”子目录中找到这些Lua业务文件。如果您曾经自行修改过Python文件,升级到新版本后您需要自行修改对应的Lua文件。

由于Lua业务引擎只是后端技术的升级,因此默认情况下您不需要更改任何配置。

新的业务引擎

新的业务引擎

今天我们很高兴发布了V15版本。这个版本的主要特性就是提供新的业务引擎。新引擎采用Python脚本语言编写。

这就意味着几乎所有的MSS业务都是采用Python脚本语言了。新的引擎更加灵活,能更好的满足客户不同的定制需求。对于部分高级客户而言,现在甚至可以自己使用Python脚本来编写极为复杂的呼叫业务,满足自身的业务需求。

触发定制的Python业务

触发定制的Python业务

您可能知道,我们可以采用Python脚本语言来提供业务。这种方式可以非常灵活地满足许多客户各种各样的需求。

例如,MSS内部的卡号业务就是采用Python脚本实现。在某些地方部署该业务时,客户会有些不同的需求,例如播放某种语音,或者不播放某条语音,提示这种情况,或者提示另一种情况,等等。我们可以根据客户的需求,更新python脚本文件,而不需要对MSS核心做任何改动。

但是某些东西就不那么灵活,例如业务的触发方式。以前的MSS版本在卡号业务中,固定了业务触发方式。也就是说,只有被叫号码是‘*300*’的呼叫才会触发卡号业务。有些客户就是不喜欢这个号码,还有些客户希望能支持更多的号码来触发业务。

最新的V10.4版本可以支持客户自己配置Python业务的触发方式,实际上,我们可以根据呼叫的拨号计划以及被叫号码来触发Python业务。现在就完美了!客户不仅可以实现定制化的业务,也可以自由地根据自己的需求选择如何触发业务。您不喜欢”*300*”?没问题,只需要配置另外一条数据即可。

请参考用户手册,了解Python业务触发的更多细节信息:

http://www.myvoipapp.com/cn/docs/mss_services/manual/index.html#python_services

如何在私网中部署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采用公网地址通信。请点击菜单“Data / System / SIP”,并将”Local address”配置为公共地址“8.8.8.8”。SIP电话可以通过该地址与MSS通信。

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

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

SIP地址配置
SIP地址配置

在这步配置中,必须去掉“如果当前地址不可用,自动检测另外的可用地址”项。

SIP电话或者终端必须能够采用域名访问SIP服务器或者SIP代理,那么我们同样可以配置”sip.dyndns.org”作为SIP服务器地址来访问MSS,并进行呼叫。