freeswitch - 从两个 FreeSWITCH 连接时如何解决 NO_ROUTE_DESTINATION
问题描述
我是 FreeSWITCH 的新手,我正在尝试桥接来自两个不同 FreeSWITCH (SwitchA -> SwitchB ) 的呼叫。但是当我试图打电话时,它说NO_ROUTE_DESTINATION。
这是我当前对 FreeSWITCH-A 的配置(呼叫发起)
我的sip_profile/外部
<include>
<gateway name="fs-test2">
<param name="proxy" value="ipOfSwitch-B:5080"/>
<param name="register" value="false"/>
<param name="called-id-in-from" value="true"/>
<variables>
<variable name="verbose_sdb" value="true"/>
<variable name="absolute_codec_string" value="PCMU, PCMA" direction="oubound"/>
</variables>
</gateway>
</include>
我的拨号计划
拨号方案/默认
<include>
<extension name="outbound_call">
<condition field="destination_number" expression="^(18881)$">
<action application="bridge" data="sofia/gateway/fs-test2/$1"/>
</condition>
</extension>
</include>
拨号方案/公共
<include>
<extension name="public-did">
<condition field="destination_number" expression="^(19991)$">
<action application="set" data="domain_name=$${domain}"/>
<action application="transfer" data="1000 XML default"/>
<action application="answer"/>
<action application="sleep" data="1000"/>
</condition>
</extension>
</include>
这是我目前对 FreeSWITCH-B 的配置
我的 sip_profile/外部
<include>
<gateway name="fs-test1">
<param name="proxy" value="ipOfSwitch-A:5080"/>
<param name="register" value="false"/>
<param name="caller-id-in-from" value="true"/>
</gateway>
</include>
我的拨号方案
拨号方案/默认
<include>
<extension name="outbound_call">
<condition field="destination_number" expression="^(18881)$">
<action application="bridge" data="sofia/gateway/fs-test1/$1"/>
</condition>
</extension>
</include>
拨号方案/公共
<include>
<extension name="public-did">
<condition field="destination_number" expression="^(18881)$">
<action application="set" data="domain_name=$${domain}"/>
<action application="transfer" data="1000 XML default"/>
</condition>
</extension>
</include>
这是我在 SWITCH A 中的索非亚状态档案
-----------------------------------------------------------------
Profile::Gateway-Name| Data | Status |
-----------------------------------------------------------------
external::fs-test2 | sip:FreeSWITCH@ipOfSwitchB:5080 | NOREG |
-----------------------------------------------------------------
这是我在 SWITCH B 中的索非亚状态配置文件-
-----------------------------------------------------------------
Profile::Gateway-Name| Data | Status |
-----------------------------------------------------------------
external::fs-test1 | sip:FreeSWITCH@ipOfSwitchA:5080 | NOREG |
-----------------------------------------------------------------
当我在 SWITCH A 中键入sofia status gateway fs-test2的命令时,结果如下所示:
Name | fs-test2
Profile | external
Scheme | Digest
Realm | ipOfSwitchB:5080
username | FreeSWITCH
Password | no
From | <sip:FreeSWITCH@ipOfSwitchB:5080>
Contact | <sip:gw+fs-test2@103.62.152.227:5080;transport=udp;gw=fs-test2>
Exten | FreeSWITCH
To | sip:FreeSWITCH@ipOfSwitchB:5080
Proxy | sip:FreeSWITCH@ipOfSwitchB:5080
Status | UP
State | NOREG
完成所有更改后,我运行“reloadxml”、“reload mod_sofia”
当我从 SWITCH A 触发呼叫 (18881) 时,SWITCH B 上显示了一个日志,它说:
sofia.c:10362 sofia/external/FreeSWITCH@ipOfSWITCHB:5080 receiving invite from ipOfSWITCHB:5080 version: 1.10.6 -release-18-1ff9d0a60e 64bit call-id: fd37ba89-54d1-123a-db86-080027337ad5,
并且从 SWITCHA 呼叫结束的那一刻,日志在 SWITCHA 上显示为:
switch_core_state_machine.c:276 Dialplan [default] not found, skipping
switch_core_state_machine.c:312 No Route, Aborting
switch_core_state_machine.c:313 Hangup sofia/external/1000@ipOfSWITCHA [CS_ROUTING] [NO_ROUTE_DESTINATION]
SwitchB上还显示了一个日志:
sofia.c:8641 Hangup sofia/external/18881 [CS_CONSUME_MEDIA] [NO_ROUTE_DESTINATION]
mod_dptools.c:3643 Originate Failed. Cause: NO_ROUTE_DESTINATION
switch_channel.c:4942 Hangup sofia/external/FreeSWITCH@ipOfSwitchB:5080 [CS_EXECUTE] [NO_ROUTE_DESTINATION]
我错过了什么吗?提前致谢。
解决方案
我认为这就是 SIP INVITE 发送到您的 Switch-B 时发生的情况:
到达扩展名“public-did”,并转移到默认上下文的扩展名“1000”。
因为您在默认上下文中没有扩展名“1000”,所以您收到错误“No Route”
推荐阅读
- bash - 在 find 中为 -exec 命令添加字符串
- node.js - 在节点 JS 上通过 HTTPS 进行 LiveReload 将不起作用
- amazon-web-services - *1 connect() 在连接上游时失败(111:连接被拒绝)-Elastic Beanstalk +Nginx +node/Express
- text-classification - 如何修复 max_length 和 max_features?
- reactjs - 如何根据用户输入在 Axios 中设置 Base URL - React Native
- mysql - 在sql中合并订单状态
- python - 使用 json.loads 解析 json 数组的正确方法是什么?
- sql - 查询哪个输出在同一个运动员位置投票给某人的运动员人数?
- c# - Discord.net bot 中用于管理角色的非更新角色集合
- vue.js - 在发布请求 Vue.js_+Node.js 应用程序中发送多个正文(文本和文件)