PHP / Asterisk AGI 计算 GetData 的位数

PHP / Asterisk AGI Count number of digits from GetData

我正在尝试计算来电者在出现提示时输入的位数。如果输入的位数不等于 10,我想将它 return 到文件的开头。如果输入的位数确实等于 10,我希望它继续执行程序。使用下面的代码,无论调用者输入什么,它总是回到开头。谁能给我一些见解?

begining: {

    $agi->stream_file('file1');
    $result = $agi->get_data('beep', 6000, 10);
    $numlength = mb_strlen(utf8_decode($result));
    if ($numlength < 10){
            goto begining;
    }

    else {
        $number= $result['result'];
        $agi->verbose("Number: ".$number);
    }
}

您需要指定要计算数组的哪一部分。将 ['result'] 添加到您的 $result 变量。

$agi->stream_file('file1');
$result = $agi->get_data('beep', 6000, 10);
$numlength = mb_strlen(utf8_decode($result['result']));
   if ($numlength < 10){
           goto begining;
   }

   else {
       $number= $result['result'];
       $agi->verbose("Number: ".$number);
   }
}