Call
public class Call
A Call represents a media call on Cisco Webex.
The application can create an outgoing Call
by calling Phone.dial(...)
function:
let address = "coworker@example.com"
let localVideoView = MediaRenderView()
let remoteVideoView = MediaRenderView()
let mediaOption = MediaOption.audioVideo(local: localVideoView, remote: remoteVideoView)
webex.phone.dial(address, option:mediaOption) {
switch ret {
case .success(let call):
// success
call.onConnected = {
}
call.onDisconnected = { reason in
}
case .failure(let error):
// failure
}
}
The application can receive an incoming Call
on Phone.onIncoming
function:
webex.phone.onIncoming = { call in
call.answer(option: mediaOption) { error in
if let error = error {
// success
}
else {
// failure
}
}
}
See
see Phone API about how to create calls.See
CallStatus for the states and transitions of aCall
.
Since
1.2.0-
Declaration
Swift
public enum Direction
-
Declaration
Swift
public enum DisconnectReason
-
Declaration
Swift
public enum MediaChangedEvent
-
Declaration
Swift
public enum CallMembershipChangedEvent
-
Declaration
Swift
public enum iOSBroadcastingEvent
-
Declaration
Swift
public enum Capabilities
-
Declaration
Swift
public enum WaitReason
-
The options to specify how the video adjusts its content to be render in a view.
Since
2.6.0Declaration
Swift
public enum VideoRenderMode
-
Callback when remote participant(s) is ringing.
Since
1.2.0Declaration
Swift
public var onRinging: (() -> Void)? { get set }
-
Callback when the call is waiting.
Since
2.4.0Declaration
Swift
public var onWaiting: ((WaitReason) -> Void)? { get set }
-
Callback when remote participant(s) answered and this
Call
is connected.Since
1.2.0Declaration
Swift
public var onConnected: (() -> Void)? { get set }
-
Callback when this
Call
is disconnected (hangup, cancelled, get declined or other self device pickup the call).Since
1.2.0Declaration
Swift
public var onDisconnected: ((DisconnectReason) -> Void)?
-
Callback when the memberships of this
Call
have changed.Since
1.3.0Declaration
Swift
public var onCallMembershipChanged: ((CallMembershipChangedEvent) -> Void)?
-
Callback when the media types of this
Call
have changed.Since
1.2.0Declaration
Swift
public var onMediaChanged: ((MediaChangedEvent) -> Void)?
-
Callback when the capabilities of this
Call
have changed.Since
1.2.0Declaration
Swift
public var onCapabilitiesChanged: ((Capabilities) -> Void)?
-
Callback when the iOS broadcasting status of this
Call
have changed.Since
1.4.0Declaration
Swift
public var oniOSBroadcastingChanged: ((iOSBroadcastingEvent) -> Void)?
-
Callback when the
Call
is scheduled call and the schedules of the call has been changed.Since
2.6.0Declaration
Swift
public var onScheduleChanged: ((Call) -> Void)?
-
Multi stream feature observer protocol. Client need to set the protocol implemention into certain call.
See
see MultiStreamObserverSince
2.0.0Declaration
Swift
public var multiStreamObserver: MultiStreamObserver?
-
The status of this
Call
.See
CallStatusSince
1.2.0Declaration
Swift
public internal(set) var status: CallStatus { get set }
-
The direction of this
Call
.Since
1.2.0Declaration
Swift
public private(set) var direction: Direction { get }
-
True if the DTMF keypad is enabled for this
Call
. Otherwise, false.Since
1.2.0Declaration
Swift
public var sendingDTMFEnabled: Bool { get }
-
True if the remote party of this
Call
is sending video. Otherwise, false.Since
1.2.0Declaration
Swift
public var remoteSendingVideo: Bool { get }
-
True if the remote party of this
Call
is sending audio. Otherwise, false.Since
1.2.0Declaration
Swift
public var remoteSendingAudio: Bool { get }
-
True if the remote party of this
Call
is sending screen share. Otherwise, false.Since
1.3.0Declaration
Swift
public var remoteSendingScreenShare: Bool { get }
-
True if the local party of this
Call
is sending video. Otherwise, false.Since
1.2.0Declaration
Swift
public var sendingVideo: Bool { get set }
-
True if this
Call
is sending audio. Otherwise, false.Since
1.2.0Declaration
Swift
public var sendingAudio: Bool { get set }
-
True if the local party of this
Call
is sending screen share. Otherwise, false.Since
1.4.0Declaration
Swift
public var sendingScreenShare: Bool { get set }
-
True if the local party of this
Call
is receiving video. Otherwise, false.Since
1.2.0Declaration
Swift
public var receivingVideo: Bool { get set }
-
True if the local party of this
Call
is receiving audio. Otherwise, false.Since
1.2.0Declaration
Swift
public var receivingAudio: Bool { get set }
-
True if the local party of this
Call
is receiving screen share. Otherwise, false.Since
1.3.0Declaration
Swift
public var receivingScreenShare: Bool { get set }
-
True if the loud speaker is selected as the audio output device for this
Call
. Otherwise, false.Since
1.2.0Declaration
Swift
public var isSpeaker: Bool { get set }
-
The camera facing mode selected for this
Call
.Since
1.2.0Declaration
Swift
public var facingMode: Phone.FacingMode { get set }
-
The local video render view dimensions (points) of this
Call
.Since
1.2.0Declaration
Swift
public var localVideoViewSize: CMVideoDimensions { get }
-
The remote video render view dimensions (points) of this
Call
.Since
1.2.0Declaration
Swift
public var remoteVideoViewSize: CMVideoDimensions { get }
-
The remote screen share render view dimensions (points) of this
Call
.Since
1.3.0Declaration
Swift
public var remoteScreenShareViewSize: CMVideoDimensions { get }
-
The local screen share render view dimensions (points) of this
Call
.Since
1.4.0Declaration
Swift
public var localScreenShareViewSize: CMVideoDimensions { get }
-
Specify how the remote video adjusts its content to be render in a view.
Since
2.6.0Declaration
Swift
public var remoteVideoRenderMode: VideoRenderMode { get set }
-
The video layout for the active speaker and other attendees in the group video meeting.
Note
videoLayout is deprecated. UsecompositedVideoLayout
instead, they do the same thing, just changed the namingSince
2.6.0Declaration
Swift
@available(*, deprecated) public var videoLayout: MediaOption.CompositedVideoLayout? { get set }
-
The composited video layout for the active speaker and other attendees in the group video meeting.
Since
2.8.0Declaration
Swift
public var compositedVideoLayout: MediaOption.CompositedVideoLayout? { get set }
-
Set the composited video layout with callback for the active speaker and other attendees in the group video meeting.
Note
the layout just affects when
Phone.videoStreamMode
iscomposited
Since
2.8.0
Declaration
Swift
public func setCompositedVideoLayout(_ layout: MediaOption.CompositedVideoLayout, completionHandler: @escaping (Error?) -> Void)
Parameters
layout
the video layout mode.
completionHandler
A closure to be executed when completed, with error if the invocation is illegal or failed, otherwise nil.
-
Call Memberships represent participants in this
Call
.Since
1.2.0Declaration
Swift
public private(set) var memberships: [CallMembership] { get set }
-
The initiator of this
Call
.Since
1.2.0Declaration
Swift
public var from: CallMembership? { get }
-
The intended recipient of this
Call
.Since
1.2.0Declaration
Swift
public var to: CallMembership? { get }
-
Returns the associated Space of this
Call
.Since
2.6.0Declaration
Swift
public var spaceId: String? { get }
-
Returns the schedules of this call if this call has one or more schedules.
Since
2.6.0Declaration
Swift
public private(set) var schedules: [CallSchedule]? { get }
-
A local unique identifier of a
Call
for Apple CallKit.Since
1.2.0Declaration
Swift
public var uuid: UUID
-
The render views for local and remote video of this call. If is nil, it will update the video state as inactive to the server side.
Since
1.3.0Declaration
Swift
public var videoRenderViews: (local: MediaRenderView, remote: MediaRenderView)? { get set }
-
The render view for the remote screen share of this call. If is nil, it will update the screen sharing state as inactive to the server side.
Since
1.3.0Declaration
Swift
public var screenShareRenderView: MediaRenderView? { get set }
-
Get all opened auxiliary streams.
See
see AuxStreamSince
2.0.0Declaration
Swift
public lazy private(set) var auxStreams: Array<AuxStream> { get set }
-
Speaking
CallMembership
in meeting Video presented on remote media render view.See
see CallMembership.isActiveSpeakerSince
2.0.0Declaration
Swift
public internal(set) var activeSpeaker: CallMembership? { get }
-
Available auxiliary stream count.
Since
2.0.0Declaration
Swift
public private(set) var availableAuxStreamCount: Int { get set }
-
Acknowledge (without answering) an incoming call. Will cause the initiator’s Call instance to emit the ringing event.
See
see CallStatusSince
1.2.0Declaration
Swift
public func acknowledge(completionHandler: @escaping (Error?) -> Void)
Parameters
completionHandler
A closure to be executed when completed, with error if the invocation is illegal or failed, otherwise nil.
Return Value
Void
-
Answers this call. This can only be invoked when this call is incoming and in ringing status.
See
see CallStatusSince
1.2.0Declaration
Swift
public func answer(option: MediaOption, completionHandler: @escaping (Error?) -> Void)
Parameters
option
Intended media options - audio only or audio and video - for the call.
completionHandler
A closure to be executed when completed, with error if the invocation is illegal or failed, otherwise nil.
Return Value
Void
-
Rejects this call. This can only be invoked when this call is incoming and in ringing status.
Since
1.2.0See
see CallStatusDeclaration
Swift
public func reject(completionHandler: @escaping (Error?) -> Void)
Parameters
completionHandler
A closure to be executed when completed, with error if the invocation is illegal or failed, otherwise nil.
Return Value
Void
-
Disconnects this call. This can only be invoked when this call is in answered status.
Since
1.2.0See
see CallStatusDeclaration
Swift
public func hangup(completionHandler: @escaping (Error?) -> Void)
Parameters
completionHandler
A closure to be executed when completed, with error if the invocation is illegal or failed, otherwise nil.
Return Value
Void
-
Admit CallMemberships into the meeting from the lobby. This should be called by moderator.
Since
2.4.0Declaration
Swift
public func letIn(_ memberships: [CallMembership], completionHandler: @escaping (Error?) -> Void)
Parameters
memberships
the call memberships that waiting in the lobby.
completionHandler
A closure to be executed when completed, with error if the invocation is illegal or failed, otherwise nil.
Return Value
Void
-
Sends feedback for this call to Cisco Webex team.
Since
1.2.0Declaration
Swift
public func sendFeedbackWith(rating: Int, comments: String? = nil, includeLogs: Bool = false)
Parameters
rating
The rating of the quality of this call between 1 and 5 where 5 means excellent quality.
comments
The comments for this call.
includeLogs
True if to include logs, False as not.
Return Value
Void
-
Sends DTMF events to the remote party. Valid DTMF events are 0-9, *, #, a-d, and A-D.
Since
1.2.0Declaration
Swift
public func send(dtmf: String, completionHandler: ((Error?) -> Void)?)
Parameters
dtmf
any combination of valid DTMF events matching regex mattern “^[0-9#*abcdABCD]+$”
completionHandler
A closure to be executed when completed, with error if the invocation is illegal or failed, otherwise nil.
Return Value
Void
-
Start screen sharing in this call.
Since
1.4.0Declaration
Swift
@available(iOS 11.2, *) public func startSharing(completionHandler: @escaping (Error?) -> Void)
Parameters
completionHandler
A closure to be executed when completed, with error if the invocation is illegal or failed, otherwise nil.
Return Value
Void
-
Stop screen sharing in this call.
Since
1.4.0Declaration
Swift
@available(iOS 11.2, *) public func stopSharing(completionHandler: @escaping (Error?) -> Void)
Parameters
completionHandler
A closure to be executed when completed, with error if the invocation is illegal or failed, otherwise nil.
Return Value
Void
-
Open one auxiliary stream with a media render view. The Maximum number of auxiliary videos could be opened is 4. When one auxiliary streams manually closed, could call this API to reopen. Result will call back through auxStreamOpenedEvent
See
see AuxStreamChangeEvent.auxStreamOpenedEventSince
2.0.0Declaration
Swift
public func openAuxStream(view: MediaRenderView)
Parameters
view
the auxiliary display view.
Return Value
Void
-
Close one auxiliary stream with the indicated media render view. Result will call back throuhd auxStreamClosedEvent.
See
see AuxStreamChangeEvent.auxStreamClosedEventSince
2.0.0Declaration
Swift
public func closeAuxStream(view: MediaRenderView)
Parameters
view
the auxiliary stream’s render view that will be closed.
Return Value
Void
-
Update audio session for CallKit. This must be called on provider:didActivateAudioSession: to reactivate the audio session.
Since
1.3.0Declaration
Swift
func updateAudioSession()