Multiparty Video Conferencing feature overview
ConnectyCube Multiparty Video Conferencing API is built on top of WebRTC protocol and based on top of WebRTC SFU architecture.
Max people per Conference call is 12.
Video Conferencing is available starting from Advanced plan.
To get a difference between P2P calling and Conference calling please read our ConnectyCube Calling API comparison blog page.
Features supported
- Video/Audio Conference with up to 12 people
- Join-Rejoin video room functionality (like Skype)
- Guest rooms
- Mute/Unmute audio/video streams
- Display bitrate
- Switch video input device (camera)
Code samples
There are ready-to-go FREE code samples to help you better understand how to integrate multiparty video conferencing calling capabilities in your apps:
- Multiparty Video Conferencing code sample, ObjC - request
Prerequisites
Multiparty Video Conferencing API is based on top of regular Video Calling API, so it’s good to learn its API as well.
Config
ConferenceConfig class introduces new setting for Conference - conference endpoint.
CYBCallConfig class introduces new setting for Conference - conference endpoint.
To set a specific conference endpoint use this method.
Note
Endpoint should be a correct ConnectyCube Conference server endpoint.
Use this method to get a current conference endpoint (default is nil):
Conference client
Conference module has its own client which is described in current part.
Conference client delegate
Conference client delegate is inherited from base client delegate and has all of its protocol methods implemented as well.
Base client delegate protocol methods
All protocol methods below have their own explanation inlined and are optional.
Conference client delegate protocol methods
All protocol methods below are conference client specific, optional to be implemented and have their own explanation inlined.
Conference client interface
ConferenceCalls is a singleton based class which is used to create and operate with conference sessions.
In order to create new conference session you should use method below:
CYBCallConferenceClient is a singleton based class which is used to create and operate with conference sessions. It has observer (delegates) manager, which can be activated/deactivated with two simple methods:
Delegate should conform to CYBCallConferenceClientDelegate protocol, which is inherited from base client delegate.
In order to create new conference session you should use method below:
It will create session locally first, without session ID, until server will perform a didCreateNewSession:
callback in CYBCallConferenceClientDelegate protocol, where session ID will be assigned and session will receive its CYBCallSessionStateNew state. After that you can join or leave (destroy) it, etc. Conference session is explained in the following paragraph.
Conference session
ConferenceSession is inherited from base session class, and has all of its basics, such as state
, currentUserId
, localMediaStream
, ability to get remote audio and video tracks for a specific user IDs.
You can subscribe and unsubscribe from publishers using methods below.
And in order to close/leave session you can perform the following method:
Note
You do not need to be joined as publisher in order to perform subscription based operations in session.
CYBCallConferenceSession is inherited from base session class, and has all of its basics, such as state
, currentUserID
, localMediaStream
, ability to get remote audio and video tracks for a specific user IDs:
and ability to get a connection state for a specific user ID if his connection is opened:
See CYBCallBaseSession class for more inline documentation. As for conference specific methods, conference session ID is NSNumber. Each conference session is tied to a specific ConnectyCube dialog ID (NSString).
It also has a publishers list property. But publisher list will be only valid if you perform join to that session as publisher using method below:
This method joins session and will publish your feed (make you an active publisher in room). Everyone in room will be able to subscribe and receive your feed.
Note
Only can be used when session has a valid session ID, e.g. is created on server and notified to you with
didCreateNewSession:
callback from CYBCallConferenceClientDelegate protocol.
You can subscribe and unsubscribe from publishers using methods below.
Note
You do not need to be joined as publisher in order to perform subscription based operations in session.
Note
These methods can also be used only when session has a valid session ID, e.g. is created on server and notified to you with
didCreateNewSession:
callback from CYBCallConferenceClientDelegate protocol.
And in order to close/leave session you can perform the following method:
Note
This method can be called in any state of the session and will always close it no matter what.
Examples and implementations
sample-videochat-conference-objc is a great example of our ConnectyCubeCalls Conference module, classes to look at: CallViewController.