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