2015-07-28 15 views
8

Ich möchte coturn with oAuth verwenden. Wenn ich es richtig verstanden brauche ich zwei Dinge zu tun:Wie konfiguriert man WebRTC mit Coturn und oAuth

  • die oAuth Token in der Datenbank coturn Speichern verwendet
  • Senden der ACCESS-TOKEN und USERNAME STUN-Attribute

Erster Punkt ist klar, aber wie Muss ich meinen WebRTC-Client ändern, um den zweiten Punkt zu erreichen?

Ohne oAuth würde ich meine RTCPeerConnection wie folgt initialisieren:

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

Die WebRTC 1.0 draft definiert eine RTCIceCredentialType Enum so würde ich glaube, ich brauche meine Konfiguration wie folgt zu ändern:

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

Mit Wireshark I kann das ACESS-TOKEN Attribut nicht sehen. Irgendwelche Ideen oder kennt jemand ein funktionierendes Beispiel?

+0

Welchen Befehl verwenden Sie, um den TURN-Server zu starten? – mido

+0

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

+0

Ich nehme an, Sie bekommen '401' Fehler in den TURN-Server-Logs – mido

Antwort

1

Es sieht so aus, als hätten sich die Dinge ein wenig geändert, seit die ursprüngliche Frage gestellt wurde. Die webrtc-pc#1033 Pull-Anforderung ändert die Spezifikation und führt die folgende iceServers Konfigurationssyntax:

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

Siehe RTCIceServer Dokumentationsseite für weitere Konfigurationsbeispiele.