f06db4a4b8ea899ce75aafa45b53bdfcf51720a7
[motion2.git] / server / services / ami / model / agent.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x412d=['updateStatusRealtime','toLowerCase','not_inuse','idle','inuse','talking','format','voiceStatusQueue','interface','user:%s','emit','user:ami:update','omit','exports','lodash','util','moment','md5','ioredis','redis','name','email','accountcode','fullname','state','unknown','stateTime','mobile','online','voiceStatus','voiceStatusTime','voiceStatusCallerIdNumber','onhold','prototype'];(function(_0x3b233e,_0x1dcc76){var _0x8c5815=function(_0x50c2cc){while(--_0x50c2cc){_0x3b233e['push'](_0x3b233e['shift']());}};_0x8c5815(++_0x1dcc76);}(_0x412d,0xfc));var _0xd412=function(_0x281f96,_0x5db2bf){_0x281f96=_0x281f96-0x0;var _0x50c879=_0x412d[_0x281f96];return _0x50c879;};'use strict';var _=require(_0xd412('0x0'));var util=require(_0xd412('0x1'));var moment=require(_0xd412('0x2'));var md5=require(_0xd412('0x3'));var Redis=require(_0xd412('0x4'));var config=require('../../../config/environment');config[_0xd412('0x5')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xd412('0x5')]));function Agent(_0x2e1d2e){this['id']=_0x2e1d2e['id']||0x0;this[_0xd412('0x6')]=_0x2e1d2e['name']||'';this[_0xd412('0x7')]=_0x2e1d2e[_0xd412('0x7')]||'';this[_0xd412('0x8')]=_0x2e1d2e[_0xd412('0x8')]||'';this[_0xd412('0x9')]=_0x2e1d2e[_0xd412('0x9')]||'';this[_0xd412('0xa')]=_0xd412('0xb');this[_0xd412('0xc')]=0x0;this['status']='unknown';this['address']='';this['phone']='';this[_0xd412('0xd')]='';this['interface']='';this['online']=_0x2e1d2e[_0xd412('0xe')]||![];this[_0xd412('0xf')]=_0xd412('0xb');this[_0xd412('0x10')]=0x0;this[_0xd412('0x11')]='';this['voiceStatusQueue']='';this[_0xd412('0x12')]=![];this['local']=![];this['md5']='';}Agent[_0xd412('0x13')][_0xd412('0x14')]=function(_0x30881e){var _0x787793;if(_0x30881e&&_0x30881e[_0xd412('0xa')]){_0x787793=_0x30881e[_0xd412('0xa')][_0xd412('0x15')]();switch(_0x787793){case _0xd412('0x16'):_0x787793=_0xd412('0x17');break;case _0xd412('0x18'):_0x787793=_0xd412('0x19');break;}}if(_0x787793&&this[_0xd412('0xf')]!==_0x787793||_0x30881e['statePause']){this['voiceStatusTime']=_['toNumber'](moment()[_0xd412('0x1a')]('x'));}if(_0x787793){this[_0xd412('0xf')]=_0x787793;}var _0x421b65={'id':this['id'],'name':this[_0xd412('0x6')],'email':this['email'],'accountcode':this[_0xd412('0x8')],'fullname':this[_0xd412('0x9')],'state':this[_0xd412('0xa')],'stateTime':this['stateTime'],'status':this['status'],'address':this['address'],'online':this[_0xd412('0xe')],'voiceStatus':this[_0xd412('0xf')],'voiceStatusTime':this[_0xd412('0x10')],'voiceStatusCallerIdNumber':this['voiceStatusCallerIdNumber'],'voiceStatusQueue':this[_0xd412('0x1b')],'interface':this[_0xd412('0x1c')],'onhold':this[_0xd412('0x12')]};var _0x41610d=md5(JSON['stringify'](_0x421b65));if(this['md5']!==_0x41610d){this['md5']=_0x41610d;io['to'](util[_0xd412('0x1a')](_0xd412('0x1d'),_0x421b65[_0xd412('0x6')]))[_0xd412('0x1e')](_0xd412('0x1f'),_[_0xd412('0x20')](_0x421b65,['online']));io[_0xd412('0x1e')]('user:presence',_0x421b65);}};module[_0xd412('0x21')]=Agent;