在Asterisk中获取B-leg通话时间的最佳方法是什么?
a num --------(a-leg)-------> Asterisk PBX --------(b-leg)-------- ---> B num
简单的拨号方案是:
public function LoadCsvReport($adSystemColumnsColumns = array())
{
require "config.php";
$key = array();
$flag = false;
$csvfile = fopen(dirname(__FILE__) . "/result.csv", "r");
while ($file = fgetcsv($csvfile)) {
if (!$flag) {
/*Loop through config array which contains names of columns of our interest
If row from file contains name from config, then that name will have assigned
index of that column
*/
foreach ($bing as $name)
if ($value = array_search($name, $file)) {
$key[$name] = $value;
$flag = true;
}
//After column indexes are assigned to names skip current row
if ($flag)
continue;
}
if ($flag) {
foreach ($key as $columnName => $index) {
/*Get columnname and index, items from $file[$index] are assign to
corresponding array with columnName as index
*/
if ($file[$index] === "-")
break;
$this->report[$columnName][] = $file[$index];
//$key[$index] = array($item => $file[$item]);
}
}
}
fclose($csvfile);
return $this->report;
}
所以如果一个号码呼叫该拨号方案,它会在连接到B号码之前等待10秒钟。我希望得到从B num被应答到B num hangup时的持续时间。 我认为这是常见的需求,但无法找到获得它的简便方法。
答案 0 :(得分:1)
1)您可以使用forkCDR记录。
2)您可以通过本地/频道拨打,第二个cdr记录将有正确的billsec。
3)您可以保存EPOCH(当前时间)并使用它。
是的,您仍然可以使用
${ANSWEREDTIME}: This is the amount of time for actual call.