Meet Features

Mute/Unmute audio#

During meet, you can mute the mic so that receiver don't hear your voice or surrounding noise. In order the use the mute feature you can utilise the meet sdk method below:

ArgumentTypeDescription
MUTE_AUDIObooleanPass true, if you want to disable audio else pass false
    CallManager.muteAudio(MUTE_AUDIO);

    Mute/Unmute video#

    During meet, you can turn off the camera so that receiver don't see your video. In order the use the video mute feature you can utilise the meet sdk method below:

    ArgumentTypeDescription
    MUTE_VIDEObooleanPass true,if you want to disable audio else pass false
      CallManager.muteVideo(MUTE_VIDEO);

      Check user's mute status#

      During meet, you can check the audio/video mute status of the end user in meet.

      To check the audio muted status, call the below method:

      ArgumentTypeDescription
      END_USERIDStringUserId of the meet user
        CallManager.isRemoteAudioMuted(END_USERID);

        To check the video mute status, call the below method:

        ArgumentTypeDescription
        END_USERIDStringUserId of the meet user
          CallManager.isRemoteVideoMuted(END_USERID);

          Audio device types#

          Meet SDK provides the audio devices as an enum class OutputType, using which audio routing can be manipulated.

          Device TypeDescription
          OutputType.receiverDevice receiver
          OutputType.speakerDevice Speaker
          OutputType.headsetWired Headset
          OutputType.bluetoothWireless Bluetooth

          Listen to Audio Device Changes#

          To observe the changes in audio routing confirm to the protocol AudioManagerDelegate.

            AudioManager.shared().audioManagerDelegate = self
            func audioRoutedTo(DEVICE_NAME, AUDIO_DEVICE_TYPE) {}
            ArgumentTypeDescription
            DEVICE_NAMEStringName of the device in which the audio is currently routed to
            AUDIO_DEVICE_TYPEOutputTypeAudio device type

            Route audio to other devices#

            To route audio to another output device, call the below method and pass the device of your choice.

              AudioManager.shared().routeAudioTo(AUDIO_DEVICE_TYPE, FORCE)
              ArgumentTypeDescription
              AUDIO_DEVICE_TYPEOutputTypeAudio device type
              FORCEBoolif true routed to the audio device

              Note : FORCE only has effect while audio device is set to speaker else it has no valid use case.

              Auto audio routing#

              To route audio to available audio device call the below method

                AudioManager.shared().routeToAvailableDevice(PREFERRED_AUDIO_DEVICE)
                ArgumentTypeDescription
                PREFERRED_AUDIO_DEVICEOutputTypeAudio device type

                Note : If the passed PREFERRED_AUDIO_DEVICE isn't available the SDK will automatically route the audio to the appropriate audio device.

                Currently selected audio device#

                By calling the below method will trigger the delegate AudioManagerDelegate through which we can detect the current audio device through which audio is routed to.

                  AudioManager.shared().getCurrentAudioInput()

                  Note: whenever you are connected to bluetooth headset while using meet sdk, if the gsm call arrives and if you attend it then gsm call will take priority for the bluetooth headset.so, even if you disconnect the gsm call, bluetooth headset will not connect back to the sdk call.

                  Preview Video#

                  When in preview screen, you can call the below method to start capturing video feed from the camera. Make use of the UIView RTCMTLVideoView provided by WebRTCFramework to render video. The preview video to render will be available through the onLocalTrack delegate method of JoinCallDelegate protocol.

                  CallManager.startVideoCapture()

                  Switching between camera feed#

                  During meet, you can switch between camera's by using the below method.

                    CallManager.switchCamera()

                    Check Audio mute status#

                    In order to check the audio mute status of a given User id, use below method

                      let audioMuteStatus: Bool = CallManager.isRemoteAudioMuted(USERID)

                      Bool returns true/false

                      Check Video mute status#

                      In order to check the video mute status of a given User id, use below method

                        let vidooMuteStatus: Bool = CallManager.isRemoteVideoMuted(USERID)

                        Bool returns true/false

                        Get Meet users#

                        In order to fetch the members of an ongoing meet, use the below method

                          let callUsersList: [String] = CallManager.getCallUsersList()

                          [String] returns the list of UserId

                          Get Meet user status#

                          In order to get the meet status of the given Use rId, use the below method

                            let callStatus: CALLSTATUS? = CallManager.getCallStatus(userId : String)

                            callStatus value will be anyone of the values of annotation class CallStatus.

                            Get Meet users with Status#

                            In order to fetch the members of an ongoing meet along with their call status, use the below method

                              var usersWithStatus: [String:CALLSTATUS] = CallManager.getCallUsersWithStatus()

                              [String] returns the list of UserId, callStatus value will be anyone of the values of annotation class CallStatus.

                              Get Own userId#

                              In order to get the own userId which is passed to SDk, use below method

                                let myUserId: String? = CallManager.getLocalUserId()

                                Get CallMode#

                                In order to get the callMode of the ongoing call/meet, use below method

                                  let callmode: CallMode = CallManager.getCallMode()

                                  CallMode value will be anyone of the values of annotation class CallMode

                                  CallMode ValueDescription
                                  CallMode.ONE_TO_ONEthe call is between 2 user
                                  CallMode.ONE_TO_MANYthe call is between group of members
                                  CallMode.MEETMultiple users can join via a link

                                  CallKit App Icon#

                                  In order to show our app icon in CallKit. An icon file named fly_call_app_icon should be placed in the Assets of our main application.

                                  warning

                                  The file name should be fly_call_app_icon, otherwise the sdk considers it as no asset provided and nothing will be shown in CallKit.