40 static StreamApiLow create(
const core::Connection& connection,
event::EventApi& eventApi, StreamEncryptionMode streamEncryptionMode = StreamEncryptionMode::SINGLE_KEY);
42 StreamApiLow(
const StreamApiLow& obj);
43 StreamApiLow& operator=(
const StreamApiLow& obj);
44 StreamApiLow(StreamApiLow&& obj);
47 std::vector<TurnCredentials> getTurnCredentials();
49 std::string createStreamRoom(
50 const std::string& contextId,
51 const std::vector<core::UserWithPubKey>& users,
52 const std::vector<core::UserWithPubKey>&managers,
55 const std::optional<core::ContainerPolicy>& policies
58 std::string createStreamRoomEx(
59 const std::string& contextId,
60 const std::vector<core::UserWithPubKey>& users,
61 const std::vector<core::UserWithPubKey>&managers,
64 const std::string& type,
65 const std::optional<core::ContainerPolicy>& policies
68 void updateStreamRoom(
69 const std::string& streamRoomId,
70 const std::vector<core::UserWithPubKey>& users,
71 const std::vector<core::UserWithPubKey>&managers,
74 const int64_t version,
76 const bool forceGenerateNewKey,
77 const std::optional<core::ContainerPolicy>& policies
83 StreamRoom getStreamRoom(
const std::string& streamRoomId);
84 StreamRoom getStreamRoomEx(
const std::string& streamRoomId,
const std::string& type);
86 void deleteStreamRoom(
const std::string& streamRoomId);
88 std::vector<StreamInfo> listStreams(
const std::string& streamRoomId);
89 void joinStreamRoom(
const std::string& streamRoomId, std::shared_ptr<WebRTCInterface> webRtc);
90 void leaveStreamRoom(
const std::string& streamRoomId);
91 void enableStreamRoomRecording(
const std::string& streamRoomId);
92 std::vector<stream::RecordingEncKey> getStreamRoomRecordingKeys(
const std::string& streamRoomId);
93 StreamHandle createStream(
const std::string& streamRoomId);
96 void unpublishStream(
const StreamHandle& streamHandle);
98 void subscribeToRemoteStreams(
const std::string& streamRoomId,
const std::vector<StreamSubscription>& subscriptions);
99 void modifyRemoteStreamsSubscriptions(
const std::string& streamRoomId,
const std::vector<StreamSubscription>& subscriptionsToAdd,
const std::vector<StreamSubscription>& subscriptionsToRemove);
100 void unsubscribeFromRemoteStreams(
const std::string& streamRoomId,
const std::vector<StreamSubscription>& subscriptionsToRemove);
102 void trickle(
const int64_t sessionId,
const std::string& candidateAsJson);
103 void acceptOfferOnReconfigure(
const int64_t sessionId,
const SdpWithTypeModel& sdp);
104 void setNewOfferOnReconfigure(
const int64_t sessionId,
const SdpWithTypeModel& sdp);
106 std::vector<std::string> subscribeFor(
const std::vector<std::string>& subscriptionQueries);
107 void unsubscribeFrom(
const std::vector<std::string>& subscriptionIds);
108 std::string buildSubscriptionQuery(EventType eventType, EventSelectorType selectorType,
const std::string& selectorId);
110 void keyManagement(
const std::string& streamRoomId,
bool disable);
112 StreamApiLow(
const std::shared_ptr<StreamApiLowImpl>& impl);
113 std::string _streamRoomCreateEx(
114 const std::string& contextId,
115 const std::vector<core::UserWithPubKey>& users,
116 const std::vector<core::UserWithPubKey>&managers,
119 const std::string& type,
120 const std::optional<core::ContainerPolicy>& policies
123 StreamRoom _streamRoomGetEx(
const std::string& streamRoomId,
const std::string& type);