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