Browsed by
Category: 文档和常见问题

技术文档以及常见问题解答

在云端IPPBX中部署连选组业务

在云端IPPBX中部署连选组业务

昨天我们升级了云端miniSipServer。本次升级主要目的之一就是支持“连选组”业务。

本地miniSipServer中在很久以前就已经支持连选组业务。本次云端IPPBX升级就是移植了本地系统的实现方式,使云端系统的用户也能使用连选组业务服务自己的客户。云端连选组业务与本地连选组业务的业务逻辑、配置方式是完全一致的,区别仅仅在于界面的表现形式不同而已。

下面两张图是云端miniSipServer与本地miniSipServer的“连选组业务“界面截图。

云端系统截图:

云端配置连选组界面
云端配置连选组界面

本地系统截图:

本地连选组业务配置界面
本地连选组业务配置界面

关于连选组业务的更多细节,请参考我们的在线业务指导文档:

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

 

限制部份分机的呼叫权限

限制部份分机的呼叫权限

有时候,我们需要限制部分分机的呼叫权限。例如,我们希望只有一部分分机能够进行外呼,而大部分分机外呼权限,只能呼叫本地分机。

在MSS中,我们采用”Call level(呼叫级别)”来进行限制。缺省情况下,我们在配置“分析被叫号码”时,都不会指定呼叫级别。这也就是说,所有的分机都具有相同的权限,都能进行所有的呼叫。而在本次场景中,为了限制分机的呼叫,我们需要对不同的被叫号码设置不同的“Call level呼叫级别”,同时,我们也需要对指定的分机设置相应的“Call level呼叫级别”权限,这样,这些指定的分机就能进行这些特定的呼叫。

例如,MSS缺省的外呼号码前缀是”9″。请点击菜单”Dial plan / Analyze called number”,然后编辑(或者添加)被叫号码前缀为“9”的记录,并对该记录配置“Call level 1”。

接着请点击菜单”Data / Local users”,编辑(或者添加)指定的分机。在弹出对话框中,请点击”Basic Call”页,并选择”Call level 1″权限。

完成上述配置后,具有”Call level 1″权限的分机都能拨打”9xxxx”进行外呼,而那些没有设置”Call level 1″权限的分机,如果拨打”9xxxx”进行外呼,则会被系统拒绝。

如何在SIP服务器之间发送即时消息

如何在SIP服务器之间发送即时消息

我们的一个客户在两个城市中设立了办公室,分别部署了各自的MSS进行通信。下图是该客户的网络拓扑图:

在MSS1下的分机采用1xx编号,例如100, 101等。

在MSS2下的分机采用2xx编号,例如200, 201等。

以前的MSS版本只能支持本地分机之间发送或者接收instant message(即时消息),无法给另一个SIP服务器下的分机发送即时消息。而我们的客户希望在两个MSS之间能传递即时消息。

考虑到这个需求,我们将MSS升级到V6.1.5版本,以支持在SIP服务器之间传递即时消息。

要做到这点,我们需要在SIP服务器之间建立SIP中继(SIP trunk)。一旦您能向另外一台SIP服务器(MSS)下的分机发起呼叫,您就同时能向它们发送即时消息。

这意味着我们需要在MSS中进行如下配置:(1)对端服务器配置; (2)拨号计划配置。这些配置在我们介绍“SIP中继”时已经进行了详细介绍,请参考下面的文档了解更多细节:

http://www.myvoipapp.com/cnblog/2011/05/04/sip%E4%B8%AD%E7%BB%A7/

 

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

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

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

SIP服务器地址配置
SIP服务器地址配置

当然,这要求SIP电话或者终端必须允许采用域名访问SIP服务器。某些设备可能只能采用IP地址方式访问,此时就只能部署公网地址方案。

如何将外线入呼叫转接到连选组?

如何将外线入呼叫转接到连选组?

通常情况,外线的入呼叫都是直接转接到某个本地分机,或者自动话务员。然而在某些部署环境中,客户要求将外线入呼叫转接到连选组,这样本地分机就可顺序应答呼叫。

在MSS中实现这个需求是非常简单的。记得吗?在连选组触发配置中,我们需要配置触发连选组业务的被叫号码。在这个需求中,我们只需要将这个触发号码配置为外线号码即可。

例如,外线号码是“1234567”,那么在“连选组触发”配置中,我们只需要将被叫号码配置为“1234567”即可触发指定的连选组。

上载客户定制语音

上载客户定制语音

云端miniSipServer进行了更新,支持客户上传定制语音。

