XSwitch入门

添加网关拨打外部电话

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

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


无须鉴权的网关

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

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

创建呼叫路由

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

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

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

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

提示: 这里的 IP 地址一般由对端提供,可能的格式如下:

  • 172.16.17.18
  • 172.16.17.18:5060
  • 172.16.17.18:5060;transport=tcp

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

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

本例拓扑如下:

创建网关和路由

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

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

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

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

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

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

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

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

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

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

拓扑结构与上例相同。

需要注册和鉴权的网关

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

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

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

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

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

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

“吃”位

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

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

添加路由规则:

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

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

  • 09196
  • 03000

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

在你自己的XSwitch上打电话