星号 - 获得B腿的通话时间

时间:2016-11-15 09:39:11

标签: asterisk pbx

在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时的持续时间。 我认为这是常见的需求,但无法找到获得它的简便方法。

1 个答案:

答案 0 :(得分:1)

1)您可以使用forkCDR记录。

2)您可以通过本地/频道拨打,第二个cdr记录将有正确的billsec。

3)您可以保存EPOCH(当前时间)并使用它。

是的,您仍然可以使用

${ANSWEREDTIME}: This is the amount of time for actual call.