Rate this page:

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.

Methods

addDelegate:

Copy URL
- (

void

)addDelegate:(

id<VICallDelegate>

)delegate

Adds a call delegate to handle the call events.

Parameters

Returns

  • type:

    void

answerWithSettings:

Copy URL
- (

void

)answerWithSettings:(

VICallSettings *

)settings

Answers an incoming call.

Parameters

  • settings:

    VICallSettings *

    Call settings with additional call parameters, such as the preferred video codec, custom data, extra headers etc.

Returns

  • type:

    void

duration

Copy URL
- (

NSTimeInterval

)duration

Gets a call's duration.

Returns

  • type:

    NSTimeInterval

hangupWithHeaders:

Copy URL
- (

void

)hangupWithHeaders:(

nullable NSDictionary *

)headers

Terminates a call. Call should be either established or dialing.

Parameters

  • headers:

    nullable NSDictionary *

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

Returns

  • type:

    void

issueLevelForType:

Copy URL
- (

VIQualityIssueLevel

)issueLevelForType:(

VIQualityIssueType

)type

Gets the current level of the specific quality issue.

Parameters

qualityIssues

Copy URL
- (

NSArray<VIQualityIssueType> *

)qualityIssues

Gets all quality issues types.

Returns

rejectWithMode:headers:

Copy URL
- (

void

)rejectWithMode:(

VIRejectMode

)mode
headers:(

nullable NSDictionary *

)headers

Rejects an incoming call.

Parameters

  • Call rejection mode

  • headers:

    nullable NSDictionary *

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

Returns

  • type:

    void

removeDelegate:

Copy URL
- (

void

)removeDelegate:(

id<VICallDelegate>

)delegate

Removes the previously added delegate.

Parameters

Returns

  • type:

    void

sendDTMF:

Copy URL
- (

BOOL

)sendDTMF:(

NSString *

)dtmf

Sends a DTMF within a call.

Parameters

  • dtmf:

    NSString *

    DTMFs

Returns

  • type:

    BOOL

sendInfo:mimeType:headers:

Copy URL
- (

void

)sendInfo:(

NSString *

)body
mimeType:(

NSString *

)mimeType
headers:(

nullable NSDictionary *

)headers

Sends an INFO message within a call.

Parameters

  • body:

    NSString *

    Custom string data

  • mimeType:

    NSString *

    MIME type of info

  • headers:

    nullable NSDictionary *

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

Returns

  • type:

    void

sendMessage:

Copy URL
- (

void

)sendMessage:(

NSString *

)message

Sends a message within a call.

Implemented atop of SIP INFO for communication between the call endpoint and the Voximplant Cloud, and is separated from Voximplant messaging API.

Parameters

  • message:

    NSString *

    Message text

Returns

  • type:

    void

setHold:completion:

Copy URL
- (

void

)setHold:(

BOOL

)hold
completion:(

nullable VICompletionBlock

)completion

Holds or unholds a call.

Hold functionality is not supported in conference calls. In case of a conference call it returns VICallErrorCodeIncorrectOperation via the completion block.

Parameters

  • hold:

    BOOL

    Whether to hold or unhold the call

  • completion:

    nullable VICompletionBlock

    Completion block to handle the result of the operation

Returns

  • type:

    void

setSendVideo:completion:

Copy URL
- (

void

)setSendVideo:(

BOOL

)video
completion:(

nullable VICompletionBlock

)completion

Starts or stops sending video to the call.

Starting the version 2.34.3 the API behaves the same way for conference and video calls.

For the version 2.34.2 and below for the conference video call mutes or un-mutes sending video (video stream in the 'muted' state still consumes a small bandwidth).

Parameters

  • video:

    BOOL

    Whether to send the video to the call

  • completion:

    nullable VICompletionBlock

    Completion block to handle the result of the operation

Returns

  • type:

    void

start

Copy URL
- (

void

)start

Starts an outgoing call.

Returns

  • type:

    void

startInAppScreenSharing:

Copy URL
- (

void

)startInAppScreenSharing:(

nullable VICompletionBlock

)completion

Starts in-app screen sharing.

Note that before recording actually starts, the user may be prompted with UI to confirm recording. Captures screen only inside the application. Simulator is not supported.

Use [VICall setSendVideo:completion:] method with "sendVideo" parameter "YES" value to return to the default capture mode (camera or custom camera mode). Use [VICall setSendVideo:completion:] method with "sendVideo" parameter "NO" value to stop screen capturing.

Video of the screen is sent in HD quality (720p).

Parameters

  • completion:

    nullable VICompletionBlock

    Completion block to handle the result of the operation

Returns

  • type:

    void

startReceiveVideoWithCompletion:

Copy URL
- (

void

)startReceiveVideoWithCompletion:(

nullable VICompletionBlock

)completion

Starts receiving video if receiving video has not been enabled before. Stopping receiving video during the call is not supported.

Parameters

  • completion:

    nullable VICompletionBlock

    Completion block to handle the result of operation

Returns

  • type:

    void

Props

callId

Copy URL
@property (strong, readonly, nonatomic) 

NSString *

callId

Call's ID.

Returns

  • type:

    NSString *

callKitUUID

Copy URL
@property (strong, nullable, nonatomic) 

NSUUID *

callKitUUID

CallKit UUID that may be used to match an incoming call with a push notification received before.

Always nil for outgoing calls on VICall instance creation.

For outgoing calls it is recommended to set CXStartCallAction.callUUID value to this property on handling CXStartCallAction

Returns

  • type:

    NSUUID *

endpoints

Copy URL
@property (strong, readonly, nonatomic) 

NSArray<VIEndpoint *> *

endpoints

Array of the endpoints associated with a call.

Returns

localVideoStreams

Copy URL
@property (strong, readonly, nonatomic) 

NSArray<VILocalVideoStream *> *

localVideoStreams

Local video streams associated with the call.

Returns

qualityIssueDelegate

Copy URL
@property (weak, nullable, nonatomic) 

id<VIQualityIssueDelegate>

qualityIssueDelegate

Sets VIQualityIssueDelegate to monitor issues that affect the call quality.

Returns

sendAudio

Copy URL
@property (assign, nonatomic) 

BOOL

sendAudio

Whether to transfer audio from the microphone into a call.

Setting this property enables or disables audio transfer.

Returns

  • type:

    BOOL

videoEnabled

Copy URL
@property (assign, readonly, nonatomic, getter = isVideoEnabled) 

BOOL

videoEnabled

Whether video is enabled in a call.

Returns

  • type:

    BOOL

videoSource

Copy URL
@property (strong, nullable, nonatomic) 

VIVideoSource *

videoSource

Video source currently used in the call.

Default value:

Must be set before using [VICall start] and [VICall answerWithSettings:] if needed.

Returns