我正在尝试让 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 提供商),但除此之外,我不太明白如何确保这确实发生。
也可以看看:
答案1
它回答你
它不是有效的扩展
因为在给定上下文中找不到此扩展。您拨打的号码与您在 extension.conf 中收到的号码可能有误
例如,看起来您正在拨打以 91987 开头的号码,但在您的 extensions.conf 中我只看到处理以 91999 开头的数字的模式。您确定有 91987 的扩展名吗?