XSwitch

XSwitch快速入门

XSwitch.cn

2022年6月22日

法律声明

若接收烟台小樱桃网络科技有限公司(以下称为“小樱桃”)的此份文档,即表示您已同意以下条款。若不同意以下条款,请立即停止使用本文档。

本文档版权所有烟台小樱桃网络科技有限公司。保留任何未在本文档中明示授予的权利。文档中涉及小樱桃的专有信息。未经小樱桃事先书面许可,任何单位和个人不得复制、传递、分发、使用和泄漏该文档以及该文档包含的任何图片、表格、数据及其他信息。本网页版文档仅在xswitch.cn上发布。

本产品符合有关环境保护和人身安全方面的设计要求,产品的存放、使用和弃置应遵照产品手册、相关合同或相关国法律、法规的要求进行。

本文档按“现状”和“仅此状态”提供。本文档中的信息随着小樱桃的产品和技术的进步将不断更新,小樱桃不再通知此类信息的更新。

烟台小樱桃网络科技有限公司

地址:烟台市高新区蓝海路1号
邮编:264000
电话:0535-6753997

1 简介

XSwitch是一个高度可定制的综合实时音视频多媒体通信平台。

XSwitch支持电话、传真、视频会议、呼叫中心等。支持主流的通信协议如SIP、H323、WebRTC、RTMP等,可以作为IP-PBX、视频会议服务器、传真服务器、多协议网关、呼叫中心服务器等使用。XSwitch提供REST、Websocket二次开发接口。XSwitch基于开源技术构建,如FreeSWITCH、PostgreSQL、Nginx等。

XSwitch是模块化,积木式按需叠加和无限伸缩扩容的通信产品,更可以通过定制支持集群部署,实现更强大的功能。XSwitch的位置、组件和逻辑关系如下图所示:

其中,SIP话机通过SIP协议接入XSwitch,管理员可以通过Web浏览器进行系统管理和维护,也可以通过WebRTC打电话,静态Web页面都由Web服务器提供,动态API请求会由Web服务器转发到XSwitch端进行处理。

约定

