The EnxRoom is a Derived Class from EnxRtc. It handles all the room-related functions to communicate with EnableX such as connection of Client endpoints to EnableX Room, publishing and subscription of Streams etc.

References: AttributesMethodsDelegates

Properties

  • roomID – Unique Room ID generated for each Room
  • roomMetadata – Complete Room Information.
  • clientID –  Unique Client ID assigned by EnableX to the client endpoint.
  • clientName – Name of the Client connected from the endpoint.
  • userRole – Role of the Client connected from the endpoint.
  • publishStreamId – Published Local Stream ID.
  • publishStream – Published Local Stream Object.
  • remoteStreams – List of Remote Streams.
  • streamsByStreamId – Dictionary of Stream Objects.
  • userList – List of users connected to the Room.
  • isRoomActiveTalker – BOOL. If Active Talker is enabled in the Room.
  • publishingStats – Local Stream publishing stats.

Methods

Given below a categorized listing of methods:

Connection

  • connect() – To connect client endpoint to the Room.
  • disconnect() – To disconnect client endpoint from the Room.
  • whoami() – To get the Information of the user connected from the client endpoint.

Streaming

  • publish() – To publish local stream in the Room.
  • unpublish() – To unpublish a local stream from the Room.
  • subscribe() – To subscribe to a remote stream to start receiving it.
  • setReceiveVideoQuality() – To opt to receive a specific video quality.
  • getMaxTalkers() –  To get the maximum number of talkers allowed in the Active Talker List.
  • setTalkerCount() – To set the desired number of talkers you want to receive in the Active Talker List.
  • getTalkerCount() – To get the number of talkers set to be received in the Active Talker List.
  • enableStats() – To know statistics of Local & Remote Streams.
  • enablePlayerStats() – To individually receive statistics of Streams being played on the player.
  • requestFloor() – To request Floor Access from Moderator to publish Stream in Lecture Mode.
  • cancelFloor() – To allow participants to cancel their request for Floor Access pending for Moderator’s approval.
  • getLocalStream() – To initialize a local stream at the Client endpoint before it can be published to the Room.
  • startCanvas() – To  start canvas streaming.
  • stopCanvas() – To  stop canvas streaming.
  • startAnnotation() – To  start Annotation on a given Stream object.
  • stopAnnotation() – To  stop Annotations.

Advance Features

  • sendMessage()– To send public and private messages to other users in the Room.
  • sendFiles() – To upload files to share with all or selected users in the Room.
  • cancelUpload() – To cancel an ongoing file upload job initiated by you.
  • getAvailableFiles() – To get a list of files available for download.
  • downloadFile() – To download available files.
  • cancelDownload() – To cancel the ongoing file download job taking place at your endpoint.
  • cancelAllDownload() – To cancel all ongoing file downloads taking place at your endpoint.
  • startScreenShare() – To create a Screen-Sharing Stream @ 6fps to publish in the Room.
  • stopScreenShare() – To stop the ongoing Screen-Sharing.
  • exitScreenShare() – To instruct the Screen Share Broadcaster Extension to exit ongoing Session.
  • sendUserData() – To send customized data adhering to a structure not bound by EnableX message structure, to one or more users connected in a session.

Moderator Controls

  • muteAllUser() – To hard-mute a Room where no participant can talk.
  • unMuteAllUser() – To switch the Room from a hard-mute state to a normal state.
  • lockRoom() – To allow the Moderator to lock the Room which forbids any new user from joining the Session.
  • unlockRoom() – To allow subsequent users to join the Session.
  • startRecord() – To allow the Moderator to start recording the Session.
  • stopRecord() – To stop session recording.
  • dropUser() – To allow the Moderator to disconnect/force-drop one or more participant(s) from the Session.
  • destroy() – To allow the Moderator to conclude an ongoing session.
  • approveAwaitedUser() – To allow the Moderator to approve a user’s entry.
  • denyAwaitedUser() – To decline a user’s entry to the Session.
  • startStreaming() – To allow the Moderator to forward live Video Sessions over RTMP Stream to any live streaming CDNs supporting this protocol.
  • stopStreaming() – To stop forwarding RTMP Stream.
  • pinUsers() – To allow the Moderator to pin a user(s) to the Active Talker List irrespective of the user’s activity level.
  • addSpotlightUsers() – To allow the Moderator to spotlight a user which pushes the user’s Stream to the top of Active Talker List irrespective of the user’s activity level.
  • switchUserRole() – To allow the Moderator to promote a Participant to act as a Moderator in the ongoing Session.
  • switchRoomMode() – To switch from group to lecture mode and vice versa during an ongoing session.

