Да, там проблема в том, что при использовании конфига в любом
виде stale-nonce по умолчанию включен на 600 секунд, комментарий какой-то
невнятный и лично у меня оставляет впечатление что по умолчанию
всё-же nonce вечная:
# Uncomment if extra security is desired,
# with nonce value having limited lifetime.
# By default, the nonce value is unique for a session,
# and has unlimited lifetime.
# Set this option to limit the nonce lifetime.
# It defaults to 600 secs (10 min) if no value is provided. After that
delay,
# the client will get 438 error and will have to re-authenticate itself.

А на деле всё своеобразно, проверим поведение с таким хаком:
diff -urN a/src/apps/relay/mainrelay.c b/src/apps/relay/mainrelay.c
--- a/src/apps/relay/mainrelay.c        2019-03-03 00:06:19.000000000 +0300
+++ b/src/apps/relay/mainrelay.c        2020-05-15 16:02:43.371533695 +0300
@@ -1282,6 +1282,7 @@
                break;
        case STALE_NONCE_OPT:
                turn_params.stale_nonce = get_int_value(value,
STUN_DEFAULT_NONCE_EXPIRATION_TIME);
+               printf("DEBUG 1: %d\n", turn_params.stale_nonce);
                break;
        case MAX_ALLOCATE_LIFETIME_OPT:
                turn_params.max_allocate_lifetime = get_int_value(value,
STUN_DEFAULT_MAX_ALLOCATE_LIFETIME);
diff -urN a/src/apps/relay/netengine.c b/src/apps/relay/netengine.c
--- a/src/apps/relay/netengine.c        2019-03-03 00:06:19.000000000 +0300
+++ b/src/apps/relay/netengine.c        2020-05-15 16:02:57.564643335 +0300
@@ -1637,6 +1637,8 @@
        bufferevent_setcb(rs->auth_in_buf, relay_receive_auth_message,
NULL, NULL, rs);
        bufferevent_enable(rs->auth_in_buf, EV_READ);

+       printf("DEBUG 2: %d\n", turn_params.stale_nonce);
+       exit(0);
        init_turn_server(&(rs->server),
                         rs->id, turn_params.verbose,
                         rs->ioa_eng, turn_params.ct, 0,

тестим без конфига:
[root@om b]# ./bin/turnserver 2>&1 | grep DEBUG
DEBUG 1: 0
DEBUG 2: 0

тестим с абсолютно пустым конфигом:
[root@om b]# ./bin/turnserver -c turnserver.conf 2>&1 | grep DEBUG
DEBUG 2: 600

тестим оверрайд через параметр:
[root@om b]# ./bin/turnserver -c turnserver.conf --stale-nonce=0 2>&1 |
grep DEBUG
DEBUG 1: 0
DEBUG 2: 0

А вот пример пострадальцев:
https://medium.com/confrere/gone-in-1100-seconds-hunting-bugs-on-the-edge-of-webrtc-132a186c45dd

Перевод:
https://habr.com/ru/company/Voximplant/blog/352730/

пт, 15 мая 2020 г. в 16:20, Maxim Solodovnik <solomax...@gmail.com>:

> я так понимаю имеется в виду втот этот
>
> https://github.com/coturn/coturn/blob/master/src/server/ns_turn_server.c#L3322
>  код
>
> On Fri, 15 May 2020 at 19:53, Maxim Solodovnik <solomax...@gmail.com>
> wrote:
>
> > конфиг /etc/turnserver.cfg
> >
> > On Fri, 15 May 2020 at 19:45, green_gen...@mail.ru.INVALID
> > <green_gen...@mail.ru.invalid> wrote:
> >
> >> Maxim Solodovnik пишет:
> >> > On Fri, 15 May 2020 at 16:58, Konstantin Kuzov <
> >> master.nosfer...@gmail.com>
> >> > wrote:
> >> >
> >> >
> >> >> Да, документация оставляет местами желать лучшего,
> >> >>
> >> >
> >> >
> >> > каждый норовит маленького обидеть ...
> >> > видите что можно улучшить - PRs are welcome :)
> >> >
> >> >
> >> >
> >> >> но вроде по-тихоньку
> >> >> ситуация выправляется, к тому же 5.0.0 ещё не релизнулся ещё, а
> >> стабильной
> >> >> 4.x версии с флешем и red5 все эти мансы не касаются.
> >> >> Я сам когда первый раз полтора месяца назад ставил OM прошелся по
> всем
> >> >> возможным граблям ^_^
> >> >> К примеру, о том что TURN вообще нужен в тогдашних туториалах не было
> >> >> сказано ни слова. Не говоря уже о том что его надо прописывать в
> >> >> webapps/openmeetings/WEB-INF/classes/applicationContext.xml, это я
> >> прочитал
> >> >> уже много после архиве в рассылки... А изначально настроил его не в
> >> режиме
> >> >> статического ключа (static-auth-secret), а через аккаунт пользователя
> >> >> (user). и отредактировал WebRtcEndpoint.conf.ini, через подачу
> >> >> переменных KMS_EXTERNAL_ADDRESS,
> >> >> KMS_STUN_IP, KMS_STUN_PORT и KMS_TURN_URL. И это даже работало, но
> были
> >> >> проблемы с продлением сессий и большая часть пользователей
> отваливалась
> >> >> каждые 10 минут по channel-lifetime,. А учитывая что M3 не умел в
> >> реконнект
> >> >> вообще, а тупо вырубал камеру с микрофоном при любой ошибке - это
> было
> >> то
> >> >> ещё веселье.
> >> >> Кстати, даже когда я настроил всё по рекомендуемой схеме у некоторых
> 10
> >> >> минутные отвалы реденько но продолжали быть, но теперь уже по nonce,
> >> >> который по-умолчанию включен и 600 секунд несмотря на комментарий в
> >> конфиге
> >> >> говорящий об обратном. Покурив слегка исходники coturn нашел что его
> >> можно
> >> >> вырубить через stale-nonce=0. После этого левые отвалы прекратились
> >> >> окончательно.
> >> >>
> >> >>
> >> >
> >> > а вот про это не знал
> >> > интересно
> >> >
> >> >
> >> >
> >> >
> >> >> ,  чт, 14 мая 2020 г. в 11:37, Eugene <roginovi...@hotmail.com>:
> >> >>
> >> >>
> >> >>> Спасибо за информацию! Жалко, что в туториале не объяснены эти
> детали,
> >> >>> сэкономило бы пользователям много времени.
> >> >>>
> >> >>>
> >> >>>
> >> >
> >> >
> >> >
> >> а где это настраевается "нашел что его можно вырубить через
> >> stale-nonce=0. После этого левые отвалы прекратились окончательно."
> >>
> >
> >
> > --
> > Best regards,
> > Maxim
> >
>
>
> --
> Best regards,
> Maxim
>

Ответить