我正在使用Asterisk的AMI,以便我的Java應用程序可以從pbx接收事件。我目前正在依靠NewChannelEvent來獲取通話的開始時間。Asterisk/Java:重新啓動我的Java應用程序後,如何獲取呼叫的開始時間?
但是,當我重新啓動我的系統時,我無法檢索通話的開始時間。
解決此問題最優雅的方法是什麼?最好的例子是我希望我的Java應用程序能夠接收一個包含通話詳細信息的事件。
我正在使用Asterisk的AMI,以便我的Java應用程序可以從pbx接收事件。我目前正在依靠NewChannelEvent來獲取通話的開始時間。Asterisk/Java:重新啓動我的Java應用程序後,如何獲取呼叫的開始時間?
但是,當我重新啓動我的系統時,我無法檢索通話的開始時間。
解決此問題最優雅的方法是什麼?最好的例子是我希望我的Java應用程序能夠接收一個包含通話詳細信息的事件。
您可以在星號的Master.csv中使用日誌。它在
/var/log/asterisk/cdr-csv/Master.csv
它會給你更多有用的數據。
的Asterisk有兩個3機制爲
1)AMI
2)CEL https://wiki.asterisk.org/wiki/pages/viewpage.action?pageId=5242932 CEL讓你看到多個事件,包括數據庫調用的開始。
3)CDR https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+CDR+Specification 您也將開始通話,但僅在通話結束後。
此外,您可以更改撥號規則,以便它在func_odbc中進行撥號並在dialplan中的最喜歡的表中標記呼叫開始。
---func_cdr.conf---
[put_active]
writesql=insert into active_calls(uniqueid,calldate,start,src,did,accountcode) values('${VAL1}','${VAL2}',1,'${VAL3}','${VAL4}','${VAL5}');
dsn=mysql_general
在的extensions.conf
exten => _X.,1,Set(ODBC_put_active()=${CDR(uniqueid)},${CDR(start)},${CDR(src)},${CDR(did)},${CDR(accountcode)})
的可能的複製[獲取應用程序運行時間](http://stackoverflow.com/questions/6431607/get-application-uptime) – BCartolo