Развертывание на серверах TURN без оттока вызовов - PullRequest
0 голосов
/ 17 февраля 2019

В настоящее время у нас имеется парк серверов TURN, развернутых по всему миру, и для развертывания нового программного обеспечения на каждом из них может потребоваться много времени.Мы пытались провести коллективное обсуждение идей развертывания в TURN, не истощая вызовы (т. Е. Перемещать вызовы с одного сервера TURN на другой в режиме реального времени).

Поддерживает ли TURN такого рода вещи из коробки?Например, можем ли мы использовать механизм STUN Error 300 - alternate-server для отключения клиентов от TURN server A и на TURN server B во время разговора в реальном времени?

Наша текущая настройка: client <-> TURN <-> TURN <-> client.

МыМы также подумали, что, возможно, мы могли бы использовать многоуровневую функциональность, чтобы разделить поток, а затем перебрать серверы TURN.Вроде как скользящее развертывание.

Последний вариант - это код пользовательского SFU в Rust или что-то, что поддерживает каждый наш сценарий использования.Однако нам пришлось бы обновить клиентский код, что на данный момент кажется ... довольно сложным:).

Клиенты используют PJSIP.

1 Ответ

0 голосов
/ 17 февраля 2019

TURN не поддерживает это из коробки.Самое близкое, что вы можете сделать, - это изменить сервер так, чтобы он возвращал ошибку альтернативного сервера в следующий раз, когда клиенты попытаются обновить выделение, а затем обработать его клиентом и выполнить перезапуск ICE (при условии, что клиент делает ICE) с новым сервером.

...