阻止匿名呼叫
我们可以使用“系统黑白名单”来过滤、阻止匿名呼叫。请点击菜单“业务 – 系统黑名单”,添加以下记录:
caller number prefix = anonymous called number prefix = * rate = 100
该记录的作用就是:100%阻断来自“anonymous”的呼叫。
有些匿名呼叫的主叫号码可能会有差别,不过仍然可以在“系统黑名单”配置类似的记录进行过滤。
一些简单的技术技巧,有助于您更有效地配置或者使用SIP服务器
我们可以使用“系统黑白名单”来过滤、阻止匿名呼叫。请点击菜单“业务 – 系统黑名单”,添加以下记录:
caller number prefix = anonymous called number prefix = * rate = 100
该记录的作用就是:100%阻断来自“anonymous”的呼叫。
有些匿名呼叫的主叫号码可能会有差别,不过仍然可以在“系统黑名单”配置类似的记录进行过滤。
最近一位客户报告了一个问题:他的外线始终无法注册到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。
本特性已经合入最新的V25版本(build 20160126)。
某些特殊的SIP设备,例如自动控制系统中的嵌入式SIP设备,往往不具备全SIP能力集,只能发起或者接受简单的SIP呼叫,不能进行账号和密码鉴权。部分设备甚至不支持发送“注册”消息到MSS更新自己的状态。
嗯,我们在MSS中可以将这些设备配置为“SIP中继”,但是这样也会丢掉一些关键特性,例如“振铃组”。在某些场景中,客户们希望能让所有设备同时振铃,这样我们就只能将设备配置为“分机”用户。
为满足这些需求,我们在“分机”中增加了“IP地址鉴权”的特性。也就是说,MSS可以不要求SIP终端首先进行注册,呼叫过程中也可以不再对账号和密码进行鉴权,只要SIP消息来自特定的或者预先配置的IP地址即可。请参考下图了解更多的细节:
另外,在新版本中我们同样也更新了openAPI文档,如果您有兴趣的话,可以参考最新的文档。
部分客户在多地都有分支机构或者分公司,因此希望在这些分公司之间建立VOIP连接。有很多种方法可以实现这个需求,本文给出一个具体的实例描述两个MSS之间采用SIP中继建立这种连接。
整个网络拓扑结构是比较简单的,总共只有两个分支办公室,各部署一套MSS。如下图所示:
在部署VoIP网络之前,我们应先做好号码规划。不同的号码格式或者规划直接影响到后期的呼叫路由配置。在上图中可以看到:我们给分支1规划的号码是1xx格式,例如100、101等,而给分支2规划的号码是2xx格式,例如200、201等。
两地的MSS都配置了公共IP地址,能直接连接公网。如果您的MSS是部署在私网或者路由器后面,并且您希望也能向外部用户提供服务,请先点击文档了解细节。
现在我们开始本场景的具体配置细节。
在下面各项配置中,如果没有特别申明,部分参数总是采用默认值即可。
请点击菜单“数据 – SIP中继”,添加以下记录:
SIP中继编号 = 1 描述 = to MSS2 服务器地址 = 10.23.x.x
请点击菜单“拨号规则 – 分析被叫号码”,增加以下记录用于MSS将呼叫路由给MSS2:
被叫号码前缀 = 2 路由类型 = SIP中继 SIP中继编号 = 1
基本配置与MSS1几乎相同。
请点击菜单“数据 – SIP中继”,添加以下记录:
SIP中继编号 = 1 描述 = to MSS1 服务器地址 = 41.32.x.x
请点击菜单“拨号规则 – 分析被叫号码”,增加以下记录用于MSS将呼叫路由给MSS1:
被叫号码前缀 = 1 路由类型 = SIP中继 SIP中继编号 = 1
csipsimple是android平台非常好用的一款SIP客户端软件,我们经常向客户推荐这款软件。
众所周知,在VOIP部署中经常会遇到“语音单通”或者“语音双不通”的问题。通常我们都建议用户在终端侧配置STUN来解决。可是经常有用户反馈,不知道如何在csipsimple中配置STUN。
实际上配置方法还是很简单的。请参考下面的步骤:
(1)请点击“Setting (设置)” > Network (网络)> “Use Stun(使用STUN)”,然后设置STUN服务器即可。如果您是Cloud-MSS客户,您可以直接用您的虚拟服务器地址作为STUN服务器。当然,您也可以选择csipsimple默认的STUN服务器。
(2)如果STUN仍然没有解决问题,您可以再尝试使用ICE:Settings(设置) > Network (网络) > “Use ICE”.
V14.4版本最近进行了一次更新,主要是在“拨号规则”功能中增加一个新特性:规整被叫号码。
“规整被叫号码”允许我们在将呼叫路由给外线或者SIP中继时,有最后一次机会对被叫号码进行变换,以满足对端服务器对被叫号码格式的不同要求。
该特性一个比较典型的应用场景:客户有两个VOIP账户,一个是本地VOIP运营商,一个是国际VOIP运营商。两个VOIP运营商对号码格式有不同要求,而客户自己只想采用一套拨号方案,因此可以在MSS中配置“规整被叫号码”,对最终的号码进行规整,满足运营商的要求。我们通过一个简单的示例来说明如何应用这个特性。
如上所述,客户有两个VOIP账户,外呼的拨号方式为“90xxxx”。其中“9”为MSS默认外呼前缀。“0”为本地VOIP运营商要求的呼叫前缀。而国际VOIP运营商要求的号码格式为“0086xxxx”。
对比上述要求,实际上我们仅需要针对国际VOIP运营商,将外呼的“0”前缀,替换为“0086”前缀即可。
请点击菜单“数据 / 外线”,选择国际VOIP账户对应的外线进行编辑,点击“出呼叫”页,设置如下:
出呼叫群编号 = 1
我们需要定义号码变换数据,将“0”变换为“0086”。请点击菜单“拨号规则 / 变换”,定义新记录:
变换编号 = 1 变换类型 = 替换 起始位置 = 0 长度 = 1 替换字符串 = 0086
请点击菜单“拨号规则 / 规整被叫号码”,定义新记录:
出呼叫群编号 = 1 <== 在步骤1中定义 被叫号码前缀 = 0 变换编号 = 1 <== 在步骤2中定义
在此可能会有疑问:为什么被叫号码前缀不是”9“呢?因为”9“是默认外呼前缀,完成”分析被叫号码“处理后,该前缀已经被删除,剩余号码是”0xxxx“,因此在最后送往外线或者SIP中继之前,我们应当根据被叫号码的”0″前缀进行规整分析。
问题描述:客户有两个不同的VOIP运营商帐号,比如(1)1234 (2)5678,要求拨打9xxxx时,选择外线帐号1234; 拨打8xxxx时,选择外线帐号5678。最终的号码是xxxx,要求删除前缀“9”或者“8”。该如何实现呢?
解决方案:我们可以使用MSS强大的“拨号规则”功能来满足这一需求。
缺省情况下,MSS采用前缀“9”来实现呼叫外呼,同时如果有多条外线,不做特殊设置的话,MSS会自动轮选这些外线。而现在我们要做的是,配置不同的呼叫前缀,使用不同的外线路由。
这主要是在后续配置中,我们需要删除用户拨打的前缀“8”或者“9”。请点击菜单“拨号规则 / 变换”,增加以下记录:
变换编号 = 1 变换类型 = 删除 起始位置 = 0 长度 = 1
根据需求,我们需要指示MSS分析被叫号码前缀“8”以及“9”,并指定特定的外线。请点击菜单“拨号规则 / 分析被叫号码”,增加以下两条记录:
记录1:分析被叫号码前缀9
拨号计划 = default 被叫号码前缀 = 9 路由类型 = 外线 指定外线 = 1234 <== 指定的外线帐号 被叫号码变换 = 是 被叫号码变换编号 = 1 <== 在步骤1中指定 号码变换后重分析 = 否
记录2:分析被叫号码前缀8
拨号计划 = default 被叫号码前缀 = 8 路由类型 = 外线 指定外线 = 5678 <== 指定的外线帐号 被叫号码变换 = 是 被叫号码变换编号 = 1 <== 在步骤1中指定 号码变换后重分析 = 否
有很多客户采用“外线”配置连接VOIP运营商,因此很自然要求对外线的所有入呼叫触发连选组业务。
我们首先假定“外线”号码(账户)是123456,因此我们实际上仅需要根据这个号码来触发连选组即可。
请点击菜单“业务 / 连选组 / 检测方式配置”, 添加以下记录:
拨号计划 = default
被叫号码 = 123456 <-- 即外线号码
... ...
其他配置请参考“连选组”业务文档:
http://www.myvoipapp.com/cn/docs/mss_services/hunting_group/index.html
如果当前外线配置了“自动话务员”或者“路由到其他号码”,那么结果会怎样呢?不用担心,连选组检测的优先级高于上述两种方式,因此对于外线的入呼叫,会首先触发连选组业务。
2013-09-23 更新:在最新的V14.2版本中,可以在MSS中直接配置TCP端口。请参考以下文档:
http://www.myvoipapp.com/cn/docs/mss_services/sip-over-tcp/index.html#tcpPort
—————————————————————-
缺省情况下,MSS采用TCP端口5060来接受基于TCP的SIP消息。5060端口是SIP标准协议中定义的默认端口。在MSS的图形界面或者web管理界面中,只能修改SIP服务的UDP端口。
如果我们想修改TCP端口,例如改成1234端口,该如何做呢?请参考以下步骤:
(1)在MSS安装目录,请创建“mss_var_param.ini”文本文件。
(2)在该文件内,请添加以下内容:
[sip] gVarSipTCPPort=1234
(3)最后,请重启MSS以便使参数生效。