1.9 KiB
1.9 KiB
Подключение 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=...
- coturn:
- Тогда 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. Проверка
- Авторизоваться двумя клиентами.
- Запустить звонок.
- Проверить, что звонок устанавливается даже в сети, где прямой P2P затруднён.
- Если TURN недоступен, клиент автоматически откатится к STUN-конфигу по умолчанию.