有没有办法(无论是在拨号计划中,还是通过一些 AMI 操作)来确定通道是否处于保持状态?
ChanIsAvail(<some channel ID>)
可以使用,但没有“保留”状态。保持呼叫的状态为AST_STATE_UP
。
不,没有办法。
但是您可以通过 AMI 设置事件侦听器并使用它将此类状态保存在某处(数据库)。
看看 Asterisk func device_State
DEVICE_STATE(device) 此函数的两种用途的可能值为: UNKNOWN | 未使用 | 使用 | 忙 | 无效 | 不可用 | 响铃 | 铃音 | 等候接听
http://www.voip-info.org/wiki/view/Asterisk+func+device_State
如果您可以从频道中提取设备名称(应该可行),则可以检查相关设备的状态。
希望这会有所帮助。如果没有,如果您可以提供有关您的用例的更多信息,我可能会提出不同的解决方案。