centos - Asterisk 作为 SIP 客户端忽略被拨号码后面的分机

标签 centos asterisk

我在 SIP 提供商处有 100 个电话号码 block 。我正在尝试构建一个 Asterisk 服务器,它可以充当所有这些号码的客户端,并为每个号码提供一个语音框。

无论我调用什么分机,Asterisk 总是寻找一个以我的 block 的前 10 位数字命名的分机 - 没有调用的分机。

我的 sip.conf看起来像这样:

[global]

register => [My Block]:[Password]@sip.qsc.de

[qsc]
host=sip.qsc.de
context=from-qsc
type=peer
dtmfmode=rfc2833
disallow=all
allow=alaw
allow=ulaw
insecure=invite,port
username=[My Block]
secret=[Password]
requirecalltoken=no
nat=no
qualify=yes

和我的 extensions.conf:
[from-qsc]
exten => 78,1,Answer()
exten => 78,n,Voicemail(78,u)
exten => 78,n,Hangup

如果我调用 [My Block]78 我会得到
[Sep 30 16:18:39] NOTICE[19878][C-00000004]: chan_sip.c:25381 handle_request_invite: Call from '[My Block]' ([Provider IP]:5060) to extension '[My Block]' rejected because extension not found in context 'from-qsc'.

如果我定义扩展名 [My Block] 一切正常,但我无法为不同的扩展名配置不同的语音箱,因为似乎 Asterisk 对所调用的扩展名一无所知。

编辑 2013-10-01:

如果我更改 register =>在我的 sip.conf 中添加一个扩展名,它不会改变任何东西。根据voip-info.org某些提供商有时会出现这种情况。

无论我在注册后添加什么扩展,Asterisk 总是使用 [My Block] 作为扩展 - 忘了提。更新了问题。

我找到了 extensions.confsip.conf来自我的提供商。但是使用它们,我得到了
[Oct  1 09:02:51] WARNING[21174][C-0000000d]: ast_expr2.fl:470 ast_yyerror: ast_yyerror():  syntax error: syntax error, unexpected '<token>', expecting $end; Input:
$<{SIP_HEADER(P-Called-Party-ID)}> != ""
   ^
[Oct  1 09:02:51] WARNING[21174][C-0000000d]: ast_expr2.fl:474 ast_yyerror: If you have questions, please refer to https://wiki.asterisk.org/wiki/display/AST/Channel+Variables
[Oct  1 09:02:51] WARNING[21174][C-0000000d]: pbx.c:6390 __ast_pbx_run: Channel 'SIP/qsc-00000008' sent to invalid extension but no invalid handler: context,exten,priority=local,78,1

但是提到的维基文章对我没有帮助:/。

最佳答案

我知道了。这是提供程序 extensions.conf 中的语法错误。我从提供者那里更改了 extensions.conf 中的前两行,如下所示:

exten => _X.,1,ExecIf($["${SIP_HEADER(P-Called-Party-ID)}" != ""]?macro(from-sip,${SIP_HEADER(P-Called-Party-ID)}))
exten => _X.,2,ExecIf($["${SIP_HEADER(TO)}" != ""]?macro(from-sip,${SIP_HEADER(TO)}))

如果我指定 [local] 则有效上下文与我的扩展。这就像一个魅力。

关于centos - Asterisk 作为 SIP 客户端忽略被拨号码后面的分机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19096633/

相关文章:

apache - Apache网络服务器中的KeepAliveTimeout 0

python - 在虚拟窗口上使用 google-cloud-vision api 在时间范围内出现无效的 JWT 错误

python - 在 CentOS 上安装 python3

java - Asterisk -java。队列操作

php - 基于SIP Web拨号程序的Javascript,PHP或Flash?

linux - 如何在 rhel7 上安装 ffmpeg

linux - CentOS Elastix Linux 中的两种路由

linux - 如何让我的 Asterisk 服务器调用出站电话和接收入站电话

regex - Asterisk 应用拨号方案中的模式匹配

php - 如何更改 OPCache 配置