Browsed by
Category: How-to

一些简单的技术技巧,有助于您更有效地配置或者使用SIP服务器

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。

外线无应答时长

外线无应答时长

在外线的“出呼叫”配置中,我们增加了一个配置项“无应答时长”。该参数用于限制外线外呼时的无应答时间。请参考下图:

外线无应答配置
在外线中配置无应答定时器时长

该参数默认值为0,也就是缺省采用系统定义的无应答定时器时长。如果设置了其他值,则优先采用该值。

例如,设置为15,则该外线的外呼呼叫如果在15秒内没有应答,外线将强制释放呼叫。

IP地址鉴权

IP地址鉴权

本特性已经合入最新的V25版本(build 20160126)。

某些特殊的SIP设备,例如自动控制系统中的嵌入式SIP设备,往往不具备全SIP能力集,只能发起或者接受简单的SIP呼叫,不能进行账号和密码鉴权。部分设备甚至不支持发送“注册”消息到MSS更新自己的状态。

嗯,我们在MSS中可以将这些设备配置为“SIP中继”,但是这样也会丢掉一些关键特性,例如“振铃组”。在某些场景中,客户们希望能让所有设备同时振铃,这样我们就只能将设备配置为“分机”用户。

为满足这些需求,我们在“分机”中增加了“IP地址鉴权”的特性。也就是说,MSS可以不要求SIP终端首先进行注册,呼叫过程中也可以不再对账号和密码进行鉴权,只要SIP消息来自特定的或者预先配置的IP地址即可。请参考下图了解更多的细节:

IP地址鉴权
IP地址鉴权

另外,在新版本中我们同样也更新了openAPI文档,如果您有兴趣的话,可以参考最新的文档。

MSS之间采用SIP中继通信

MSS之间采用SIP中继通信

1. 描述

部分客户在多地都有分支机构或者分公司,因此希望在这些分公司之间建立VOIP连接。有很多种方法可以实现这个需求,本文给出一个具体的实例描述两个MSS之间采用SIP中继建立这种连接。

2. 网络拓扑

整个网络拓扑结构是比较简单的,总共只有两个分支办公室,各部署一套MSS。如下图所示:

网络拓扑
网络拓扑

在部署VoIP网络之前,我们应先做好号码规划。不同的号码格式或者规划直接影响到后期的呼叫路由配置。在上图中可以看到:我们给分支1规划的号码是1xx格式,例如100、101等,而给分支2规划的号码是2xx格式,例如200、201等。

两地的MSS都配置了公共IP地址,能直接连接公网。如果您的MSS是部署在私网或者路由器后面,并且您希望也能向外部用户提供服务,请先点击文档了解细节。

现在我们开始本场景的具体配置细节。

3. 配置

在下面各项配置中,如果没有特别申明,部分参数总是采用默认值即可。

3.1 MSS1

请点击菜单“数据 – SIP中继”,添加以下记录:

SIP中继编号 = 1
描述 = to MSS2
服务器地址 = 10.23.x.x

请点击菜单“拨号规则 – 分析被叫号码”,增加以下记录用于MSS将呼叫路由给MSS2:

被叫号码前缀 = 2
路由类型 = SIP中继
SIP中继编号 = 1

3.2 MSS2

基本配置与MSS1几乎相同。

请点击菜单“数据 – SIP中继”,添加以下记录:

SIP中继编号 = 1
描述 = to MSS1
服务器地址 = 41.32.x.x

请点击菜单“拨号规则 – 分析被叫号码”,增加以下记录用于MSS将呼叫路由给MSS1:

被叫号码前缀 = 1
路由类型 = SIP中继
SIP中继编号 = 1
在csipsimple中配置STUN

在csipsimple中配置STUN

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”前缀即可。

步骤1:为国际VOIP的外线定义独立的“出呼叫群编号”

请点击菜单“数据 / 外线”,选择国际VOIP账户对应的外线进行编辑,点击“出呼叫”页,设置如下:

出呼叫群编号 = 1

步骤2:定义号码变换方式

我们需要定义号码变换数据,将“0”变换为“0086”。请点击菜单“拨号规则 / 变换”,定义新记录:

变换编号 = 1
变换类型 = 替换
起始位置 = 0
长度 = 1
替换字符串 = 0086

 步骤3:为特定出呼叫群定义“规整被叫号码”

请点击菜单“拨号规则 / 规整被叫号码”,定义新记录:

出呼叫群编号 = 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会自动轮选这些外线。而现在我们要做的是,配置不同的呼叫前缀,使用不同的外线路由。

步骤1:配置号码变换记录

这主要是在后续配置中,我们需要删除用户拨打的前缀“8”或者“9”。请点击菜单“拨号规则 / 变换”,增加以下记录:

变换编号 = 1
变换类型 = 删除
起始位置 = 0
长度 = 1

步骤2:增加“分析被叫号码”记录

根据需求,我们需要指示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

如果当前外线配置了“自动话务员”或者“路由到其他号码”,那么结果会怎样呢?不用担心,连选组检测的优先级高于上述两种方式,因此对于外线的入呼叫,会首先触发连选组业务。

如何改变TCP端口?

如何改变TCP端口?

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以便使参数生效。

在Ubuntu系统中如何运行MSS?

在Ubuntu系统中如何运行MSS?

更新: 您现在可以访问在线文档,了解更多的细节。


如果您使用的是Ubuntu桌面版本,那么就非常容易了。下载deb文件后,双击即可安装MSS。安装完成后,您可以在“互联网”菜单群中找到MSS的图标,点击该图标即可启动MSS。

如果您是使用Ubuntu服务器版本,情况就稍有不同。需要多几步来安装运行MSS,下面我们详细介绍这些步骤。

首先,您必须从我们的网站下载相应的deb文件,例如mss_v13_u20.deb文件。接着,运行下面的命令进行安装:

sudo dpkg -i mss_v13_u20.deb

Ubuntu通常可能会提示缺少部分必要的依赖库。不用担心,请继续执行下面的命令:

sudo apt-get -f install

此时,Ubuntu系统会自动检查依赖关系,并从Ubuntu软件库中安装MSS所要求的依赖库。

在Ubuntu服务器版本中,您不能运行MSS的图形版本,因为通常服务器版本都不会启动X视窗系统。您可以运行MSS的命令行版本,文件名为msscli,安装在以下目录:’/opt/sipserver’。

因此,现在您可以使用以下命令来启动MSS:

/opt/sipserver/msscli

您必须使用MSS的web界面来管理MSS,缺省情况下是在TCP 8080端口访问该界面。请阅读以下文档了解web管理系统:

http://www.myvoipapp.com/cn/docs/mss_services/web_management/index.html