MSS IVR-XML规格文档
MSS IVR-XML规格文档今天正式发布。在这篇文档中,详细介绍了MSS IVR-XML各方面的细节,包括文档结构、XML元素、action定义等。
我们希望这篇文档有助于您理解IVR-XML,并能帮助您编写自己的IVR过程。
文档链接如下:
http://www.myvoipapp.com/cn/docs/mss_services/IVR-XML/index.html
技术文档以及常见问题解答
MSS IVR-XML规格文档今天正式发布。在这篇文档中,详细介绍了MSS IVR-XML各方面的细节,包括文档结构、XML元素、action定义等。
我们希望这篇文档有助于您理解IVR-XML,并能帮助您编写自己的IVR过程。
文档链接如下:
http://www.myvoipapp.com/cn/docs/mss_services/IVR-XML/index.html
部分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就是用来私网内设备获取外网地址的一种协议工具。
请参考下面这张图:
在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给出了一个简单的示例:
支持STUN后,是否能解决所有的语音单通问题呢?
很不幸,不能。在多数情况下,STUN能很好的工作,但是它无法解决所有的语音单通问题。这取决于私网的类型。简单而言,取决于路由器(当然,在某些网络,也可能是防火墙设备)。
请参考上面这张图。图中描绘了两个会话:一个会话是SIP电话向STUN服务器请求获取公共地址。另一个会话是SIP电话与SIP软终端之间的呼叫。
众所周知,路由器将维持私网地址与公网地址之间的映射关系。缺省情况下,大多数路由器对来自私网内同一个设备同一个端口的不同会话,会分配并维持同一个外部地址映射关系。因此SIP电话在这两个会话中,会有同一个外部地址。
但是有些路由器会为不同的会话分配不同的映射关系,也就是说SIP电话在这两个不同的会话中会有两个不同的外部地址对应,因此实际上在与sip软终端的对话中,SIP电话还是无法知道对应的外部地址。
如果STUN不能解决语音单通的问题,根本原因就是路由器或者私网类型导致。此时,最终的解决方案就是建立VPN网络,将所有的SIP电话和SIP终端至于同一个逻辑网络内。这就是另外一个讨论议题了。(补充说明:也有可能采用ICE协议解决私网穿越问题,但是不是所有的设备都能支持ICE协议。)
几乎所有的人在部署第一个VoIP网络时,都会遇到这个问题。我们经常会觉得困扰:为什么我听不到对方而对方却能听到我呢?为什么双方都听不到对方呢?
这个问题的根本原因在于:VoIP部署涉及两个不同的网络,通常是私网和公网(当然,也有部署在两个不同私网内的情况)。如果呼叫双方位于两个不同的网络内,“语音单通”问题就极有可能发生。请参考下面的图例,该图描绘了一个非常简单的VoIP网络:

在这个简单的网络中,我们部署了两个VoIP设备:一个是SIP电话,电话号码是100。另一个是SIP软终端,电话号码是101。
SIP电话位于私网中,其私网地址是192.168.1.100,通过路由器与公网相连。路由器地址为8.8.8.8.
SIP软终端安装在PC中,PC接入到公网,地址为8.8.4.4。
那么,当SIP电话向SIP软终端发起呼叫,会发生什么情况呢?
SIP电话说:喂,我是100,我的语音地址是192.168.1.100, 请发送语音流给我。
SIP软终端回答说:没问题。我这是101,我的语音地址是8.8.4.4. 请把你的语音流发给我。
SIP电话将语音流发给SIP软终端。既然 “8.8.4.4 ”是公共地址,因此SIP软终端能成功收到SIP电话的语音流。也就是说,SIP软终端能听到SIP电话的语音了。
SIP软终端将它的语音流发送给SIP电话的地址“192.168.1.100″。可以看到,这个地址是个私网地址,位于公网内的SIP软终端实际上无法连接该地址,因此最终也就无法将语音流发送到这个地址上去。
最后,SIP软终端能听到来自SIP电话的语音,而SIP电话无法听到SIP软终端的语音。这就是个非常典型的语音单通问题案例。
那么,我们如何解决这个问题呢?待续 ……
这是一个客户经常问到的问题。实际上,客户是希望了解MSS是否能和他们的SIP电话、SIP终端配合,这些终端往往支持多种语音编解码格式。
我们一般都回答:这取决于客户的SIP电话、SIP终端本身。miniSipServer,无论是本地MSS还是云端MSS,缺省都不关心语音格式。
为什么我们会这样回答呢?
请参考下面这张图。该图描绘了在基本呼叫流程中,MSS的媒体处理基础模型:

