Asterisk 在自定义上下文中执行h扩展中的脚本

Asterisk 在自定义上下文中执行h扩展中的脚本,asterisk,freepbx,Asterisk,Freepbx,我想在调用挂起时执行脚本,因此我在extensions_custom.conf中创建了一个自定义上下文,如下所示: [coscon] exten => **5,1,NoOp() same => n,Answer() exten => h,1,System(/usr/local/src/myscript.php) 问题是在挂断后,此上下文中的扩展根本没有执行。 有什么建议吗 更新 让我详细说明一下。 在扩展名_custom.conf文件中,我包含了coscon上下文。 这是ex

我想在调用挂起时执行脚本,因此我在extensions_custom.conf中创建了一个自定义上下文,如下所示:

[coscon]
exten => **5,1,NoOp()
same => n,Answer()
exten => h,1,System(/usr/local/src/myscript.php)
问题是在挂断后,此上下文中的扩展根本没有执行。 有什么建议吗

更新

让我详细说明一下。 在扩展名_custom.conf文件中,我包含了coscon上下文。 这是extensions_custom.conf的上下文:

[from-internal-custom]
exten => 1234,1,Playback(demo-congrats)  ; extensions can dial 1234
exten => 1234,2,Hangup()
exten => h,1,Hangup()
include => coscon

[coscon]
exten => **5,1,NoOp()
same => n,Answer()
exten => h,1,System(/usr/local/src/myscript.php)
现在,当我从软电话呼叫**5时,这是Astrick CLI输出:

== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
    -- Executing [**5@from-internal:1] NoOp("SIP/102-00000035", "") in new stack
    -- Executing [**5@from-internal:2] Answer("SIP/102-00000035", "") in new stack
    -- Executing [**5@from-internal:3] Pickup("SIP/102-00000035","5&5@PICKUPMARK") in new stack
[2017-06-13 21:10:39] NOTICE[10676][C-00000035]: app_directed_pickup.c:302 pickup_exec: No target channel found for 5@from-internal.
[2017-06-13 21:10:39] NOTICE[10676][C-00000035]: app_directed_pickup.c:302 pickup_exec: No target channel found for 5@PICKUPMARK.
    -- Executing [**5@from-internal:4] Hangup("SIP/102-00000035", "") in new stack
    == Spawn extension (from-internal, **5, 4) exited non-zero on 'SIP/102-00000035'
    -- Executing [h@from-internal:1] Hangup("SIP/102-00000035", "") in new stack
    == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/102-00000035'

我认为“来自内部上下文”的默认h扩展正在执行,但我不知道如何覆盖它。

您发布的问题如下:

假设你有2个上下文

[a]
exten => h,1,Noop(a)
exten => 1,1,Noop(1)
include => b
[b]
exten => h,1,Noop(b)
exten => 2,1,Noop(2)
如果您的上下文是[a],则它包括[b],是。但是如果扩展存在于[a],它将在[a]中执行,而不是在[b]中执行。因此,将从上下文[a]执行h扩展

如果你想要这份工作,你必须这样做:

   [b]
    exten =>h,1,Noop(b)
    exten => 2,1,Goto(${EXTEN},2); now even if included, you WILL BE in context b
    exten => 2,2,Noop(2);this one alway context b

调试输出在哪里?当然,它是这样工作的。请在测试呼叫时显示控制台输出。目前,我们没有足够的(任何)错误详细信息来帮助您。我更新了我的问题。先生,您可以从asterisk cli日志扩展中看到**5正在执行。这不是问题所在。我的问题只是h扩展。我尝试了你的解决方案,但没有成功。不管怎样,谢谢。我从你的日志中看到了h@from-内部:1]挂起(“SIP/102-00000035”,这意味着您的上下文a=从内部执行第一个h扩展(在从内部自定义中)。它的工作方式应该是这样的,这里没有问题。