add callmessage typescript class
parent
c803cdaa8e
commit
a538cac491
@ -0,0 +1,50 @@
|
|||||||
|
import { SignalService } from '../../../../protobuf';
|
||||||
|
import { MessageParams } from '../Message';
|
||||||
|
import { ContentMessage } from '..';
|
||||||
|
import { signalservice } from '../../../../protobuf/compiled';
|
||||||
|
import { TTL_DEFAULT } from '../../../constants';
|
||||||
|
interface CallMessageMessageParams extends MessageParams {
|
||||||
|
type: SignalService.CallMessage.Type;
|
||||||
|
sdpMLineIndexes: Array<number>;
|
||||||
|
sdpMids: Array<string>;
|
||||||
|
sdps: Array<string>;
|
||||||
|
referencedAttachmentTimestamp: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class CallMessageMessage extends ContentMessage {
|
||||||
|
public readonly type: signalservice.CallMessage.Type;
|
||||||
|
public readonly sdpMLineIndexes: Array<number>;
|
||||||
|
public readonly sdpMids: Array<string>;
|
||||||
|
public readonly sdps: Array<string>;
|
||||||
|
|
||||||
|
constructor(params: CallMessageMessageParams) {
|
||||||
|
super({ timestamp: params.timestamp, identifier: params.identifier });
|
||||||
|
this.type = params.type;
|
||||||
|
this.sdpMLineIndexes = params.sdpMLineIndexes;
|
||||||
|
this.sdpMids = params.sdpMids;
|
||||||
|
this.sdps = params.sdps;
|
||||||
|
// this does not make any sense
|
||||||
|
if (this.type !== signalservice.CallMessage.Type.END_CALL && this.sdps.length === 0) {
|
||||||
|
throw new Error('sdps must be set unless this is a END_CALL type message');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public contentProto(): SignalService.Content {
|
||||||
|
return new SignalService.Content({
|
||||||
|
callMessage: this.dataCallProto(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public ttl() {
|
||||||
|
return TTL_DEFAULT.CALL_MESSAGE;
|
||||||
|
}
|
||||||
|
|
||||||
|
private dataCallProto(): SignalService.CallMessage {
|
||||||
|
return new SignalService.CallMessage({
|
||||||
|
type: this.type,
|
||||||
|
sdpMLineIndexes: this.sdpMLineIndexes,
|
||||||
|
sdpMids: this.sdpMids,
|
||||||
|
sdps: this.sdps,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue