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)