在管理接口(AMI)上使用Event Queue(事件队列),以确保所有事件都被正确处理。以下是示例代码:
eq = asterisk.manager.EventQueue()
client = asterisk.manager.ManagerConnection("localhost") client.login("username", "password")
eq.add_event("Hangup") eq.add_event("Dial")
client.register_event(eq)
while True: try: response = eq.get() # 处理事件 except asterisk.manager.exceptions.TimeoutException: # 没有事件收到的情况下执行其他操作
client.close() eq.close()