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 服务器上的9196
和3000
呢?
由于这两个号码跟你本地的路由是冲突的,因此你可以采取一个策略,即拨打外线在号码前加0
,这也是常用的策略。Demo 服务器上的号码对于你的 XSwitch 服务器来说属于外线。
添加路由规则:
- 被叫字冠:
0
- 最大号长:
5
- 网关:选择上面创建的网关
路由创建完成后,要进入路由,修改“被叫号码变换”,改为-0
,然后你呼叫如下号码都会打到 Demo 服务器上。
09196
03000
你的 XSwitch 在匹配到这条路由时,会执行号码变换规则,把前面的0
减掉,俗称“吃掉”。也就是说,Demo 服务器上看不到首位的0
的,它以为你就拨打了一个9196
或3000
。