IP Santral Engtegrasyonu Angus Kullanımı
(() => {
const tenant = this.api.tenant;
if (!tenant.CALLCENTER_IPPBX_ACTIVE || !tenant.USERPHONE) {
return;
}
rxjs
.of(null)
.pipe(
rxjs.switchMap(() => {
return new rxjs.Observable((subscriber) => {
// cloud domain callcenterintegration.elektraweb.com
const url =
tenant.CALLCENTER_IPPBX_URL ||
'callcenterintegration.elektraweb.com';
const socket = new WebSocket(`wss://${url}/client`);
socket.onopen = (event) => {
const request = {
USERID: tenant.STDUSERID,
};
console.log('message-sendig', JSON.stringify(request));
socket.send(JSON.stringify(request));
console.log('bağlantı başarılı', event);
};
socket.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg?.type == 'info') {
let successMsg =
angus.languageService.dynamicTranslator.translate(
'Listenning internal phone'
) +
' ' +
angus.api.tenant.USERPHONE;
angus.serviceWorkerService.snackBar.open(successMsg, '(x)', {
duration: 10e3,
});
}
//console.log('Message from server ', msg);
if (msg?.type == 'error') {
console.error('error on connecting', event?.data.message);
socket.close();
}
if (msg?.data?.callerId) {
angus.popupFormService.openRecord('group-hotels-calllogs', null, {
PHONE: msg.data.callerId,
});
}
};
socket.onclose = (event) => {
subscriber.next();
subscriber.complete();
};
socket.onerror = (event) => {
socket.close();
};
return () => {
socket.close();
};
});
}),
rxjs.repeat(),
rxjs.takeUntil(this.isDestroyed)
)
.subscribe();
})();
Last updated