我正在使用Asterisk-Java来收听来自Asterisk PBX的消息。这个应用程序以前可以使用,但我做了一些更改,现在当我尝试运行它并用我的桌面电话进行测试电话会议时,它会说:
Asterisk-Java ManagerConnection-0-Reader-2 2012-06-06 17:17:46,858 DEBUG [manager.internal.ManagerConnectionImpl] - Dispatching event:
org.asteriskjava.manager.event.MeetMeJoinEvent[dateReceived='Wed Jun 06 17:17:46 BST 2012',privilege='call,all',sequencenumber=null,meetme='1',calleridname=null,timesta
mp=null,uniqueid='1338999461.46707',server=null,calleridnum=null,channel='SIP/10.252.26.15-08b76ab0',usernum='1',systemHashcode=233612073]
Asterisk-Java ManagerConnection-0-Reader-2 2012-06-06 17:17:46,869 DEBUG [manager.internal.ManagerConnectionImpl] - Dispatching event:
org.asteriskjava.manager.event.DisconnectEvent[dateReceived='Wed Jun 06 17:17:46 BST 2012',timestamp=null,sequencenumber=null,server=null,systemHashcode=681515782]
Asterisk-Java ManagerConnection-0-Reader-2 2012-06-06 17:17:46,870 INFO [manager.internal.ManagerConnectionImpl] - Closing socket.您可以看到,在MeetMeJoinEvent之后直接接收了一个DisconnectEvent。每次都会发生这种情况-它总是在MeetMeJoinEvent之后立即发生。DisconnectEvent是一个伪事件,这意味着星号从我的应用程序断开-它没有断开与调用者的连接。
随后,Asterisk-Java会立即自动重新连接,但如果我再次进行测试调用,它将以同样的方式再次发生。我已经尝试重新启动Glassfish应用服务器。
我认为我的任何更改都不应该导致这种情况,而且只有一行代码在星号连接上调用disconnect (当web应用程序关闭时),并且与该行相对应的日志消息不会出现在日志中。
这可能是什么原因造成的?
发布于 2012-06-07 19:16:33
这实际上不是星号与应用程序断开连接-而是应用程序与星号断开连接。
这是因为Asterisk-Java有一个bug:它捕获事件处理程序中的异常,但不捕获错误。然后,它假设如果得到一个未捕获的Throwable,星号一定是断开了连接。
我在主Glassfish日志文件中发现了未捕获的异常堆栈跟踪。
https://stackoverflow.com/questions/10918439
复制相似问题