带M或U选项静音呼叫的星号拨号命令

时间:2019-02-10 17:38:44

标签: asterisk amd dialplan

我正在尝试将AMD与DAHDI中继一起使用。

我将宏放在默认的Dial上,但这会使通话静音。

我如何执行AMD?

如果我的代码正确,我如何启用声音(无静音呼叫)?

提前谢谢。

[macro-amd-detect]
exten=> s,1,Answer()
exten=> s,n,NoOp("AMD Detect Invocado")
exten=> s,n,AMD()
exten=> s,n,NoOp(${AMDSTATUS})

[macro-dialout-trunk]
exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM},${TRUNK_RING_TIMER},M(amd-detect))

1 个答案:

答案 0 :(得分:1)

您应该了解星号通道的工作原理。

它有两条腿。

一只脚正在呼叫一个(A),另一只腿(B)可以拨打拨号计划和/或呼叫者。

当报告的A脚回答时,它走到B并桥接

呼叫宏功能如何。它会延迟桥接,而是执行您的操作(是的,可以是任何操作,包括AMD)。操作结束后,它将检查状态和桥接,除非您设置了退出变量MACRO_RESULT

MACRO_RESULT - If set, this action will be taken after the macro finished executing.

    ABORT - Hangup both legs of the call
    CONGESTION - Behave as if line congestion was encountered
    BUSY - Behave as if a busy signal was encountered
    CONTINUE - Hangup the called party and allow the calling party to continue dialplan execution at the next priority
    GOTO:[[<CONTEXT>^]<EXTEN>^]<PRIORITY> - Transfer the call to the specified destination.

所以您有两个选择

  • 在宏中执行AMD,如果对您(机器或其他设备)不满意,请将MACRO_RESULT设置为BUSY或CONGESTION
  • 在腿部B拨号计划中使用AMD(不使用宏),如果可以,请拨给代理。

大多数拨号器使用第二个选项,因为它更易于监视。

您可以阅读开源拨号程序代码,例如vicidial或wombat。您还可以许可某人核心。

PS 在编写自己的核心时确实存在很多问题。