1550697761ac2b64010a0ef57278af0111f3afde
[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 _0x13c0=['user:ami:update','emit','user:presence','exports','lodash','util','moment','ioredis','redis','localhost','socket.io-emitter','name','email','fullname','unknown','stateTime','status','address','phone','mobile','interface','online','voiceStatusTime','voiceStatusCallerIdNumber','voiceStatusQueue','onhold','prototype','updateStatusRealtime','state','toLowerCase','not_inuse','idle','inuse','talking','voiceStatus','statePause','toNumber','format','user:%s'];(function(_0xb54b31,_0x4ac97c){var _0x49d88b=function(_0x3da58a){while(--_0x3da58a){_0xb54b31['push'](_0xb54b31['shift']());}};_0x49d88b(++_0x4ac97c);}(_0x13c0,0x79));var _0x013c=function(_0x430f44,_0x4ae21b){_0x430f44=_0x430f44-0x0;var _0x1f6b0f=_0x13c0[_0x430f44];return _0x1f6b0f;};'use strict';var _=require(_0x013c('0x0'));var util=require(_0x013c('0x1'));var moment=require(_0x013c('0x2'));var Redis=require(_0x013c('0x3'));var config=require('../../../config/environment');config['redis']=_['defaults'](config[_0x013c('0x4')],{'host':_0x013c('0x5'),'port':0x18eb});var io=require(_0x013c('0x6'))(new Redis(config[_0x013c('0x4')]));function Agent(_0x129de9){this['id']=_0x129de9['id']||0x0;this[_0x013c('0x7')]=_0x129de9[_0x013c('0x7')]||'';this[_0x013c('0x8')]=_0x129de9['email']||'';this['accountcode']=_0x129de9['accountcode']||'';this[_0x013c('0x9')]=_0x129de9[_0x013c('0x9')]||'';this['state']=_0x013c('0xa');this[_0x013c('0xb')]=0x0;this[_0x013c('0xc')]=_0x013c('0xa');this[_0x013c('0xd')]='';this[_0x013c('0xe')]='';this[_0x013c('0xf')]='';this[_0x013c('0x10')]='';this[_0x013c('0x11')]=_0x129de9[_0x013c('0x11')]||![];this['voiceStatus']='unknown';this[_0x013c('0x12')]=0x0;this[_0x013c('0x13')]='';this[_0x013c('0x14')]='';this[_0x013c('0x15')]=![];this['local']=![];}Agent[_0x013c('0x16')][_0x013c('0x17')]=function(_0xcfe81a){if(!_0xcfe81a[_0x013c('0x18')]){return;}var _0x424437=null;var _0x57f017=_0xcfe81a[_0x013c('0x18')][_0x013c('0x19')]();switch(_0x57f017){case _0x013c('0x1a'):_0x57f017=_0x013c('0x1b');break;case _0x013c('0x1c'):_0x57f017=_0x013c('0x1d');break;}if(this[_0x013c('0x1e')]!==_0x57f017||_0xcfe81a[_0x013c('0x1f')]){_0x424437=_[_0x013c('0x20')](moment()[_0x013c('0x21')]('x'));}var _0x34d59f={'id':this['id'],'name':this[_0x013c('0x7')],'email':this[_0x013c('0x8')],'accountcode':this['accountcode'],'fullname':this['fullname'],'state':this[_0x013c('0x18')],'stateTime':this[_0x013c('0xb')],'status':this['status'],'address':this[_0x013c('0xd')],'voiceStatus':_0x57f017||this[_0x013c('0x1e')],'voiceStatusTime':_0x424437||this[_0x013c('0x12')],'voiceStatusCallerIdNumber':this[_0x013c('0x13')],'voiceStatusQueue':this[_0x013c('0x14')],'interface':this['interface'],'onhold':this[_0x013c('0x15')]};if(this[_0x013c('0x1e')]!==_0x57f017){this['voiceStatus']=_0x57f017;io['to'](util[_0x013c('0x21')](_0x013c('0x22'),_0x34d59f['name']))['emit'](_0x013c('0x23'),_0x34d59f);io[_0x013c('0x24')](_0x013c('0x25'),_0x34d59f);}};module[_0x013c('0x26')]=Agent;