TURN Server | Long Term Credentials

En général, les serveurs TURN sont configurés AVEC authentification pour les requêtes TURN et sans authentification pour les requêtes STUN.

 

Le serveur TURN sgcWebSockets prend en charge les identifiants à long terme, vous pouvez donc configurer TsgcTURNServer pour n'autoriser que les requêtes avec des informations d'identification à long terme.

 

Pour le configurer, accédez à la propriété TURNOptions.Authorization et activez-la.

Ensuite, accédez à la propriété LongTermCredentials et activez-la. Par défaut, ce type d'autorisation est déjà configuré avec une chaîne Realm et une valeur StaleNonce par défaut de 10 minutes (= 600 secondes).

 


oTURN := TsgcTURNServer.Create(nil);
oTURN.Port := 3478;
oTURN.STUNOptions.Authentication.Enabled := False;
oTURN.TURNOptions.Authentication.Enabled := True;
oTURN.TURNOptions.Authentication.LongTermCredentials.Enabled := True;
oTURN.TURNOptions.Authentication.LongTermCredentials.Realm := 'sgcWebSockets';
oTURN.TURNOptions.Authentication.LongTermCredentials.StaleNonce := 600;
oTURN.Active := True;

procedure OnSTUNRequestAuthorization(Sender: TObject; const aRequest: TsgcSTUN_Message; 
  const aUsername, aRealm: string; var Password: string);
begin
  if (aUsername = 'my-user') and (aRealm = 'sgcWebSockets') then
    Password := 'my-password';
end;