通常,TURN 服务器配置为对 TURN 请求启用身份验证,对 STUN 请求不启用身份验证。
sgcWebSockets TURN 服务器支持长期凭据,您可以将 TsgcTURNServer 配置为仅允许携带长期凭据信息的请求。
要配置此功能,请访问 TURNOptions.Authorization 属性并启用它。
然后访问 LongTermCredentials 属性并启用它。默认情况下,此授权类型已配置了 Realm 字符串,并将默认 StaleNonce 值设为 10 分钟(= 600 秒)。
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;