Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asterisk 带有星号的动态功能问题_Asterisk_Voip_Dialplan - Fatal编程技术网

Asterisk 带有星号的动态功能问题

Asterisk 带有星号的动态功能问题,asterisk,voip,dialplan,Asterisk,Voip,Dialplan,我开发了一小部分拨号计划代码,允许对话参与者拨打播放回放的代码(在两个频道上)。此外,还必须进行录音(整个通话和画外音播放) 一开始,我能让它工作。在从一个分机到另一个分机的呼叫中,它可以完美地工作。问题是当我通过SIP中继线拨出电话时。我拨了号码,拨号计划显示了一个“已找到功能”,但什么也没发生 在我的扩展\u custom.conf中,我有以下内容: [macro-testing] exten => s,1,NooP(Ha pulsado *200 valor bridgepeer $

我开发了一小部分拨号计划代码,允许对话参与者拨打播放回放的代码(在两个频道上)。此外,还必须进行录音(整个通话和画外音播放)

一开始,我能让它工作。在从一个分机到另一个分机的呼叫中,它可以完美地工作。问题是当我通过SIP中继线拨出电话时。我拨了号码,拨号计划显示了一个“已找到功能”,但什么也没发生

在我的
扩展\u custom.conf
中,我有以下内容:

[macro-testing]
exten => s,1,NooP(Ha pulsado *200 valor bridgepeer ${BRIDGEPEER})
;same => n,Monitor(wav,/var/spool/asterisk/monitor/${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}PRUEBA${TIMESTAMP:0:8})
exten => s,n,Dial(Local/spy@macro-testing,30,G(testing-play^0^1))
exten => _spy,1,ChanSpy(SIP/${CALLERID(num)},BqS)

[testing-play]
exten => 0,2(music),Playback(custom/Loc-testing)
[macro-testing]
exten => s,1,Noop(Quick Conference   ||||    Bridgepeer: ${BRIDGEPEER}     ||||)
same => n,ChannelRedirect(${BRIDGEPEER},pruebas,s,1)
same => n,Set(HORA=${EPOCH})
same => n,Set(CONFBRIDGE(user,template)=admin1)
same => n,Monitor(wav,/var/spool/asterisk/monitor/${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}PRUEBA${TIMESTAMP:0:8})
same => n,DumpChan()
same => n,ConfBridge(${HORA})
same => n,MacroExit()

[pruebas]
exten => s,1,Macro(user-callerid)
same => n,Set(CONFBRIDGE(user,template)=default_user1)
same => n,Set(HORA=${EPOCH})
same => n,ConfBridge(${HORA})
same => n,MacroExit()
[default_bridge]
type=bridge
sound_join=t
sound_leave=t
sound_kicked=t
language=es


[default_user1]
announcement=tt-monkeys
type=user
announce_only_user=no
dtmf_passthrough=yes


[admin1]
announcement=tt-monkeys
type=user
dtmf_passthrough=no
admin=yes
announce_only_user=no
在我的
features\u applicationmap\u custom.conf
中,我有以下行:

testing => *315,self/both,Macro,testing
我还尝试了以下方法:
testing=>*315,self/callee,Macro,testing

而且,我在extensions_custom.conf中也有这个:

exten => n,Set(__DYNAMIC_FEATURES=testing)
我试图在
globals\u custom.conf
文件中定义
\u动态\u功能
,但得到了相同的结果(没有播放)

在星号SIP出站拨号选项中,我标记了“wW”

我一个接一个地重复这一点,它工作得非常好。对于来电,它也可以工作。问题在于传出的电话

它在Asterisk 11.21.0版上运行。我也在星号13中尝试过,结果也一样


有人能帮我吗?提前感谢。

您不能拨打或从功能代码转接。频道已锁定,以获取功能

您可以使用system或UserEvent调用、外部应用捕获、从功能返回后的传输(在0.5秒内)


另外,您的一个上下文没有优先级1。

我使用
CONFBRIDGE
开发了一部分新的拨号计划代码,允许相同的优先级,但现在的问题是,当代理处于队列中时,它无法处理传入呼叫

扩展名_custom.conf具有以下功能:

[macro-testing]
exten => s,1,NooP(Ha pulsado *200 valor bridgepeer ${BRIDGEPEER})
;same => n,Monitor(wav,/var/spool/asterisk/monitor/${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}PRUEBA${TIMESTAMP:0:8})
exten => s,n,Dial(Local/spy@macro-testing,30,G(testing-play^0^1))
exten => _spy,1,ChanSpy(SIP/${CALLERID(num)},BqS)

[testing-play]
exten => 0,2(music),Playback(custom/Loc-testing)
[macro-testing]
exten => s,1,Noop(Quick Conference   ||||    Bridgepeer: ${BRIDGEPEER}     ||||)
same => n,ChannelRedirect(${BRIDGEPEER},pruebas,s,1)
same => n,Set(HORA=${EPOCH})
same => n,Set(CONFBRIDGE(user,template)=admin1)
same => n,Monitor(wav,/var/spool/asterisk/monitor/${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}PRUEBA${TIMESTAMP:0:8})
same => n,DumpChan()
same => n,ConfBridge(${HORA})
same => n,MacroExit()

[pruebas]
exten => s,1,Macro(user-callerid)
same => n,Set(CONFBRIDGE(user,template)=default_user1)
same => n,Set(HORA=${EPOCH})
same => n,ConfBridge(${HORA})
same => n,MacroExit()
[default_bridge]
type=bridge
sound_join=t
sound_leave=t
sound_kicked=t
language=es


[default_user1]
announcement=tt-monkeys
type=user
announce_only_user=no
dtmf_passthrough=yes


[admin1]
announcement=tt-monkeys
type=user
dtmf_passthrough=no
admin=yes
announce_only_user=no
confbridge_custom.conf,我有以下内容:

[macro-testing]
exten => s,1,NooP(Ha pulsado *200 valor bridgepeer ${BRIDGEPEER})
;same => n,Monitor(wav,/var/spool/asterisk/monitor/${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}PRUEBA${TIMESTAMP:0:8})
exten => s,n,Dial(Local/spy@macro-testing,30,G(testing-play^0^1))
exten => _spy,1,ChanSpy(SIP/${CALLERID(num)},BqS)

[testing-play]
exten => 0,2(music),Playback(custom/Loc-testing)
[macro-testing]
exten => s,1,Noop(Quick Conference   ||||    Bridgepeer: ${BRIDGEPEER}     ||||)
same => n,ChannelRedirect(${BRIDGEPEER},pruebas,s,1)
same => n,Set(HORA=${EPOCH})
same => n,Set(CONFBRIDGE(user,template)=admin1)
same => n,Monitor(wav,/var/spool/asterisk/monitor/${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}PRUEBA${TIMESTAMP:0:8})
same => n,DumpChan()
same => n,ConfBridge(${HORA})
same => n,MacroExit()

[pruebas]
exten => s,1,Macro(user-callerid)
same => n,Set(CONFBRIDGE(user,template)=default_user1)
same => n,Set(HORA=${EPOCH})
same => n,ConfBridge(${HORA})
same => n,MacroExit()
[default_bridge]
type=bridge
sound_join=t
sound_leave=t
sound_kicked=t
language=es


[default_user1]
announcement=tt-monkeys
type=user
announce_only_user=no
dtmf_passthrough=yes


[admin1]
announcement=tt-monkeys
type=user
dtmf_passthrough=no
admin=yes
announce_only_user=no

你好,谢谢你的回复。你能给我们举个小例子说明应该怎么做吗?