FAQ
XSwitch 常见问题解答
XSwitch 的定位是什么?
XSwitch 定位是一个高度可定制的综合实时音视频通信平台,基于模块化、高度可定制化的设计、提供丰富的二次开发接口。
XSwitch 支持 IPPBX 吗?
是的,XSwitch 最精减的版本就是一个 IPPBX。
XSwitch 支持呼叫中心功能吗?
是的,XSwitch 支持基于的呼叫中心功能和强大的呼叫中心排队(ACD)功能。
能简单说一下 XSwitch 与其他类似商业产品的区别吗?
我们也在向他们学习。不过,说到区别,那就是——其他通信厂商只提供他们设计好的功能,XSwitch 致力于提供你真正想要的功能。其它厂商建生态希望把你圈到他们的圈子里;我们也做生态,致力于全方位的互联互通。
XSwitch 与开源的 FreeSWITCH 有什么关系?
XSwitch 底层是基于 FreeSWITCH 开发的,扩展了很多功能,包括 Web UI 界面和很多可扩展模块。兼容所有的 FreeSWITCH 原生 API。
XSwitch 可以在国产操作系统和 CPU 上安装吗?
是的,我们有一些国产操作系统和 CPU 的认证证书。
XSwitch 提供测试吗?
是的。我们有 XSwitch Cloud 可以直接在云上测试,也提供本地化的安装测试版本,参见下载和安装。
如何安装 XSwitch?
参见下载和安装。
XSwitch 相关的代码和示例都是放到你们自己的 Git 服务器上,为什么不放到 Github 或国内的 Git 托管平台上?
我们喜欢 Github,但是 Github 在国内访问不流畅。国内的 Git 托管平台也很好,我们也尝试过相关的镜像,但到目前为止我们还没有打算迁移到这些平台上。使用私有的 Git 服务器使我们更容易管理我们公司同事的账号。我们的 Git 服务器也对外开放注册,欢迎您注册账号给我们提工单和 PR。但我们不是一个 Git 托管平台,所有账号仅用于跟我们更好地协作。
我可以向 XSwitch 贡献代码吗?
欢迎。我们有一个开源版本的仓库。
XSwitch 针对 FreeSWITCH 有什么 RoadMap 吗?
我们持续在开发,目前主要专注于全方位的互联互通、人工智能、音视频优化、集群、大并发、弹性伸缩、工程化、商业化相关的功能和优化。我们有一个产品更新路线图。
我如何使用某某功能?
如何与你们联系?
您使用官方网站的联系方式,也可以给我们在线反馈。
XSwitch 都支持哪些数据库?
XSwitch 原生可以支持 SQLite、PostgreSQL、MySQL 及 OceanBase,通过 ODBC 可以支持更多支持 ODBC 的数据库,如 MSSQL、Oracle、达梦等。但是 XSwitch 本身的数据库(XUI 相关的部分)仅支持 PostgreSQL。详见在 XSwitch 中连接外部数据库。
你们为什么选择了 PostgreSQL 而不是 MySQL?
PostgreSQL 是一个有 30 多年历史的关系型数据库,FreeSWITCH 对它支持最好。我们也喜欢 PostgreSQL 对存储过程及 JSON 数据的支持,最终选了它。MySQL 也是很优秀的数据库,但是后来被 Oracle 收购后前景有些不明,衍生版变成了 MariaDB。虽然我们核心数据库没有适配,但是你仍然可以在 XSwitch 中查询 MySQL 数据库中的数据。
XSwitch 支持国产数据库吗?
支持。已测试过 XSwitch 可以连接 OceanBase,可以存话单等。我们还没有把核心数据放到 OceanBase 中。我们也尝试过达梦之类的国产数据库,但是安装和使用起来比开源数据库要麻烦一些。
XSwitch 可以双机热备吗?
是的,参见HA。
XSwitch 支持集群部署吗?
是的,我们支持通过 Kamailio 和 XSwitch 配合做集群,参见集群部署。
XSwitch 初次安装登录密码是多少?
关注小樱桃科技微信公众号,输入admin
即可。
XSwitch 可以看演示吗?
可以,关注小樱桃科技微信公众号,输入demo
即可。
XSwitch 部署在公网,需要开放哪些端口呢?
一般来说,XSwitch 需要以下端口:
: XSwitch 端口列表
端口号 | 类型 | 协议 | 说明 |
---|---|---|---|
5060 | SIP | TCP,UDP | default Profile,开公网,如果前面有 Kamailio 可以不开公网 |
5061 | SIP | TLS | 开公网,如果前面有 Kamailio 可以不开公网 |
5080 | SIP | TCP,UDP | public Profile,开公网,如果前面有 Kamailio 可以不开公网 |
8081 | SIP | TCP,HTTP,WS | 开公网,如果前面有 Nginx 可以不开公网 |
8082 | SIP | TCP,HTTP,WSS | 开公网,如果前面有 Nginx 可以不开公网 |
10000 ~ 20000 | RTP | UDP | 开公网,如果有 rtpengine 可以不开公网 |
8021 | ESL | TCP | 一般只开内网权限 |
5432 | PG | TCP | PostgreSQL 数据库端口,一般只开内网访问即可 |
5000 | BFCP | TCP,UDP | BFCP 端口,如果使用 BFCP 需要开公网 |
具体开放的端口以.env
内实际配置的端口号为准,开放端口类型为 TCP 和 UDP,.env
文件内参数说明参见安装部署。
如何使用 VoLTE 或 5GNR 打入系统,然后播放视频,XSwitch 如何配置?
取决于你的运营商和线路。XSwitch 支持各运营商的 IMS 线路接入,但需要做一些设置和适配,也需要相应的脚本完成 IVR 的功能。
该功能需要商业版的才可以支持,请联系我们,获取演示 Demo 和相关技术文档。
是否可以提供视频演示平台,了解系统
是的,请联系我们。
是否有推荐使用的软电话可以直接对接系统?
每个人都有自己喜欢的 SIP 客户端,我们没有偏向性,我们常用的有 Telephone、BareSIP、Linphone 等,其实其他的也经常用。更多请参见我用过的那些 SIP 客户端。
社区版如何添加网关进行外呼
参见用户手册相关内容。
首次下载安装后启动后,Web 页 admin 登录不了怎么解?
参见调试与排错。
一台服务器上运行多个 XSwitch 有什么好的解决方案吗?端口冲突或者不够咋办?
XSwitch 是以 Docker 容器方式启动的,只需要在配置端口时将不同 XSwitch 的端口分开就行,具体端口可以参见.env
里的配置。
呼入到 IVR 后转接到指定手机号码,能显示原主叫号码吗?
在技术上是没有限制的,但是运营商的线路通常有限制,不允许你改变主叫号码。
在 PRI 和 SIP 协议里都有源主叫号码相关的。如果你的运营商线路支持,可以在 SIP 消息中增加相应的头域把原始主叫透传过去。跟线路有关,一般要检查如下头域:
Division P-Asserted-Identity Remote-Party-ID
可以直接在 XSwitch 中添加一个 Application 设置相关头域,如:
set sip_h_Division=<+8612345678900@xswitch.cn>
另请参考主叫号码的秘密。
如果你是商业版用户,请联系我们的技术支持工程师。
上次想买商业版付个系统费,结果有些社区版不收费的功能,商业版还要收费
社区版是为了大家方便测试系统,我们不推荐将社区版用于生产系统(虽然我们没有限制)。商业版就是要收费的,如果您对我们的收费策略有任何好的想法和建议都欢迎联系我们给我们反馈。
XSwitch 是否支持 WebRTC?
当然,XSwitch 从第一天起就支持 WebRTC。而且 XSwitch 支持 Verto、SIP over WebSocket、WHIP、WHAP、WHXP 等多种协议。详见如何在 XSwitch 中使用 WebRTC。
关于点击拨号的功能:我们公司想在前端开发自己的拨号界面,后端调 XSwitch 接口,是不是前后端都得集成 XSwitch?
不是。你可以纯后端集成,也可以纯前端集成,也可以前后端都集成,我们的接口提供了任意定制的能力,你可以根据你的需要进行集成。详见XSwitch 集成指南。
Java 有没有 XSwitch Rest API 的 demo?
没有,不是不做而是不需要。我们的 REST API 接口文档都使用curl
描述的。不仅是 Java,任何语言都可以很轻松的调用 REST API,相信你比我们更了解你们自己使用的语言。
XSwitch 项目可以在 Window 中运行吗?有没有具体的操作手册?
可以。我们分发的是 Docker 镜像,可以在 Windows、macOS、Linux 上运行,支持 AMD64 及 ARM64 架构。详见XSwitch 下载安装,以及Docker。