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