Opened 9 years ago

Closed 6 years ago

Last modified 6 years ago

#161 closed улучшение (fixed)

Убрать ненужное stopRTP()

Reported by: alx Owned by: alx
Priority: средний Milestone: 1 очередь
Component: any Keywords:
Cc:

Description

Сейчас внутри setRTPparams() перед каждым setPayloadType() выполняется stopRTP() на случай если мы используем кодек, который будет заменен на другой.

В большинстве случаев это не так, более того, в большинстве случаев Payload Type вообще не меняется. Вызов же stopRTP() дает заметную на слух паузу в канале.

Предлагается запоминать текущие параметры RTP (или запрашивать их из MSP) и сравнивать с полученными при вызове setRTPparams(). Выполнять setPayloadType() только если Payload Type действительно меняется. В идеале setPayloadType() не должна делать ничего если запрошенные параметры не отличаются от текущих.

Change History (5)

comment:1 by alx, 8 years ago

Milestone: 2 очередь1 очередь

comment:2 by alx, 7 years ago

Type: багулучшение

comment:3 by alx, 7 years ago

In 1355/sip_ua:

Исправлена ошибка, приводившая к невозможности создать новое соединение
после использования кодеков G726. createConnection() завершалось с
ошибкой из-за того что в параметрах RTP оставался payload type от
предыдущего соединения, отсутствующий в дефолтной таблице PTMNG.
Теперь сделано следующее: таблица PTMNG хранится в памяти каждого
канала, и setPayloadType() только модифицирует эту таблицу. После
завершения модификаций с помощью setPayloadType() выполняется send_PTMNG(),
которая отправляет таблицу из памяти в MSP. See #161.

comment:4 by alx, 6 years ago

Resolution: fixed
Status: newclosed

In 1516/sip_ua:

Внутри setRTPparams() убраны ненужные отключения потока RTP:
добавлены проверки, соответствуют ли требуемые кодеки/PT
уже установленным, и если да (то есть кодек/pt не изменились),
остановка и перенастройка потока RTP не производится, чем
устранены заметные на слух паузы, которые могли возникать,
например, в момент ответа. Closes #161.

comment:5 by alx, 6 years ago

In 1550/sip_ua:

Исправлена ошибка, в результате которой при некоторых условиях "терялось"
название используемого кодека, что позже приводило к лишнему пересозданию
медиапотока (See #161), что приводило к заметному на слух прерыванию звука
(например при ответе вызываемого абонента).

Note: See TracTickets for help on using tickets.