2017-02-22 38 views
0

我正在使用Asterisk的AMI,以便我的Java應用程序可以從pbx接收事件。我目前正在依靠NewChannelEvent來獲取通話的開始時間。Asterisk/Java:重新啓動我的Java應用程序後,如何獲取呼叫的開始時間?

但是,當我重新啓動我的系統時,我無法檢索通話的開始時間。

解決此問題最優雅的方法是什麼?最好的例子是我希望我的Java應用程序能夠接收一個包含通話詳細信息的事件。

+0

的可能的複製[獲取應用程序運行時間](http://stackoverflow.com/questions/6431607/get-application-uptime) – BCartolo

回答

0

您可以在星號的Master.csv中使用日誌。它在

/var/log/asterisk/cdr-csv/Master.csv 

它會給你更多有用的數據。

0

的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)}) 
相關問題