SHiNE-server/doc/instructions/turn-connect-to-shine-server.md

1.9 KiB
Raw Permalink Blame History

Подключение TURN к SHiNE-серверу

Начиная с текущей версии, клиент звонков запрашивает ICE-конфиг у backend через WS-операцию GetCallIceConfig и использует её для RTCPeerConnection.

1. Настройки backend

Файл: src/main/resources/application.properties

Ключи:

call.ice.stun.urls=stun:stun.l.google.com:19302
call.ice.turn.urls=turn:37.214.58.208:3478?transport=udp,turn:37.214.58.208:3478?transport=tcp
call.ice.turn.ttlSec=600
call.ice.turn.userPrefix=shine
call.ice.turn.sharedSecret=CHANGE_ME_LONG_RANDOM_SECRET

# fallback (если не используете shared-secret)
call.ice.turn.username=
call.ice.turn.password=

2. Рекомендуемый режим (временные credentials)

  • На coturn и на SHiNE-сервере должен быть одинаковый secret:
    • coturn: static-auth-secret=...
    • SHiNE: call.ice.turn.sharedSecret=...
  • Тогда SHiNE выдаёт короткоживущие turnUsername/turnPassword (TTL).

3. Fallback режим (статический логин/пароль)

Если временные credentials не используются:

call.ice.turn.sharedSecret=
call.ice.turn.username=turn_user
call.ice.turn.password=turn_password

4. Деплой после изменения

./gradlew deployServerNoCleanNoTests
./gradlew deployWEB

5. Проверка

  1. Авторизоваться двумя клиентами.
  2. Запустить звонок.
  3. Проверить, что звонок устанавливается даже в сети, где прямой P2P затруднён.
  4. Если TURN недоступен, клиент автоматически откатится к STUN-конфигу по умолчанию.