8907805cd6543892736501426a375dfc7cbb4901
[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 _0x9b7b=['email','address','format','user:%s','emit','omit','lodash','util','md5','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','accountcode','fullname','state','unknown','stateTime','status','phone','online','voiceStatusTime','voiceStatusCallerIdNumber','voiceStatusQueue','onhold','toLowerCase','not_inuse','idle','inuse','statePause','toNumber','voiceStatus'];(function(_0x17d62a,_0x2bcbe3){var _0x27c899=function(_0x58a2f4){while(--_0x58a2f4){_0x17d62a['push'](_0x17d62a['shift']());}};_0x27c899(++_0x2bcbe3);}(_0x9b7b,0x164));var _0xb9b7=function(_0xe3a9d4,_0x2554b1){_0xe3a9d4=_0xe3a9d4-0x0;var _0x36bfc5=_0x9b7b[_0xe3a9d4];return _0x36bfc5;};'use strict';var _=require(_0xb9b7('0x0'));var util=require(_0xb9b7('0x1'));var moment=require('moment');var md5=require(_0xb9b7('0x2'));var Redis=require(_0xb9b7('0x3'));var config=require(_0xb9b7('0x4'));config[_0xb9b7('0x5')]=_[_0xb9b7('0x6')](config[_0xb9b7('0x5')],{'host':_0xb9b7('0x7'),'port':0x18eb});var io=require(_0xb9b7('0x8'))(new Redis(config['redis']));function Agent(_0x2575e2){this['id']=_0x2575e2['id']||0x0;this['name']=_0x2575e2[_0xb9b7('0x9')]||'';this['email']=_0x2575e2['email']||'';this[_0xb9b7('0xa')]=_0x2575e2[_0xb9b7('0xa')]||'';this[_0xb9b7('0xb')]=_0x2575e2[_0xb9b7('0xb')]||'';this[_0xb9b7('0xc')]=_0xb9b7('0xd');this[_0xb9b7('0xe')]=0x0;this[_0xb9b7('0xf')]=_0xb9b7('0xd');this['address']='';this[_0xb9b7('0x10')]='';this['mobile']='';this['interface']='';this['online']=_0x2575e2[_0xb9b7('0x11')]||![];this['voiceStatus']=_0xb9b7('0xd');this[_0xb9b7('0x12')]=0x0;this[_0xb9b7('0x13')]='';this[_0xb9b7('0x14')]='';this[_0xb9b7('0x15')]=![];this['local']=![];this['md5']='';}Agent['prototype']['updateStatusRealtime']=function(_0x2d0635){var _0x43b2f0;if(_0x2d0635&&_0x2d0635[_0xb9b7('0xc')]){_0x43b2f0=_0x2d0635['state'][_0xb9b7('0x16')]();switch(_0x43b2f0){case _0xb9b7('0x17'):_0x43b2f0=_0xb9b7('0x18');break;case _0xb9b7('0x19'):_0x43b2f0='talking';break;}}if(_0x43b2f0&&this['voiceStatus']!==_0x43b2f0||_0x2d0635[_0xb9b7('0x1a')]){this[_0xb9b7('0x12')]=_[_0xb9b7('0x1b')](moment()['format']('x'));}if(_0x43b2f0){this[_0xb9b7('0x1c')]=_0x43b2f0;}var _0x5d7697={'id':this['id'],'name':this[_0xb9b7('0x9')],'email':this[_0xb9b7('0x1d')],'accountcode':this[_0xb9b7('0xa')],'fullname':this['fullname'],'state':this[_0xb9b7('0xc')],'stateTime':this[_0xb9b7('0xe')],'status':this['status'],'address':this[_0xb9b7('0x1e')],'online':this[_0xb9b7('0x11')],'voiceStatus':this['voiceStatus'],'voiceStatusTime':this['voiceStatusTime'],'voiceStatusCallerIdNumber':this[_0xb9b7('0x13')],'voiceStatusQueue':this[_0xb9b7('0x14')],'interface':this['interface'],'onhold':this[_0xb9b7('0x15')]};var _0x2aa4d3=md5(JSON['stringify'](_0x5d7697));if(this[_0xb9b7('0x2')]!==_0x2aa4d3){this[_0xb9b7('0x2')]=_0x2aa4d3;io['to'](util[_0xb9b7('0x1f')](_0xb9b7('0x20'),_0x5d7697['name']))[_0xb9b7('0x21')]('user:ami:update',_[_0xb9b7('0x22')](_0x5d7697,[_0xb9b7('0x11')]));io['emit']('user:presence',_0x5d7697);}};module['exports']=Agent;