SippoConference
public protocol SippoConference
Represents a conference
-
True if the user was invited to the room
Declaration
Swift
var invited: Bool { get }
-
True if the conference was originated due to a SippoInvitationRequest
Declaration
Swift
var isAnswerToInvitationRequest: Bool { get }
-
Current user media constraints
Declaration
Swift
var userConstraints: [(constraints: ConferenceConstraint, muted: Bool)] { get }
-
Incoming invitation identifier
Declaration
Swift
var incomingInvitationId: String? { get }
-
Allows the user to join the conference.
Declaration
Swift
func join(for constraints: [ConferenceConstraint]?, configuration: ConferenceConfiguration, result: @escaping (Result<Void, ConferenceError>) -> Void)
Parameters
constraints
List of media that the user wants to share.
configuration
Provides info about fps,format,camera position and codes used in conference
result
Async Result, success when join is completed
-
Allow user to preview remote media before accept/decline an invitation This method doesn’t join the user to the conference, only subscribe to remote media
Declaration
Swift
func previewMedia(prepareAudio: Bool, result: @escaping (Result<Void, ConferenceError>) -> Void)
Parameters
prepareAudio
Publish muted audio to avoid delays when user joins conference
result
Async Result, success when previewMedia is completed
-
Invite a participant to the conference
Declaration
Swift
func invite(to: String, for constraints: [ConferenceConstraint], replyOf: String?, result: @escaping (Result<SippoInvitationResponse, ConferenceError>) -> Void)
Parameters
to
An identifier like username@domain or alias
constraints
List of media that the caller wants the participant to share. User who receives can accept it or provide another one when joining to or updating the conference.
replyOf
Provide invitationID if the invite is an InvitationRequest answer
result
Async Result with SippoInvitationResponse
-
Invite a contact to the conference
Declaration
Swift
func invite(contact: SippoContact, for constraints: [ConferenceConstraint], replyOf: String?, result: @escaping (Result<SippoInvitationResponse, ConferenceError>) -> Void)
Parameters
contact
a SippoContact instance
constraints
List of media that the caller wants the user to share. The user can accept it or provide another one when joining to or updating the conference.
replyOf
Provide invitationID if the invite is an InvitationRequest answer
result
Async Result with SippoInvitationResponse
-
Cancel an invitation to participant
Declaration
Swift
func cancelInvitation(to participant: String, result: @escaping (Result<String, ConferenceError>) -> Void)
Parameters
to
An identifier like username@domain or alias
result
Async Result with invitationId
-
Cancel an invitation to contact
Declaration
Swift
func cancelInvitation(to contact: SippoContact, result: @escaping (Result<String, ConferenceError>) -> Void)
Parameters
to
a SippoContact instance
result
Async Result with invitationId
-
Expel a participant from a conference
Declaration
Swift
func expel(participant: Participant, result: @escaping (Result<Void, ConferenceError>) -> Void)
Parameters
participant
Participant to expel
result
Async Result, success when expel is completed
-
Leave a conference
Declaration
Swift
func leave(result: ((Result<Void, ConferenceError>) -> Void)?)
Parameters
result
Async Result, success when leave is completed
-
Decline an invitation
Declaration
Swift
func declineInvitation()
-
Update a conference with new media, this override current media
Declaration
Swift
func update(constraints: [ConferenceConstraint], result: @escaping (Result<Void, ConferenceError>) -> Void)
Parameters
constraints
New shared media
result
Async Result, success when update is completed
-
Switch camera to front or back position
Declaration
Swift
func switchCamera()
-
Starts a new transfer
Declaration
Swift
func transferConference(to: String, constraints: [ConferenceConstraint], result: @escaping (Result<Void, ConferenceError>) -> Void)
Parameters
to
An identifier like username@domain or alias who will be called
constraints
List of media that the caller wants the participant to share.
result
Async Result, success when transfer is completed
-
Starts a new transfer
Declaration
Swift
func transferConference(to contact: SippoContact, constraints: [ConferenceConstraint], result: @escaping (Result<Void, ConferenceError>) -> Void)
Parameters
to
a SippoContact instance
constraints
List of media that the caller wants the participant to share.
result
Async Result, success when transfer is completed
-
Accepts a transfer
Declaration
Swift
func accept(sippoTransfer: SippoTransfer, result: @escaping (Result<Void, ConferenceError>) -> Void)
Parameters
sippoTransfer
Transfer to be accepted
result
Async Result, success when accept is completed
-
Start recording conference
Declaration
Swift
func startRecording(result: @escaping (Result<Void, ConferenceError>) -> Void)
Parameters
result
Async Result, success when startRecording is completed
-
Stop recording conference
Declaration
Swift
func stopRecording(result: @escaping (Result<Void, ConferenceError>) -> Void)
Parameters
result
Async Result, success when stopRecording is completed
-
View rendering local video if user is sharing video
Declaration
Swift
func userView(frame rect: CGRect, metalRender: Bool) -> UIView?
Parameters
rect
Rect for UIView
metalRender
Use metal library for video view
Return Value
UIView rendering local video
-
View rendering remote video if participant is sharing video
Declaration
Swift
func viewFor(remoteParticipant: Participant, frame rect: CGRect, metalRender: Bool) -> UIView?
Parameters
participant
Participant
rect
Rect for UIView
metalRender
Use metal library for video view
Return Value
A UIView rendering remote video if participant is sharing it
-
Remote participants in conference
Declaration
Swift
func remoteParticipants(completion: @escaping ([(participant: Participant, activeConstraints: [ConferenceConstraint], status: Participant.Status)]) -> Void)
Parameters
completion
Closure to receive participants with active constraints and status
-
Mute local media
Declaration
Swift
func muteLocal(constraint: ConferenceConstraint)
Parameters
constraint
video or audio
-
Unmute local media
Declaration
Swift
func unmuteLocal(constraint: ConferenceConstraint)
Parameters
constraint
video or audio
-
Mute remote media
Declaration
Swift
func muteRemoteVideo(participant: Participant)
Parameters
participant
Participant to mute
-
Unmute remote media
Declaration
Swift
func unmuteRemoteVideo(participant: Participant)
Parameters
participant
Participant to unmute
-
join(result:)
Extension methodAllows the user to join the conference. If user was invited takes media constraints from invitation, in other case video and audio is set as default.
- result: Async Result, success when startRecording is completed
Declaration
Swift
func join(result: @escaping (Result<Void, ConferenceError>) -> Void)