1 #ifndef OPENTERA_WEBRTC_NATIVE_CLIENT_SIGNALING_SIGNALING_CLIENT_H
2 #define OPENTERA_WEBRTC_NATIVE_CLIENT_SIGNALING_SIGNALING_CLIENT_H
4 #include <OpenteraWebrtcNativeClient/Configurations/SignalingServerConfiguration.h>
5 #include <OpenteraWebrtcNativeClient/Utils/ClassMacro.h>
6 #include <OpenteraWebrtcNativeClient/Utils/Client.h>
20 std::function<void()> m_onSignalingConnectionOpened;
21 std::function<void()> m_onSignalingConnectionClosed;
22 std::function<void(
const std::string&)> m_onSignalingConnectionError;
24 std::function<void(
const std::vector<Client>&)> m_onRoomClientsChanged;
26 std::function<void(
const std::string&
id)> m_makePeerCall;
27 std::function<void(
const std::string& fromId,
const std::string& sdp)> m_receivePeerCall;
28 std::function<void(
const std::string& fromId,
const std::string& sdp)> m_receivePeerCallAnswer;
30 void(
const std::string& fromId,
const std::string& sdpMid,
int sdpMLineIndex,
const std::string& sdp)>
31 m_receiveIceCandidate;
33 std::function<void(
const std::string& fromId)> m_onCallRejected;
34 std::function<void()> m_closeAllPeerConnections;
36 std::function<void(
const std::string& error)> m_onError;
45 const std::string& room();
47 virtual void setTlsVerificationEnabled(
bool isEnabled) = 0;
49 virtual bool isConnected() = 0;
50 virtual std::string sessionId() = 0;
52 virtual void connect() = 0;
53 virtual void close() = 0;
54 virtual void closeSync() = 0;
56 virtual void callAll() = 0;
57 virtual void callIds(
const std::vector<std::string>& ids) = 0;
58 virtual void closeAllRoomPeerConnections() = 0;
60 virtual void callPeer(
const std::string& toId,
const std::string& sdp) = 0;
61 virtual void makePeerCallAnswer(
const std::string& toId,
const std::string& sdp) = 0;
62 virtual void rejectCall(
const std::string& toId) = 0;
63 virtual void sendIceCandidate(
64 const std::string& sdpMid,
66 const std::string& candidate,
67 const std::string& toId) = 0;
69 void setOnSignalingConnectionOpened(
const std::function<
void()>& callback);
70 void setOnSignalingConnectionClosed(
const std::function<
void()>& callback);
71 void setOnSignalingConnectionError(
const std::function<
void(
const std::string&)>& callback);
73 void setOnRoomClientsChanged(
const std::function<
void(
const std::vector<Client>&)>& callback);
75 void setMakePeerCall(
const std::function<
void(
const std::string&
id)>& callback);
76 void setReceivePeerCall(
const std::function<
void(
const std::string& fromId,
const std::string& sdp)>& callback);
77 void setReceivePeerCallAnswer(
78 const std::function<
void(
const std::string& fromId,
const std::string& sdp)>& callback);
79 void setReceiveIceCandidate(
81 void(
const std::string& fromId,
const std::string& sdpMid,
int sdpMLineIndex,
const std::string& sdp)>&
84 void setOnCallRejected(
const std::function<
void(
const std::string& fromId)>& callback);
85 void setCloseAllPeerConnections(
const std::function<
void()>& callback);
87 void setOnError(
const std::function<
void(
const std::string& error)>& callback);
90 template<
class T,
class... Types>
91 void invokeIfCallable(
const std::function<T>& f, Types... args);
94 inline const std::string& SignalingClient::room() {
return m_configuration.
room(); }
96 inline void SignalingClient::setOnSignalingConnectionOpened(
const std::function<
void()>& callback)
98 m_onSignalingConnectionOpened = callback;
101 inline void SignalingClient::setOnSignalingConnectionClosed(
const std::function<
void()>& callback)
103 m_onSignalingConnectionClosed = callback;
106 inline void SignalingClient::setOnSignalingConnectionError(
const std::function<
void(
const std::string&)>& callback)
108 m_onSignalingConnectionError = callback;
112 SignalingClient::setOnRoomClientsChanged(
const std::function<
void(
const std::vector<Client>&)>& callback)
114 m_onRoomClientsChanged = callback;
117 inline void SignalingClient::setMakePeerCall(
const std::function<
void(
const std::string&
id)>& callback)
119 m_makePeerCall = callback;
122 inline void SignalingClient::setReceivePeerCall(
123 const std::function<
void(
const std::string& fromId,
const std::string& sdp)>& callback)
125 m_receivePeerCall = callback;
128 inline void SignalingClient::setReceivePeerCallAnswer(
129 const std::function<
void(
const std::string& fromId,
const std::string& sdp)>& callback)
131 m_receivePeerCallAnswer = callback;
134 inline void SignalingClient::setReceiveIceCandidate(
136 void(
const std::string& fromId,
const std::string& sdpMid,
int sdpMLineIndex,
const std::string& sdp)>&
139 m_receiveIceCandidate = callback;
142 inline void SignalingClient::setOnCallRejected(
const std::function<
void(
const std::string& fromId)>& callback)
144 m_onCallRejected = callback;
147 inline void SignalingClient::setCloseAllPeerConnections(
const std::function<
void()>& callback)
149 m_closeAllPeerConnections = callback;
152 inline void SignalingClient::setOnError(
const std::function<
void(
const std::string& error)>& callback)
154 m_onError = callback;
157 template<
class T,
class... Types>
158 inline void SignalingClient::invokeIfCallable(
const std::function<T>& f, Types... args)
Definition: SignalingClient.h:16
Represents a signaling server configuration.
Definition: SignalingServerConfiguration.h:14
const std::string & room() const
Returns the room name.
Definition: SignalingServerConfiguration.h:147