TURN module (rfc5766)

ClientObserver

Abstract observer interface for TURN client events.

ClientObserver

#include <icy/turn/client/client.h>

Subclassed by: TCPClientObserver

Abstract observer interface for TURN client events. Callers subclass this to receive allocation lifecycle and data relay callbacks.

Public Methods

ReturnNameDescription
voidonClientStateChangeCalled whenever the client's state machine transitions to a new state.
voidonRelayDataReceivedCalled when relayed data is received from a peer via a Data Indication.
voidonAllocationFailed virtual inlineCalled when the server rejects an Allocate request with an error.
voidonAllocationDeleted virtual inlineCalled when the server confirms deletion of the allocation.
voidonAllocationPermissionsCreated virtual inlineCalled after a CreatePermission request succeeds.
voidonTransactionResponse virtual inlineAll received transaction responses will be routed here after local processing so the observer can easily implement extra functionality.
voidonTimer virtual inlineFires after the client's internal timer callback. Handy for performing extra async cleanup tasks.

onClientStateChange

void onClientStateChange(Client & client, ClientState & state, const ClientState & oldState)

Called whenever the client's state machine transitions to a new state.

Parameters

  • client The client that changed state.

  • state The new state.

  • oldState The previous state.


onRelayDataReceived

void onRelayDataReceived(Client & client, const char * data, size_t size, const net::Address & peerAddress)

Called when relayed data is received from a peer via a Data Indication.

Parameters

  • client The owning client.

  • data Pointer to the received payload bytes.

  • size Number of bytes in data.

  • peerAddress Source address of the remote peer.


onAllocationFailed

virtual inline

virtual inline void onAllocationFailed(Client & client, int errorCode, const std::string & reason)

Called when the server rejects an Allocate request with an error.

Parameters

  • client The owning client.

  • errorCode STUN error code (e.g. 401, 438).

  • reason Human-readable error reason string.


onAllocationDeleted

virtual inline

virtual inline void onAllocationDeleted(Client & client, const stun::Transaction & transaction)

Called when the server confirms deletion of the allocation.

Parameters

  • client The owning client.

  • transaction The completed Refresh transaction (lifetime == 0).


onAllocationPermissionsCreated

virtual inline

virtual inline void onAllocationPermissionsCreated(Client & client, const PermissionList & permissions)

Called after a CreatePermission request succeeds.

Parameters

  • client The owning client.

  • permissions The full list of active permissions after this update.


onTransactionResponse

virtual inline

virtual inline void onTransactionResponse(Client & client, const stun::Transaction & transaction)

All received transaction responses will be routed here after local processing so the observer can easily implement extra functionality.

Parameters

  • client The owning client.

  • transaction The completed transaction (request + response accessible).


onTimer

virtual inline

virtual inline void onTimer(Client & client)

Fires after the client's internal timer callback. Handy for performing extra async cleanup tasks.

Parameters

  • client The owning client.