Opened 3 years ago
Closed 3 years ago
#378 closed улучшение (fixed)
Привести функцию "таймаут RTP" в соответствие с описанием в РЭ
Reported by: | alx | Owned by: | alx |
---|---|---|---|
Priority: | средний | Milestone: | 1 очередь |
Component: | any | Keywords: | |
Cc: |
Description
В РЭ действие параметра "таймаут RTP" описано иначе:
Параметр устанавливает максимально допустимое время отсутствия входящего медиапотока RTP в секундах. Если медиапоток RTP не принимается в течение заданного времени, соединение разрывается.
На самом же деле таймаут отсчитывается только от момента пропадания потока RTP. В результате, если поток RTP вообще отсутствовал, никакого отбоя не происходит.
Надо привести эту функцию в соответствие с описанием, то есть включать таймер в момент активации RTP в startRTP().
Change History (3)
comment:1 by , 3 years ago
comment:2 by , 3 years ago
Так как нет никакой возможности (как минимум, я не смог ее найти) получить из MSP текущее состояние потока RTP, и MSP индицирует только изменение состояния потока, при этом во время разоты разных типов канальных окончаний канал в MSP может пересоздаваться, переводиться из одного режима в другой и обратно, есть вероятность и опасение "потерять" какую-то индикацию и, таким образом, рассинхронизировать представление о наличии потока RTP между CSP и MSP.
В результате мной принято решение вообще отказаться от функции мониторинга RTP в целях отбоя по таймауту. Вместо этого предполагаю использовать статистику RTP, гарантированно обновляемую каждые 5 секунд при активированном потоке. Предполагаемый алгоритм:
Каждый раз при получении статистики VoIP канала из MSP значение счетчика принятых пакетов сравнивается с таким же значением, полученным ранее. Если значение изменилось, запоминается время его изменения (текущее время). Если значение не изменилось, вычисляется разница между текущим временем и временем последнего изменения. Если это время превышает установленный в конфигурации таймаут RTP, выполняется отбой.
Описанное выше поведение было сделано намеренно - см. #276 и r1598.