b3702e27c5b27df74cd332e65ee7f0e9b164bd5c
[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 _0x3d63=['socket.io-emitter','name','email','state','stateTime','status','unknown','address','mobile','interface','online','voiceStatusTime','voiceStatusQueue','onhold','local','prototype','updateStatusRealtime','inuse','talking','voiceStatus','statePause','toNumber','accountcode','fullname','stringify','format','user:%s','user:save','lodash','util','moment','md5','../../../config/environment','redis','defaults','localhost'];(function(_0x47280c,_0xba1c68){var _0x5b1f70=function(_0x1fbf7e){while(--_0x1fbf7e){_0x47280c['push'](_0x47280c['shift']());}};_0x5b1f70(++_0xba1c68);}(_0x3d63,0x160));var _0x33d6=function(_0xc5af8e,_0x5ca51a){_0xc5af8e=_0xc5af8e-0x0;var _0x150684=_0x3d63[_0xc5af8e];return _0x150684;};'use strict';var _=require(_0x33d6('0x0'));var util=require(_0x33d6('0x1'));var moment=require(_0x33d6('0x2'));var md5=require(_0x33d6('0x3'));var Redis=require('ioredis');var config=require(_0x33d6('0x4'));config[_0x33d6('0x5')]=_[_0x33d6('0x6')](config[_0x33d6('0x5')],{'host':_0x33d6('0x7'),'port':0x18eb});var io=require(_0x33d6('0x8'))(new Redis(config[_0x33d6('0x5')]));function Agent(_0x12e4e5){this['id']=_0x12e4e5['id']||0x0;this[_0x33d6('0x9')]=_0x12e4e5[_0x33d6('0x9')]||'';this[_0x33d6('0xa')]=_0x12e4e5['email']||'';this['accountcode']=_0x12e4e5['accountcode']||'';this['fullname']=_0x12e4e5['fullname']||'';this[_0x33d6('0xb')]='unknown';this[_0x33d6('0xc')]=0x0;this[_0x33d6('0xd')]=_0x33d6('0xe');this[_0x33d6('0xf')]='';this['phone']='';this[_0x33d6('0x10')]='';this[_0x33d6('0x11')]='';this[_0x33d6('0x12')]=_0x12e4e5['online']||![];this['voiceStatus']=_0x33d6('0xe');this[_0x33d6('0x13')]=0x0;this['voiceStatusCallerIdNumber']='';this[_0x33d6('0x14')]='';this[_0x33d6('0x15')]=![];this[_0x33d6('0x16')]=![];this['md5']='';}Agent[_0x33d6('0x17')][_0x33d6('0x18')]=function(_0xbef69f){var _0x337e05;if(_0xbef69f&&_0xbef69f['state']){_0x337e05=_0xbef69f['state']['toLowerCase']();switch(_0x337e05){case'not_inuse':_0x337e05='idle';break;case _0x33d6('0x19'):_0x337e05=_0x33d6('0x1a');break;}}if(_0x337e05&&this[_0x33d6('0x1b')]!==_0x337e05||_0xbef69f[_0x33d6('0x1c')]){this['voiceStatusTime']=_[_0x33d6('0x1d')](moment()['format']('x'));}if(_0x337e05){this[_0x33d6('0x1b')]=_0x337e05;}var _0x264de7={'id':this['id'],'name':this[_0x33d6('0x9')],'email':this['email'],'accountcode':this[_0x33d6('0x1e')],'fullname':this[_0x33d6('0x1f')],'state':this['state'],'stateTime':this[_0x33d6('0xc')],'status':this['status'],'address':this[_0x33d6('0xf')],'online':this['online'],'voiceStatus':this[_0x33d6('0x1b')],'voiceStatusTime':this[_0x33d6('0x13')],'voiceStatusCallerIdNumber':this['voiceStatusCallerIdNumber'],'voiceStatusQueue':this[_0x33d6('0x14')],'interface':this[_0x33d6('0x11')],'onhold':this[_0x33d6('0x15')]};var _0x377a14=md5(JSON[_0x33d6('0x20')](_0x264de7));if(this[_0x33d6('0x3')]!==_0x377a14){this[_0x33d6('0x3')]=_0x377a14;io['to'](util[_0x33d6('0x21')](_0x33d6('0x22'),_0x264de7[_0x33d6('0x9')]))['emit'](_0x33d6('0x23'),_0x264de7);io['emit']('user:presence',_0x264de7);}};module['exports']=Agent;