如何将 Asterisk 拨号从服务器 A 路由到服务器 B?

如何将 Asterisk 拨号从服务器 A 路由到服务器 B?

我正在尝试让 Asterisk 服务器连接到 SIP 提供商(提供 PSTN 发起和终止)。我一直在阅读出色的权威指南,但对以下示例存在概念问题:

拨号计划

一旦 Asterisk 确定了如何处理通道,它就会将呼叫控制权传递给拨号计划中的正确上下文。通道配置文件中的上下文参数告诉通道它将在哪里进入拨号计划(其中包含有关如何处理和路由呼叫的所有信息)。

在本例中,“电话”(即软件电话)的定义sip.conf语法简单易懂。相应的上下文中extensions.conf有这样一行:

exten => 101,1,Dial(Sip/000FFFF0002)

据我理解,这个语法似乎意味着拨打 000FFFF0002 硬电话。

现在,当通过 SIP 提供商拨号时,这只是也没有覆盖, 至少对于我来说。

这似乎是至关重要的一句话:

exten => _6XXX,1,Dial(SIP/${EXTEN}@serverB)

在我的拨号计划中,其表现为:

exten => _91999NXXXXXX,2,Dial(${TESTSIPTRUNK}/${EXTEN:2},,To)

但“拨号”似乎从未转到其他服务器——在本例中是 SIP 提供商。我不明白发生了什么。我怎么知道它为什么没有出去,而是在播放时返回“很抱歉,这不是有效的分机……” invalid.gsm

完整的日志, 这频道扩展要点。我更想从概念上问,应该发生什么?我知道呼叫应该通过 ServerB(在本例中是 SIP 提供商),但除此之外,我不太明白如何确保这确实发生。

也可以看看:

通过代理与 SIP 提供商进行对等

答案1

它回答你

它不是有效的扩展

因为在给定上下文中找不到此扩展。您拨打的号码与您在 extension.conf 中收到的号码可能有误

例如,看起来您正在拨打以 91987 开头的号码,但在您的 extensions.conf 中我只看到处理以 91999 开头的数字的模式。您确定有 91987 的扩展名吗?

相关内容