首页 > 解决方案 > AGI 应该如何处理 HangupRequest

问题描述

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

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

标签: asteriskagifastagi

解决方案


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


推荐阅读