Built motion from commit da24aabd.|2.6.20
[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 _0xa8a8=['updateStatusRealtime','state','not_inuse','inuse','talking','statePause','toNumber','voiceStatusQueue','format','user:%s','emit','user:ami:update','user:presence','exports','lodash','util','moment','ioredis','redis','defaults','localhost','socket.io-emitter','name','email','accountcode','fullname','stateTime','unknown','address','mobile','interface','online','voiceStatus','voiceStatusTime','voiceStatusCallerIdNumber','onhold','prototype'];(function(_0x2b58f8,_0x14f865){var _0x2af05b=function(_0x2c2bf3){while(--_0x2c2bf3){_0x2b58f8['push'](_0x2b58f8['shift']());}};_0x2af05b(++_0x14f865);}(_0xa8a8,0xec));var _0x8a8a=function(_0x2c94b2,_0x40bc91){_0x2c94b2=_0x2c94b2-0x0;var _0x12c6b6=_0xa8a8[_0x2c94b2];return _0x12c6b6;};'use strict';var _=require(_0x8a8a('0x0'));var util=require(_0x8a8a('0x1'));var moment=require(_0x8a8a('0x2'));var Redis=require(_0x8a8a('0x3'));var config=require('../../../config/environment');config[_0x8a8a('0x4')]=_[_0x8a8a('0x5')](config[_0x8a8a('0x4')],{'host':_0x8a8a('0x6'),'port':0x18eb});var io=require(_0x8a8a('0x7'))(new Redis(config[_0x8a8a('0x4')]));function Agent(_0x3184a3){this['id']=_0x3184a3['id']||0x0;this[_0x8a8a('0x8')]=_0x3184a3[_0x8a8a('0x8')]||'';this[_0x8a8a('0x9')]=_0x3184a3[_0x8a8a('0x9')]||'';this[_0x8a8a('0xa')]=_0x3184a3[_0x8a8a('0xa')]||'';this[_0x8a8a('0xb')]=_0x3184a3[_0x8a8a('0xb')]||'';this['state']='unknown';this[_0x8a8a('0xc')]=0x0;this['status']=_0x8a8a('0xd');this[_0x8a8a('0xe')]='';this['phone']='';this[_0x8a8a('0xf')]='';this[_0x8a8a('0x10')]='';this[_0x8a8a('0x11')]=_0x3184a3['online']||![];this[_0x8a8a('0x12')]=_0x8a8a('0xd');this[_0x8a8a('0x13')]=0x0;this[_0x8a8a('0x14')]='';this['voiceStatusQueue']='';this[_0x8a8a('0x15')]=![];this['local']=![];}Agent[_0x8a8a('0x16')][_0x8a8a('0x17')]=function(_0x787eec){if(!_0x787eec[_0x8a8a('0x18')]){return;}var _0x2ac893=null;var _0x78b0f0=_0x787eec[_0x8a8a('0x18')]['toLowerCase']();switch(_0x78b0f0){case _0x8a8a('0x19'):_0x78b0f0='idle';break;case _0x8a8a('0x1a'):_0x78b0f0=_0x8a8a('0x1b');break;}if(this[_0x8a8a('0x12')]!==_0x78b0f0||_0x787eec[_0x8a8a('0x1c')]){_0x2ac893=_[_0x8a8a('0x1d')](moment()['format']('x'));}var _0x9d55f9={'id':this['id'],'name':this[_0x8a8a('0x8')],'email':this[_0x8a8a('0x9')],'accountcode':this[_0x8a8a('0xa')],'fullname':this[_0x8a8a('0xb')],'state':this[_0x8a8a('0x18')],'stateTime':this['stateTime'],'status':this['status'],'address':this['address'],'voiceStatus':_0x78b0f0||this['voiceStatus'],'voiceStatusTime':_0x2ac893||this['voiceStatusTime'],'voiceStatusCallerIdNumber':this[_0x8a8a('0x14')],'voiceStatusQueue':this[_0x8a8a('0x1e')],'interface':this[_0x8a8a('0x10')],'onhold':this[_0x8a8a('0x15')]};if(this[_0x8a8a('0x12')]!==_0x78b0f0){this[_0x8a8a('0x12')]=_0x78b0f0;io['to'](util[_0x8a8a('0x1f')](_0x8a8a('0x20'),_0x9d55f9[_0x8a8a('0x8')]))[_0x8a8a('0x21')](_0x8a8a('0x22'),_0x9d55f9);io[_0x8a8a('0x21')](_0x8a8a('0x23'),_0x9d55f9);}};module[_0x8a8a('0x24')]=Agent;