Home
WebRTC module

SignallingInterface

Transport-agnostic signalling interface for WebRTC session setup.

SignallingInterface

#include <icy/webrtc/signalling.h>
class SignallingInterface

Defined in src/webrtc/include/icy/webrtc/signalling.h:38

Subclassed by: SympleServerSignaller, SympleSignaller, WebSocketSignaller

Transport-agnostic signalling interface for WebRTC session setup.

Implementations handle the exchange of SDP offers/answers and ICE candidates between peers over whatever transport is available: Symple, plain WebSocket, REST, MQTT, carrier pigeon, etc.

PeerSession takes a reference to this interface. Implement it to plug in your own signalling backend.

The three message categories:

  • SDP: offer/answer exchange (the session description)

  • Candidate: trickle ICE candidates

  • Control: call lifecycle (init, accept, reject, hangup)

List of all members

NameKindOwner
SdpReceivedvariableDeclared here
CandidateReceivedvariableDeclared here
ControlReceivedvariableDeclared here
~SignallingInterfacefunctionDeclared here
sendSdpfunctionDeclared here
sendCandidatefunctionDeclared here
sendControlfunctionDeclared here

Public Attributes

ReturnNameDescription
ThreadSignal< void(const std::string &, const std::string &, const std::string &)>SdpReceivedFires when an SDP offer or answer arrives from a remote peer. Parameters: peerId, type ("offer"/"answer"), sdp.
ThreadSignal< void(const std::string &, const std::string &, const std::string &)>CandidateReceivedFires when an ICE candidate arrives from a remote peer. Parameters: peerId, candidate, mid.
ThreadSignal< void(const std::string &, const std::string &, const std::string &)>ControlReceivedFires when a control message arrives from a remote peer. Parameters: peerId, type ("init"/"accept"/"reject"/"hangup"), reason.

SdpReceived

ThreadSignal< void(const std::string &, const std::string &, const std::string &)> SdpReceived

Defined in src/webrtc/include/icy/webrtc/signalling.h:77

Fires when an SDP offer or answer arrives from a remote peer. Parameters: peerId, type ("offer"/"answer"), sdp.


CandidateReceived

ThreadSignal< void(const std::string &, const std::string &, const std::string &)> CandidateReceived

Defined in src/webrtc/include/icy/webrtc/signalling.h:81

Fires when an ICE candidate arrives from a remote peer. Parameters: peerId, candidate, mid.


ControlReceived

ThreadSignal< void(const std::string &, const std::string &, const std::string &)> ControlReceived

Defined in src/webrtc/include/icy/webrtc/signalling.h:85

Fires when a control message arrives from a remote peer. Parameters: peerId, type ("init"/"accept"/"reject"/"hangup"), reason.

Public Methods

ReturnNameDescription
voidsendSdp virtualSend an SDP offer or answer to the remote peer.
voidsendCandidate virtualSend an ICE candidate to the remote peer.
voidsendControl virtualSend a control message to the remote peer.

sendSdp

virtual

virtual void sendSdp(const std::string & peerId, const std::string & type, const std::string & sdp)

Defined in src/webrtc/include/icy/webrtc/signalling.h:51

Send an SDP offer or answer to the remote peer.

Parameters

  • peerId Remote peer identifier.

  • type "offer" or "answer".

  • sdp The SDP string.

Reimplemented by

sendCandidate

virtual

virtual void sendCandidate(const std::string & peerId, const std::string & candidate, const std::string & mid)

Defined in src/webrtc/include/icy/webrtc/signalling.h:59

Send an ICE candidate to the remote peer.

Parameters

  • peerId Remote peer identifier.

  • candidate The candidate string (from RTCIceCandidate).

  • mid The sdpMid value.

Reimplemented by

sendControl

virtual

virtual void sendControl(const std::string & peerId, const std::string & type, const std::string & reason = {})

Defined in src/webrtc/include/icy/webrtc/signalling.h:67

Send a control message to the remote peer.

Parameters

  • peerId Remote peer identifier.

  • type Control type: "init", "accept", "reject", "hangup".

  • reason Optional reason string (for reject/hangup).

Reimplemented by