在自动话务员或者语音邮箱业务中,客户常常希望能使用自己的语音。在本地miniSipServer系统中,实现这个需求是非常简单的,替换相关文件就可以了。然而在云端miniSipServer中就有点问题,例如通过网络传输文件等等。

更新后的云端MSS支持通过HTTP协议来上传语音。当然,对语音文件的要求,例如格式等等,与本地MSS的要求是完全一致的。

登录进您的云端MSS帐号后,请按照下图描述的步骤进行操作即可:

上载客户定制语音

我们需要强调的是,由于是通过网络传输文件,如果网络状况不好的话,速度可能会比较慢,请耐心等待操作结果。

SIP中继鉴权用户名和密码

SIP中继鉴权用户名和密码

部分VoIP运营商提供“SIP中继”业务,大部分这类业务都要求对用户名和密码进行鉴权。

如果遇到这种情况,我们应该在miniSipServer中配置“外线(也称为街线)”进行配合,建立与VoIP服务商的连接。

在外线的配置中,我们需要输入对端地址(或者对端域名)、用户名以及密码,对注册以及呼叫过程进行鉴权。

如何解决语音单通甚至双不通的问题?

如何解决语音单通甚至双不通的问题?

在前面的blog中,我们已经讨论了为什么会有语音单通问题。在这篇blog中,我们继续讨论如何解决这个问题。

正如我们看到的,sip电话(100)将自己的私有地址告诉给sip软终端(101),这就导致了语音单通问题。因此我们自然想到:为什么不将它的公共地址8.8.8.8告诉给sip软终端呢?如果它能做到这点,sip软终端自然可以将它的语音流发送给这个公共地址,路由器也会将这个语音流转发给sip电话,sip电话也就可以听到sip软终端侧的声音了。对吗?

非常正确!这是个很好的解决方案。但是我们接着需要问:sip电话(100)如何才能知道它自己的外网地址呢?

答案就是STUN。STUN是“Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs)基于UDP协议对网络地址转换的简单穿越”的缩写。这是个非常拗口的定义啊。简单而言,STUN就是用来私网内设备获取外网地址的一种协议工具。

请参考下面这张图:

– STUN process

在SIP电话拨打电话之前,它先向STUN服务器请求获取外部地址。完成之后,SIP电话开始发起呼叫,它告诉对方说:喂,我是100,我的语音地址是8.8.8.8:100,请发送语音流给我

顺便说一下,在本文中一个公共地址由一个公共IP地址+一个端口号组成。例如“8.8.8.8:10000”,“8.8.8.8”是公共IP地址,“10000”是端口号。”8.8.8.8:10001″是另外一个不同的公共地址(因为虽然IP地址一样,但是端口变了)。

既然8.8.8.8是公共地址,因此SIP软终端毫无疑问能将它的语音流发送到这个地址。因此呼叫双方现在都能听到对方的语音。

几乎所有的SIP设备,无论是SIP电话还是SIP软终端,都能支持STUN协议。我们唯一需要知道的是设置STUN服务器地址。在我们的step by step文档中,我们针对X-lite给出了一个简单的示例:

https://www.myvoipapp.com/docs/faq/setup_ippbx_for_small_business_step_by_step/index_cn.html#faq_stun

支持STUN后,是否能解决所有的语音单通问题呢?

很不幸,不能。在多数情况下,STUN能很好的工作,但是它无法解决所有的语音单通问题。这取决于私网的类型。简单而言,取决于路由器(当然,在某些网络,也可能是防火墙设备)。

– Special network for STUN

请参考上面这张图。图中描绘了两个会话:一个会话是SIP电话向STUN服务器请求获取公共地址。另一个会话是SIP电话与SIP软终端之间的呼叫。

众所周知,路由器将维持私网地址与公网地址之间的映射关系。缺省情况下,大多数路由器对来自私网内同一个设备同一个端口的不同会话,会分配并维持同一个外部地址映射关系。因此SIP电话在这两个会话中,会有同一个外部地址。

但是有些路由器会为不同的会话分配不同的映射关系,也就是说SIP电话在这两个不同的会话中会有两个不同的外部地址对应,因此实际上在与sip软终端的对话中,SIP电话还是无法知道对应的外部地址。

如果STUN不能解决语音单通的问题,根本原因就是路由器或者私网类型导致。此时,最终的解决方案就是建立VPN网络,将所有的SIP电话和SIP终端至于同一个逻辑网络内。这就是另外一个讨论议题了。(补充说明:也有可能采用ICE协议解决私网穿越问题,但是不是所有的设备都能支持ICE协议。)