Conferences

This section explains how we create a conference and invite a new participant

First step is create the conference object and a delegate to manage conference updates

public class StackConferenceDelegateExample: SippoConferenceDelegate {

    public func conferenceUpdated(_ conference: SippoConference) {

    }

    public func conferenceDestroyed() {

    }

    public func conference(_ conference: SippoConference, didAddParticpant: String) {
        let videoView = conference.viewFor(participant: didAddParticpant, frame: CGRect.zero)
    }

    public func conference(_ conference: SippoConference, didRemoveParticpant: String) {

    }

    public func conference(_ conference: SippoConference, didCancelInvitation: String) {

    }
}

let delegate = SippoConferenceDelegateExample()
var aConference: SippoConference?

SippoClient.client.conferences.createConference(recording: false, delegate: delegate) { task in
    let media: [ConferenceConstraint] = [.video, .audio]

    switch task {
    case let .success(conference):
        aConference = conference

Once we create a conference we can invite a participant passing needed media and join the room

conference.invite(participant: "aParticpant", for: media, invitationID: nil) { task in
    conference.join(for: media) { task in
                // Check task for errors

At this point the conference is established and we are sharing video and voice, we can get video view for user or a participant

    let userView = conference.userView(frame: CGRect.zero)
    conference.viewFor(participant: conference.participants.first!, frame: CGRect.zero)
    }
   }
    case let .error(error):
        break
    }
}

To add participant view is recommended to request it via conference delegate

 func conference(_ conference: SippoConference, didAddParticpant: String)