【问题标题】:Asterisk - executing agi script if call is not answerd?Asterisk - 如果没有接听电话,则执行 agi 脚本?
【发布时间】:2019-11-14 23:30:14
【问题描述】:

这是我想从 .call 文件中调用的上下文 CH1

[CH1]
exten=>9367,1,Playback(welcome);
same =>  n,Agi(agi://localhost/openlock.agi)
same =>  n,Background(CH1_WAVE1)
same =>  n,Hangup()

我的 .call 文件如下所示

Channel: DAHDI/1/somemumber
CallerID:xyz
MaxRetries: 3
RetryTime: 40
WaitTime: 25
Context:CH1
Extension: 9367
Priority: 1

所以我的问题是,如果一个人不接听电话,我的 AGI 脚本将无法执行,那么如果在 3 次重试后仍未接听电话,有没有办法执行我的 AGI 脚本?

【问题讨论】:

    标签: asterisk agi


    【解决方案1】:

    3 次重试是不行的。 但每次重试都可以。

    在通话文件中将频道更改为Local/somenumber@dialout/n

    创建上下文

    [dialout]
    exten => _X.,1,Dial(DAHDI/1/${EXTEN},,g)
    exten => _X.,2,Goto(${DIALSTATUS},1)
    exten => BUSY,1,AGI(busy.agi)
    exten => CONGESTION,1,AGI(fail.agi)
    exten => FAILED,1,AGI(fail.agi)
    exten => NOANSWER,1,AGI(noanaswer.agi)
    

    如果您不是星号专家,我也强烈不建议您创建拨号。使用开源引擎。它有很多你从未想过的问题。

    【讨论】:

    • 谢谢,它成功了,它只是为了学习目的,所以测试任何新东西都没问题:P。顺便说一句,你能推荐任何涵盖星号高级功能的好书吗?
    • “Asterisk 电话的未来”。 “Asterisk™:权威指南”
    • 非常好的信息,对我帮助很大。
    • Common,该信息存在于默认的 extensions.conf.sample 中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多