Browsed by
Category: 版本Release

产品升级、Patch等相关信息发布

适配 4K 屏幕

适配 4K 屏幕

最近有客户向我们报告了一个问题:miniSIPPhone 在 4K 屏幕中界面异常。如下图所示:

miniSIPPhone 界面异常
miniSIPPhone 异常界面

在构建图形界面(包括 miniSIPPhone 以及 miniSIPServer)时,我们采用绝对位置、长度来安排界面中的各个组件,因此如果屏幕具备很高的分辨率时(例如 4K 屏幕),绝对坐标值就显得非常小、甚至过于紧凑。

为了解决这个问题,我们将图形界面中的布局、组件全部换成相对坐标、相对尺寸。当然,同时修改、升级了 miniSIPPhone(V8.4) 以及 miniSIPServer(V39 build 20220823)。

另一方面,我们同时也修改了 miniSIPServer 对话框的尺寸、风格、以及布局,因此 miniSIPServer 的图形界面整体上更统一、更整齐,使用感受也会更舒服一些。

call tag 以及 cause

call tag 以及 cause

有时候客户希望知道一些历史呼叫的细节,例如哪一方释放的呼叫、为什么会释放呼叫等。由于这些细节都不是实时呼叫的细节,我们无法用 miniSIPServer 内部的跟踪工具进行跟踪,因此我们更新了 CDR 功能,以便回溯信息、了解呼叫的更深一点的细节。

在 CDR 的 FCI(Furnish Call/Charge Information, “提供呼叫/计费信息”)字段中,我们增加了参数“callTag=”以及”cause=”。请参考下图 CDR 记录的细节:

FCI 字段细节
FCI 字段细节

“callTag=” 参数用于保存当前呼叫的在 miniSIPServer 内部的释放位置,根据这个参数,我们可以知道呼叫在哪里被释放了、以及谁释放了这个呼叫。例如,呼叫有可能是收到了主叫侧的 BYE 消息从而导致释放的,诸如此类。这个参数的具体数值是 miniSIPServer 系统内部值,目前不会向客户们公开具体值的含义。

“cause=” 参数用于保存呼叫释放时的原因值。如果 miniSIPServer 收到了被叫侧的 4xx 或者 5xx 消息、同时该消息中包含 Reason 头域、并且在该域中携带了 cause 参数,则 miniSIPServer 会使用该原因值释放呼叫。其他情况下, miniSIPServer 根据内部的呼叫情况使用自己的 cause 值释放呼叫。当然,无论哪种情况, cause 值都会保存在 CDR 记录的 FCI 字段中。

“回呼”业务更新

“回呼”业务更新

miniSIPServer 默认打开 UDP 端口 5080 接受来自应用服务器的 call-back 请求并发起两路呼叫,如果 miniSIPServer 是部署在公网,有可能收到外部很多不相关的 UDP 数据包。我们可以通过配置“应用服务器地址”进行 IP 地址鉴权,但是不幸的是,这个地址默认是空,miniSIPServer会接受外部数据包并进行后续操作, 这带来隐性危险。

因此我们更新了“回呼”业务,进行适度的保护,同时也稍微修改了业务的处理逻辑。请先参考以下新的配置界面:

回呼业务配置

(1) “应用服务器地址”的默认值修改为本地循环地址“127.0.0.1”,这样外部的数据包将无法通过地址鉴权而被直接抛弃。当然,我们还是可以将它配置为空,允许所有的地址向 miniSIPServer 发送 call-back 请求,但我们强烈建议不要这么配置。

(2) “本地监听端口”可以配置为0,一旦配置为0, miniSIPServer 将关闭“回呼”业务,因此就绝对不会接受外部的任何数据包。如果您的环境没有部署“回呼”业务,我们强烈建议将这一项配置为0。

(3)取消“外线模式”。部分客户经常问道这个配置项是什么意思,也经常被它搞糊涂。其实当初设置这个配置项,主要是让 miniSIPServer 自动在外呼号码前添加“出群呼叫前缀”(默认也就是“9”)。实际上,这个项确实特别不灵活,比如客户可能在“回呼”业务中可能同时呼叫本地分机和外部用户,这个配置就容易导致号码错误。因此我们取消了这一项的配置,如果希望呼叫外部用户,可以在 REQUEST 消息中明确添加出群呼叫前缀。也就是说, 应用服务器自己决定号码格式、自己需要清楚号码分析结果(也就是路由结果)。

请参考“回呼”业务文档了解更多的细节。

优化的振铃组业务

优化的振铃组业务

一般情况下,我们在用户的配置文件中设置振铃组业务。一个用户只能设置一个振铃组,在多数情况下,这个设定都能工作得很好。

众所周知,现在是艰难时刻。部分公司不得不裁剪人力资源以减少运营费用,因此剩余的人员就可能需要承担更多的工作。比如同一个员工有可能同时分配到多个工作组(振铃组)。实际上已经有一些客户要求我们适配这个需求。

我们非常理解这个请求,因此升级了 miniSIPServer, 采用一个新的方式来支持振铃组业务。

简而言之就是新增了两张表。一张表用于定义振铃组及其分机用户,请参考下图:

振铃组用户

另一张表配置了振铃组检测方式,miniSIPServer 根据呼叫中的被叫号码,判定是否需要触发振铃组。请参考下图:

振铃组检测

业务文档已经更新,请点击此处了解更多细节。

定制的资源文件

定制的资源文件

