infobip-rtc
Version:
Infobip RTC JavaScript SDK - Infobip WebRTC API Implementation
81 lines • 2.32 kB
JavaScript
import { ApiEventEmitter } from "../../util/ApiEventEmitter";
import { CallsApiEvent } from "../event/CallsApiEvents";
export class DefaultCall {
constructor(basicCallOptions, sourceEndpoint, destinationEndpoint) {
this.basicCallOptions = basicCallOptions;
this.sourceEndpoint = sourceEndpoint;
this.destinationEndpoint = destinationEndpoint;
this.apiEventEmitter = new ApiEventEmitter();
}
on(name, handler) {
if (!Object.values(CallsApiEvent)
.find(apiEvent => apiEvent === name)) {
throw new Error(`Unknown event: ${name}!`);
}
this.apiEventEmitter.on(name, handler);
}
id() {
return this.applicationCall.id();
}
options() {
return this.basicCallOptions;
}
customData() {
return this.options().customData;
}
duration() {
return this.applicationCall.duration();
}
status() {
return this.applicationCall.status();
}
startTime() {
return this.applicationCall.startTime();
}
establishTime() {
return this.applicationCall.establishTime();
}
endTime() {
return this.applicationCall.endTime();
}
mute(shouldMute) {
return this.applicationCall.mute(shouldMute);
}
muted() {
return this.applicationCall.muted();
}
sendDTMF(dtmf) {
return this.applicationCall.sendDTMF(dtmf);
}
setAudioInputDevice(deviceId) {
return this.applicationCall.setAudioInputDevice(deviceId);
}
audioFilter() {
return this.applicationCall.audioFilter();
}
setAudioFilter(audioFilter) {
return this.applicationCall.setAudioFilter(audioFilter);
}
clearAudioFilter() {
return this.applicationCall.clearAudioFilter();
}
counterpart() {
return undefined;
}
source() {
return this.sourceEndpoint;
}
destination() {
return this.destinationEndpoint;
}
setAudioQualityMode(audioQualityMode) {
return this.applicationCall.setAudioQualityMode(audioQualityMode);
}
audioQualityMode() {
return this.applicationCall.audioQualityMode();
}
hangup() {
return this.applicationCall.hangup();
}
}
//# sourceMappingURL=DefaultCall.js.map