2012-06-06 55 views
0

我正在使用Asterisk-Java來收聽來自Asterisk PBX的消息。這個應用程序用於工作,但我做了一些變化,現在當我嘗試運行它,並從我的辦公桌上的手機進行測試電話會議上,它說:Asterisk在特定事件後從應用程序斷開連接

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. 

你可以看到有收到DisconnectEvent直接在MeetMeJoinEvent之後。這種情況每次都會發生 - 它總是在MeetMeJoinEvent之後立即發生。 DisconnectEvent是一個虛假事件,意味着Asterisk從我的應用程序斷開連接 - 它沒有從調用者斷開連接。隨後,Asterisk-Java會立即自動重新連接,但如果我再次進行測試呼叫,它將以同樣的方式再次發生。我試過重新啓動Glassfish應用程序服務器。

我不認爲我的任何更改應該導致這種情況,並且只有一行代碼調用Asterisk連接上的斷開連接(當Web應用程序關閉時)以及與該行對應的日誌消息不會出現在日誌中。

這可能是什麼原因造成的?

+0

該問題並不特定於此臺式電話。 –

+0

你可以恢復更改並測試應用程序嗎?如果它有效,請嘗試增量更改代碼,並查看其中斷位置 – marcelog

回答

1

這實際上並不是Asterisk從應用程序中斷開 - 它是從Asterisk斷開的應用程序。

發生這種情況是因爲Asterisk-Java有一個錯誤:它捕獲事件處理程序中的異常但不是錯誤。然後它假設Asterisk必須斷開連接,如果它沒有被捕獲的Throwable。

我在主Glassfish日誌文件中找到未捕獲的異常堆棧跟蹤。

相關問題