SippoConference

public protocol SippoConference

Represents a conference

Properties

  • 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 }

Api

  • 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 method

    Allows 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)