Built motion from commit bab6f49e.|2.6.17
[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 _0xf759=['unknown','stateTime','address','phone','mobile','interface','online','voiceStatus','voiceStatusCallerIdNumber','voiceStatusQueue','onhold','local','prototype','toLowerCase','idle','talking','statePause','toNumber','format','status','voiceStatusTime','stringify','md5','user:%s','user:save','emit','user:presence','exports','lodash','ioredis','../../../config/environment','redis','defaults','localhost','name','email','accountcode','fullname','state'];(function(_0x5e578e,_0x2749d6){var _0x30323b=function(_0x4073bf){while(--_0x4073bf){_0x5e578e['push'](_0x5e578e['shift']());}};_0x30323b(++_0x2749d6);}(_0xf759,0x106));var _0x9f75=function(_0x10248d,_0x21eb51){_0x10248d=_0x10248d-0x0;var _0xdc1088=_0xf759[_0x10248d];return _0xdc1088;};'use strict';var _=require(_0x9f75('0x0'));var util=require('util');var moment=require('moment');var md5=require('md5');var Redis=require(_0x9f75('0x1'));var config=require(_0x9f75('0x2'));config[_0x9f75('0x3')]=_[_0x9f75('0x4')](config[_0x9f75('0x3')],{'host':_0x9f75('0x5'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x9f75('0x3')]));function Agent(_0x5cfdc6){this['id']=_0x5cfdc6['id']||0x0;this[_0x9f75('0x6')]=_0x5cfdc6[_0x9f75('0x6')]||'';this[_0x9f75('0x7')]=_0x5cfdc6['email']||'';this[_0x9f75('0x8')]=_0x5cfdc6[_0x9f75('0x8')]||'';this[_0x9f75('0x9')]=_0x5cfdc6[_0x9f75('0x9')]||'';this[_0x9f75('0xa')]=_0x9f75('0xb');this[_0x9f75('0xc')]=0x0;this['status']=_0x9f75('0xb');this[_0x9f75('0xd')]='';this[_0x9f75('0xe')]='';this[_0x9f75('0xf')]='';this[_0x9f75('0x10')]='';this['online']=_0x5cfdc6[_0x9f75('0x11')]||![];this[_0x9f75('0x12')]=_0x9f75('0xb');this['voiceStatusTime']=0x0;this[_0x9f75('0x13')]='';this[_0x9f75('0x14')]='';this[_0x9f75('0x15')]=![];this[_0x9f75('0x16')]=![];this['md5']='';}Agent[_0x9f75('0x17')]['updateStatusRealtime']=function(_0x34e8e2){var _0x2c91dd;if(_0x34e8e2&&_0x34e8e2[_0x9f75('0xa')]){_0x2c91dd=_0x34e8e2[_0x9f75('0xa')][_0x9f75('0x18')]();switch(_0x2c91dd){case'not_inuse':_0x2c91dd=_0x9f75('0x19');break;case'inuse':_0x2c91dd=_0x9f75('0x1a');break;}}if(_0x2c91dd&&this[_0x9f75('0x12')]!==_0x2c91dd||_0x34e8e2[_0x9f75('0x1b')]){this['voiceStatusTime']=_[_0x9f75('0x1c')](moment()[_0x9f75('0x1d')]('x'));}if(_0x2c91dd){this[_0x9f75('0x12')]=_0x2c91dd;}var _0x5ecb1e={'id':this['id'],'name':this['name'],'email':this[_0x9f75('0x7')],'accountcode':this[_0x9f75('0x8')],'fullname':this[_0x9f75('0x9')],'state':this[_0x9f75('0xa')],'stateTime':this[_0x9f75('0xc')],'status':this[_0x9f75('0x1e')],'address':this[_0x9f75('0xd')],'online':this[_0x9f75('0x11')],'voiceStatus':this[_0x9f75('0x12')],'voiceStatusTime':this[_0x9f75('0x1f')],'voiceStatusCallerIdNumber':this[_0x9f75('0x13')],'voiceStatusQueue':this[_0x9f75('0x14')],'interface':this[_0x9f75('0x10')],'onhold':this['onhold']};var _0x59dca4=md5(JSON[_0x9f75('0x20')](_0x5ecb1e));if(this['md5']!==_0x59dca4){this[_0x9f75('0x21')]=_0x59dca4;io['to'](util['format'](_0x9f75('0x22'),_0x5ecb1e[_0x9f75('0x6')]))['emit'](_0x9f75('0x23'),_0x5ecb1e);io[_0x9f75('0x24')](_0x9f75('0x25'),_0x5ecb1e);}};module[_0x9f75('0x26')]=Agent;