2015-07-28 3 views
8

Я хочу использовать coturn with oAuth. Если я правильно понял, что нужно сделать две вещи:Как настроить WebRTC с Coturn и oAuth

  • Сохранение в OAuth маркеров в coturn базы данных с помощью
  • Отправка ACCESS-TOKEN и USERNAME STUN атрибуты

Первая мысль ясна, но как мне нужно изменить мой клиент WebRTC для достижения второго момента?

Без OAuth Я бы инициализировать моей RTCPeerConnection так:

var configuration = { 
    'iceServers': [{ 
    'url': 'turn:turn.example.org', 
    'username': 'user', 
    'credential': 'password' 
    }] 
}; 
var pc = new RTCPeerConnection(configuration) 

WebRTC 1.0 draft определяет RTCIceCredentialType перечисление, так что я думаю, что я должен был бы изменить свою конфигурацию, как это:

var configuration = { 
    'iceServers': [{ 
    'url': 'turn:turn.example.org', 
    'username': 'kid', 
    'credential': 'oAuthToken', 
    'credentialType': 'token' 
    }] 
}; 

Использование Wireshark I не может видеть атрибут ACESS-TOKEN. Любые идеи или кто-нибудь знает рабочий пример?

+0

Какова команда, которую вы используете для запуска сервера TURN? – mido

+0

'turnerver -n -f -v -l stdout -a -oauth -r" myRealm "-J" myMongoConnection "' – lefloh

+0

Я предполагаю, что вы получаете ошибку '401' в журналах сервера TURN – mido

ответ

1

Похоже, что некоторые изменения немного изменились с тех пор, как был задан первоначальный вопрос. webrtc-pc#1033 выдвижной запрос изменяет спецификацию и вводит следующий iceServers конфигурации синтаксис:

var configuration = { 
    'iceServers': [{ 
     "urls": "turns:turn.example.net", 
     "username": "username", 
     "credential": { 
      "macKey": "...", 
      "accessToken": "..." 
     }, 
     "credentialType": "oauth" 
    }], 
    ... 
} 

См RTCIceServer документации страницу для большего количества примеров конфигурации.