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 alx, 3 years ago

Описанное выше поведение было сделано намеренно - см. #276 и r1598.

comment:2 by alx, 3 years ago

Так как нет никакой возможности (как минимум, я не смог ее найти) получить из MSP текущее состояние потока RTP, и MSP индицирует только изменение состояния потока, при этом во время разоты разных типов канальных окончаний канал в MSP может пересоздаваться, переводиться из одного режима в другой и обратно, есть вероятность и опасение "потерять" какую-то индикацию и, таким образом, рассинхронизировать представление о наличии потока RTP между CSP и MSP.

В результате мной принято решение вообще отказаться от функции мониторинга RTP в целях отбоя по таймауту. Вместо этого предполагаю использовать статистику RTP, гарантированно обновляемую каждые 5 секунд при активированном потоке. Предполагаемый алгоритм:

Каждый раз при получении статистики VoIP канала из MSP значение счетчика принятых пакетов сравнивается с таким же значением, полученным ранее. Если значение изменилось, запоминается время его изменения (текущее время). Если значение не изменилось, вычисляется разница между текущим временем и временем последнего изменения. Если это время превышает установленный в конфигурации таймаут RTP, выполняется отбой.

comment:3 by alx, 3 years ago

Resolution: fixed
Status: newclosed

In 1962/sip_ua:

Переделан алгоритм отбоя по таймауту RTP. Теперь вместо индикации изменения состояния потока RTP от MSP
текущее состояние потока RTP определяется на основании получаемой от MSP статистики. Closes #378.

Note: See TracTickets for help on using tickets.