Asterisk-java 发起呼叫的 billsec 和其他数据
Asterisk-java originated call's billsec and other data
我可以从响应事件中获取 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。
不,一旦呼叫是通过管理器发起的,控制权就在 Asterisk 拨号方案中——不再是您的 JAVA 程序。为了提取该信息,您需要在拨号方案中向 "h" 分机添加适当的处理程序。根据 DIALSTATUS,它会让您访问 DIALEDTIME 和 ANSWEREDTIME 变量,其中将包含您正在寻找的信息。
我可以从响应事件中获取 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。
不,一旦呼叫是通过管理器发起的,控制权就在 Asterisk 拨号方案中——不再是您的 JAVA 程序。为了提取该信息,您需要在拨号方案中向 "h" 分机添加适当的处理程序。根据 DIALSTATUS,它会让您访问 DIALEDTIME 和 ANSWEREDTIME 变量,其中将包含您正在寻找的信息。