在部署 VoIP 网络时, 有些场景会要求使用定制化的资源文件,例如 自己的语音文件、特殊的 IVR 流程、自己的鉴权文件等。 以前的 miniSIPServer 版本将这些文件保存在安装运行目录(或者子目录)下。

这有可能导致管理方面的问题。卸载、升级 miniSIPServer 时,我们不得不非常小心地备份这些定制的资源文件。

V38 (build 20210108) 版本试图解决这个困扰。 所有的定制化资源文件和默认的资源文件分离出来,单独保存在应用数据目录(AppData 目录)及其子目录下。

例如,定制的语音文件将保存在 custAnn 子目录中。一旦 miniSIPServer 被卸载或者升级,这些语音文件不会受任何影响。

请参考在线文档了解更多细节。

在IVR-XML流程中监视各种呼叫事件

在IVR-XML流程中监视各种呼叫事件

在部署 miniSIPServer 时,我们可以通过 IVR-XML 来订制自己需要的IVR业务流程,最常见的就是“自动话务员”业务。根据以往的 IVR-XML 功能集,我们可以使用“callto”动作发起新的呼叫,同时结束整个IVR流程。

但是,如果我们想监视呼叫过程中的某些事件,例如“被叫忙”,并根据这些事件改变IVR的流程,触发新的动作(action),我们该怎么做呢?

目前最新的 V37 版本已经发布,在这个版本中,扩展了一个与 IVR-XML 有关的关键特性。我们可以在“callto”动作中,配置“monitor-events”元素,对呼叫事件进行监视,并在事件发生时,将IVR流程转向新的动作。

例如,以下示例中,在“callto”动作中配置需要监视的事件:

<action method="callto" name="mainAction">
    <destination>100<destination>
    <monitor-events>
        <monitor-event detection="busy" nextaction="callto101"/>
    </monitor-events> 
</action> 

在这个示例中,如果“callto”发起的呼叫,遇到被叫忙,则 IVR 流程将执行下一个动作“callto101”, 即对另一个用户发起新的呼叫。

请参考IVR-XML 在线文档,了解更多关于“monitor-events”的细节。

上述zip文件是一个简单的IVR-XML脚本示例,用于测试新的“callto”动作。将其解压缩并保存在”xml”子目录下(您可以在miniSIPServer的安装目录下找到这个子目录),并在miniSIPServer中配置新的触发条件进行测试。

配置IVR业务
配置IVR业务
改进”基于 TLS 的 SIP”

改进”基于 TLS 的 SIP”

最近有些客户向我们报告了一个导致miniSIPServer崩溃的问题,所有这些客户都部署了“基于TLS的SIP”,所有的崩溃报告都显示是SSL/TLS加密库内部崩溃。基于这些信息,我们更新了miniSIPServer,在新版本中做了以下一些关键修改:

(1)SSL库升级到最新的版本;

(2)默认将只保留TLSv1.2加密方式,SSLv2、SSLv3、TLSv1以及TLSv1.1都被禁止。在我们调查问题的过程中,我们发现有些黑客企图利用SSLv3的缺陷骇入miniSIPServer,出于安全防护的考虑,我们全部移除这些有隐患的加密方式。未来我们会考虑加入更多更安全的加密方式,比如TLSv1.3。目前如果要部署“基于TLS的SIP”,必须确保SIP终端或者电话也支持TLSv1.2加密方式。

另一方面,我们也更新了“基于TLS的SIP”文档。在文档中新增了一些简单的示例,演示使用openSSL创建自签名的数字证书等文件。

SIP服务器外部地址

SIP服务器外部地址

在最新版本的miniSIPServer中,系统可以同时配置“本地地址”和“外部地址”,如下图所示:

在通常情况下,如果miniSIPServer部署在公网,有公网地址,就无需配置“外部地址”,“本地地址”一般就是公网地址。然而在某些网络环境,例如miniSIPServer部署在私网内,同时又要服务外部用户,此时可以配置“外部地址”,外部的分机采用“外部地址”与miniSIPServer通信。

如果整个网络跨接了多个网段(包括私网-公网,不同的私网等),例如有些分机采用“本地地址”通信,有些分机采用“外部地址”通信,此时建议在分机配置中,设置“转发媒体流”,由miniSIPServer来转发这些分机的语音流。

 

发布长期支持版本V32!

发布长期支持版本V32!

我们终于正式发布V32(长期支持,LTS)版本了!自从发布首个V32测试版本以来,期间经历了数月的时间。在此之间,我们先后更新、优化了各类界面(包括web界面和GUi界面),优化了SIP内核、优化了呼叫基础模块等诸多方面。这是个非常令人兴奋的版本,重要的是,我们将提供长达5年的技术支持!

另一方面,最新的稳定版本V33也同时发布。最重要的一个改变是,从这个版本开始,miniSIPServer 不再支持 X86-32 架构的Debian、Ubuntu系统。新的业务、需求、特性开发将基于V33版本。

希望您能喜欢最新的这些版本!

 

新网站

新网站

我们最近采用 bootstrap 4 重新构建了公司网站,请访问:

https://www.myvoipapp.com/cn/

新界面最重要的特点就是适配了各种访问设备,现在您可以通过PC、手机、平板电脑等访问,各页面会自动调整格式以方便阅读(感谢 bootstrap 4!)。希望您能喜欢我们的新界面!

另一个重要的修改就是“去掉了论坛”。我们对论坛里层出不穷的垃圾广告给搞烦了,大量工作资源耗费在毫无意义的工作上,因此我们决定关闭论坛。如果您有任何问题或者建议,请直接和我们联系即可:

https://www.myvoipapp.com/cn/contact.html