9c115cc987cb54903c9d8b48a7ce728350d7d5ae
[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 _0xc182=['idle','talking','statePause','format','voiceStatusCallerIdNumber','user:%s','emit','user:save','exports','lodash','util','moment','md5','ioredis','redis','localhost','socket.io-emitter','name','email','accountcode','fullname','state','stateTime','status','unknown','address','phone','mobile','interface','online','voiceStatus','voiceStatusTime','voiceStatusQueue','onhold','local','prototype','updateStatusRealtime','toLowerCase','not_inuse'];(function(_0x179391,_0x4eb9b6){var _0x2f2208=function(_0x3b2211){while(--_0x3b2211){_0x179391['push'](_0x179391['shift']());}};_0x2f2208(++_0x4eb9b6);}(_0xc182,0x7e));var _0x2c18=function(_0x13f0cd,_0x56c55d){_0x13f0cd=_0x13f0cd-0x0;var _0x354f4e=_0xc182[_0x13f0cd];return _0x354f4e;};'use strict';var _=require(_0x2c18('0x0'));var util=require(_0x2c18('0x1'));var moment=require(_0x2c18('0x2'));var md5=require(_0x2c18('0x3'));var Redis=require(_0x2c18('0x4'));var config=require('../../../config/environment');config[_0x2c18('0x5')]=_['defaults'](config[_0x2c18('0x5')],{'host':_0x2c18('0x6'),'port':0x18eb});var io=require(_0x2c18('0x7'))(new Redis(config[_0x2c18('0x5')]));function Agent(_0x8abb8d){this['id']=_0x8abb8d['id']||0x0;this['name']=_0x8abb8d[_0x2c18('0x8')]||'';this[_0x2c18('0x9')]=_0x8abb8d[_0x2c18('0x9')]||'';this[_0x2c18('0xa')]=_0x8abb8d['accountcode']||'';this[_0x2c18('0xb')]=_0x8abb8d['fullname']||'';this[_0x2c18('0xc')]='unknown';this[_0x2c18('0xd')]=0x0;this[_0x2c18('0xe')]=_0x2c18('0xf');this[_0x2c18('0x10')]='';this[_0x2c18('0x11')]='';this[_0x2c18('0x12')]='';this[_0x2c18('0x13')]='';this[_0x2c18('0x14')]=_0x8abb8d[_0x2c18('0x14')]||![];this[_0x2c18('0x15')]=_0x2c18('0xf');this[_0x2c18('0x16')]=0x0;this['voiceStatusCallerIdNumber']='';this[_0x2c18('0x17')]='';this[_0x2c18('0x18')]=![];this[_0x2c18('0x19')]=![];this[_0x2c18('0x3')]='';}Agent[_0x2c18('0x1a')][_0x2c18('0x1b')]=function(_0x131b86){var _0x4f933c;if(_0x131b86&&_0x131b86[_0x2c18('0xc')]){_0x4f933c=_0x131b86[_0x2c18('0xc')][_0x2c18('0x1c')]();switch(_0x4f933c){case _0x2c18('0x1d'):_0x4f933c=_0x2c18('0x1e');break;case'inuse':_0x4f933c=_0x2c18('0x1f');break;}}if(_0x4f933c&&this[_0x2c18('0x15')]!==_0x4f933c||_0x131b86[_0x2c18('0x20')]){this['voiceStatusTime']=_['toNumber'](moment()[_0x2c18('0x21')]('x'));}if(_0x4f933c){this['voiceStatus']=_0x4f933c;}var _0x1ffa8b={'id':this['id'],'name':this[_0x2c18('0x8')],'email':this[_0x2c18('0x9')],'accountcode':this[_0x2c18('0xa')],'fullname':this[_0x2c18('0xb')],'state':this[_0x2c18('0xc')],'stateTime':this[_0x2c18('0xd')],'status':this[_0x2c18('0xe')],'address':this[_0x2c18('0x10')],'online':this['online'],'voiceStatus':this['voiceStatus'],'voiceStatusTime':this[_0x2c18('0x16')],'voiceStatusCallerIdNumber':this[_0x2c18('0x22')],'voiceStatusQueue':this['voiceStatusQueue'],'interface':this['interface'],'onhold':this['onhold']};var _0x38778f=md5(JSON['stringify'](_0x1ffa8b));if(this[_0x2c18('0x3')]!==_0x38778f){this['md5']=_0x38778f;io['to'](util[_0x2c18('0x21')](_0x2c18('0x23'),_0x1ffa8b[_0x2c18('0x8')]))[_0x2c18('0x24')](_0x2c18('0x25'),_0x1ffa8b);}};module[_0x2c18('0x26')]=Agent;