db69d9430b0f644abd0862c9f145a009c2f5b968
[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 _0xf842=['accountcode','fullname','state','unknown','stateTime','status','address','mobile','interface','online','voiceStatus','voiceStatusTime','voiceStatusCallerIdNumber','voiceStatusQueue','onhold','local','not_inuse','idle','inuse','statePause','toNumber','stringify','user:%s','emit','user:ami:update','omit','user:presence','exports','lodash','util','moment','md5','../../../config/environment','redis','defaults','localhost','name','email'];(function(_0x2b7764,_0x2606f1){var _0x848dcb=function(_0x1ae85b){while(--_0x1ae85b){_0x2b7764['push'](_0x2b7764['shift']());}};_0x848dcb(++_0x2606f1);}(_0xf842,0x172));var _0x2f84=function(_0x19159a,_0x1cb5c3){_0x19159a=_0x19159a-0x0;var _0xa677f4=_0xf842[_0x19159a];return _0xa677f4;};'use strict';var _=require(_0x2f84('0x0'));var util=require(_0x2f84('0x1'));var moment=require(_0x2f84('0x2'));var md5=require(_0x2f84('0x3'));var Redis=require('ioredis');var config=require(_0x2f84('0x4'));config[_0x2f84('0x5')]=_[_0x2f84('0x6')](config[_0x2f84('0x5')],{'host':_0x2f84('0x7'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x2f84('0x5')]));function Agent(_0x20e773){this['id']=_0x20e773['id']||0x0;this[_0x2f84('0x8')]=_0x20e773['name']||'';this[_0x2f84('0x9')]=_0x20e773[_0x2f84('0x9')]||'';this[_0x2f84('0xa')]=_0x20e773[_0x2f84('0xa')]||'';this[_0x2f84('0xb')]=_0x20e773[_0x2f84('0xb')]||'';this[_0x2f84('0xc')]=_0x2f84('0xd');this[_0x2f84('0xe')]=0x0;this[_0x2f84('0xf')]='unknown';this[_0x2f84('0x10')]='';this['phone']='';this[_0x2f84('0x11')]='';this[_0x2f84('0x12')]='';this[_0x2f84('0x13')]=_0x20e773[_0x2f84('0x13')]||![];this[_0x2f84('0x14')]=_0x2f84('0xd');this[_0x2f84('0x15')]=0x0;this[_0x2f84('0x16')]='';this[_0x2f84('0x17')]='';this[_0x2f84('0x18')]=![];this[_0x2f84('0x19')]=![];this[_0x2f84('0x3')]='';}Agent['prototype']['updateStatusRealtime']=function(_0x50d906){var _0x31ddd4;if(_0x50d906&&_0x50d906[_0x2f84('0xc')]){_0x31ddd4=_0x50d906[_0x2f84('0xc')]['toLowerCase']();switch(_0x31ddd4){case _0x2f84('0x1a'):_0x31ddd4=_0x2f84('0x1b');break;case _0x2f84('0x1c'):_0x31ddd4='talking';break;}}if(_0x31ddd4&&this[_0x2f84('0x14')]!==_0x31ddd4||_0x50d906[_0x2f84('0x1d')]){this[_0x2f84('0x15')]=_[_0x2f84('0x1e')](moment()['format']('x'));}if(_0x31ddd4){this[_0x2f84('0x14')]=_0x31ddd4;}var _0x51bdee={'id':this['id'],'name':this[_0x2f84('0x8')],'email':this['email'],'accountcode':this['accountcode'],'fullname':this[_0x2f84('0xb')],'state':this[_0x2f84('0xc')],'stateTime':this[_0x2f84('0xe')],'status':this[_0x2f84('0xf')],'address':this[_0x2f84('0x10')],'online':this[_0x2f84('0x13')],'voiceStatus':this['voiceStatus'],'voiceStatusTime':this['voiceStatusTime'],'voiceStatusCallerIdNumber':this[_0x2f84('0x16')],'voiceStatusQueue':this[_0x2f84('0x17')],'interface':this[_0x2f84('0x12')],'onhold':this[_0x2f84('0x18')]};var _0x39ee8b=md5(JSON[_0x2f84('0x1f')](_0x51bdee));if(this['md5']!==_0x39ee8b){this[_0x2f84('0x3')]=_0x39ee8b;io['to'](util['format'](_0x2f84('0x20'),_0x51bdee['name']))[_0x2f84('0x21')](_0x2f84('0x22'),_[_0x2f84('0x23')](_0x51bdee,['online']));io[_0x2f84('0x21')](_0x2f84('0x24'),_0x51bdee);}};module[_0x2f84('0x25')]=Agent;