Members

    VICompletionBlock

    Completion callback.

    typedef void (^VICompletionBlock) (NSError *error)

    Members

      VILoginFailure

      Completion handler, triggered when login process failed. Login error codes:

      • 401: invalid password or token
      • 403: account frozen
      • 404: invalid username
      • 408: timeout
      • 491: invalid state
      • 500: internal error
      • 701: token expired
      typedef void (^VILoginFailure) (NSError *error)

      Members

        VILoginSuccess

        Completion handler, triggered when login operation is completed successfully.

        typedef void (^VILoginSuccess) (NSString *displayName, NSDictionary *authParams)

        Members

          VIOneTimeKeyResult

          Completion handler, triggered when one time key generated by the login server.

          typedef void (^VIOneTimeKeyResult) (NSString *oneTimeKey)

          Members

            VIRefreshTokenResult

            Completion handler, triggered when refresh of login tokens completed.

            typedef void (^VIRefreshTokenResult) (NSError *error, NSDictionary *authParams)

            VIAudioManager

            Interface that may be used to manage audio devices on iOS device.

            Members
            Other Methods
            –  init

            Warning: NS_UNAVAILABLE

            - (instancetype)init
            +  sharedAudioManager

            Obtain VIAudioManager instance

            + (instancetype)sharedAudioManager
            useLoudSpeaker

            Enable or disable loudspeaker

            @property (nonatomic, assign) BOOL useLoudSpeaker
            CallKit Methods
            –  callKitConfigureAudioSession:

            Initializes AudioSession for use with CallKit integration. Only needed for correct CallKit integration.

            Should be called in - (void)provider:(CXProvider *)provider performStartCallAction:(CXStartCallAction *)action; and - (void)provider:(CXProvider *)provider performAnswerCallAction:(CXAnswerCallAction *)action; of CXProviderDelegate

            - (void)callKitConfigureAudioSession:(NSError **)error
            Parameters
            error

            Occured error on configuration steps

            –  callKitReleaseAudioSession

            Restores default AudioSession initialization routines, MUST be called if CallKit becomes disabled

            - (void)callKitReleaseAudioSession
            –  callKitStartAudio

            Starts AudioSession Only needed for correct CallKit integration.

            Should be called in - (void)provider:(CXProvider *)provider didActivateAudioSession:(AVAudioSession *)audioSession; and - (void)provider:(CXProvider *)provider performSetHeldCallAction:(CXSetHeldCallAction *)action; of CXProviderDelegate

            - (void)callKitStartAudio
            –  callKitStopAudio

            Stops AudioSession Only needed for correct CallKit integration.

            Should be called in - (void)provider:(CXProvider *)provider performEndCallAction:(CXEndCallAction *)action; and - (void)provider:(CXProvider *)provider performSetHeldCallAction:(CXSetHeldCallAction *)action; of CXProviderDelegate

            - (void)callKitStopAudio

            VICall

            Interface that may be used for call operations like answer, reject, hang up and mid-call operations like hold, start/stop video and others.

            Members
            Other Methods
            –  init

            Warning: NS_UNAVAILABLE

            - (instancetype)init
            preferredVideoCodec

            Preferred video codec, for example: @“H264”. Nil by default. Must be set before using startWithHeaders:, if needed.

            @property (nonatomic, strong) NSString *preferredVideoCodec
            videoSource

            Video source. By default [VICameraManager sharedCameraManager] is used that gets video from back or front camera. Must be set before using startWithHeaders: and answerWithSendVideo:receiveVideo:customData:headers:, if needed.

            @property (nonatomic, strong) VIVideoSource *videoSource
            –  addDelegate:

            Add call delegate to handle call events.

            - (void)addDelegate:(id<VICallDelegate>)delegate
            Parameters
            delegate

            Instance of VICallDelegate delegate

            –  removeDelegate:

            Remove previously added call delegate.

            - (void)removeDelegate:(id<VICallDelegate>)delegate
            Parameters
            delegate

            Instance of VICallDelegate delegate

            callId

            The call id.

            @property (nonatomic, strong, readonly) NSString *callId
            endpoints

            Array of the endpoints associated with the call.

            @property (nonatomic, strong, readonly) NSArray<VIEndpoint*> *endpoints
            stat

            Call statistics. Updated every 5 seconds.

            @property (nonatomic, strong, readonly) VICallStat *stat
            sendAudio

            Enables or disables audio transfer from microphone into the call.

            @property (nonatomic, assign) BOOL sendAudio
            –  duration

            Get the call duration

            - (NSTimeInterval)duration
            Return

            Call duration

            –  startWithHeaders:

            Start outgoing call

            - (void)startWithHeaders:(NSDictionary *)headers
            Parameters
            headers

            Optional set of headers to be sent with message. Names must begin with “X-” to be processed by SDK

            –  stopWithHeaders:

            Terminate established or outgoing processing call.

            - (void)stopWithHeaders:(NSDictionary *)headers
            Parameters
            headers

            Optional set of headers to be sent with message. Names must begin with “X-” to be processed by SDK

            –  setSendVideo:completion:

            Start or stop sending video for the call.

            - (void)setSendVideo:(BOOL)video completion:(VICompletionBlock)completion
            Parameters
            video

            True if video should be sent, false otherwise

            completion

            Completion block to handle the result of the operation

            –  setHold:completion:

            Hold or unhold the call

            - (void)setHold:(BOOL)hold completion:(VICompletionBlock)completion
            Parameters
            hold

            True if the call should be put on hold, false for unhold

            completion

            Completion block to handle the result of the operation

            –  startReceiveVideoWithCompletion:

            Start receive video if video receive was not enabled before. Stop receiving video during the call is not supported.

            - (void)startReceiveVideoWithCompletion:(VICompletionBlock)completion
            Parameters
            completion

            Completion block to handle the result of operation

            –  sendMessage:headers:

            Send message within the call. Implemented atop SIP INFO for communication between call endpoint and Voximplant cloud, and is separated from Voximplant messaging API.

            - (void)sendMessage:(NSString *)message headers:(NSDictionary *)headers
            Parameters
            message

            Message text

            headers

            Optional set of headers to be sent with message. Names must begin with “X-” to be processed by SDK

            –  sendInfo:mimeType:headers:

            Send INFO message within the call

            - (void)sendInfo:(NSString *)body mimeType:(NSString *)mimeType headers:(NSDictionary *)headers
            Parameters
            body

            Custom string data

            mimeType

            MIME type of info

            headers

            Optional set of headers to be sent with message. Names must begin with “X-” to be processed by SDK

            –  sendDTMF:

            Send DTMF within the call

            - (BOOL)sendDTMF:(NSString *)dtmf
            Parameters
            dtmf

            DTMFs

            Return

            True if DTMFs are sent successfully, false otherwise

            –  answerWithSendVideo:receiveVideo:customData:headers:

            Answer incoming call.

            - (void)answerWithSendVideo:(BOOL)sendVideo receiveVideo:(BOOL)receiveVideo customData:(NSString *)customData headers:(NSDictionary *)headers
            Parameters
            sendVideo

            Specify if video send is enabled for a call

            receiveVideo

            Specify if video receive is enabled for a call

            customData

            Optional custom data passed with call. Will be available in VoxEngine scenario

            headers

            Optional set of headers to be sent with message. Names must begin with “X-” to be processed by SDK

            –  rejectWithHeaders:

            Reject incoming call.

            - (void)rejectWithHeaders:(NSDictionary *)headers
            Parameters
            headers

            Optional set of headers to be sent with message. Names must begin with “X-” to be processed by SDK

            –  hangupWithHeaders:

            Terminates call. Call should be either established, or outgoing progressing

            - (void)hangupWithHeaders:(NSDictionary *)headers
            Parameters
            headers

            Optional set of headers to be sent with message. Names must begin with “X-” to be processed by SDK

            Streams Methods
            localVideoStreams

            Local video streams associated with the call

            @property (nonatomic, strong, readonly) NSArray<VIVideoStream*> *localVideoStreams

            VICallStat

            Call staticstics

            Members
            video

            References video statistics information

            @property (nonatomic, strong, readonly) VIVideoStat *video
            endpoints

            References remote endpoints statistics information

            @property (nonatomic, strong, readonly) NSArray<VIEndpointStat*> *endpoints
            localStreams

            References local send streams statistics information

            @property (nonatomic, strong, readonly) NSArray<VIStreamStat*> *localStreams
            streams

            References statistics information for all streams in one place: ‘audio-send’, ‘audio-recv’, ‘video-send’, ‘video-recv’

            @property (nonatomic, strong, readonly) NSArray<VIStreamStat*> *streams
            webrtcOriginalReports

            References original WebRTC statistics information ‘audio-recv’, ‘video-send’, ‘video-recv’

            @property (nonatomic, strong, readonly) NSArray<RTCLegacyStatsReport*> *webrtcOriginalReports

            VICameraManager

            VICameraManager

            Members
            –  init

            Warning: NS_UNAVAILABLE

            - (instancetype)init
            +  sharedCameraManager

            Obtain VICameraManager instance

            + (instancetype)sharedCameraManager
            Return

            VICameraManager instance

            –  captureDevices

            Get list of available capture devices that support video capture

            - (NSArray<AVCaptureDevice*> *)captureDevices
            Return

            List of available capture devices

            –  supportedFormatsForDevice:

            Get list of formats(resolutions) that are supported by requested device

            - (NSArray<AVCaptureDeviceFormat*> *)supportedFormatsForDevice:(AVCaptureDevice *)device
            Parameters
            device

            Capture device to get its formats

            Return

            List of formats

            –  changeCaptureFormat:

            Change video format(resolution) to be sent to remote participant. Default video format 640x480.

            - (void)changeCaptureFormat:(AVCaptureDeviceFormat *)format
            Parameters
            format

            New video format

            videoPreprocessDelegate

            Video prepocessing delegate

            @property (nonatomic, weak) id<VIVideoPreprocessDelegate> videoPreprocessDelegate
            useBackCamera

            A boolean value indicating if back camera should be used

            @property (nonatomic, assign) BOOL useBackCamera

            VIClient

            Interface that may be used to connect and login to VoxImplant Cloud, make and receive audio/video calls.

            Members
            Other Methods
            +  clientVersion

            Get client version

            + (NSString *)clientVersion
            Return

            Client version

            +  setLogLevel:

            Set a verbosity level for log messages. This method must be called before creating SDK object instance.

            + (void)setLogLevel:(VILogLevel)logLevel
            Parameters
            logLevel

            VILogLevel log verbosity level

            +  saveLogToFileEnable

            Enable saving of the logs to file. Log files located at: Library/Caches/Logs This method must be called before creating SDK object instance.

            + (void)saveLogToFileEnable
            –  init

            Warning: NS_UNAVAILABLE

            - (instancetype)init
            –  initWithDelegateQueue:

            Initialize VIClient instance

            - (instancetype)initWithDelegateQueue:(dispatch_queue_t)queue
            Parameters
            queue

            All delegates methods will be called in this queue. Queue should be serial, but not concurrent (main queue is applicable).

            messenger

            Get instance of messaging subsystem.

            @property (nonatomic, strong, readonly) VIMessenger *messenger
            clientState

            Current VIClient state

            @property (nonatomic, readonly) VIClientState clientState
            Login Methods
            –  loginWithUser:password:success:failure:

            Login to VoxImplant cloud using password.

            - (void)loginWithUser:(NSString *)user password:(NSString *)password success:(VILoginSuccess)success failure:(VILoginFailure)failure
            Parameters
            user

            Full user name, including app and account name, like someuser@someapp.youraccount.voximplant.com

            password

            User password

            success

            VILoginSuccess completion handler triggered if operation is completed successfully

            failure

            VILoginFailure completion handler failure triggered if operation is failed

            –  loginWithUser:token:success:failure:

            Login to VoxImplant cloud using access token.

            - (void)loginWithUser:(NSString *)user token:(NSString *)token success:(VILoginSuccess)success failure:(VILoginFailure)failure
            Parameters
            user

            Full user name, including app and account name, like someuser@someapp.youraccount.voximplant.com

            token

            Access token obtained from authParams

            success

            VILoginSuccess completion handler triggered if operation is completed successfully

            failure

            VILoginFailure completion handler failure triggered if operation is failed

            –  loginWithUser:oneTimeKey:success:failure:

            Login to VoxImplant cloud using one time key.

            - (void)loginWithUser:(NSString *)user oneTimeKey:(NSString *)oneTimeKey success:(VILoginSuccess)success failure:(VILoginFailure)failure
            Parameters
            user

            Full user name, including app and account name, like someuser@someapp.youraccount.voximplant.com

            oneTimeKey

            Hash that was generated using following formula:

             MD5(oneTimeKey+"|"+MD5(user+":voximplant.com:"+password))
            

            Please note that here user is just a user name, without app name, account name or anything else after “@”. So if you pass myuser@myapp.myacc.voximplant.com as a username, you should only use myuser while computing this hash

            success

            VILoginSuccess completion handler triggered if operation is completed successfully

            failure

            VILoginFailure completion handler failure triggered if operation is failed

            –  refreshTokenWithUser:token:result:

            Perform refresh of login tokens required for login using access token

            - (void)refreshTokenWithUser:(NSString *)user token:(NSString *)token result:(VIRefreshTokenResult)result
            Parameters
            user

            Full user name, including app and account name, like someuser@someapp.youraccount.voximplant.com

            token

            Refresh token obtained from authParams

            result

            VIRefreshTokenResult completion handler that is triggered when the operation is completed

            –  requestOneTimeKeyWithUser:result:

            Generates one time login key to be used for automated login process.

            - (void)requestOneTimeKeyWithUser:(NSString *)user result:(VIOneTimeKeyResult)result
            Parameters
            user

            Full user name, including app and account name, like someuser@someapp.youraccount.voximplant.com

            result

            VIOneTimeKeyResult completion handler that is triggered when the operation is completed

            Push Methods
            –  registerPushNotificationsToken:imToken:

            Register Apple Push Notifications token. After calling this function application will receive push notifications from Voximplant Server.

            - (void)registerPushNotificationsToken:(NSData *)voipToken imToken:(NSData *)imToken
            Parameters
            voipToken

            The APNS token for VoIP push notifications which comes from:

             - (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(PKPushType)type;
            
            imToken

            The APNS token for IM push notifications

            –  unregisterPushNotificationsToken:imToken:

            Unregister Apple Push Notifications token. After calling this function application stops receive push notifications from Voximplant Server

            - (void)unregisterPushNotificationsToken:(NSData *)voipToken imToken:(NSData *)imToken
            Parameters
            voipToken

            The APNS token for VoIP push notifications which comes from:

             - (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(PKPushType)type;
            
            imToken

            The APNS token for IM push notification

            –  handlePushNotification:

            Handle incoming push notification

            - (void)handlePushNotification:(NSDictionary *)notification
            Parameters
            notification

            The incomming notification which comes from:

             - (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(PKPushType)type
            
            Session Methods
            sessionDelegate

            Session delegate that handles events for connection with VoxImplant Cloud.

            @property (nonatomic, weak) id<VIClientSessionDelegate> sessionDelegate
            –  connect

            Connect to VoxImplant cloud

            - (BOOL)connect
            Return

            True if the attempt to connect can be performed, false otherwise. Return value “false” means that the connection to VoxImplant Clound is currently establishing or already established. In this case please check the current client state via clientState property and proceed according to the current state.

            –  connectWithConnectivityCheck:gateways:

            Connect to VoxImplant cloud.

            - (BOOL)connectWithConnectivityCheck:(BOOL)connectivityCheck gateways:(NSArray *)gateways
            Parameters
            connectivityCheck

            Checks whether UDP traffic will flow correctly between device and VoxImplant cloud. This check reduces connection speed.

            gateways

            Array of server names of particular media gateways for connection

            Return

            True if the attempt to connect can be performed, false otherwise. Return value “false” means that the connection to VoxImplant Clound is currently establishing or already established. In this case please check the current client state via clientState property and proceed according to the current state.

            –  disconnect

            Disconnect from VoxImplant cloud

            - (void)disconnect
            CallManager Methods
            callManagerDelegate

            CallManager delegate that handles incoming calls.

            @property (nonatomic, weak) id<VIClientCallManagerDelegate> callManagerDelegate
            calls

            Dictionary of actual calls with their ids.

            @property (nonatomic, strong, readonly) NSDictionary<NSString*VICall*> *calls
            –  callToUser:withSendVideo:receiveVideo:customData:

            Create new call instance. Call must be then started using startCall

            - (VICall *)callToUser:(NSString *)user withSendVideo:(BOOL)sendVideo receiveVideo:(BOOL)receiveVideo customData:(NSString *)customData
            Parameters
            user

            SIP URI, username or phone number to make call to. Actual routing is then performed by VoxEngine scenario

            sendVideo

            Specify if video send is enabled for a call

            receiveVideo

            Specify if video receive is enabled for a call

            customData

            Custom data passed with call. Will be available in VoxEngine scenario

            Return

            Pointer to VICall instance

            VIConversation

            Interface that may be used to manage conversation.

            Members
            createdAt

            UNIX timestamp that specifies the time of the conversation creation

            @property (nonatomic, strong, readonly) NSNumber *createdAt
            lastUpdate

            UNIX timestamp that specifies the time of the last event in the conversation

            @property (nonatomic, strong, readonly) NSNumber *lastUpdate
            customData

            Dictionary with custom data, up to 5kb.

            @property (nonatomic, strong) NSDictionary *customData
            distinct

            Check if the conversation is distinct. If two conversations are created with same set of users and moderators and both have ‘distinct’ flag, second create call will fail with the UUID of conversation already created. Note that changing users or moderators list will clear ‘distinct’ flag. Note that setting this property does not send changes to the server. Use the update to send all changes at once.

            @property (nonatomic, assign) BOOL distinct
            publicJoin

            Check if public join is enabled

            @property (nonatomic, assign) BOOL publicJoin
            lastRead

            Sequence of last event that was read by user

            @property (nonatomic, strong, readonly) NSNumber *lastRead
            lastSeq

            Last event sequence for this conversation.

            @property (nonatomic, strong, readonly) NSNumber *lastSeq
            uuid

            Universally unique identifier of current conversation.

            @property (nonatomic, strong, readonly) NSString *uuid
            title

            Current conversation title

            @property (nonatomic, strong) NSString *title
            participants

            Array of VIConversationParticipant conversation participants alongside with their rights

            @property (nonatomic, strong, readonly) NSArray<VIConversationParticipant*> *participants
            moderators

            Array of conversation moderator names

            @property (nonatomic, strong, readonly) NSArray<NSString*> *moderators
            –  addParticipants:

            Add new participants to the conversation. Duplicated users are ignored. Will fail if any user does not exist. Triggers the [VIMessengerDelegate messenger:didEditConversation:] event for all messenger objects on all clients, including this one. Clients that are not connected will receive it later.

            - (void)addParticipants:(NSArray<VIConversationParticipant*> *)participants
            Parameters
            participants

            Array of VIConversationParticipant to be added to the conversation

            –  addModerators:

            Add new moderators to the conversation. Duplicated users are ignored. Will fail if any user does not exist. Triggers the [VIMessengerDelegate messenger:didEditConversation:] event for all messenger objects on all clients, including this one. Clients that are not connected will receive it later.

            - (void)addModerators:(NSArray<NSString*> *)moderators
            Parameters
            moderators

            Array of moderators to be added to the conversation

            –  editParticipants:

            Edit participants' access rights. Duplicated users are ignored. Participant list must contain all participants. Triggers the [VIMessengerDelegate messenger:didEditConversation:] event for all messenger objects on all clients, including this one. Clients that are not connected will receive it later.

            - (void)editParticipants:(NSArray<VIConversationParticipant*> *)participants
            Parameters
            participants
            –  removeParticipants:

            Remove participants from the conversation. Duplicated users are ignored. Will fail if any user does not exist. Triggers the [VIMessengerDelegate messenger:didEditConversation:] event for all messenger objects on all clients, including this one. Clients that are not connected will receive it later.

            - (void)removeParticipants:(NSArray<VIConversationParticipant*> *)participants
            Parameters
            participants

            Array of VIConversationParticipant to be removed from conversation

            –  removeModerators:

            Remove moderators from the conversation. Duplicated users are ignored. Will fail if any user does not exist. Triggers the [VIMessengerDelegate messenger:didEditConversation:] event for all messenger objects on all clients, including this one. Clients that are not connected will receive it later.

            - (void)removeModerators:(NSArray<NSString*> *)moderators
            Parameters
            moderators

            Array of moderators to be removed from the conversation

            –  markAsRead:

            Mark the event with the specified sequence as ‘read’. This affects ‘lastRead’ and is used to display unread messages and events.

            - (void)markAsRead:(NSNumber *)seq
            Parameters
            seq

            Sequence number of the event to be marked as read

            –  markAsDelivered:

            Mark event with the specified sequence as handled by current logged-in device. If single user is logged in on multiple devices, this can be used to display delivery status.

            - (void)markAsDelivered:(NSNumber *)seq
            Parameters
            seq

            Sequence number of the event to be marked as delivered

            –  sendMessage:payload:

            Send message to the conversation. Triggers the [VIMessengerDelegate messenger:didSendMessage:] event for all messenger objects on all clients, including this one.

            - (VIMessage *)sendMessage:(NSString *)message payload:(NSArray<VIPayload*> *)payload
            Parameters
            message

            Message text

            payload

            Message payload

            Return

            VIMessage instance

            –  typing

            Calling this method will inform backend that user is typing some text. Calls within 10s interval from the last call are discarded.

            - (void)typing
            –  retransmitEventsFrom:to:

            Request events in the specified sequence range to be sent from server into this client. Used to get history or get missed events in case of network disconnect. Please note that server will not push any events that was missed due to the client being offline. Client should use this method to request all events based on the last event sequence received from the server and last event sequence saved locally (if any).

            - (void)retransmitEventsFrom:(NSNumber *)from to:(NSNumber *)to
            Parameters
            from

            First event in range sequence, inclusive

            to

            Last event in range sequence, inclusive

            –  update

            Send conversation changes to the server. The changes sent are: title, public join flag, distinct flag and custom data.

            - (void)update
            –  remove

            Remove current conversation. All participants, including this one, will receive the [VIMessengerDelegate messenger:didRemoveConversation:] event.

            - (void)remove

            VIConversationEvent

            Interface that represents messenger events related to conversation such as create, edit, remove and others.

            Members
            conversation

            VIConversation instance with conversation information

            @property (nonatomic, strong) VIConversation *conversation

            VIConversationParticipant

            Interface that represents participant of a conversation.

            Members
            canManageParticipants

            If ‘true’, user can add, remove and edit access rights for conversation participants (but not conversation moderators)

            @property (nonatomic, assign) BOOL canManageParticipants
            canWrite

            If ‘true’, user can write to the conversation

            @property (nonatomic, assign) BOOL canWrite
            userId

            Voximplant user identifier, ex username@appname.accname

            @property (nonatomic, copy, readonly) NSString *userId
            –  initWithUserId:canWrite:canManageParticipants:

            Initialize conversation participant

            - (instancetype)initWithUserId:(NSString *)userId canWrite:(BOOL)canWrite canManageParticipants:(BOOL)canManageParticipants
            Parameters
            userId

            Voximplant user identifier, ex username@appname.accname

            canWrite

            If ‘true’, user can write to the conversation

            canManageParticipants

            If ‘true’, user can add, remove and edit access rights for conversation participants (but not conversation moderators)

            Return

            VIConversationParticipant instance

            VIConversationServiceEvent

            Interface that represents messenger events such as typing, isRead, isDelivered.

            Members
            conversationUUID

            Conversation UUID associated with this event.

            @property (nonatomic, strong, readonly) NSString *conversationUUID
            seq

            Sequence number of event

            @property (nonatomic, strong, readonly) NSNumber *seq
            timestamp

            UNIX timestamp that specifies the time a method was called

            @property (nonatomic, strong, readonly) NSNumber *timestamp

            VICustomVideoSource

            Interface that represents custom video source

            Members
            delegate

            VICustomVideoSourceDelegate delegate to handle custom video source events

            @property (nonatomic, weak) id<VICustomVideoSourceDelegate> delegate
            –  init

            Warning: NS_UNAVAILABLE

            - (instancetype)init
            –  initWithVideoFormats:

            Initialize custom video source

            - (instancetype)initWithVideoFormats:(NSArray<VIVideoFormat*> *)formats
            Parameters
            formats

            Video format for the custom video source

            Return

            VICustomVideoSource instance

            –  sendVideoFrame:rotation:

            Send video frame

            - (void)sendVideoFrame:(CVPixelBufferRef)buffer rotation:(VIRotation)rotation
            Parameters
            buffer

            Pixel buffer. Should be kCVPixelFormatType_420YpCbCr8BiPlanarFullRange or kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange

            rotation

            Video rotation

            VIEndpoint

            VIEndpoint

            Members
            delegate

            VIEndpointDelegate delegate to handle the endpoint events.

            @property (nonatomic, weak) id<VIEndpointDelegate> delegate
            call

            Call associated with the endpoint.

            @property (nonatomic, weak, readonly) VICall *call
            stat

            Statistics for the endpoint.

            @property (nonatomic, strong, readonly) VIEndpointStat *stat
            remoteVideoStreams

            Video streams associated with the endpoint.

            @property (nonatomic, strong, readonly) NSArray<VIVideoStream*> *remoteVideoStreams
            endpointId

            The endpoint id.

            @property (nonatomic, strong, readonly) NSString *endpointId
            user

            User name of the endpoint

            @property (nonatomic, strong, readonly) NSString *user
            sipURI

            SIP URI of the endpoint.

            @property (nonatomic, strong, readonly) NSString *sipURI
            userDisplayName

            User display name of the endpoint.

            @property (nonatomic, strong, readonly) NSString *userDisplayName

            VIEndpointStat

            Endpoint statistics

            Members
            remoteStreams

            Collection of statistics for remote receive streams.

            @property (nonatomic, strong, readonly) NSArray<VIStreamStat*> *remoteStreams

            VIErrorEvent

            Interface that represents error messenger events.

            Members
            descr

            Error description

            @property (nonatomic, strong, readonly) NSString *descr
            code

            Error code

            • 1: Wrong transport message structure
            • 2: Unknown event name
            • 3: User not auth
            • 4: Wrong message structure
            • 5: Conversation not found or user not in participant list
            • 6: Conversation not found or user can’t moderate conversation
            • 7: Conversation already exists
            • 8: Conversation does not exists
            • 9: Message already exists
            • 10: Message does not exist
            • 11: Message was deleted
            • 12: ACL error
            • 13: User already in participant list
            • 14: No rights to edit user
            • 15: Public join is not available in this conversation
            • 16: Conversation was deleted
            • 17: Conversation is distinct
            • 18: User validation error
            • 19: Lists mismatch
            • 20: RESERVED
            • 21: Range larger than allowed by service
            • 22: Number of requested objects is larger than allowed by service
            • 23: Message size so large
            • 24: Seq is too big
            • 30: IM service not available
            • 500: Internal error
            • 777: Oops! Something went wrong
            @property (nonatomic, assign, readonly) NSUInteger code

            VIMessage

            Interface that represents message within a conversation.

            Members
            conversation

            UUID of the conversation this message belongs to

            @property (nonatomic, strong, readonly) NSString *conversation
            sender

            User id of the sender of this message.

            @property (nonatomic, strong, readonly) NSString *sender
            uuid

            Universally unique identifier of message

            @property (nonatomic, strong, readonly) NSString *uuid
            seq

            Message sequence number

            @property (nonatomic, strong, readonly) NSNumber *seq
            text

            Text of this message

            @property (nonatomic, strong) NSString *text
            payload

            Array of VIPayload objects associated with the message

            @property (nonatomic, strong) NSArray<VIPayload*> *payload
            –  update

            Sends text and payload changes to the server.

            - (void)update
            –  remove

            Remove the message. Triggers the [VIMessengerDelegate messenger:didRemoveMessage:] event for all messenger objects on all clients, including this one. Clients that are not connected will receive it later.

            - (void)remove

            VIMessageEvent

            Interface that represents messenger events related to messages.

            Members
            message

            VIMessage instance with message information

            @property (nonatomic, strong, readonly) VIMessage *message

            VIMessenger

            Interface that may be used to control messaging functions.

            Members
            –  addDelegate:

            Add VIMessengerDelegate to handle messenger events.

            - (void)addDelegate:(id<VIMessengerDelegate>)delegate
            Parameters
            delegate

            VIMessengerDelegate instance to be added

            –  removeDelegate:

            Remove previously added VIMessengerDelegate delegate

            - (void)removeDelegate:(id<VIMessengerDelegate>)delegate
            Parameters
            delegate

            VIMessengerDelegate delegate to be removed

            –  createConversation:moderators:title:distinct:enablePublicJoin:customData:

            Create new conversation. Triggers the [VIMessengerDelegate messenger:didCreateConversation:] event for all messenger objects on all connected clients that are mentioned in the ‘participants’ array.

            - (void)createConversation:(NSArray<VIConversationParticipant*> *)participants moderators:(NSArray<NSString*> *)moderators title:(NSString *)title distinct:(BOOL)distinct enablePublicJoin:(BOOL)enablePublicJoin customData:(NSDictionary *)customData
            Parameters
            participants
            moderators

            Array of conversation moderators' names

            title

            Conversation title

            distinct

            Specify if conversation is distinct.

            enablePublicJoin

            If set to ‘true’, anyone can join conversation by uuid

            customData

            Dictionary with custom data, up to 5kb

            –  leaveConversation:

            Leave current user from the conversation specified by the UUID.

            - (void)leaveConversation:(NSString *)uuid
            Parameters
            uuid

            Conversation UUID

            –  joinConversation:

            Join current user to the conversation specified by the UUID.

            - (void)joinConversation:(NSString *)uuid
            Parameters
            uuid

            Conversation UUID

            –  removeConversation:

            Remove the conversation specified by the UUID.

            - (void)removeConversation:(NSString *)uuid
            Parameters
            uuid

            UUID of the conversation to be removed

            –  getMe

            Get the Voximplant user identifier, ex username@appname.accname, for the current user

            - (NSString *)getMe
            Return

            Current user identifier

            –  getUser:

            Get user information for the user specified by the Voximplant user identifier, ex username@appname.accname.

            - (void)getUser:(NSString *)user
            Parameters
            user

            User identifier

            –  getUsers:

            Get user information for the users specified by the array of the Voximplant user identifiers, ex username@appname.accname.

            - (void)getUsers:(NSArray<NSString*> *)users
            Parameters
            users

            Array of user identifiers

            –  editUserWithCustomData:privateCustomData:

            Edit current user information.

            - (void)editUserWithCustomData:(NSDictionary *)customData privateCustomData:(NSDictionary *)privateCustomData
            Parameters
            customData

            New custom data. If nil, previously set custom data will not be changed. If empty map, previously set custom data will be removed.

            privateCustomData

            New private custom data. If nil, previously set private custom data will not be changed. If empty map, previously set private custom data will be removed.

            –  subscribe:

            Subscribe for user information change and presence status change. On change, the [VIMessengerDelegate messenger:didSetStatus:] event will be triggered.

            - (void)subscribe:(NSArray<NSString*> *)users
            Parameters
            users

            Array of Voximplant user identifiers, ex username@appname.accname

            –  unsubscribe:

            Unsubscribe for user information change and presence status change.

            - (void)unsubscribe:(NSArray<NSString*> *)users
            Parameters
            users

            Array of Voximplant user identifiers, ex username@appname.accname

            –  getConversation:

            Get conversation by its UUID.

            - (void)getConversation:(NSString *)uuid
            Parameters
            uuid

            Conversation UUID

            –  getConversations:

            Get multiple conversations by array of UUIDs. Maximum 30 conversations. Note that calling this method will result in multiple [VIMessengerDelegate messenger:didGetConversation:] events.

            - (void)getConversations:(NSArray<NSString*> *)uuids
            Parameters
            uuids

            Array of conversation UUIDs

            –  setStatus:

            Set user presence status. Triggers the [VIMessengerDelegate messenger:didSetStatus:] event for all messenger objects on all connected clients which are subscribed for notifications about this user. Including this one if conditions are met.

            - (void)setStatus:(BOOL)online
            Parameters
            online

            True if user is available for messaging, false otherwise

            –  managePushNotifications:

            Manage messenger push notification subscriptions.

            - (void)managePushNotifications:(NSArray<NSNumber*> *)notifications
            Parameters
            notifications

            Array of VIMessengerNotification to be subscribed on.

            –  recreateConversation:title:distinct:enablePublicJoin:customData:uuid:sequence:moderators:lastUpdate:lastRead:createdAt:

            Recreate conversation. Note that this method does not create conversation, but restore previously created conversation.

            - (VIConversation *)recreateConversation:(NSArray<VIConversationParticipant*> *)participants title:(NSString *)title distinct:(BOOL)distinct enablePublicJoin:(BOOL)enablePublicJoin customData:(NSDictionary *)customData uuid:(NSString *)uuid sequence:(NSNumber *)sequnce moderators:(NSArray<NSString*> *)moderators lastUpdate:(NSNumber *)lastUpdate lastRead:(NSNumber *)lastRead createdAt:(NSNumber *)createdAt
            Parameters
            participants
            title

            Conversation title

            distinct

            Specify if conversation is distinct.

            enablePublicJoin

            If set to ‘true’, anyone can join conversation by uuid

            customData

            Conversation custom data

            uuid

            Conversation UUID

            sequnce

            Sequence of last event

            moderators

            Array of conversation’s moderators

            lastUpdate

            UNIX timestamp that specifies the time of the last event in the conversation

            lastRead

            Sequence of last event that was read by user

            createdAt

            UNIX timestamp that specifies the time of the conversation creation

            Return

            VIConversation instance

            –  recreateMessage:conversation:sender:text:payload:sequence:

            Recreate a message. Note that this method does not create message, but restore previously created message.

            - (VIMessage *)recreateMessage:(NSString *)uuid conversation:(NSString *)conversationUUID sender:(NSString *)sender text:(NSString *)text payload:(NSArray<VIPayload*> *)payload sequence:(NSNumber *)sequence
            Parameters
            uuid

            Universally unique identifier of message

            conversationUUID

            UUID of the conversation this message belongs to

            sender

            User id of the sender of this message

            text

            Text of this message

            payload

            Array of VIPayload objects associated with the message

            sequence

            Message sequence number

            Return

            VIMessage instance

            VIMessengerEvent

            Interface that represents all messenger events provided via VIMessengerDelegate.

            Members
            eventType

            Type of event

            @property (nonatomic, assign, readonly) VIMessengerEventType eventType
            incomingAction

            Action that is the reason this event was triggered

            @property (nonatomic, assign, readonly) VIMessengerActionType incomingAction
            userId

            Voximplant user identifier, ex username@appname.accname, of the user that initiated the event.

            @property (nonatomic, strong, readonly) NSString *userId

            VIMessengerEventSeq

            Interface that represents all messenger events provided via VIMessengerDelegate that have event sequence number.

            Members
            seq

            Event sequence number

            @property (nonatomic, strong) NSNumber *seq

            VIMessengerPushNotificationProcessing

            Helper to process incoming VoxImplant messenger push notifications.

            Members
            –  init

            Warning: NS_UNAVAILABLE

            - (instancetype)init
            +  sharedMessengerPushNotificationProcessing

            Get VIMessengerPushNotificationProcessing instance

            + (instancetype)sharedMessengerPushNotificationProcessing
            Return

            VIMessengerPushNotificationProcessing instance

            –  processPushNotification:

            Process incoming VoxImplant messenger push notification and return appropriate messenger event object inheriting VIMessengerEvent.

            - (VIMessengerEvent *)processPushNotification:(NSDictionary *)notification
            Parameters
            notification

            Incoming push notification that comes from this method

            Return

            VIMessengerEvent object or nil if the notification is not VoxImplant messenger push notification

            VIPayload

            Interface that represent message payload format.

            Members
            data

            Payload data

            @property (nonatomic, strong) NSObject *data
            title

            Payload fragment unique title. Used to identifier fragment in the list of fragments associated with the message

            @property (nonatomic, strong) NSString *title
            type

            Arbitrary payload type

            @property (nonatomic, strong) NSString *type
            –  init

            Warning: NS_UNAVAILABLE

            - (instancetype)init
            –  initWithTitle:type:dataString:

            Initialize VIPayload with NSString

            - (instancetype)initWithTitle:(NSString *)title type:(NSString *)type dataString:(NSString *)dataString
            Parameters
            title

            Payload fragment unique title.

            type

            Arbitrary payload type

            dataString

            Payload data string

            Return

            VIPayload instance

            –  initWithTitle:type:dataDictionary:

            Initialize VIPayload with NSDictionary

            - (instancetype)initWithTitle:(NSString *)title type:(NSString *)type dataDictionary:(NSDictionary *)dataDictionary
            Parameters
            title

            Payload fragment unique title.

            type

            Arbitrary payload type

            dataDictionary

            Payload data disctionary

            Return

            VIPayload instance

            –  initWithTitle:type:dataArray:

            Initialize VIPayload with NSArray

            - (instancetype)initWithTitle:(NSString *)title type:(NSString *)type dataArray:(NSArray *)dataArray
            Parameters
            title

            Payload fragment unique title.

            type

            Arbitrary payload type

            dataArray

            Payload data array

            Return

            VIPayload instance

            VIRetransmitEvent

            Interface that represents messenger event for [VIConversation retransmitEventsFrom:to:] method call result.

            Members
            events

            Array of event objects that was retransmitted.

            @property (nonatomic, strong, readonly) NSArray<VIMessengerEventSeq*> *events

            VIStreamStat

            Stream statistics

            Members
            streamId

            Unique stream id as a string, same as “streamId” for VIVideoStream

            @property (nonatomic, copy, readonly) NSString *streamId
            codec

            Audio or video codec name, ex “VP8” or “H264”

            @property (nonatomic, copy, readonly) NSString *codec
            dir

            Stream direction: VIStreamDirectionSend for streams directed from this device, VIStreamDirectionRecv for streams directed to this device

            @property (nonatomic, assign, readonly) VIStreamDirection dir
            type

            Stream type: VIStreamTypeAudio or VIStreamTypeVideo. VIStreamTypeUnknown for future SDK versions compatibility

            @property (nonatomic, assign, readonly) VIStreamType type
            bytes

            Number of bytes transferred through stream

            @property (nonatomic, assign, readonly) NSInteger bytes
            packets

            Number of packets transferred through stream

            @property (nonatomic, assign, readonly) NSInteger packets
            packetsLost

            Total number of packets lost

            @property (nonatomic, assign, readonly) NSInteger packetsLost
            packetLossPercents

            Total packet loss percentage from 0 to 100

            @property (nonatomic, assign, readonly) NSInteger packetLossPercents
            packetLossCurrentPercents

            Packet loss percentage from 0 to 100 for last 5 seconds.

            @property (nonatomic, assign, readonly) NSInteger packetLossCurrentPercents
            jitterMs

            Jitter delay, in milliseconds, for receive streams. For send streams always 0.

            @property (nonatomic, assign, readonly) NSInteger jitterMs
            jitterBufferMs

            Jitter delay, in milliseconds, for single buffer, for receive streams. For send streams always 0

            @property (nonatomic, assign, readonly) NSInteger jitterBufferMs
            videoFrame

            Video frame size, in pixels, for video streams. For audio streams always 0.

            @property (nonatomic, assign, readonly) CGSize videoFrame
            videoFps

            Current video FPS, for video streams. For audio streams always 0.

            @property (nonatomic, assign, readonly) NSInteger videoFps

            VISubscribeEvent

            Interface that represents messenger events related to subscriptions.

            Members
            users

            Array of Voximplant user identifiers of current (un)subscription

            @property (nonatomic, strong, readonly) NSArray<NSString*> *users

            VIUser

            Interface that represents user description.

            Members
            –  init

            Warning: NS_UNAVAILABLE

            - (instancetype)init
            conversationList

            Array of UUIDs for the conversations the user has joined.

            @property (nonatomic, strong, readonly) NSArray<NSString*> *conversationList
            customData

            Public custom data available to all users

            @property (nonatomic, strong, readonly) NSDictionary *customData
            privateCustomData

            Private custom data available only to the user himself.

            @property (nonatomic, strong, readonly) NSDictionary *privateCustomData
            userId

            Voximplant user identifier, ex username@appname.accname.

            @property (nonatomic, strong, readonly) NSString *userId
            notifications

            Array of messenger notifications that current user is subscribed to

            @property (nonatomic, strong, readonly) NSArray<NSNumber*> *notifications

            VIUserEvent

            Interface that represents messenger events related to user, such as get or edit user.

            Members
            user

            VIUser instance with user information

            @property (nonatomic, strong, readonly) VIUser *user

            VIUserStatusEvent

            Interface that represents messenger events related to user presence state changes.

            Members
            online

            User presence status.

            @property (nonatomic, assign, readonly) BOOL online
            timestamp

            UNIX timestamp that specifies the time event was triggered.

            @property (nonatomic, strong, readonly) NSNumber *timestamp

            VIVideoFormat

            Interface that represents video format

            Members
            frame

            Frame size

            @property (nonatomic, assign, readonly) CGSize frame
            interval

            Time interval between frames in milliseconds

            @property (nonatomic, assign, readonly) NSUInteger interval
            –  init

            Warning: NS_UNAVAILABLE

            - (instancetype)init
            –  initWithFrame:fps:

            Initialize VIVideoFormat with frame size and fps

            - (instancetype)initWithFrame:(CGSize)frame fps:(NSUInteger)fps
            Parameters
            frame

            Frame size

            fps

            FPS

            Return

            VIVideoFormat instance

            –  initWithFrame:interval:

            Initialize VIVideoFormat with frame size and interval

            - (instancetype)initWithFrame:(CGSize)frame interval:(NSUInteger)interval
            Parameters
            frame

            Frame size

            interval

            Time interval between frames in milliseconds

            Return

            VIVideoFormat instance

            VIVideoRendererView

            iOS view that renders remote video or local camera preview video

            Members
            resizeMode

            Resize mode for video renderer.

            @property (nonatomic, assign) VIVideoResizeMode resizeMode
            –  init

            Warning: NS_UNAVAILABLE

            - (instancetype)init
            –  initWithContainerView:

            Initialize VIVideoRendererView instance

            - (instancetype)initWithContainerView:(UIView *)containerView
            Parameters
            containerView

            UIView to which video renderer will be added as a subview.

            Return

            VIVideoRendererView instance

            VIVideoSource

            Base class for all video sources. See VICustomVideoSource and VICameraManager for more information.

            Members

              VIVideoStat

              Video statistics

              Members
              retransmitBitrate

              Current video retransmit bitrate, in bits per second, high in case of poor network connection.

              @property (nonatomic, assign, readonly) NSInteger retransmitBitrate
              transmitBitrate

              Current video transmit bitrate, in bits per second

              @property (nonatomic, assign, readonly) NSInteger transmitBitrate
              availableSendBandwidth

              Current send bandwidth that is assumed by the engine to be available for sending video, in bits per second.

              @property (nonatomic, assign, readonly) NSInteger availableSendBandwidth

              VIVideoStream

              Interface representing local and remote video streams. It may be used to add or remove video renderers.

              Members
              renderers

              Video renderers associated with the stream. UI elements of RTCVideoRenderer type are used to display local preview or remote video.

              @property (nonatomic, strong, readonly) NSSet<id<RTCVideoRenderer> > *renderers
              stat

              Statistics for the video stream. Updated every 5 seconds.

              @property (nonatomic, strong, readonly) VIStreamStat *stat
              streamId

              The video stream id.

              @property (nonatomic, copy, readonly) NSString *streamId
              –  init

              Warning: NS_UNAVAILABLE

              - (instancetype)init
              –  addRenderer:

              Add new video renderer to the video stream. UI elements of RTCVideoRenderer type are used to display local preview or remote video.

              - (void)addRenderer:(id<RTCVideoRenderer>)renderer
              Parameters
              renderer

              New video renderer to be added

              –  removeRenderer:

              Remove previously added video renderer from the video stream. UI elements of RTCVideoRenderer type are used to display local preview or remote video.

              - (void)removeRenderer:(id<RTCVideoRenderer>)renderer
              Parameters
              renderer

              Previously added video renderer

              –  removeAllRenderers

              Remove all video renderers associated with the video stream

              - (void)removeAllRenderers

              VoxImplant

              Main VoxImplant SDK class. Should not be instantiated directly, use getInstance instead.

              Warning: Deprecated. Use VIClient, VICall instead.

              Members
              Other Methods
              voxDelegate

              Set delegate object for SDK

              Warning: Deprecated. Use VIClientSessionDelegate delegate to handle connection to VoxImplant Cloud events, VICallDelegate delegate to handle call events and VIClientCallManagerDelegate delegate to handle incoming calls.

              @property (nonatomic, weak) id<VoxImplantDelegate> voxDelegate
              –  getVoxDelegate

              Returns current delegate

              Warning: Deprecated. Use [VIClient sessionDelegate] to get connection delegate, [VIClient callManagerDelegate] to get incoming call delegate instead.

              - (id<VoxImplantDelegate>)getVoxDelegate
              Return

              Previously set VoxImplantDelegate delegate

              +  setLogLevel:

              Sets a verbosity level for log messages. Note that this method must be called before creating SDK object instance.

              Warning: Deprecated. Use [VIClient setLogLevel:] instead.

              + (void)setLogLevel:(enum VoxImplantLogLevel)logLevel
              Parameters
              logLevel

              Log verbosity level

              +  saveLogToFileEnable

              Enables save logs to file. Log files located at: Library/Caches/Logs. Note that this method must be called before creating SDK object instance.

              Warning: Deprecated. Use [VIClient saveLogToFileEnable] instead.

              + (void)saveLogToFileEnable
              +  getInstance

              Returns single SDK object instance

              Warning: Deprecated. Use [VIClient initWithDelegateQueue:] instead.

              + (VoxImplant *)getInstance
              Return

              SingleSDK object instance.

              Connect to VoxImplant Cloud
              –  connect

              Connect to VoxImplant cloud

              Warning: Deprecated. Use [VIClient connect] intead.

              - (void)connect
              –  connect:

              Connect to VoxImplant cloud

              Warning: Deprecated. Use [VIClient connectWithConnectivityCheck:gateways:] instead.

              - (void)connect:(bool)connectivityCheck
              Parameters
              connectivityCheck

              Checks whether UDP traffic will flow correctly between device and VoxImplant cloud. This check reduces connection speed.

              –  disableTLS

              Disable TLS encryption for signalling connection. Media data will be encrypted anyway

              Warning: Deprecated.

              - (void)disableTLS
              –  closeConnection

              Closes connection with media server

              Warning: Deprecated. Use [VIClient disconnect] instead.

              - (void)closeConnection
              Login to VoxImplant Cloud
              –  loginWithUsername:andPassword:

              Login to VoxImplant using specified username and password

              Warning: Deprecated. Use [VIClient loginWithUser:password:success:failure:] instead.

              - (void)loginWithUsername:(NSString *)user andPassword:(NSString *)password
              Parameters
              user

              Username combined with application name, for example testuser@testapp.testaccount.voximplant.com

              password

              Password in plain text

              –  loginWithUsername:andOneTimeKey:

              Perform login using one time key that was generated before

              - (void)loginWithUsername:(NSString *)user andOneTimeKey:(NSString *)hash
              Parameters
              user

              Full user name, including app and account name, like someuser@someapp.youraccount.voximplant.com

              hash

              Hash that was generated using following formula:

               MD5(oneTimeKey+"|"+MD5(user+":voximplant.com:"+password))
              

              Please note that here user is just a user name, without app name, account name or anything else after “@”. So if you pass myuser@myapp.myacc.voximplant.com as a username, you should only use myuser while computing this hash.

              –  loginWithUsername:andToken:

              Login to VoxImplant using specified username and password

              Warning: Deprecated. Use [VIClient loginWithUser:token:success:failure:] instead.

              - (void)loginWithUsername:(NSString *)user andToken:(NSString *)token
              Parameters
              user

              Username combined with application name, for example testuser\@testapp.testaccount.voximplant.com

              –  refreshTokenWithUsername:andToken:

              Perform refresh of login tokens required for login using access token

              Warning: Deprecated. Use [VIClient refreshTokenWithUser:token:result:] instead.

              - (void)refreshTokenWithUsername:(NSString *)user andToken:(NSString *)token
              Parameters
              user

              Username combined with application name, for example testuser@testapp.testaccount.voximplant.com

              token

              Refresh token

              –  requestOneTimeKeyWithUsername:

              Generates one time login key to be used for automated login process.

              Warning: Deprecated. Use [VIClient requestOneTimeKeyWithUser:result:] instead.

              - (void)requestOneTimeKeyWithUsername:(NSString *)user
              Parameters
              user

              Full user name, including app and account name, like someuser@someapp.youraccount.voximplant.com

              Call Management
              –  createCall:withVideo:andCustomData:

              Create new call instance. Call must be then started using startCall:withHeaders: method.

              - (NSString *)createCall:(NSString *)to withVideo:(bool)video andCustomData:(NSString *)customData
              Parameters
              to

              SIP URI, username or phone number to make call to. Actual routing is then performed by VoxEngine scenario

              video

              Enable video support in call

              customData

              Custom data passed with call. Will be available in VoxEngine scenario

              Return

              Pointer to a string representation of the call id

              –  startCall:withHeaders:

              Send start call request.

              Warning: Deprecated. Use [VICall startWithHeaders:] instead.

              - (bool)startCall:(NSString *)callId withHeaders:(NSDictionary *)headers
              Parameters
              callId

              id of previously created call

              headers

              Optional set of headers to be sent with message. Names must begin with “X-” to be processed by SDK

              Return

              True in case of success, false otherwise (f.ex. if call with specified id is not found)

              –  attachAudioTo:

              Attach audio and video to specified call

              Warning: Deprecated.

              - (bool)attachAudioTo:(NSString *)callId
              Parameters
              callId

              id of previously created call

              Return

              True in case of success, false otherwise (f.ex. if call with specified id is not found)

              –  sendDTMF:digit:

              Sends DTMF digit in specified call.

              Warning: Deprecated. Use [VICall sendDTMF:] instead.

              - (void)sendDTMF:(NSString *)callId digit:(int)digit
              Parameters
              callId

              id of previously created call

              digit

              Digit can be 0-9 for 0-9, 10 for * and 11 for #

              –  disconnectCall:withHeaders:

              Terminates specified call. Call must be either established, or outgoing progressing

              Warning: Deprecated. Use [VICall hangupWithHeaders:] instead.

              - (bool)disconnectCall:(NSString *)callId withHeaders:(NSDictionary *)headers
              Parameters
              callId

              id of previously created call

              headers

              Optional set of headers to be sent with message. Names must begin with “X-” to be processed by SDK

              Return

              True in case of success, false otherwise (f.ex. if call with specified id is not found)

              –  declineCall:withHeaders:

              Rejects incoming alerting call

              Warning: Deprecated. Use [VICall rejectWithHeaders:] instead.

              - (void)declineCall:(NSString *)callId withHeaders:(NSDictionary *)headers
              Parameters
              callId

              id of previously created call

              headers

              Optional set of headers to be sent with message. Names must begin with “X-” to be processed by SDK

              –  answerCall:withCustomData:headers:

              Answers incoming alerting call

              - (void)answerCall:(NSString *)callId withCustomData:(NSString *)customData headers:(NSDictionary *)headers
              Parameters
              callId

              id of previously created call

              customData

              Optional custom data passed with call. Will be available in VoxEngine scenario

              headers

              Optional set of headers to be sent with message. Names must begin with “X-” to be processed by SDK

              –  sendMessage:withText:andHeaders:

              Sends instant message within established call

              Warning: Deprecated. Use [VICall sendMessage:headers:] instead.

              - (void)sendMessage:(NSString *)callId withText:(NSString *)text andHeaders:(NSDictionary *)headers
              Parameters
              callId

              id of previously created call

              text

              Message text

              headers

              Optional set of headers to be sent with message. Names must begin with “X-” to be processed by SDK

              –  sendInfo:withType:content:andHeaders:

              Sends info within established call

              Warning: Deprecated. Use [VICall sendInfo:mimeType:headers:] instead.

              - (void)sendInfo:(NSString *)callId withType:(NSString *)mimeType content:(NSString *)content andHeaders:(NSDictionary *)headers
              Parameters
              callId

              id of previously created call

              mimeType

              MIME type of info

              content

              Custom string data

              headers

              Optional set of headers to be sent with message. Names must begin with “X-” to be processed by SDK

              –  getCallDuration:

              Get call duration for established call

              Warning: Deprecated. Use [VICall duration] instead.

              - (NSTimeInterval)getCallDuration:(NSString *)callId
              Parameters
              callId

              id of previously created call

              Return

              Call duration. 0 if call already disconnected.

              –  setMute:

              Mute or unmute microphone. This is reset after audio interruption

              Warning: Deprecated. Use [VICall sendAudio] instead.

              - (void)setMute:(bool)b
              Parameters
              b

              Enable/disable flag

              –  setUseLoudspeaker:

              Enable/disable loudspeaker (doesn’t make sence for iPad, since it has only loudspeaker)

              Warning: Deprecated. Use [VIAudioManager useLoudSpeaker] instead.

              - (bool)setUseLoudspeaker:(bool)b
              Parameters
              b

              Enable/disable flag

              –  setVideoResizeMode:

              Set video display mode. Applies to both incoming and outgoing stream

              Warning: Deprecated. Use [VIVideoRendererView resizeMode] instead.

              - (void)setVideoResizeMode:(enum VoxImplantVideoResizeMode)mode
              Parameters
              mode

              Resize mode

              –  getVideoResizeMode

              Get video display mode. Applies to both incoming and outgoing streams

              Warning: Deprecated.

              - (enum VoxImplantVideoResizeMode)getVideoResizeMode
              Return

              Resize mode

              –  sendVideo:

              Stop/start sending video during the call

              Warning: Deprecated. Use [VICall setSendVideo:completion:] instead.

              - (void)sendVideo:(BOOL)doSend
              Parameters
              doSend

              Specify if video should be sent

              –  setLocalPreview:

              Set container for local video preview

              Warning: Deprecated. Use [VIVideoStream addRenderer:] instead.

              - (void)setLocalPreview:(UIView *)view
              Parameters
              view

              UIView

              –  setRemoteView:

              Set container for remote video display

              Warning: Deprecated. Use [VIVideoStream addRenderer:] instead.

              - (void)setRemoteView:(UIView *)view
              Parameters
              view

              UIView

              –  setRemoteView:forCall:

              Set container for remote video display for call

              Warning: Deprecated. Use [VIVideoStream addRenderer:] instead.

              - (void)setRemoteView:(UIView *)view forCall:(NSString *)callId
              Parameters
              view

              UIView

              callId

              id of the call

              –  setResolution:andHeight:

              Set resolution of video being sent to remote participant

              Warning: Deprecated. Use [VICameraManager changeCaptureFormat:] instead.

              - (void)setResolution:(int)width andHeight:(int)height
              Parameters
              width

              Camera resolution width

              height

              Camera resolution height

              –  connectTo:

              Connect to particular VoxImplant media gateway

              Warning: Deprecated. Use [VIClient connectWithConnectivityCheck:gateways:] instead.

              - (void)connectTo:(NSString *)host
              Parameters
              host

              Server name of particular media gateway for connection

              –  hasFrontFacingCamera

              Check if device has front facing camera

              Warning: Deprecated.

              - (BOOL)hasFrontFacingCamera
              Return

              True if device has front facing camera, false otherwise

              –  switchToCameraWithPosition:

              Switch to front/back camera

              Warning: Deprecated. Use [VICameraManager useBackCamera]

              - (BOOL)switchToCameraWithPosition:(AVCaptureDevicePosition)position
              Parameters
              position

              Capture device position

              Return

              True in case of success, false otherwise

              –  setHold:forCall:

              Hold/unhold the call

              - (void)setHold:(BOOL)hold forCall:(NSString *)callId
              Parameters
              hold

              True if the call should be put on hold, false otherwise

              callId

              The call id

              PushNotifications Methods
              –  registerPushNotificationsToken:

              Register Apple Push Notifications token, after calling this function, application will receive push notifications from Voximplant Server.

              Warning: Deprecated. Use [VIClient registerPushNotificationsToken:imToken:] instead.

              - (void)registerPushNotificationsToken:(NSData *)token
              Parameters
              token

              The APNS token which comes from:

               - (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(PKPushType)type;
              
              –  unregisterPushNotificationsToken:

              Unregister Apple Push Notifications token, after calling this function, application stops receive push notifications from Voximplant Server.

              - (void)unregisterPushNotificationsToken:(NSData *)token
              Parameters
              token

              The APNS token which comes from:

               - (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(PKPushType)type;
              
              –  handlePushNotification:

              Handle incoming push notification

              Warning: Deprecated. Use [VIClient handlePushNotification:] instead.

              - (void)handlePushNotification:(NSDictionary *)notification
              Parameters
              notification

              The incomming notification which comes from:

               - (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(PKPushType)type { ... }
              

              Members
                Enum
                VIClientState

                VIClient states

                typedef NS_ENUM(NSUInteger, VIClientState ) {
                   VIClientStateDisconnected,
                   VIClientStateConnecting,
                   VIClientStateConnected,
                   VIClientStateLoggingIn,
                   VIClientStateLoggedIn,
                };
                VIClientStateDisconnected

                The client is currently disconnected

                VIClientStateConnecting

                The client is currently connecting

                VIClientStateConnected

                The client is currently connected

                VIClientStateLoggingIn

                The client is currently logging in

                VIClientStateLoggedIn

                The client is currently logged in

                Members
                  Enum
                  VILogLevel

                  Log level

                  typedef NS_ENUM(NSUInteger, VILogLevel ) {
                     VILogLevelDisabled,
                     VILogLevelError,
                     VILogLevelWarning,
                     VILogLevelInfo,
                     VILogLevelDebug,
                     VILogLevelVerbose,
                     VILogLevelMax,
                  };
                  VILogLevelDisabled

                  Log verbosity level to disable logs.

                  VILogLevelError

                  Log verbosity level to include only error messages.

                  VILogLevelWarning

                  Log verbosity level to include warnings messages.

                  VILogLevelInfo

                  Log verbosity level to include info messages.

                  VILogLevelDebug

                  Log verbosity level to include debug messages.

                  VILogLevelVerbose

                  Log verbosity level to include verbose messages.

                  VILogLevelMax

                  Log verbosity level to include all types of messages.

                  Members
                    Enum
                    VIMessengerActionType

                    Actions that trigger messenger events.

                    typedef NS_ENUM(NSInteger, VIMessengerActionType ) {
                       VIMessengerActionTypeCreateConversation,
                       VIMessengerActionTypeRemoveConversation,
                       VIMessengerActionTypeJoinConversation,
                       VIMessengerActionTypeLeaveConversation,
                       VIMessengerActionTypeEditConversation,
                       VIMessengerActionTypeGetUser,
                       VIMessengerActionTypeGetUsers,
                       VIMessengerActionTypeEditUser,
                       VIMessengerActionTypeGetConversation,
                       VIMessengerActionTypeGetConversations,
                       VIMessengerActionTypeAddParticipants,
                       VIMessengerActionTypeEditParticipants,
                       VIMessengerActionTypeRemoveParticipants,
                       VIMessengerActionTypeAddModerators,
                       VIMessengerActionTypeRemoveModerators,
                       VIMessengerActionTypeMarkAsDelivered,
                       VIMessengerActionTypeMarkAsRead,
                       VIMessengerActionTypeTyping,
                       VIMessengerActionTypeRetransmitEvents,
                       VIMessengerActionTypeSubscribe,
                       VIMessengerActionTypeUnsubscribe,
                       VIMessengerActionTypeSetStatus,
                       VIMessengerActionTypeSendMessage,
                       VIMessengerActionTypeEditMessage,
                       VIMessengerActionTypeRemoveMessage,
                       VIMessengerActionTypeManageNotifications,
                       VIMessengerActionTypeUnknown,
                    };
                    VIMessengerActionTypeCreateConversation

                    Create conversation action

                    VIMessengerActionTypeRemoveConversation

                    Remove conversation action

                    VIMessengerActionTypeJoinConversation

                    Join conversation action

                    VIMessengerActionTypeLeaveConversation

                    Leave conversation action

                    VIMessengerActionTypeEditConversation

                    Edit conversation action

                    VIMessengerActionTypeGetUser

                    Get user action

                    VIMessengerActionTypeGetUsers

                    Get users action

                    VIMessengerActionTypeEditUser

                    Edit user action

                    VIMessengerActionTypeGetConversation

                    Get conversation action

                    VIMessengerActionTypeGetConversations

                    Get conversations action

                    VIMessengerActionTypeAddParticipants

                    Add participants action

                    VIMessengerActionTypeEditParticipants

                    Edit participants action

                    VIMessengerActionTypeRemoveParticipants

                    Remove participants action

                    VIMessengerActionTypeAddModerators

                    Add moderators action

                    VIMessengerActionTypeRemoveModerators

                    Remove moderators action

                    VIMessengerActionTypeMarkAsDelivered

                    Mark as delivered action

                    VIMessengerActionTypeMarkAsRead

                    Mark as read action

                    VIMessengerActionTypeTyping

                    Typing action

                    VIMessengerActionTypeRetransmitEvents

                    Retransmit events action

                    VIMessengerActionTypeSubscribe

                    Subscribe action

                    VIMessengerActionTypeUnsubscribe

                    Unsubscribe action

                    VIMessengerActionTypeSetStatus

                    Set status action

                    VIMessengerActionTypeSendMessage

                    Send message action

                    VIMessengerActionTypeEditMessage

                    Edit message action

                    VIMessengerActionTypeRemoveMessage

                    Remove message action

                    VIMessengerActionTypeManageNotifications

                    Manage notifications action

                    VIMessengerActionTypeUnknown

                    Unsubscribe action

                    Members
                      Enum
                      VIMessengerEventType

                      Types of messenger events

                      typedef NS_ENUM(NSInteger, VIMessengerEventType ) {
                         VIMessengerEventTypeError,
                         VIMessengerEventTypeGetUser,
                         VIMessengerEventTypeEditUser,
                         VIMessengerEventTypeCreateConversation,
                         VIMessengerEventTypeRemoveConversation,
                         VIMessengerEventTypeEditConversation,
                         VIMessengerEventTypeGetConversation,
                         VIMessengerEventTypeSubscribe,
                         VIMessengerEventTypeUnsubscribe,
                         VIMessengerEventTypeSendMessage,
                         VIMessengerEventTypeEditMessage,
                         VIMessengerEventTypeRemoveMessage,
                         VIMessengerEventTypeTyping,
                         VIMessengerEventTypeRead,
                         VIMessengerEventTypeDelivered,
                         VIMessengerEventTypeUserStatus,
                         VIMessengerEventTypeRetransmit,
                         VIMessengerEventTypeUnknown,
                      };
                      VIMessengerEventTypeError

                      Error event

                      VIMessengerEventTypeGetUser

                      Get user event

                      VIMessengerEventTypeEditUser

                      Edit user event

                      VIMessengerEventTypeCreateConversation

                      Create conversation event

                      VIMessengerEventTypeRemoveConversation

                      Remove conversation event

                      VIMessengerEventTypeEditConversation

                      Edit conversation event

                      VIMessengerEventTypeGetConversation

                      Get conversation event

                      VIMessengerEventTypeSubscribe

                      Subscribe event

                      VIMessengerEventTypeUnsubscribe

                      Unsubscribe event

                      VIMessengerEventTypeSendMessage

                      Send message event

                      VIMessengerEventTypeEditMessage

                      Edit message event

                      VIMessengerEventTypeRemoveMessage

                      Remove message event

                      VIMessengerEventTypeTyping

                      Typing event

                      VIMessengerEventTypeRead

                      Marked as read event

                      VIMessengerEventTypeDelivered

                      Marked as delivered event

                      VIMessengerEventTypeUserStatus

                      User status event

                      VIMessengerEventTypeRetransmit

                      Retransmit event

                      VIMessengerEventTypeUnknown

                      Unknown event

                      Members
                        Enum
                        VIMessengerNotification

                        Events available for push notification subscription.

                        typedef NS_ENUM(NSInteger, VIMessengerNotification ) {
                           VIMessengerNotificationEditMessage,
                           VIMessengerNotificationSendMessage,
                        };
                        VIMessengerNotificationEditMessage

                        Notify that message in a conversation is edited

                        VIMessengerNotificationSendMessage

                        Notify about new message in a conversation

                        Members
                          Enum
                          VIRotation

                          Enum of supported video rotation modes

                          typedef NS_ENUM(NSInteger, VIRotation ) {
                             VIRotation_0 = 0,
                             VIRotation_90 = 90,
                             VIRotation_180 = 180,
                             VIRotation_270 = 270,
                          };
                          VIRotation_0

                          No rotation

                          VIRotation_90

                          90 degrees clockwise rotation

                          VIRotation_180

                          180 degrees clockwise rotation

                          VIRotation_270

                          270 degrees clockwise rotation

                          Members
                            Enum
                            VIStreamDirection

                            Enum of supported audio/video stream directions

                            typedef NS_ENUM(NSUInteger, VIStreamDirection ) {
                               VIStreamDirectionSend,
                               VIStreamDirectionRecv,
                            };
                            VIStreamDirectionSend

                            Stream is directed from this SDK toward the Voximplant cloud or toward another SDK in Peer-to-Peer mode

                            VIStreamDirectionRecv

                            Stream is directed to this SDK from the Voximplant cloud or from another SDK in Peer-to-Peer mode

                            Members
                              Enum
                              VIStreamType

                              Enum of supported stream types

                              typedef NS_ENUM(NSUInteger, VIStreamType ) {
                                 VIStreamTypeUnknown,
                                 VIStreamTypeAudio,
                                 VIStreamTypeVideo,
                              };
                              VIStreamTypeUnknown

                              Stream is not video or audio, defined for future compatibility

                              VIStreamTypeAudio

                              Audio stream

                              VIStreamTypeVideo

                              Video stream

                              Members
                                Enum
                                VIVideoResizeMode

                                Enum of supported video resize modes

                                typedef NS_ENUM(NSUInteger, VIVideoResizeMode ) {
                                   VIVideoResizeModeFit,
                                   VIVideoResizeModeFill,
                                };
                                VIVideoResizeModeFit

                                Video frame is scaled to be fit the size of the view by maintaining the aspect ratio (black borders may be displayed).

                                VIVideoResizeModeFill

                                Video frame is scaled to fill the size of the view by maintaining the aspect ratio. Some portion of the video frame may be clipped.

                                VICallDelegate

                                Delegate that may be used to handle call events.

                                Members
                                –  call:didFailWithError:headers:

                                Triggered if the call is failed.

                                - (void)call:(VICall *)call didFailWithError:(NSError *)error headers:(NSDictionary *)headers
                                Parameters
                                call

                                Call that triggered the event

                                error

                                Error that contains status code and status message of the call failure

                                headers

                                Optional headers passed with event

                                –  call:didConnectWithHeaders:

                                Triggered after call was successfully connected.

                                - (void)call:(VICall *)call didConnectWithHeaders:(NSDictionary *)headers
                                Parameters
                                call

                                Call that triggered the event

                                headers

                                Optional headers passed with event

                                –  call:didDisconnectWithHeaders:answeredElsewhere:

                                Triggered after the call was disconnected.

                                - (void)call:(VICall *)call didDisconnectWithHeaders:(NSDictionary *)headers answeredElsewhere:(NSNumber *)answeredElsewhere
                                Parameters
                                call

                                Call that triggered the event

                                headers

                                Optional headers passed with event

                                answeredElsewhere

                                true if call was answered on another device

                                –  call:startRingingWithHeaders:

                                Triggered if the call is ringing. You should start playing call progress tone now.

                                - (void)call:(VICall *)call startRingingWithHeaders:(NSDictionary *)headers
                                Parameters
                                call

                                Call that triggered the event

                                headers

                                Optional headers passed with event

                                –  callDidStartAudio:

                                Triggered after audio is started in the call. You should stop playing progress tone when event is received

                                - (void)callDidStartAudio:(VICall *)call
                                Parameters
                                call

                                Call that triggered the event

                                –  call:didReceiveMessage:headers:

                                Triggered when message is received within the call. Implemented atop SIP INFO for communication between call endpoint and Voximplant cloud, and is separated from Voximplant messaging API.

                                - (void)call:(VICall *)call didReceiveMessage:(NSString *)message headers:(NSDictionary *)headers
                                Parameters
                                call

                                Call that triggered the event

                                message

                                Content of the message

                                headers

                                Optional headers passed with event

                                –  call:didReceiveInfo:type:headers:

                                Triggered when INFO message is received within the call.

                                - (void)call:(VICall *)call didReceiveInfo:(NSString *)body type:(NSString *)type headers:(NSDictionary *)headers
                                Parameters
                                call

                                Call that triggered the event

                                body

                                Body of INFO message

                                type

                                MIME type of INFO message

                                headers

                                Optional headers passed with event

                                –  call:didReceiveStatistics:

                                Triggered when call statistics are available for the call.

                                - (void)call:(VICall *)call didReceiveStatistics:(VICallStat *)stat
                                Parameters
                                call

                                Call that triggered the event

                                stat

                                Call statistics

                                –  call:didAddLocalVideoStream:

                                Triggered when local video stream is added to the call. The event is triggered on the main thread.

                                - (void)call:(VICall *)call didAddLocalVideoStream:(VIVideoStream *)videoStream
                                Parameters
                                call

                                Call that triggered the event

                                videoStream

                                Local video stream that is added to the call

                                –  call:didRemoveLocalVideoStream:

                                Triggered when local video stream is removed from the call. The event is triggered on the main thread.

                                - (void)call:(VICall *)call didRemoveLocalVideoStream:(VIVideoStream *)videoStream
                                Parameters
                                call

                                Call that triggered the event

                                videoStream

                                Local video stream that is removed to the call

                                –  iceCompleteForCall:

                                Triggered when ICE connection is complete

                                - (void)iceCompleteForCall:(VICall *)call
                                Parameters
                                call

                                Call that triggered the event

                                –  iceTimeoutForCall:

                                Triggered if connection was not established due to network connection problem between 2 peers

                                - (void)iceTimeoutForCall:(VICall *)call
                                Parameters
                                call

                                Call that triggered the event

                                VIClientCallManagerDelegate

                                Delegate that may be used to handle incoming calls

                                Members
                                –  client:didReceiveIncomingCall:withIncomingVideo:headers:  required

                                Triggered when there is a new incoming call to current user.

                                - (void)client:(VIClient *)client didReceiveIncomingCall:(VICall *)call withIncomingVideo:(BOOL)video headers:(NSDictionary *)headers
                                Parameters
                                client

                                VIClient instance

                                call

                                VICall instance

                                video

                                True if incoming call offers video, false otherwise

                                headers

                                Optional headers passed with event

                                VIClientSessionDelegate

                                Delegate that may be used to handle events for connection with VoxImplant Cloud.

                                Members
                                –  clientSessionDidConnect:  required

                                Triggered after connection to VoxImplant Cloud was established successfully.

                                - (void)clientSessionDidConnect:(VIClient *)client
                                Parameters
                                client

                                VIClient instance

                                –  clientSessionDidDisconnect:  required

                                Triggered if connection to VoxImplant Cloud was closed

                                - (void)clientSessionDidDisconnect:(VIClient *)client
                                Parameters
                                client

                                VIClient instance

                                –  client:sessionDidFailConnectWithError:  required

                                Triggered if connection to VoxImplant Cloud couldn’t be established

                                - (void)client:(VIClient *)client sessionDidFailConnectWithError:(NSError *)error
                                Parameters
                                client

                                VIClient instance

                                error

                                Error description

                                VICustomVideoSourceDelegate

                                Delegate that may be used to handle custom video source events

                                Members
                                –  startWithVideoFormat:  required

                                Triggered when custom video source is started

                                - (void)startWithVideoFormat:(VIVideoFormat *)format
                                Parameters
                                format

                                Video format

                                –  stop  required

                                Triggered when custom video source is stopped

                                - (void)stop

                                VIEndpointDelegate

                                Delegate that may be used to handle endpoint events

                                Members
                                –  endpoint:didAddRemoteVideoStream:

                                Triggered after endpoint added video stream to the call. Triggered always on the main thread, even delegateQueue is not the main thread

                                - (void)endpoint:(VIEndpoint *)endpoint didAddRemoteVideoStream:(VIVideoStream *)videoStream
                                Parameters
                                endpoint

                                VIEndpoint that triggered this event

                                videoStream

                                Remote video stream added to the call

                                –  endpoint:didRemoveRemoteVideoStream:

                                Triggered after endpoint removed video stream from the call. Triggered always on the main thread, even delegateQueue is not the main thread

                                - (void)endpoint:(VIEndpoint *)endpoint didRemoveRemoteVideoStream:(VIVideoStream *)videoStream
                                Parameters
                                endpoint

                                VIEndpoint that triggered this event

                                videoStream

                                Remote video stream removed from the call

                                VIMessengerDelegate

                                Delegate that may be used to handle messenger events.

                                Members
                                –  messenger:didGetUser:  required

                                Triggered as a result of [VIMessenger getUser:] method call

                                - (void)messenger:(VIMessenger *)messenger didGetUser:(VIUserEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIUserEvent object with user data and service information

                                –  messenger:didEditUser:  required

                                Triggered as the result of [VIMessenger editUserWithCustomData:privateCustomData:] method call. Triggered only for users specified in the ‘subscribe’ method call.

                                - (void)messenger:(VIMessenger *)messenger didEditUser:(VIUserEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIUserEvent object with user data and service information

                                –  messenger:didSubscribe:  required

                                Triggered as the result of [VIMessenger subscribe:] method call.

                                - (void)messenger:(VIMessenger *)messenger didSubscribe:(VISubscribeEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VISubscribeEvent object with subscription data and service information

                                –  messenger:didUnsubscribe:  required

                                Triggered as the result of [VIMessenger unsubscribe:] method call.

                                - (void)messenger:(VIMessenger *)messenger didUnsubscribe:(VISubscribeEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VISubscribeEvent object with subscription data and service information

                                –  messenger:didReceiveError:  required

                                Triggered if error occurred as the result of any messenger API methods call

                                - (void)messenger:(VIMessenger *)messenger didReceiveError:(VIErrorEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIErrorEvent object with error details and service information

                                –  messenger:didSetStatus:  required

                                Triggered after user presence state has been changed.

                                - (void)messenger:(VIMessenger *)messenger didSetStatus:(VIUserStatusEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIUserStatusEvent object with user status data and service information

                                –  messenger:didCreateConversation:  required

                                Triggered when conversation is created as the result of [VIMessenger createConversation:moderators:title:distinct:enablePublicJoin:customData:] method call

                                - (void)messenger:(VIMessenger *)messenger didCreateConversation:(VIConversationEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIConversationEvent object with conversation data and service information

                                –  messenger:didEditConversation:  required

                                Triggered when conversation properties were modified.

                                - (void)messenger:(VIMessenger *)messenger didEditConversation:(VIConversationEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIConversationEvent object with conversation data and service information

                                –  messenger:didRemoveConversation:  required

                                Triggered when conversation was removed as the result of [VIMessenger removeConversation:] method call.

                                - (void)messenger:(VIMessenger *)messenger didRemoveConversation:(VIConversationEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIConversationEvent object with conversation data and service info

                                –  messenger:didGetConversation:  required

                                Triggered when conversation description is received as the result of [VIMessenger getConversation:] method call.

                                - (void)messenger:(VIMessenger *)messenger didGetConversation:(VIConversationEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIConversationEvent object with conversation data and service info

                                –  messenger:didSendMessage:  required

                                Triggered when new message is received as the result of [VIConversation sendMessage:payload:] called by any user.

                                - (void)messenger:(VIMessenger *)messenger didSendMessage:(VIMessageEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIMessageEvent object with message data and service information

                                –  messenger:didEditMessage:  required

                                Triggered when message was edited.

                                - (void)messenger:(VIMessenger *)messenger didEditMessage:(VIMessageEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIMessageEvent object with message data and service information

                                –  messenger:didRemoveMessage:  required

                                Triggered when message was removed.

                                - (void)messenger:(VIMessenger *)messenger didRemoveMessage:(VIMessageEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIMessageEvent object with message data and service information

                                –  messenger:didReceiveTypingNotification:  required

                                Triggered when information that some user is typing something is received as the result of [VIConversation typing] called by any user.

                                - (void)messenger:(VIMessenger *)messenger didReceiveTypingNotification:(VIConversationServiceEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIConversationServiceEvent object with conversation UUID and service information

                                –  messenger:didReceiveReadConfirmation:  required

                                Triggered after another device with same logged in user called the [VIConversation markAsRead:] method.

                                - (void)messenger:(VIMessenger *)messenger didReceiveReadConfirmation:(VIConversationServiceEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIConversationServiceEvent object with conversation UUID and service information

                                –  messenger:didReceiveDeliveryConfirmation:  required

                                Triggered after another device with same logged in user called [VIConversation markAsDelivered:] method.

                                - (void)messenger:(VIMessenger *)messenger didReceiveDeliveryConfirmation:(VIConversationServiceEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIConversationServiceEvent object with conversation UUID and service information

                                –  messenger:didRetransmitEvents:  required

                                Triggered as the result of [VIConversation retransmitEventsFrom:to:] method call on some conversation for this SDK instance

                                - (void)messenger:(VIMessenger *)messenger didRetransmitEvents:(VIRetransmitEvent *)event
                                Parameters
                                messenger

                                VIMessenger instance

                                event

                                VIRetransmitEvent object with retransmitted events and service information

                                VIVideoPreprocessDelegate

                                Members
                                –  preprocessVideoFrame:rotation:

                                Triggered when new video frame is available for preprocessing.

                                - (void)preprocessVideoFrame:(CVPixelBufferRef)pixelBuffer rotation:(VIRotation)rotation
                                Parameters
                                pixelBuffer

                                Video frame

                                rotation

                                VIRotation video frame rotation

                                VIVideoRenderer

                                Members
                                –  didStart

                                Triggered when the video renderer is started

                                - (void)didStart
                                –  didStop

                                Triggered when the video renderer is stopped

                                - (void)didStop

                                VoxImplantDelegate

                                Warning: Deprecated. Use VICallDelegate, VIClientSessionDelegate and VIClientCallManagerDelegate. Please see details in each particular method.

                                Members
                                Connection Events
                                –  onConnectionSuccessful

                                Connection with VoxImplant cloud established

                                Warning: Deprecated. Use [VIClientSessionDelegate clientSessionDidConnect:] instead.

                                - (void)onConnectionSuccessful
                                –  onConnectionClosed

                                Connection with cloud closed

                                - (void)onConnectionClosed
                                –  onConnectionFailedWithError:

                                Connection with cloud failed

                                - (void)onConnectionFailedWithError:(NSString *)reason
                                Parameters
                                reason

                                Error message

                                Login Events
                                –  onLoginSuccessfulWithDisplayName:andAuthParams:

                                Triggered if login attempt was successful

                                - (void)onLoginSuccessfulWithDisplayName:(NSString *)displayName andAuthParams:(NSDictionary *)authParams
                                Parameters
                                displayName

                                Full name of logged in user

                                authParams

                                Auth params

                                 //Example auth params:
                                 {"accessExpire" : seconds_to_expire ,
                                 "accessToken" : "accessToken_abcdef..." ,
                                 "refreshExpire" : refresh_to_expire ,
                                 "refreshToken" : "refreshToken_abcdef..." }
                                
                                –  onLoginFailedWithErrorCode:

                                Triggered if login attempt failed

                                - (void)onLoginFailedWithErrorCode:(NSNumber *)errorCode
                                Parameters
                                errorCode

                                Numeric error code

                                –  onOneTimeKeyGenerated:

                                Returns one time key generated by the login server as a result of requestOneTimeLoginKey.

                                Warning: Deprecated. Use completion handler in [VIClient requestOneTimeKeyWithUser:result:] instead.

                                - (void)onOneTimeKeyGenerated:(NSString *)key
                                Parameters
                                key

                                One time key

                                –  onRefreshTokenFailed:

                                Triggered when refresh of login tokens failed

                                Warning: Deprecated. Use completion handler in [VIClient requestOneTimeKeyWithUser:result:] instead.

                                - (void)onRefreshTokenFailed:(NSNumber *)errorCode
                                Parameters
                                errorCode

                                Error code

                                –  onRefreshTokenSuccess:

                                Triggered when refresh of login tokens finished successfully

                                Warning: Deprecated. Use completion handler in [VIClient requestOneTimeKeyWithUser:result:] instead.

                                - (void)onRefreshTokenSuccess:(NSDictionary *)authParams
                                Parameters
                                authParams

                                Auth params

                                Incoming Call Event
                                –  onIncomingCall:caller:named:withVideo:withHeaders:
                                - (void)onIncomingCall:(NSString *)callId caller:(NSString *)from named:(NSString *)displayName withVideo:(bool)videoCall withHeaders:(NSDictionary *)headers
                                Parameters
                                callId

                                Id of call

                                from

                                SIP URI of caller

                                displayName

                                Displayed name of caller

                                videoCall

                                Incoming video call flag

                                headers

                                Optional headers passed with event

                                Call Events
                                –  onCallConnected:withHeaders:

                                Call established

                                Warning: Deprecated. Use [VICallDelegate call:didConnectWithHeaders:] instead.

                                - (void)onCallConnected:(NSString *)callId withHeaders:(NSDictionary *)headers
                                Parameters
                                callId

                                id of call

                                headers

                                Optional headers passed with event

                                –  onCallDisconnected:withHeaders:

                                Call terminated

                                - (void)onCallDisconnected:(NSString *)callId withHeaders:(NSDictionary *)headers
                                Parameters
                                callId

                                id of call

                                headers

                                Optional headers passed with event

                                –  onCallRinging:withHeaders:

                                Call ringing. You should start playing call progress tone now

                                Warning: Deprecated. Use [VICallDelegate call:startRingingWithHeaders:] instead.

                                - (void)onCallRinging:(NSString *)callId withHeaders:(NSDictionary *)headers
                                Parameters
                                callId

                                id of call

                                headers

                                Optional headers passed with event

                                –  onCallFailed:withCode:andReason:withHeaders:

                                Call failed

                                Warning: Deprecated. Use [VICallDelegate call:didFailWithError:headers:] instead.

                                - (void)onCallFailed:(NSString *)callId withCode:(int)code andReason:(NSString *)reason withHeaders:(NSDictionary *)headers
                                Parameters
                                callId

                                Id of call

                                code

                                Status code

                                reason

                                Status message

                                headers

                                Optional headers passed with event

                                –  onCallAudioStarted:

                                Call audio started. You should stop playing progress tone when event is received

                                Warning: Deprecated. Use [VICallDelegate callDidStartAudio:] instead.

                                - (void)onCallAudioStarted:(NSString *)callId
                                Parameters
                                callId

                                Id of call

                                –  onSIPInfoReceivedInCall:withType:andContent:withHeaders:

                                Info received inside a call

                                Warning: Deprecated. Use [VICallDelegate call:didReceiveInfo:type:headers:] instead.

                                - (void)onSIPInfoReceivedInCall:(NSString *)callId withType:(NSString *)type andContent:(NSString *)content withHeaders:(NSDictionary *)headers
                                Parameters
                                callId

                                Id of call

                                type

                                MIME type of info

                                content

                                Body of info message

                                headers

                                Optional headers passed with event

                                –  onMessageReceivedInCall:withText:withHeaders:

                                Instant message received inside a call

                                Warning: Deprecated. Use [VICallDelegate call:didReceiveMessage:headers:] instead.

                                - (void)onMessageReceivedInCall:(NSString *)callId withText:(NSString *)text withHeaders:(NSDictionary *)headers
                                Parameters
                                callId

                                Id of call

                                text

                                Message text

                                headers

                                Optional headers passed with event

                                –  onNetStatsReceivedInCall:withStats:

                                Event dispatched when packet loss data received from VoxImplant servers

                                Warning: Deprecated. Use [VICallDelegate call:didReceiveStatistics:] instead.

                                - (void)onNetStatsReceivedInCall:(NSString *)callId withStats:(const struct VoxImplantNetworkInfo *)stats
                                Parameters
                                callId

                                Id of call

                                stats

                                VoxImplantNetworkInfo

                                –  onPreprocessCameraCapturedVideo:rotation:

                                Triggered when new video frame is available for preprocessing.

                                - (void)onPreprocessCameraCapturedVideo:(CVPixelBufferRef)pixelBuffer rotation:(int)rotation
                                Parameters
                                pixelBuffer

                                Video frame pixel buffer

                                rotation

                                Video rotation