Asterisk AMI Python客户端无法接收事件问题求助
Asterisk AMI事件无法捕获问题
我正尝试用asterisk-ami包开发一个简单的呼叫生成器,客户端可以正常连接Asterisk并发送命令,但无法接收AMI事件。通过tcpdump确认Asterisk确实向客户端发送了事件,但使用库内置的两种事件处理方式(继承EventListener类、普通函数)均无法捕获事件。
测试代码(继承EventListener类方式)
#!/usr/bin/python3 import time from asterisk.ami import AMIClient, SimpleAction,EventListener # Asterisk AMI configuration ami_host = '127.0.0.1' ami_port = 5038 ami_username = 'testuser' ami_password = '123456' # Create Asterisk AMI client ami = AMIClient(address=ami_host, port=ami_port) ami.login(username=ami_username, secret=ami_password) class AllEventListener(EventListener): def on_event(self,event, **kwargs): print('Event', event) ami.add_event_listener(AllEventListener()) while True: try: time.sleep(1) except KeyboardInterrupt: # Stop the processing thread and wait for it to finish terminate_flag = True #processing_thread.join() break # Cleanup ami.logoff()
测试代码(普通函数方式)
def event_listener(event,**kwargs): print('called') print(event) print(**kwargs) ami.add_event_listener(event_listener)
内容的提问来源于stack exchange,提问作者Amir
相关产品推荐
相关产品推荐

