AGI 应该如何处理 HangupRequest

How should AGI handle a HangupRequest

我们最近将我们的 asterisk 版本从 1.4.26.1 版本升级到 -> 13.23.1。我们注意到的变化是,在 AMI 关闭其连接后,它使用 "Hangup" 响应 AGI,然后关闭 tcp 连接。此行为似乎已更改,它现在收到 "HangupRequest" 并保持连接打开。从 Asterisk 日志来看,它似乎也在不断地尝试破坏通道。 HangupRequest 是否需要 AGI 的特定响应才能完成挂断?

我们目前使用的解决方法是在拨号计划中添加 Set(AGIEXITONHANGUP=yes) 此 returns 其用于执行挂断的方式的行为,而感觉他们应该更在拨号计划中处理不需要此设置的挂断请求的优雅方式。

在 asterisk 请求挂断后,AMI 收到一个挂断请求。 https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+ManagerEvent_HangupRequest 在这种情况下,它请求 AGI 的 HANGUP,我们找到了 2 种可能的方法来解决这个问题。 第一个是添加 Set(AGIEXITONHANGUP=yes) 到拨号方案,这意味着当 Asterisk 收到 HANGUP 时,它将关闭与 AGI 的连接。 第二个是在 AGI 收到 HANGUP 时创建 AGI 以清除它与 Asterisk 的连接,从而执行挂断。