在这张图中,我们可以看到以下几点重要信息:
(1)MSS仅仅控制呼叫信令;
(2)媒体流由SIP电话(终端)之间进行端到端处理。
这种处理模式中,媒体流不经过服务器,无疑会大大减少服务器端的负荷,而且显然在服务器端不需要关心媒体的格式。
然而在某些应用场景中,MSS需要对SIP电话(或者SIP终端)进行放音操作,例如自动话务员以及callingCard等业务,MSS就必须关心媒体格式。
对于这些情况,MSS支持以下语音格式: G711a (PCMA)、以及G711u (PCMU)。
需要说明的是,放音完成后,最终的媒体流处理仍然会返回到端对端的模式。请参考下面的模型图:

部分客户在使用miniSipServer云通信时,经常会觉得困惑:为什么我的email邮箱中没有收到语音留言?
实际上,我们有个简单的在线业务指导文档来描述语音邮箱业务,请参考:
http://www.myvoipapp.com/docs/mss_services/voice_mail/index.html
MSS云通信稍微有点区别。首先,MSS云不支持MWI(点亮留言灯)特性,因此它只能支持发送语音邮件的方式。大多数时候,部分客户总是忘记配置SMTP信息,而这些信息是必需的,因为MSS Cloud需要使用SMTP配置来发送eMail。另外,部分客户也经常忘记给分机配置相应的eMail地址。
因此,本文中我们进一步描述MSS云通信环境中配置细节。在此之前,我假设您已经登陆了MSS云通信账户,如果没有的话,请先申请一个。
Step 1: 配置SMTP信息

请注意该截图。您需要点击”System information”链接,并填写您的SMTP信息。如果是采用Gmail账号,还需要指定”This server requires a secure connection”。
如果SMTP信息正确,MSS Cloud就可以使用该信息给您配置的分机发送语音邮件。
Step2: 配置分机

