TsgcTURNClient

TsgcTURNClient component.

Introduction

TsgcTURNClient is the client that implements the TURN protocol and allows you to send allocation requests to TURN servers. The client inherits from STUN Client, so all methods supported by STUN client are already supported by TURN Client.

 

Basic usage

Usually TURN servers run on UDP port 3478 and don't require authentication, so in order to send a TURN request, fill the server properties to allow the client know where connect and Handle the events where the component will receive the response from server.

 

Configure the server

 

Call the method Allocate, to send a request to allocate an IP Address and a Port to the TURN server.

 

Handle the events

 


    oTURN := TsgcTURNClient.Create(nil);
    oTURN.Host := 'turn.sgcwebsockets.com';
    oTURN.Port := 3478;
    oTURN.Allocate;

    procedure OnTURNAllocate(Sender: TObject; const aSocket: TsgcSocketConnection; 
      const aMessage: TsgcSTUN_Message; const aAllocation: TsgcTURN_ResponseAllocation);
    begin
      DoLog('Relayed IP: ' + aAllocation.RelayedIP + '. Relayed Port: ' + IntToStr(aAllocation.RelayedPort));
    end;

    procedure OnSTUNResponseError(Sender: TObject; const aMessage: TsgcSTUN_Message;
    const aError: TsgcSTUN_ResponseError);
    begin
      DoLog('Error: ' + IntToStr(aError.Code) + ' ' + aError.Reason);
    end;

Reference

Guides