Floor Access Controls

  • grantFloor() – To grant Floor Access to a Participant in Lecture Mode.
  • denyFloor() – To deny Floor Access to a Participant in Lecture Mode.
  • finishFloor() – To allow the Participant to announce the completion of Floor Access and release Floor Access.
  • releaseFloor() – To release Floor Access from a Participant in Lecture Mode.
  • inviteToFloor() – To allow the Moderator to invite any Participant in the ongoing conference to the Floor and talk.
  • cancelFloorInvite() – To allow the Moderator to cancel a Floor Invitation sent to a Participant.
  • acceptInviteFloorRequest() – To allow the Participant to accept the invitation to the Floor and talk.
  • rejectInviteFloor() – To allow the invited Participant to reject the invitation to the Floor.

Devices

Break Out Room

  • createBreakOutRoom() – To create a Break-Out Room.
  • inviteToBreakOutRoom() – To allow the Creator/Owner of a Break-Out Room to invite one or more users from the Parent Room to join the Break-Out Room. 
  • createAndInviteBreakoutRoom() – To support certain use-cases where auto-assignment of users into different Break-Out Rooms is required.
  • joinBreakoutRoom() – To join a Break-Out room on being invited by the creator.
  • rejectBreakoutRoom() – To allow the invited user to reject the invitation to join a Break-Out Room.
  • pause() – To allow the user to pause the Parent Room after joining the Break-Out Room.
  • resume() – To resume the Parent Room if it was paused while joining the Break-Out Room.
  • muteRoom() – To allow the user to mute Audio and/or Video of the Parent Room after joining the Break-Out Room.
  • unmuteRoom() – To unmute Audio and/or Video of the Parent Room after disconnecting from Break-Out Room and resuming the Parent Room.
  • disconnect() – To disconnect from the Break-Out Room.

Miscellaneous

  • postClientLogs() – To share Console Log with EnableX Tech Team for audit.
  • setAudioOnlyMode() – To switch to an audio-only call where you can neither receive anybody’s video nor publish your video.
  • makeOutboundCall() – To to initiate an Outbound Call to PSTN Number or SIP URI while being in the session, thus inviting the called participant to join the session on accepting the call.
  • applicationDidEnterBackground – To handle the state of Streams during application switch to background.
  • applicationWillEnterForeground – To handle the state of Streams during application switch to foreground.
  • adjustLayout() – To adjust the Video player layout to fit within its parent view.
  • subscribeForTalkerNotification() – To receive notification for the talkers in the Room or the participants acting as a source of the noise.

Delegate Methods

Given below is a list of Delegate Methods categorized by their functions.

Connection

  • room:didConnect – Acknowledgment to the user when the client endpoint is connected to the room successfully.
  • roomDidDisconnected – Acknowledgment to the user when the client endpoint gets disconnected from the Room.
  • room:didError – Acknowledgment to the user when the client endpoint fails to connect to the Room.
  • room:userDidJoined – Notification to everyone in the Room when a new user joins the Room.
  • room:userDidDisconnected – Notification to everyone in the Room when a user is disconnected from the Room.

Re-connection

  • room:didConnectionLost – Acknowledgment to the user when the client endpoint loses network connection.
  • room:didConnectionInterrupted – Acknowledgment to the user when the client endpoint’s connection is interrupted such as a switch from WiFi to 4G and vice versa.
  • room:didUserReconnectSuccess– Acknowledgment to the user when the client endpoint gets reconnected with EnableX successfully.
  • room:didReconnect – Acknowledgment to the user when the client endpoint is trying to reconnect within the given time period.

Streaming

  • room:didPublishStream – Acknowledgment to the user when the user’s Stream is published into the Room successfully.
  • room:didUnpublishStream – Acknowledgment to the user when the user’s Stream is unpublished/removed from the Room.
  • room:didAddedStream – Notification to everyone in the Room when a Stream is published in the Room.
  • room:didRemovedStream – Notification to everyone in the Room when a Stream is unpublished/removed from the Room.
  • room:didSubscribeStream – Acknowledgment to the user when they successfully subscribe to a Remote Stream.
  • room:activeTalkerList – Notification to everyone in the Room when the list of Active Talkers is updated.