请点击”Local users”连接,增加或者编辑一个本地用户(通常也称为:分机),并设定eMail address,这就是告诉MSS Cloud,将该分机的语音留言发送到这个地址去。
当然,在分机的配置中,您还需要为该分机设置语音留言权限。
完成这些配置后,对于无应答呼叫,MSS会提示主叫用户留言,并将留言发送到相应的email邮箱中。
2011-12-26 更新:
最新的miniSipServer提供GUI界面和安装包,请参考新的博文:
================================
最近,miniSipServer的开发版本升级到了V4.0。这个版本最重要的特性就是对Linux系统(主要是Ubuntu)的支持。
V4.0版本在Windows系统和Ubuntu系统中的主要差别就是:Ubuntu版本目前不提供GUI管理界面,只提供WEB管理界面,这样仍然是非常容易搭建和管理VOIP系统。
首先,请从MyVoipApp的网站下载相应的.tar.gz文件。下面的描述中,我们将举例说明如何在Ubuntu中运行20客户版本miniSipServer。下载页面如下:
http://www.myvoipapp.com/download
tar.gz文件是压缩包。下载完成后,请使用下述命令解压缩:
tar zxvf mss_v4_u20_i386.tar.gz
解压缩完成后,您会在目录下发现一个脚本文件”install.sh”,运行这个脚本即可进行按转。注意,安装过程中,会提示自动安装一些第三方的软件,例如mysql的链接库等,这些软件都是从ubuntu官方软件源进行下载安装。
sh install.sh
安装完成后,就可以直接运行MSS了:
sudo msscli
MSS运行后,在命令行窗体中,您可以看到以下信息:
HTTP server is running at port 8080
这说明MSS已经成功打开TCP 8080端口,运行WEB管理系统。现在,您可以使用任何一款浏览器访问MSS的web管理系统了。例如,您可以打开本地的Firefox,并在地址栏中输入以下地址进行访问:
http://localhost:8080
我们需要强调的是:系统管理密码缺省为空。因此,一旦您登录WEB管理系统后,首先要作的事情就是设置系统管理密码。请点击“basic configuration / system configuration”进行更改。
非常简单,对吧?如果您有任何问题,欢迎您联系我们进行讨论。我们非常希望您能喜欢并享受MSS带来的强大功能和轻松管理。
在部署VOIP网络时,我们经常使用“SIP中继”在SIP服务器(网关)之间建立通信连接。例如,在部署DID业务中,会经常要求使用SIP中继传递呼叫,包括接收呼叫或者发起呼叫。
“SIP中继”与“外线”的主要差别在于鉴权方面:SIP中继呼叫通常不会要求鉴权,它采用“服务器对服务器”的模式,而“外线”采用的是“服务器对用户“模式,服务器通常会要求对用户进行鉴权。
在MSS中非常容易部署SIP中继。
下面我们通过一个简单的示例来演示在MSS中配置SIP中继的方法。在我们的示例中,对端服务器为“sip.demo.com”,端口为SIP协议缺省的UDP5060端口。
步骤1:添加SIP服务器地址
请点击菜单“数据 / 对端服务器”,增加以下新纪录:
对端服务器编号 = 1
描述 = SIP服务器演示
服务器地址 = sip.demo.com
服务器端口 = 5060
步骤2:处理入呼叫
一旦我们从SIP中继接收到呼叫,通常我们都希望将呼叫路由给本地的分机。我们可以使用“拨号规则”功能来实现。
我们希望以“1234”起始的DID号码路由给分机,例如“1234100”路由给分机“100”,“1234101”路由给分机“101”等。
首先我们要配置号码变换功能。请点击菜单“拨号规则 / 变换”增加以下纪录:
变换编号 = 1
变换类型 = 删除
起始位置 = 0
长度 = 4
然后我们在配置“分析被叫号码”。请点击菜单“拨号规则 / 分析被叫号码”增加以下纪录:
拨号计划 = default
被叫号码前缀 = 1234
路由类型 = 本地分机
被叫号码变换 = yes
被叫号码变换编号 = 1
步骤3:处理呼出呼叫
我们系统呼出的呼叫通过该SIP服务器路由出去,仍然需要通过“拨号规则”来实现。
我们希望所有被叫号码以“00”起始的呼叫都通过该服务器路由,例如“008613800138000”,等等。
请点击菜单“拨号规则 / 分析被叫号码”增加以下纪录:
拨号计划 = default
被叫号码前缀 = 00
路由类型 = SIP中继
对端服务器编号 = 1
2011-12-26 更新:
最新的miniSipServer提供GUI界面和安装包(不在需要WINE),请参考新的博文:
================================
随着linux系统的不断完善,越来越多的企业和个人开始部署linux系统,其中尤其是Ubuntu系统获得了最广泛的部署。同时,也越来越多的客户来信询问:miniSipServer是否有linux版本?是否能运行在Ubuntu上?
我们需要说明的是,miniSipServer是专门为windows设计的SIP服务器,因此目前是不能直接就在Ubuntu/Linux环境中运行。当然,我们也有计划未来将miniSipServer移植到Ubuntu系统中,尤其是V3.0版本采用了QT框架后,移植工作的可行性完全可以预期。
但是这不等于说,目前的miniSipServer版本不能在Ubuntu中运行。借助于Wine软件,miniSipServer可以毫无障碍地运行在Ubuntu中!在这里,我们要非常感谢Wine团队做出的杰出贡献。
请参考在线文档获得更多的相关信息:
http://www.myvoipapp.com/docs/faq/linux_sip_server/index.html
Win7/Vista系统与以前的windows系统,例如xp系统,在安全管理方面有一些差异。对部署MSS有影响的安全措施是:win7/Vista限制了C盘的程序对本地文件的写操作。
例如,如果我们将MSS安装在c:\program files\minisipserver目录下,然后运行。运行是非常正常的,但是如果我们更改了MSS的配置,重启MSS后发现,配置没有起作用,所有的修改都没有保留。
如何来解决这个问题呢?有以下两种方法:
(1)将MSS安装在其他盘符下,例如安装在D盘。由于Win7/Vista目前只限制了C盘的安全,没有限制D盘的安全性,因此将MSS直接安装在D盘,能正常保留本地配置文件。
(2)以管理员身份运行MSS。右键点击MSS的桌面图标,选择以管理员身份运行,win7/Vista运寻管理员对C盘进行完全控制,因此这样也能将本地配置文件保存在C盘及其子目录下。
我们建议采用第一种方式。采用第二种方式在每次运行时,系统都可能要求输入管理员密码,使用时不太方便。