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