Browsed by
分类:技术文档

归纳整理后的技术文档

SIP中继的并发呼叫数

SIP中继的并发呼叫数

通常我们不限制SIP中继的并发呼叫数,也就是说,默认情况下能呼叫多少就呼叫多少。如果对方资源有限,自然会拒绝多余的呼叫。然而在一些应用场景中,客户们希望MSS能主动对呼叫进行限制。

为此我们拓展了SIP中继中的配置,分别对“呼入呼叫”和“呼出呼叫”的最大并发呼叫数进行限制,超出最大呼叫数的呼叫将被禁止或者抛弃。请参考下图:

SIP中继并发数配置
SIP中继并发数配置

需要注意的是:

(1)这两项配置是独立的,因此可以对呼入和呼出做出不同的限制决定。

(2)如果将其中一项或者两项配置为0,则可以限制为只允许呼入,或者只允许呼出。

一号多机业务的一点修改

一号多机业务的一点修改

在最新发布的V30版本中,对“一号多机”业务做了点改动。原有版本中默认所有分机都具有该业务能力,也就是说,任何一个分机账号都允许多部设备或者话机同时注册和使用。在实际应用过程中,客户们反馈这样做虽然简化了配置,但是其实带来了管理问题,并不想所有分机都允许多机注册,只有部分或者特定的分机才可以这样做。

考虑到这种情况,我们在分机配置中增加了“一号多机”业务权限配置。只有明确配置了该权限位的分机,才允许多机注册和使用。请参考下面的图例。

一号多机权限配置
一号多机权限配置

本次修改同时适用于本地MSS版本以及云MSS版本。

Invalid CSeq number

Invalid CSeq number

最近一位客户报告了一个问题:他的外线始终无法注册到VoIP运营商的网络。这让人倍感奇怪,毕竟“外线”是MSS非常基础的功能,已经和众多VoIP运营商对接过,我们从没想到过“外线注册”居然会有问题。

抓取了相应的log,发现该运营商返回了“400 Bad Request”消息,其中携带了以下原因信息:

P-Registrar-Error: Invalid CSeq number

我们检查了REGISTER消息,MSS在处理CSeq时并没有任何问题。以下是MSS消息的摘要:

==>
REGISTER sip:sip.xxx.com SIP/2.0
...
Call-ID: 18BF67854AE23D6D2CD772AFMSS002A0001.
CSeq: 13 REGISTER
...

<==
SIP/2.0 401 Unauthorized
...
Call-ID: 18BF67854AE23D6D2CD772AFMSS002A0001.
CSeq: 13 REGISTER
...

==>
REGISTER sip:sip.xxx.com SIP/2.0
...
Call-ID: 18BF67854AE23D6D2CD772AFMSS002A0001.
CSeq: 14 REGISTER
...

<==
SIP/2.0 400 Bad Request
...
Call-ID: 18BF67854AE23D6D2CD772AFMSS002A0001.
CSeq: 14 REGISTER
P-Registrar-Error: Invalid CSeq number
...

我们再次检查了RFC3261规范中的定义:

A UA MUST increment the CSeq value by one for each REGISTER request with the same Call-ID.

显然我们是完全正确的,但是为什么对端会拒绝了注册呢?

最终我们尝试修改了Call-ID参数后注册成功。这让我们更感困惑!RFC3261规范很清楚地说明了注册流程中Call-ID参数的注意事项:

All registrations from a UAC SHOULD use the same Call-ID header field value for registrations sent to a particular registrar.

我们认为这个VoIP运营商的系统是不专业的。不幸的是,该运营商很难去升级他们的系统,因此我们在MSS中增加了一个开关变量来控制这种情况:

[sip]
gVarSipRegSameDialog=0

如果您在与某些VoIP运营商系统对接时遇到类似的问题,请在“mss_var_param.ini” 文件中增加上述参数并重启MSS。

对抗SIP扫描

对抗SIP扫描

一位客户向我们报告:他的MSS服务器可能被黑客攻击。我们一起检查了MSS产生的呼叫详细话单,数据显示某人用另外一部SIP电话注册了同样一个分机号,并产生了大量的呼叫。

很显然,这是个非常严重的问题。我们推测这位“黑客”可能采用了发送大量SIP消息的方式来尝试上述分机的密码,并最终破解了密码。MSS以前的版本没有考虑这种异常情况,总是会允许SIP话机不停使用密码进行鉴权,直到最终通过鉴权为止,这就导致某些人刻意不停地扫描和尝试分机和密码。

为阻止这种情况,我们升级了MSS的版本,提供“失败则阻止(fail to ban, F2B)”特性。一旦SIP话机在一分钟内鉴权失败了若干次,则MSS会视之为“恶意扫描”并屏蔽其IP地址若干小时,期间MSS将拒绝所有来自该IP地址的SIP消息。这样迫使某些人几乎不可能破解SIP分机的密码。

F2B特性默认就开启,并且用户无需做任何配置。

大陆部分地区出现DNS污染问题

大陆部分地区出现DNS污染问题

今天陆续有部分大陆客户反馈:无法连接miniSIPServer云通信服务,包括网站和SIP终端注册等都出现问题。

经过我们紧急排查,初步判断这个问题是这些区域的DNS被奇怪地污染了,导致无法访问海外很多地址,其中就包括miniSIPServer云通信服务地址。目前可以修改路由器或者计算机的DNS服务器地址来解决,建议修改为openDNS提供的两个DNS服务器地址:

208.67.222.222
208.67.220.220
MSS中的报表功能

MSS中的报表功能

在SIP/PBX等设备中,一般都会包含“报表”功能,可以帮助系统管理员了解系统基本的运行状况。

在MSS中,也包含了一些基础的报表信息。请点击菜单“报表”即可。目前包含两个报表:

(1)基本呼叫报表

(2)分机报表

上述报表的统计周期都是以小时为单位,每小时出一条记录,如果当前统计周期内,所有统计项都为零,则不输出统计记录。

“分机报表”比较简单,目前只统计当前系统每小时内最大同时在线用户数,这有助于管理员了解在线用户情况。

“基本呼叫报表”统计当前的呼叫情况,例如收到呼叫数、呼叫振铃、呼叫应答等数据,同时也包括当前统计周期内应答呼叫的总通话时长,这样用户可以了解到呼叫平均占用情况,每个应答呼叫的平均通话时长等重要数据。如果系统呼叫数很高,负荷很大,系统管理员可以考虑升级MSS。