Нашёл на хабре статью
https://habr.com/ru/post/317746/
Интересует механика/методика вычисления качества связи.
По статье, на коленке, с применением формулы
R = 100 - (RTT / 10 + 2 * MaxLostPackets)
Поучилось нечто такое
public function onRTCPReceived(EventMessage $event)
{
$channel = $event->getKey("Channel");
if (!preg_match("/PJSIP\/\d+/s", $channel)) {
return;
}
$this->channels[$channel] = [
"From" => $event->getKey("From"),
"Exten" => $event->getKey("Exten"),
"SentPackets" => $event->getKey("SentPackets"),
"SentOctets" => $event->getKey("SentOctets"),
"Report0CumulativeLost" => $event->getKey("Report0CumulativeLost"),
"RTT" => $event->getKey("RTT")
];
// R = 100 - (RTT / 10 + 2 * MaxLostPackets)
$this->table->setRows([]);
$this->table->setHeaders([
"Канал", "Качество"
]);
foreach ($this->channels as $key => $item) {
$r = 100 - ($item["RTT"] / 10+2* $item["Report0CumulativeLost"]);
$this->table->addRow([
$key, $r
]);
}
$this->output->write(sprintf("\033\143"));
$this->table->render();
}
Поделитесь опытом, кто решал подобные задачи.
Спасибо!