当设备使用ARI注册应用程序时,我正在尝试检索事件。可以通过将端点状态从脱机更改为联机来假定。我在python中完成的实现是:
self.client.on_event ('DeviceStateChanged', self.deviceRegistration)
self.client.on_event ('PeerStatusChange', self.deviceRegistration)
self.client.on_event ('EndpointStateChange', self.deviceRegistration)
self.client.on_event ('ContactStatusChange', self.deviceRegistration)
没有任何作用。任何人都可以提供帮助吗?
我设法找到一种解决方法。设备状态的更改已通过事件EndpointStateChange进行侦听。但是在此之前,我们必须订阅我们的应用程序。在这里执行:
self.client = ari.connect(.....)
self.client.applications.subscribe(applicationName="(our stasis name)",eventSource="endpoint:PJSIP")
self.client.on_endpoint_event('EndpointStateChange',self.handleDeviceRegister)
其中handleDeviceRegister方法为:
def handleDeviceRegister(self, channel_obj,ev):
if channel_obj.json["state"]=="online":
print "channel change from off to online"
如果有人有其他选择,请告诉我。谢谢