TURN-server | Allocaties

Alle TURN-bewerkingen draaien om toewijzingen en alle TURN-berichten zijn gekoppeld aan een toewijzing. Een toewijzing bestaat uit:

 

 

Wanneer een TURN-client een Allocate-verzoek verzendt, wordt dit TURN-bericht verwerkt door de server en probeert een nieuw Relayed Transport Address aan te maken. Standaard, als er een beschikbare UDP-poort is, wordt een nieuw Relayed Address aangemaakt, maar u kunt de gebeurtenis OnTURNBeforeAllocate gebruiken om een nieuw Allocation-verzoek te weigeren.

 


procedure OnTURNBeforeAllocate(Sender: TObject; const aSocket: TsgcSocketConnection; 
  const aIP: string; aPort: Word; var Reject: Boolean);
begin
  if not (your own rules) then
	Reject := false;
end;

Als het proces doorgaat, maakt de server een nieuwe toewijzing aan en wordt de gebeurtenis OnTURNCreateAllocation aangeroepen. Deze gebeurtenis biedt informatie over de toewijzing via de klasse TsgcTURNAllocationItem.

 


procedure OnTURNCreateAllocation(Sender: TObject; const aSocket: TsgcSocketConnection; 
  const Allocation: TsgcTURNAllocationItem);
begin
  DoLog('New Allocation: ' + Allocation.RelayIP + ':' + IntToStr(Allocation.RelayPort));
end;

 

Wanneer de Toewijzing verloopt of wordt verwijderd na ontvangst van een Refresh-verzoek van de client met een levensduur van nul, wordt de OnTURNDeleteAllocation-gebeurtenis geactiveerd.

 


procedure OnTURNDeleteAllocation(Sender: TObject; const aSocket: TsgcSocketConnection; 
  const Allocation: TsgcTURNAllocationItem);
begin
  DoLog('Allocation Deleted: ' + Allocation.RelayIP + ':' + IntToStr(Allocation.RelayPort));
end;