本手册内容和排版遵循以下约定:

  • 章节号或重要的内容会以粗体或黑体表示,有的地方可能有“重要”或“提示”字样。
  • 系统中会用到一些标志符,它们通常以等宽字体表示,如:context-1
  • 菜单或按钮顺序以下列形式给出:【一级菜单】⇨【二级菜单】⇨【按钮】。
  • 有些内容会有(TLDR)标志,即(Too Long Didn't Read),这些内容在快速阅读时可以先忽略。

系统中用到的字符串值(通常是名称字段的约束)遵循以下约定:

  • 表达式:大小写字母、数字及“-_.”,不能有其它字符,如“$/\;@%'"[]{}()”等
  • 任意字符串:任意合法的UTF-8字符串,不包含控制字符(ASCII码为0~31的字符)

系统中使用的按钮和动作使用以下约定:

  • 新建/New:弹出新建对话框,可以新建一条记录,成功后显示在列表页第一行
  • 添加/Add:有时候,有的页面上,资源是存在的,但是需要添加到某个列表时,比“新建”语义更明确一些
  • 删除/Delete:删除一行或多行
  • 导入/Import:弹出导入框
  • 导出/Export:导出Excel或CSV文件
  • 刷新/Refresh:在不刷新整个页面的情况下刷新数据
  • 保存/Save:保存当前修改
  • 重载/Reload:将当前数据应用到运行时的程序中
  • 上传/Upload:上传文件
  • 下载/Download:下载相关资源
  • 快速删除模式/Fast Delete Mode:可快速删除多条数据,而不需要确认

系统中的对象,有以下一些通用的字段和属性:

  • ID/ID:唯一标志
  • 名称/Name:最大20个汉字1
  • 描述/Description:最大250个汉字
  • 创建时间/Created At
  • 更新时间/Updated At
  • 删除时间/Deleted At
  • 启用/Enabled
  • 状态/Status

2 打通第一个电话

在打通第一个电话之前,你首先要有个XSwitch。最简单的方法是登录 https://demo.xswitch.cn (用户名和密码可以关注“小樱桃科技”微信公众号,在聊天区输入demo可免费获取)。

用取得的用户名和密码登录系统后,可以看到【视频会议】和【管理员界面】两个选项。进入视频会议,在号码区输入3000,点击【视频呼叫】或【音频呼叫】按钮就可以进入一个视频会议中。这时会议中只有你一个人,你可以打开另外一个浏览器Tab,呼入同一个视频会议,体验视频会议功能。

注意:

  1. 如果你电脑上没有摄像头和麦克风,呼叫将失败,这时候可以使用第三个【呼叫】按钮,以“观察者”模式呼入。
  2. 网页版呼入功能使用WebRTC技术,你需要一个支持WebRTC的浏览器,如最新版的Chrome,或Microsoft Edge浏览器等。

除了3000外,你还可以拨打9196听进入一个回声测试,接通后你可以呼到自己的声音、看到自己的视频。另外,你也可以通过拨打10000200收听一段美丽的音频。

不知不觉,你已经打通三个电话了。

记住这个用户名和密码,以便下次使用。我们后面也会以该网站做例子。

另外,为了防止系统被滥用,这个用户名和密码也可能会不定期改变,如果变了,可以使用同样的方法重新获取密码。

3 配置SIP电话呼入Demo服务器

可以用你趁手的SIP客户端或SIP话机注册到Demo服务器,如果你不熟悉SIP客户端,可以参阅《我用过的那些SIP客户端》或干脆跳过本节。

注册信息如下:

  • SIP服务器(域):demo.xswitch.cn:18860
  • 协议:UDPTCP
  • 用户名:10001000 ~ 1019中的任意一个号码
  • 密码:1234

注册成功后就可以呼叫上一节提到的那些号码了。

你也可以尝试以下列方式通过我们的SBC注册到系统:

  • SIP服务器(域):demo.xswitch.cn
  • SIP代理服务器:sbc.xswitch.cn,端口:1001
  • 协议:UDPTCP
  • 用户名/密码:同上

如果你想尝试使用TLS协议注册到系统,把端口换成1002

注意:上述用户名密码信息并不总是可用,因为是公开的服务器,密码可能会被别人改掉。你也可以尝试通过菜单:【呼叫】⇨【分机】⇨【新建】,自己创建一个分机。另外,该服务器上的信息每天午夜会重置,所以,如果你第二天又来测试系统,需要重建相应的账号。

本例中的拓扑结构如下:

4 下载安装

如果你想在自己的电脑或服务器上安装XSwitch,也很简单,照XSwitch安装说明做即可。安装完毕后,别忘了再回来继续阅读。以下例子如果没有特别说明都是以你本地安装的为例。

5 在你自己的XSwitch上打电话

系统安装完毕后默认的管理员用户名和密密码都是admin,登录Web界面后可以看到一些统计信息和图表。

系统默认自带1000~1019共20个分机,密码都是1234。你可以使用任何一个分机注册到系统打电话。

注意,私有化安装没有[视频会议]界面,该界面只在云端提供,但XSwitch的视频会议功能是有的。

可以用SIP话机或软电话注册到系统上,默认注册端口在首页就可以看到,假如你看到:SIP: 192.168.0.1:7060,其中7060就是端口,也可以通过【高级配置】⇨【SIP】⇨default查看SIP端口,默认是7060),常用的注册选项是:

  • 服务器:XSwitch服务器的IP地址,或域名(如果你设置了并能解析的话,默认是xswitch.cn
  • 用户名:如1000
  • 密码:如1234

有时候,你使用的域和IP地址不同,或者“域”只是个标志字符串不是一个合法的域名(FQDN),或者你在内网上注册根本无法解析这个域名2,这时候你就需要填入:

  • 服务器(域):域的名字,如xswitch.cn
  • 代理服务器:XSwitch服务器的IP地址

通过这种方法,你的SIP终端就会将SIP注册及呼叫消息发到你指定的IP地址上,但SIP消息中的域是你指定的域名。

还有时候,你的SIP终端要求输入“鉴权用户名”,XSwitch默认的设置是它必须跟你的分机号相同。当然你熟悉了本系统,可以参考《XSwitch用户手册》修改这个默认设置。

注册成功后,可以尝试拨打回声测试号码9196,一切正常的话它应该自动应答,你就能听到自己的声音。

注册两个不同的分机可以互打。

多个分机可以同时呼入3000会议室开会。如果你的终端支持视频(并且购买了XSwitch的视频许可),也可以进行视频会议。

如果拨打系统外的电话,如手机,则需要添加一个网关。具体网关的添加方法见后面的章节。

本例中的拓扑结构如下:

6 添加网关拨打外部电话

安装了系统不能只是自己玩,还需要打外部的电话。而打电话就需要连接到运营商,这就需要向运营商申请一个“线路”。“线路”可以是一根普通的电话线,也可以是E1数字中继,或IMS中继线。很抱歉,这一句话中就出了三个术语,很了IMS中继线外,其它的你都需要有一个转换器,这个转换器叫“网关”。

如果申请网关超出了本文的范围,下面假设你已有经了这么一个网关。

6.1 无须鉴权的网关

假设你已经有了一个无须鉴权的网关,直接IP对接就可以打电话,这是最简单的配置了。

如果你没有,那我们可以给你一个。为了方便大家学习,我们配置了一个“假”网关,这个“假网关”跟真的一样,也能接听电话,播放声音,甚至可以播放空号等。

6.1.1 创建呼叫路由

无须鉴权的网关对接不需要添加网关,只需要加一条路由即可。

打开菜单【呼叫】⇨【路由】⇨【新建】,创建一条路由,内容如下:

  • 名称:RTS测试(可以随意)
  • 被叫字冠:10000200
  • 最大长度:8
  • 呼叫源:default(或“默认”)
  • 目的地类型:系统对接/IP地址
  • IP地址:rts.xswitch.cn:20003;transport=tcp

如你所见,这个IP地址其实也可以填域名,格式是:IP或域名:端口;参数=值。上述IP地址描述的就是我们前面说的“假网关”。

配置完成后,用你的分机呼叫10000200,如果能听到“您好,欢迎致电小樱桃……”,恭喜你,电话接通了。

注意:这里默认使用TCP协议,主要是为了防止SIP包太大超过MTU导致UDP消息传输不可靠。

本例拓扑如下:

6.1.2 创建网关和路由

除了上述方式,你也可以真正添加一个网关,好处是可以选择更多的参数。

打开菜单【呼叫】⇨【网关】⇨【新建】,添加一个网关。参数如下:

  • 名称:必须是个“标志符”,如:test-gw-1
  • 服务器:rts.xswitch.cn:20003
  • 用户名:a,随便填,但不能不填
  • 密码:a,随便填,但不能不填
  • SIP Profile:[public]
  • 模板:[default]
  • 注册:

创建成功后,在控制列,点击【开始】或【启动】,启动该网关。目前网关状态缺少必要的指示,可以多次按【开始】和【停止】查看差别。

网关创建成功后,可以按上一节的方法创建路由。不同的是:

  • 目的地类型:系统对接/网关
  • 网关:选择刚刚创建的网关。

然后就可以打电话了。除了上面提到的电话号码外,你也可以尝试拨打这些测试电话号码

当然,为了避免为每一个号码创建一条路由这么笨的方式,可以按如下方法创建路由:

  • 被叫字冠:10000
  • 最大号长:8

这样,所有的8位以10000开头的号码都会路由到这个网关上,是不是超级简单?

拓扑结构与上例相同。

6.2 需要注册和鉴权的网关

有的网关是需要注册和鉴权的,比如我们这里就有一个。

假设我们把上面提到的Demo服务器作为一个网关,从你的XSwitch注册到Demo上去,你可以添加如下网关:

  • 名称:必须是个“标志符”,如:demo
  • 服务器:demo.xswitch.cn:10160
  • 用户名:1000,或1001 ~ 1019之间的号码,或你自己添加的分机号,不能随便填,不能不填
  • 密码:1234,或你在Demo服务器上设置的密码
  • SIP Profile:[public]
  • 模板:[default]
  • 注册:,注意这里是

添加完成后,【开始】或【启动】,如果能注册成功,对应的网关行会变成绿色。

然后修改路由,把10000开头的路由指向这个网关,就可以呼叫上面说的以10000开头的那些测试号码了。是的,你没有看错,你也可以通过我们的Demo服务器呼叫那些号码。具体Demo服务器上的路由规则你可以登录上自行分析。

上面的呼叫拓扑图示如下:

6.3 “吃”位

上面我们直接呼叫10000开头的8位号码路由是通的,那我们如何呼叫Demo服务器上的91963000呢?

由于这两个号码跟你本地的路由是冲突的,因此你可以采取一个策略,即拨打外线在号码前加0,这也是常用的策略。Demo服务器上的号码对于你的XSwitch服务器来话属于外线。

添加路由规则:

  • 被叫字冠:0
  • 最大号长:5
  • 网关:选择上面创建的网关

路由创建完成后,要进入路由,修改“被叫号码变换”,改为-0,然后你呼叫如下号码都会打到Demo服务器上。

  • 09196
  • 03000

你的XSwitch在匹配到这条路由时,会执行号码变换规则,把前面的0减掉,俗称“吃掉”。也就是说,Demo服务器上看不到首位的0的,它以为你就拨打了一个91963000

7 处理电话呼入

处理电话呼入也很简单,你需要先知道呼入的DID。DID的全称是对内直接呼叫,一般也就是呼入的电话号码,但对接不同的网关,呼入规则也不同,被叫号码显示规则也不一样。

以不变应万变,如果与其它网关对接,让对方把SIP呼叫发送到你的public SIP Profile对应的端口上。默认安装后的端口是7080。如果你的IP地址是1.2.3.4,那就完整的地址就是sip:1.2.3.4:7080。如果对端也是个XSwitch,或者你装了两个XSwitch,你可以想象,你需要在另一个XSwitch上添加一条路由,指向“IP地址”,内容填sip:1.2.3.4:7080即可,或sip:1.2.3.4:7080;transport=tcp使用TCP协议。

打开【高极】⇨【扩展功能】⇨【终端】,就可以看到日志,打一个电话进来,就可以在日志中看到如下字样:

Processing ... 主叫号码 -> 被叫号码 in context public

其中,context就是呼叫源。有了这些信息以后,就可以添加一条路由了。路由的目的地如果是“本地用户”,则会查找跟被叫号码相同的分机,并呼叫。

一般来说,呼入的电话都是路由到本地分机或IVR,积木是一种更强大的IVR。

你可以到Demo服务器上注册另一个号码,呼叫你在XSwitch中向Demo注册的那个网关号码(如1001)。查看日志。

小技巧:

如果你觉得上面获取DID的方法还是太复杂了,那么,这里告诉你一个小技巧:让对方网关指向你以后,什么也不用做,打电话,然后就可以在【话单】里找一到一条失败的呼叫,看看里面的主、被叫号码就一目了然了。

8 使用DID处理电话呼入

ToDo

9 使用DOD做呼出映射

ToDo

10 排查问题

不管系统做得多么完善,你在实际使用时都会遇到各种各样的问题。XSwitch提供了很多跟踪调试手段,可以在你遇到问题是帮你迅速定位排查。

10.1 橡皮鸭解题法

我们帮助过很多人解决过各种各样的问题,很多时候,客户自己也不知道遇到了什么问题,总之就是系统登录不上,或电话打不通。在我们启发和询问下,用户往往自己就把问题解决了。因此,我们一般都回告诉客户我们处理问题的万能公式:

一旦一个问题被充分地描述了它的细节,那么解决方法也是显而易见的。

更详细的解释参见橡皮鸭解题法

10.2 一般的排查方式

有问题,看日志。

打开【高极】⇨【扩展功能】⇨【终端】,可以很方便的排查问题。点击【日志指令】⇨【SIP日志】⇨【开】,可以打开SIP日志跟踪,打开【SIP Flow】可以看到简单的呼叫流程图。

如果你看不懂这些日志,不要紧。点【清屏】,然后打电话重现你的问题,点【下载】,把下载下来的日志发给XSwitch技术支持工程师。

当然,你也可以在Linux控制台上查看日志。执行make cli可以进入容器中的XSwitch控制台。

10.3 深入理解架构

XSwitch超级简单,最小化安装仅需要两个镜像:

  • PostgreSQL:数据库
  • XSwitch:所有都在这里面

PostgreSQL不用说了,XSwitch依赖它存储数据。首次启动,XSwitch会等待PostgreSQL,如果连不上,会一直尝试重连,所以,如果数据为库有什么问题,自然业务就不正常。

docker logs -f xswitch-pg可以查看PostgreSQL容器日志。

make bash-pg可以进入容器,psql -U xui xui可以进入数据库,执行SQL查询等。

如果数据库正常,再检查XSwitch是否已正常启动。

docker logs -f xswich可以看XSwitch容器的日志。

make bash可以进入XSwitch容器,然后可以执行fs_cli进入XSwitch控制台。

mod_verto模块中有XSwitch内置的HTTP服务器,收到HTTP请求后,静态文件会直接返回,动态API请求(/api/)会执行后端的Lua脚本。

XSwitch内部的动态配置,Dialplan使用动态绑定(Binding)方式,也是执行Lua脚本动态生成XML。参见如何使用不带XUI的XSwitch获取更多细节。

10.4 排查HTTP问题

理解了上述架构以后,就可以比较方便的排查HTTP问题了。

检查8081端口是否正确监听:

netstat -an|grep 8081
lsof -i tcp:8081

在XSwitch控制台内:

verto status

使用cURL检查:

curl localhost:8081/

10.5 排查Nginx问题

默认情况下无须启动Nginx,但如果你启动了Nginx,那架构就变成:

Nginx默认会战胜80端口,如果访问Nginx时返回502504之类的,那多半是Nginx到XSwitch之间有问题,也可能XSwitch未正常启动。但如果返回的是401403404等,则可能是后台XSwitch内部的错误。一段一段的查,比如是否可以越过Nginx直接访问XSwitch的端口。检查Nginx配置文件,里面的upstream是否设置正确等。

10.6 其它

虽然我们上面说了一个万能公式,实际上,问题是如此千奇百怪,排查问题并没有万能的方法。有时候,查问题还需要一些经验和运气。但不管怎么说,一般来说,你经验越多,运气就会越好。

在XSwitch的文档中,也有很多有效的排查问题的方法,供参考。

11 基本概念

本来基本概念应该放到本文档最前面的部分,但考虑到大多数人都不想看基本概念,就放到了这里。

本章描述XSwitch系统中的基本概念和设计原则。

11.1 用户及组织架构

  • 用户指一个人,属性有用户名、密码、电子邮件、手机号等,可以登录Web系统。
  • 用户名只可以是字母与数字的组合,区分大小写,除“-_.”外不能有特殊符号。
  • 组织架构对应公司的组织架构。
  • 组织架构可以级连。
  • 组织架构与用户是一对多关系,比如一个部门有个多个用户,但一个用户只属于一个部门。
  • 用户组是一组用户。
  • 用户组与用户是多对多关系,即一个用户可以属于多个组。
  • 用户与分机是一对多关系,即一个用户可以有多个分机。
  • 用户可以在呼叫中心中作为座席使用,可以把工号当做用户名和登录名。
  • 只有用户可以登录Web系统,根据设置,可以使用用户名、电子邮件、分机号、手机号等登录系统。
  • 在API调用时,为避免每次都使用密码调用,可以使用Token,或者开发Key调用。
  • 系统默认有两个特殊用户:
    • ID为0system用户,没有任何权限,不能登录系统,不能被删除。当对应不到真人的时候可以使用它,如不属于任何人的分机号,可以关联到该用户。
    • ID为1admin用户,该用户是最高级的管理员,在简单的场景中可以使用,在复杂的权限管理下,每个管理员都应该使用自己的账号登录。

实际上,为了使系统保持简单,我们淡化了用户的使用。在最小最简的应用中,您可以只有一个admin用户,但它下面可以挂很多分机。

11.2 分机

  • 一个用户可以有0个或多个分机。创建一个用户可以选择同时创建一个同名分机。
  • 在简单场景下,可以只有一个admin用户,其它分机都挂在该用户下(当然也可以挂在system用户下)。
  • 也可以用户与分机一一对应。
  • 分机可以使用密码或Token鉴权,如果在Websocket/WebRTC端使用,可以使用用户登录,再获取分机的Token(详见API手册)。
  • 如果是SIP客户端软件,在可以获取Token的情况下,可以/建议使用Token鉴权,如果是硬件话机则仍使用用户名/密码登录。
  • 用户管理分机,分机用于打电话。
  • 分机必须属于一个用户,在小规模应用场景下,为每个分机都建立一个对应的用户可能有点复杂,这时候,可以让分机属于system用户。

11.3 权限

权限指Web界面和API的使用权限。权限采用业界流行的RBAC(Role Based Access Control,基于角色的访问控制)设计。可以给一个用户分配多个不同的角色,不同的角色可以分配不同的权限。用户总是从自己所属的角色上获取权限。权限用于控制某些菜单对用户是否可见,某些API对用户是否可以访问等。

11.4 呼叫方向和呼叫流程

呼叫方向有入局(Inbound、Incoming)和出局(Outbound、Outgoing)呼叫两种。所有方向都是相对于XSwitch本身而言的。即呼叫的方向是相对的,看参照物是谁。比如我打了你一拳,我就是出拳,而对于你就是入拳了。

一个通常的误解是用户描述电话故障的时候通常说电话打不出去,这时候,他(她)其实是站在自己(电话机)的角度说的,对于XSwitch而言,可能是入局故障(从话机到XSwitch),也可能是出局故障(从XSwitch到落地网关或运营商)。所以在排查电话故障时,一定注意参照物,把呼叫流程搞清楚再下手。

XSwitch是一个B2BUA(背靠背用户代理),一个典型的呼叫流程如下:

11.5 路由

问君能有几多愁,恰似在XSwitch中配路由。

路由是本系统中最最重要的概念。路由即电话从哪里来到哪里去。呼叫源用于描述电话从哪里来,目的地描述电话到哪里去。在路由上可以做“号码变换”,设置计费规则,是否自动录音,设置不同时间段目的地等。

本系统路由均根据被叫号码判断。在默认配置中,来自“本地分机”(即注册分机)的呼叫,一般呼叫源为default,来自中继网关的外部呼叫,一般为public,在实际部署时可能有所不同。

呼叫源是针对来话而言的,系统允许在最先收到来话的地方设置关联的呼叫源,如本地注册用户来话、中继来话、网关来话等。

DID和DOD中的号码映射规则优先级要高于路由,除此之外,所有送到系统的呼叫都要通过路由决定去向,详见路由

11.6 呼叫权限

呼叫权限指分机的呼叫权限,可以在分机上指定。如果分机的呼叫权限大于或等于路由上设置的呼叫权限,电话就能通,反之不通。

11.7 会话和通道

会话(Session)和通道(Channel)在XSwitch中是一对一的。XSwitch是一个背靠背的用户代理(B2BUA)。分机A通过XSwitch打给分机B,在XSwitch内会产生两个通道,也就是两个会话。同理,分机A通过XSwitch拨打一个手机号,也会产生两个通道。分机或外线打电话到IVR或会议,只会产生一个通道。每一个通道都有一个唯一的UUID(Universally Unique Identifier,通用唯一识别码,全球唯一,包含36个字符,如“00000000-0000-0000-0000-000000000000”)。

XSwitch的许可证是按通道授权的,分机打IVR或会议只占用一个通道授权,但通过网关打外线电话则占用两个授权。

11.8 通话

通话指一路电话、一个电话、或一通电话,指通信的两个实体间逻辑的概念。如分机A打给B,称为一路通话,它包含两个通道。三方通话其实也是一个通话,但是会有三个通道,每个通道代表参与通话的一方。

11.9 WebRTC

XSwitch支持基于SIP信令(SIP Over Websocket)及Verto信令的WebRTC通话,但是,WebRTC通话通常需要相应的https及相关证书。如何部署WebRTC通话不在本文档范围内。

如果已经部署了WebRTC功能,则可以在最新版的Chrome、Firefox、Microsoft Edge等主流浏览器中使用WebRTC通话。

WebRTC通话支持PCMA、PCMU、OPUS、H264、H265、VP8等音视频编码。

可以通过以下方法设置证书。

11.10 多语言支持

Web界面支持多种语言,点击右上角的国旗图标,可以进行中英文切换。如果系统中安装超过三种语言包,则语言选择会以下拉菜单显示。

11.11 浏览器

系统界面使用跨浏览器框架Ant Design提供跨浏览器支持,支持主流浏览器较新的版本。

WebRTC功能支持音、视频通话,目前测试支持最新的桌面版Chrome、FireFox、Opera、Edge、Safari等浏览器、Android版Chrome和FireFox、iOS版Safari。

WebRTC技术比较新,更新也比较快,所以请保持浏览器版本最新。

如果在使用过程中发现功能不正常,请使用最新版本的Chrome或基于Chrome内核的Microsoft Edge浏览器,因为这是我们研发和测试过程中使用最多的浏览器。

11.12 界面使用约定

系统界面简单直观。大部分页面在设计时都遵循以下约定,下面以分机页面为例加以说明。

11.12.1 列表页

如分机列表,列表页列出所有分机,有翻页功能。

在该页面上通常有一个【新建】按钮可以新建一个分机。

11.12.2 详情页

点击一个分机号码,可以进入详情页,显示详细信息。

在该页面上有一个【编辑】按钮,点击后进入编辑状态,编辑完毕后可以保存。

可点击进入详情页的区域通常有其它颜色(如绿色)显示,其他参数黑色显示。

11.12.3 即时编辑

有些页面,如SIP Profile管理页面,有即时编辑(In Place Edit)功能。即时编辑适用于一个对象有很多属性,但你只想修改其中某一项内容的情况。

点击某一可编辑的区域时,则出现编辑框,修改内容后按【回车键】,都可以退出编辑状态并自动保存。如果想放弃编辑,则可以按键盘上的【ESC】键或用鼠标单击编辑框以外的任何区域。

如果不知道哪些区域可以编辑,则可以按下旁边的【编辑】按钮,则可编辑的区域会显示成输入文本框或选择框。

有的按钮也有即时编辑功能,一般用于“是”、“否”的场景。点击后会直接改变状态,并自动保存

12 其它

恭喜你,读到这里,你应该了解了XSwitch和基本功能。更多功能,请参阅:


  1. 目前,并不是所有的名称字段都允许输入空格和中文。具体命名规则见各对象的使用说明。↩︎

  2. 注意,通常直接设置系统hosts文件在本地指向相应IP的方法是不好用的,因为大多数软电话都不支持本地的hosts解析。↩︎