星号java源代码调用';s billsec和其他数据

星号java源代码调用';s billsec和其他数据,java,asterisk,Java,Asterisk,我可以从响应事件中获取billsec或发起呼叫的持续时间吗?我需要最终数据 OriginateAction originateAction = new OriginateAction(); originateAction.setChannel("SIP/xxxxxx"); originateAction.setContext("xxxxx"); originateAction.setExten("xxxxx"); originateAction.setCallerId("xxxxx"); ori

我可以从响应事件中获取billsec或发起呼叫的持续时间吗?我需要最终数据

OriginateAction originateAction = new OriginateAction();
originateAction.setChannel("SIP/xxxxxx");
originateAction.setContext("xxxxx");
originateAction.setExten("xxxxx");
originateAction.setCallerId("xxxxx");
originateAction.setAsync(Boolean.TRUE);
originateAction.setPriority(1);

managerConnection.sendAction(new StatusAction());
ManagerResponse mr = managerConnection.sendAction(originateAction);
//ResponseEvents mr = managerConnection.sendEventGeneratingAction(originateAction);
System.out.println(mr.getResponse());

int billsec = ???
您需要在拨号计划中标记CDR(userfield)或CDR(accountcode)


之后,您可以根据请求在mysql或其他数据库中收集cdr。

否,一旦通过manager发起了呼叫,控件将位于星号拨号计划-不再使用JAVA程序。为了提取这些信息,您需要在拨号计划中为“h”扩展添加一个适当的处理程序。根据拨号状态,它将允许您访问DialledTime和ANSWEREDTIME变量,这些变量将包含您正在查找的信息。

可能重复的?(
System.nanoTime()
;)不,我要原始调用的billsec,它是关于asterisk java库的。java方面有没有解决这个问题的方法?例如eventlistener?是的,您可以输入dialplan UserEvent命令并在java上侦听它。但这是usless,很简单,只需检查mysql表,不是吗?