Asterisk-java发起了call的billsec和其他数据

时间:2015-04-24 11:47:06

标签: java asterisk

我可以从响应事件中获取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 = ???

2 个答案:

答案 0 :(得分:0)

您需要在拨号方案中标记CDR(用户字段)或CDR(帐户代码)

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

答案 1 :(得分:0)

不,一旦通过管理员发起呼叫,控制就在Asterisk拨号方案 - 不再使用您的JAVA程序。为了提取该信息,您需要在拨号方案中为“h”扩展添加适当的处理程序。根据DIALSTATUS,它将允许您访问DIALEDTIME和ANSWEREDTIME变量,其中包含您正在寻找的信息。