asterisk - AGI 应该如何处理 HangupRequest
问题描述
我们最近从版本 1.4.26.1 -> 13.23.1 升级了我们的星号版本。我们注意到的变化是,在 AMI 关闭其连接后,它曾经用“Hangup”响应 AGI,然后关闭 tcp 连接。这种行为似乎已经改变,它现在收到一个“HangupRequest”并保持连接打开。从 Asterisk 日志来看,它似乎也在不断地试图破坏通道。HangupRequest 是否需要 AGI 的特定响应才能完成挂断?
我们当前使用的解决方法是Set(AGIEXITONHANGUP=yes)
在拨号计划中添加,这会将行为返回到它用于执行挂断的方式,而感觉它们应该是处理不需要此设置的挂断请求的更优雅的方式拨号计划。
解决方案
在 asterisk 请求挂断后,AMI 收到挂断请求。https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+ManagerEvent_HangupRequest 在这种情况下,它正在请求 AGI 的 HANGUP,我们找到了两种可能的解决方法。第一个是添加Set(AGIEXITONHANGUP=yes)
到拨号计划,这意味着当 Asterisk 收到 HANGUP 时,它将关闭与 AGI 的连接。第二个是在 AGI 接收到 HANGUP 以清理其与 Asterisk 的连接时执行挂断。
推荐阅读
- reinforcement-learning - 为什么以这种方式创建actor-critic神经网络?
- python - tensorflow中如何对CNN内核进行限制?
- python - 通过输入意外退出while循环恢复到以前的迭代Python
- php - 如何将产品价格添加到 wp_query WooCommerce
- python-3.x - Python 无法创建所有可除数的列表
- mysql - 在 LIKE 语句中使用列中的值作为表达式中的值
- c++11 - 在用另一个容器填充后增加一个迭代器 C++
- python - 在 y 轴上用偶数个刻度改变热图中的单元格宽度
- c# - 相机对焦 Xamarin Forms
- regex - 使用正则表达式计算扑克牌 [第 1 部分]