VoIP class

The parent highlevel voip class, this trnslates matrix events to webrtc methods via CallSession or GroupCallSession methods

Constructors

VoIP(Client client, WebRTCDelegate delegate, {bool enableSFUE2EEKeyRatcheting = false, bool useUnprotectedPerDeviceStateKeys = false, int keyRingSize = 16, CallTimeouts? timeouts})

Properties

calls → Map<VoipId, CallSession>
no setter
client → Client
final
currentCID ↔ VoipId?
getter/setter pair
currentGroupCID ↔ VoipId?
getter/setter pair
currentSessionId ↔ String
the current instance of voip, changing this will drop any ongoing mesh calls with that sessionId
getter/setter pair
delegate → WebRTCDelegate
final
enableSFUE2EEKeyRatcheting → bool
set to true if you want to use the ratcheting mechanism with your keyprovider remember to set the window size correctly on your keyprovider
final
groupCalls → Map<VoipId, GroupCallSession>
no setter
hashCode → int
The hash code for this object.
no setterinherited
incomingCallRoomId → Map<String, String>
map of roomIds to the invites they are currently processing or in a call with used for handling glare in p2p calls
no setter
keyRingSize → int
the following parameters are only used in livekit calls, but cannot be in the LivekitBackend class because that could be created from a pre-existing state event controls how many key indices can you have before looping back to index 0 only used in livekit calls
final
localParticipant → CallParticipant?
no setter
localPartyId → String
no setter
onIncomingCallSetup → CachedStreamController<CallSession>
The stream is used to prepare for incoming peer calls in a mesh call For example, registering listeners
final
onIncomingCallStart → CachedStreamController<CallSession>
The stream is used to signal the start of an incoming peer call in a mesh call
final
onIncomingGroupCall → StreamController<GroupCallSession>
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
timeouts ↔ CallTimeouts?
getter/setter pair
useUnprotectedPerDeviceStateKeys → bool
uses unprotected state keys for group call member events.
final

Methods

createGroupCallFromRoomStateEvent(CallMembership membership, {bool emitHandleNewGroupCall = true}) → Future<void>
Create a new group call from a room state event.
createNewCall(CallOptions opts) → CallSession
fetchOrCreateGroupCall(String groupCallId, Room room, CallBackend backend, String? application, String? scope, {bool preShareKey = true}) → Future<GroupCallSession>
Create a new group call in an existing room.
getCallType(String sdp) → CallType
getGroupCallById(String roomId, String groupCallId) → GroupCallSession?
getIceServers() → Future<List<Map<String, dynamic>>>
hasActiveCall(Room room) → bool
inviteToCall(Room room, CallType type, {String? userId, String? deviceId}) → Future<CallSession>
Make a P2P call to room
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onAssertedIdentityReceived(Room room, Map<String, dynamic> content) → Future<void>
onCallAnswer(Room room, String remoteUserId, String? remoteDeviceId, Map<String, dynamic> content) → Future<void>
onCallCandidates(Room room, Map<String, dynamic> content) → Future<void>
onCallHangup(Room room, Map<String, dynamic> content) → Future<void>
onCallInvite(Room room, String remoteUserId, String? remoteDeviceId, Map<String, dynamic> content) → Future<void>
onCallNegotiate(Room room, Map<String, dynamic> content) → Future<void>
onCallReject(Room room, Map<String, dynamic> content) → Future<void>
onCallSelectAnswer(Room room, Map<String, dynamic> content) → Future<void>
onSDPStreamMetadataChangedReceived(Room room, Map<String, dynamic> content) → Future<void>
setGroupCallById(GroupCallSession groupCallSession) → void
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Properties

customTxid ↔ String?
getter/setter pair