This repository has been archived on 2022-08-19. You can view files and clone it, but cannot push or open issues or pull requests.
hydrogen-web/src/matrix/calls/callEventTypes.ts

92 lines
2.1 KiB
TypeScript
Raw Normal View History

2022-02-15 21:35:20 +05:30
// allow non-camelcase as these are events type that go onto the wire
/* eslint-disable camelcase */
// TODO: Change to "sdp_stream_metadata" when MSC3077 is merged
export const SDPStreamMetadataKey = "org.matrix.msc3077.sdp_stream_metadata";
2022-03-09 15:59:39 +05:30
export interface SessionDescription {
sdp?: string;
type: RTCSdpType
}
2022-02-15 21:35:20 +05:30
export enum SDPStreamMetadataPurpose {
Usermedia = "m.usermedia",
Screenshare = "m.screenshare",
}
export interface SDPStreamMetadataObject {
purpose: SDPStreamMetadataPurpose;
audio_muted: boolean;
video_muted: boolean;
}
export interface SDPStreamMetadata {
[key: string]: SDPStreamMetadataObject;
}
export interface CallCapabilities {
'm.call.transferee': boolean;
'm.call.dtmf': boolean;
}
export interface CallReplacesTarget {
id: string;
display_name: string;
avatar_url: string;
}
2022-03-09 15:59:39 +05:30
export type MCallBase = {
2022-02-15 21:35:20 +05:30
call_id: string;
version: string | number;
}
2022-03-09 15:59:39 +05:30
export type MGroupCallBase = MCallBase & {
conf_id: string;
}
export type MCallAnswer<Base extends MCallBase> = Base & {
answer: SessionDescription;
2022-02-15 21:35:20 +05:30
capabilities?: CallCapabilities;
[SDPStreamMetadataKey]: SDPStreamMetadata;
}
2022-03-09 15:59:39 +05:30
export type MCallSelectAnswer<Base extends MCallBase> = Base & {
2022-02-15 21:35:20 +05:30
selected_party_id: string;
}
2022-03-09 15:59:39 +05:30
export type MCallInvite<Base extends MCallBase> = Base & {
offer: SessionDescription;
2022-02-15 21:35:20 +05:30
lifetime: number;
[SDPStreamMetadataKey]: SDPStreamMetadata;
}
2022-03-09 15:59:39 +05:30
export type MCallSDPStreamMetadataChanged<Base extends MCallBase> = Base & {
2022-02-15 21:35:20 +05:30
[SDPStreamMetadataKey]: SDPStreamMetadata;
}
2022-03-09 15:59:39 +05:30
export type MCallReplacesEvent<Base extends MCallBase> = Base & {
2022-02-15 21:35:20 +05:30
replacement_id: string;
target_user: CallReplacesTarget;
create_call: string;
await_call: string;
target_room: string;
}
2022-03-09 15:59:39 +05:30
export type MCAllAssertedIdentity<Base extends MCallBase> = Base & {
2022-02-15 21:35:20 +05:30
asserted_identity: {
id: string;
display_name: string;
avatar_url: string;
};
}
2022-03-09 15:59:39 +05:30
export type MCallCandidates<Base extends MCallBase> = Base & {
2022-02-15 21:35:20 +05:30
candidates: RTCIceCandidate[];
}
2022-03-09 15:59:39 +05:30
export type MCallHangupReject<Base extends MCallBase> = Base & {
2022-02-15 21:35:20 +05:30
reason?: CallErrorCode;
}
/* eslint-enable camelcase */