🌐
English
WebRTC API#
Oasis supports WebRTC video and audio (SRTP), and data channels (SCTP).
It supports ICE for NAT Traversal.
Header File#
OasisWebRTC.h
RTCPeerConnectionEventDelegate Interface#
class RTCPeerConnectionEventDelegate : public std::enable_shared_from_this<RTCPeerConnectionEventDelegate>
{
public:
RTCPeerConnectionEventDelegate();
virtual ~RTCPeerConnectionEventDelegate();
virtual void onSessionCreated(const RTCPeerConnectionRef &pc, const char *local_sid, const char *remote_sid, int64_t session_id, void *opaque);
virtual void onSessionDestroyed(const RTCPeerConnectionRef &pc, const char *local_sid, const char *remote_sid, int64_t session_id, void *opaque);
virtual void onConnectionTimedOut(const RTCPeerConnectionRef &pc, const char *local_sid, const char *remote_sid, int64_t session_id, void *opaque);
virtual void onLocalOffer(const RTCPeerConnectionRef &pc, const char *local_sid, const char *remote_sid, const char *local_offer);
virtual void onLocalAnswer(const RTCPeerConnectionRef &pc, const char *local_sid, const char *remote_sid, const char *local_answer);
virtual void onNewLocalCandidate(const RTCPeerConnectionRef &pc, const char *local_sid, const char *remote_sid, const char *mid, const char *local_candidate);
virtual void onError(const RTCPeerConnectionRef &pc, const char *local_sid, const char *remote_sid, int32_t error, int32_t reason, const char *reason_msg);
virtual void onLocalDataChannelOpened(const RTCPeerConnectionRef &pc, const RTCDataChannelRef &dc);
virtual void onLocalDataChannelClosed(const RTCPeerConnectionRef &pc, const RTCDataChannelRef &dc);
virtual void onPeerDataChannelOpen(const RTCPeerConnectionRef &pc, const RTCDataChannelRef &dc);
virtual void onPeerDataChannelClosed(const RTCPeerConnectionRef &pc, const RTCDataChannelRef &dc);
virtual void onPeerDataChannelString(const RTCPeerConnectionRef &pc, const RTCDataChannelRef &dc, const std::string &string, uint32_t flags);
virtual void onPeerDataChannelBinary(const RTCPeerConnectionRef &pc, const RTCDataChannelRef &dc, const void *data, size_t length, uint32_t flags);
virtual void onPeerDataChannelError(const RTCPeerConnectionRef &pc, const RTCDataChannelRef &dc, int32_t error, int32_t reason, const char *reason_msg);
virtual void onPeerImageReady(const RTCPeerConnectionRef &pc, const char *camera_path);
};
void
onSessionCreated
(
const RTCPeerConnectionRef &
pc
,
const char *
local_sid
,
const char *
remote_sid
,
int64_t
session_id
,
void *
opaque
)
OasisWebRTC.h
Callback function called when a WebRTC session is created.
Parameters
pc
WebRTC connection object.
local_sid
String pointer indicating the local ID.
remote_sid
String pointer indicating the remote ID.
session_id
The session ID.
opaque
Pointer for internal use.
void
onSessionDestroyed
(
const RTCPeerConnectionRef &
pc
,
const char *
local_sid
,
const char *
remote_sid
,
int64_t
session_id
,
void *
opaque
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
local_sid
remote_sid
session_id
opaque
void
onConnectionTimedOut
(
const RTCPeerConnectionRef &
pc
,
const char *
local_sid
,
const char *
remote_sid
,
int64_t
session_id
,
void *
opaque
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
local_sid
remote_sid
session_id
opaque
void
onLocalOffer
(
const RTCPeerConnectionRef &
pc
,
const char *
local_sid
,
const char *
remote_sid
,
const char *
local_offer
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
local_sid
remote_sid
local_offer
void
onLocalAnswer
(
const RTCPeerConnectionRef &
pc
,
const char *
local_sid
,
const char *
remote_sid
,
const char *
local_answer
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
local_sid
remote_sid
local_answer
void
onNewLocalCandidate
(
const RTCPeerConnectionRef &
pc
,
const char *
local_sid
,
const char *
remote_sid
,
const char *
mid
,
const char *
local_candidate
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
local_sid
remote_sid
mid
local_candidate
void
onError
(
const RTCPeerConnectionRef &
pc
,
const char *
local_sid
,
const char *
remote_sid
,
int32_t
error
,
int32_t
reason
,
const char *
reason_msg
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
local_sid
remote_sid
error
reason
reason_msg
void
onLocalDataChannelOpened
(
const RTCPeerConnectionRef &
pc
,
const RTCDataChannelRef &
dc
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
dc
void
onLocalDataChannelClosed
(
const RTCPeerConnectionRef &
pc
,
const RTCDataChannelRef &
dc
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
dc
void
onPeerDataChannelOpen
(
const RTCPeerConnectionRef &
pc
,
const RTCDataChannelRef &
dc
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
dc
void
onPeerDataChannelClosed
(
const RTCPeerConnectionRef &
pc
,
const RTCDataChannelRef &
dc
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
dc
void
onPeerDataChannelString
(
const RTCPeerConnectionRef &
pc
,
const RTCDataChannelRef &
dc
,
const std::string &
string
,
uint32_t
flags
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
dc
string
flags
void
onPeerDataChannelBinary
(
const RTCPeerConnectionRef &
pc
,
const RTCDataChannelRef &
dc
,
const void *
data
,
size_t
length
,
uint32_t
flags
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
dc
data
length
flags
void
onPeerDataChannelError
(
const RTCPeerConnectionRef &
pc
,
const RTCDataChannelRef &
dc
,
int32_t
error
,
int32_t
reason
,
const char *
reason_msg
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
dc
error
reason
reason_msg
void
onPeerImageReady
(
const RTCPeerConnectionRef &
pc
,
const char *
camera_path
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
camera_path
Functions#
RTCPeerConnectionRef
rtcPeerConnectionCreate
(
key_value_map_t &
session_parameters
,
const std::shared_ptr<RTCPeerConnectionEventDelegate> &
delegate
)
OasisWebRTC.h
Parameters
session_parameters
delegate
Return Value
int32_t
rtcPeerConnectionDestroy
(
const RTCPeerConnectionRef &
pc
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
Return Value
- 0: Success
- -1: Failure
int32_t
rtcPeerConnectionSetLocalSid
(
const RTCPeerConnectionRef &
pc
,
const char *
local_sid
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
local_sid
Return Value
- 0: Success
- -1: Failure
bool
rtcPeerConnectionIsBusy
(
const RTCPeerConnectionRef &
pc
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
Return Value
int32_t
rtcPeerConnectionSetRemoteAnswer
(
const RTCPeerConnectionRef &
pc
,
const char *
local_sid
,
const char *
remote_sid
,
const char *
answer_sdp
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
local_sid
remote_sid
answer_sdp
Return Value
- 0: Success
- -1: Failure
int32_t
rtcPeerConnectionSetRemoteOffer
(
const RTCPeerConnectionRef &
pc
,
const char *
local_sid
,
const char *
remote_sid
,
const char *
offer_sdp
,
bool
always_create
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
local_sid
remote_sid
offer_sdp
always_create
Return Value
- 0: Success
- -1: Failure
int32_t
rtcPeerConnectionAddRemoteCandidate
(
const RTCPeerConnectionRef &
pc
,
const char *
local_sid
,
const char *
remote_sid
,
const char *
mid
,
const char *
remote_candidate
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
local_sid
remote_sid
mid
remote_candidate
Return Value
- 0: Success
- -1: Failure
int32_t
rtcPeerConnectionCreateSession
(
const RTCPeerConnectionRef &
pc
,
const char *
from_sid
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
from_sid
Return Value
- 0: Success
- -1: Failure
int32_t
rtcPeerConnectionCreateSessionWithParameters
(
const RTCPeerConnectionRef &
pc
,
const char *
from_sid
,
const key_value_map_t &
parameters
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
from_sid
parameters
Return Value
- 0: Success
- -1: Failure
int32_t
rtcPeerConnectionDestroySession
(
const RTCPeerConnectionRef &
pc
,
const char *
local_sid
,
const char *
remote_sid
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
local_sid
remote_sid
Return Value
- 0: Success
- -1: Failure
int32_t
rtcPeerConnectionMuteSoundSink
(
const RTCPeerConnectionRef &
pc
,
bool
on
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
on
Return Value
- 0: Success
- -1: Failure
int32_t
rtcPeerConnectionMuteSoundSource
(
const RTCPeerConnectionRef &
pc
,
bool
on
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
on
Return Value
- 0: Success
- -1: Failure
RTCDataChannelRef
rtcCreateDataChannel
(
const RTCPeerConnectionRef &
pc
,
const char *
label
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
label
Return Value
int32_t
rtcDestroyDataChannel
(
const RTCPeerConnectionRef &
pc
,
const char *
label
)
OasisWebRTC.h
Parameters
pc
WebRTC connection object.
label
Return Value
- 0: Success
- -1: Failure
uint16_t
rtcDataChannelStreamID
(
const RTCDataChannelRef &
dc
)
OasisWebRTC.h
Parameters
dc
Return Value
const char *
rtcDataChannelLabel
(
const RTCDataChannelRef &
dc
)
OasisWebRTC.h
Parameters
dc
Return Value
const char *
rtcDataChannelProtocol
(
const RTCDataChannelRef &
dc
)
OasisWebRTC.h
Parameters
dc
Return Value
ssize_t
rtcDataChannelSendString
(
const RTCDataChannelRef &
dc
,
const std::string &
string
,
uint32_t
flags
)
OasisWebRTC.h
Parameters
dc
string
flags
Return Value
ssize_t
rtcDataChannelSendString
(
const RTCDataChannelRef &
dc
,
const char *
string
,
size_t
length
,
uint32_t
flags
)
OasisWebRTC.h
Parameters
dc
string
length
flags
Return Value
ssize_t
rtcDataChannelSendBinary
(
const RTCDataChannelRef &
dc
,
const std::vector<uint8_t> &
data
,
uint32_t
flags
)
OasisWebRTC.h
Parameters
dc
data
flags
Return Value
ssize_t
rtcDataChannelSendBinary
(
const RTCDataChannelRef &
dc
,
const std::vector<char> &
data
,
uint32_t
flags
)
OasisWebRTC.h
Parameters
dc
data
flags
Return Value
ssize_t
rtcDataChannelSendBinary
(
const RTCDataChannelRef &
dc
,
const void *
data
,
size_t
length
,
uint32_t
flags
)
OasisWebRTC.h
Parameters
dc
data
length
flags
Return Value