Devices

  • didNotifyDeviceUpdate – Acknowledgment to the user when an Audio device is changed.

Logging

  • didLogUpload – When log is uploaded to the Server successfully.

Recording

  • startRecordingEvent – Acknowledgment to the Moderator when Recording starts.
  • stopRecordingEvent – Acknowledgment to the Moderator when Recording stops.
  • roomRecordOn – Notification to all the participants when Recording starts.
  • roomRecordOff – Notification to all the participants when Recording stops.

Hard Mute

  • didMutedAllUser – Acknowledgment to the Moderator when the Room is put on a Hard Mute state.
  • didUnMutedAllUser – Acknowledgment to the Moderator when the Room is put off a Hard Mute state.
  • didHardMutedAll – Notification to all the participants when the Room is put on a Hard Mute state.
  • didHardUnMuteAllUser – Notification to all the participants when the Room is put off a Hard Mute state.

Screen Sharing

  • room:screenSharedStarted – Notification to everyone in the Room when Screen Sharing starts.
  • room:screenSharedStopped – Notification to everyone in the Room when Screen Sharing stops.

Canvas Streaming

  • room:canvasStarted – Notification to everyone in the Room when Canvas Streaming has starts.
  • room:canvasStopped – Notification to everyone in the Room when Canvas Streaming has stops.

Lecture Mode

  • didFloorRequested – Acknowledgment to the Participant when their request for Floor Access is sent to the Moderator.
  • didFloorRequestReceived – Notification to the Moderator when a new request for Floor Access is received.
  • didGrantFloorRequested – Notification to the Participant when the Moderator grants them Floor Access.
  • didDenyFloorRequested – Notification to the Participant when the Moderator denies Floor Access to them.
  • didReleaseFloorRequested – Notification to the Participant when the Moderator revokes their Floor Access permission.
  • didProcessFloorRequested – Acknowledgment to the Moderator on his actions regarding Floor Requests such as grant, deny, and release floor access.

Active Talker

  • room:didGetMaxTalkers – Notification to the user with information on the maximum number of permissible Active Talkers in the Room.
  • room:didGetTalkerCount – Notification to the user with information on the number of Talkers set to be received in the Active Talker List.
  • room:didSetTalkerCount – Acknowledgment to the user when they update the number of Talkers to be received in the Active Talker List.

Stats

  • didAcknowledgeStats – Acknowledgment to the user when the Stream stats are enabled or disabled.
  • didReceiveStats – Notification to the user when Stream Statistics are received.

File Sharing

  • At File Sender’s End
    • room:didInitFileUpload – Acknowledgment to the sender when a file upload process is initiated.
    • room:didFileUploaded – Acknowledgment to the sender when the file is uploaded.
    • room:didFileUploadFailed – Acknowledgment to the sender when the file upload process fails.
  • At File Receiver’s End
    • room:didFileUploadStarted – Notification to the intended receiver when a file is being uploaded.
    • room:didFileAvailable – Notification to the intended receiver when a file is ready for download.
    • room:didFileDownloaded – Notification to the receiver when the file is downloaded with either Base64 Raw data to be saved (when auto-saving is false) or saved file path.
    • room:didFileDownloadFailed – Notification to the receiver when file download fails.

Miscellaneous

  • room:didBandWidthUpdated – Notification to the user when a significant change is noticed in the downstream bandwidth at the client endpoint.
  • room:didEventError – Acknowledgment to the user when client endpoint fails to perform an event.
  • room:didReceiveChatDataAtRoom – Client endpoint receives text messages.
  • room:didSwitchUserRole – Acknowledgment to the Moderator when they switch a user’s role.
  • room:didUserRoleChanged – Notification to everyone in the Room when a user is newly appointed as moderator and additional information provided to the newly appointed moderator.
  • room:didAckSwitchRoom – Acknowledgment to the Moderator when when Room Mode switch is done.
  • room:didRoomModeSwitched – Notification to everyone in the room when a moderator switched Room Mode.

Explore iOS SDK