Built motion from commit (unavailable).|2.5.24
[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 _0x08f0=['mobile','interface','online','voiceStatus','voiceStatusTime','voiceStatusQueue','onhold','local','md5','prototype','updateStatusRealtime','toLowerCase','not_inuse','idle','talking','toNumber','voiceStatusCallerIdNumber','stringify','format','user:%s','emit','user:save','user:presence','exports','lodash','moment','redis','socket.io-emitter','name','email','accountcode','fullname','state','unknown','stateTime','address','phone'];(function(_0x1c37eb,_0x1f7e12){var _0x45a9b4=function(_0xc8937c){while(--_0xc8937c){_0x1c37eb['push'](_0x1c37eb['shift']());}};_0x45a9b4(++_0x1f7e12);}(_0x08f0,0x165));var _0x008f=function(_0x33dc68,_0x410ffa){_0x33dc68=_0x33dc68-0x0;var _0x43741d=_0x08f0[_0x33dc68];return _0x43741d;};'use strict';var _=require(_0x008f('0x0'));var util=require('util');var moment=require(_0x008f('0x1'));var md5=require('md5');var Redis=require('ioredis');var config=require('../../../config/environment');config['redis']=_['defaults'](config[_0x008f('0x2')],{'host':'localhost','port':0x18eb});var io=require(_0x008f('0x3'))(new Redis(config['redis']));function Agent(_0x421b8d){this['id']=_0x421b8d['id']||0x0;this[_0x008f('0x4')]=_0x421b8d[_0x008f('0x4')]||'';this[_0x008f('0x5')]=_0x421b8d[_0x008f('0x5')]||'';this['accountcode']=_0x421b8d[_0x008f('0x6')]||'';this[_0x008f('0x7')]=_0x421b8d[_0x008f('0x7')]||'';this[_0x008f('0x8')]=_0x008f('0x9');this[_0x008f('0xa')]=0x0;this['status']='unknown';this[_0x008f('0xb')]='';this[_0x008f('0xc')]='';this[_0x008f('0xd')]='';this[_0x008f('0xe')]='';this[_0x008f('0xf')]=_0x421b8d[_0x008f('0xf')]||![];this[_0x008f('0x10')]=_0x008f('0x9');this[_0x008f('0x11')]=0x0;this['voiceStatusCallerIdNumber']='';this[_0x008f('0x12')]='';this[_0x008f('0x13')]=![];this[_0x008f('0x14')]=![];this[_0x008f('0x15')]='';}Agent[_0x008f('0x16')][_0x008f('0x17')]=function(_0x1852ff){var _0x571738;if(_0x1852ff&&_0x1852ff[_0x008f('0x8')]){_0x571738=_0x1852ff[_0x008f('0x8')][_0x008f('0x18')]();switch(_0x571738){case _0x008f('0x19'):_0x571738=_0x008f('0x1a');break;case'inuse':_0x571738=_0x008f('0x1b');break;}}if(_0x571738&&this['voiceStatus']!==_0x571738||_0x1852ff['statePause']){this[_0x008f('0x11')]=_[_0x008f('0x1c')](moment()['format']('x'));}if(_0x571738){this['voiceStatus']=_0x571738;}var _0x1139b9={'id':this['id'],'name':this['name'],'email':this[_0x008f('0x5')],'accountcode':this['accountcode'],'fullname':this[_0x008f('0x7')],'state':this['state'],'stateTime':this['stateTime'],'status':this['status'],'address':this[_0x008f('0xb')],'online':this[_0x008f('0xf')],'voiceStatus':this['voiceStatus'],'voiceStatusTime':this[_0x008f('0x11')],'voiceStatusCallerIdNumber':this[_0x008f('0x1d')],'voiceStatusQueue':this[_0x008f('0x12')],'interface':this[_0x008f('0xe')],'onhold':this[_0x008f('0x13')]};var _0x16ca0f=md5(JSON[_0x008f('0x1e')](_0x1139b9));if(this['md5']!==_0x16ca0f){this[_0x008f('0x15')]=_0x16ca0f;io['to'](util[_0x008f('0x1f')](_0x008f('0x20'),_0x1139b9['name']))[_0x008f('0x21')](_0x008f('0x22'),_0x1139b9);io['emit'](_0x008f('0x23'),_0x1139b9);}};module[_0x008f('0x24')]=Agent;