Built motion from commit (unavailable).|2.4.18
[motion2.git] / server / services / routing / server / index.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 _0x1e6f=['faxQueuesWaitingInteractions','server','http','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','path','jayson/promise','bluebird','../../../config/environment','routing','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../lib/rule-engine','format','isNil','IntervalId','Intervals','map','interval','listen','rules','interaction','applications','length','join','app','.js','toLowerCase','autoreply','appdata','split','push','amazonlex','message','tag','%s:%s:%s','./interval','condition','intervals','./applications/','consequence','priority','info','Push\x20new\x20rule','on\x20interval','\x20|\x20','error','Please\x20create\x20a\x20new\x20file\x20under','execute','matchPath','emit','complete','No\x20applications\x20to\x20execute','stack','routing\x20is\x20empty','channel','end','QueueReport','catch','error\x20update\x20queue\x20report','message\x20is\x20empty','agent','agents','busy','busyQueue','capacity','hasOwnProperty','CurrentCapacity','updateRealtime','values','chatQueues','loggedIn','paused','waiting','mailQueues','available','name','openchannelQueues','smsQueues','faxQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions'];(function(_0xa485a3,_0x4bc610){var _0x355506=function(_0x33f113){while(--_0x33f113){_0xa485a3['push'](_0xa485a3['shift']());}};_0x355506(++_0x4bc610);}(_0x1e6f,0x16a));var _0xf1e6=function(_0xa9faf7,_0x3dcbde){_0xa9faf7=_0xa9faf7-0x0;var _0x48cfa2=_0x1e6f[_0xa9faf7];return _0x48cfa2;};'use strict';var _=require(_0xf1e6('0x0'));var util=require('util');var path=require(_0xf1e6('0x1'));var fs=require('fs');var jayson=require(_0xf1e6('0x2'));var BPromise=require(_0xf1e6('0x3'));var uuid=require('uuid');var config=require(_0xf1e6('0x4'));var logger=require('../../../config/logger')(_0xf1e6('0x5'));var rpc={'openchannelQueueReport':require(_0xf1e6('0x6'))};var rpc={'openchannelQueueReport':require(_0xf1e6('0x6')),'mailQueueReport':require(_0xf1e6('0x7')),'chatQueueReport':require(_0xf1e6('0x8')),'smsQueueReport':require(_0xf1e6('0x9')),'faxQueueReport':require(_0xf1e6('0xa'))};var RuleEngine=require(_0xf1e6('0xb'));function getId(_0x40fd0a,_0x34a2b9,_0x2cde5a){return util[_0xf1e6('0xc')]('%s.%s.%s',_0x40fd0a,_0x34a2b9||0x0,_0x2cde5a||0x0);}function getIntervals(_0x1b8ca4,_0xe1708f){var _0x4b56f7=[];if(!_[_0xf1e6('0xd')](_0xe1708f[_0xf1e6('0xe')])&&!_['isNil'](_0x1b8ca4[_0xe1708f[_0xf1e6('0xe')]])&&!_[_0xf1e6('0xd')](_0x1b8ca4[_0xe1708f[_0xf1e6('0xe')]][_0xf1e6('0xf')])){_0x4b56f7=_[_0xf1e6('0x10')](_0x1b8ca4[_0xe1708f[_0xf1e6('0xe')]][_0xf1e6('0xf')],'interval');}else if(!_['isNil'](_0xe1708f[_0xf1e6('0x11')])){_0x4b56f7=[_0xe1708f[_0xf1e6('0x11')]];}return _0x4b56f7;}exports[_0xf1e6('0x12')]=function(_0x4ac472){_0x4ac472[_0xf1e6('0x13')]={};return new BPromise(function(_0x18477c,_0x217853){var _0x33b7be={'Start':function(_0x12e3e2){var _0x15ebee=this;return new Promise(function(_0x41e05c,_0x109ac4){if(_0x12e3e2){try{var _0x564788=[];var _0x60cede=getId(_0x12e3e2['channel'],_0x12e3e2['message']?_0x12e3e2['message']['id']:0x0,_0x12e3e2[_0xf1e6('0x14')]?_0x12e3e2['interaction']['id']:0x0);if(_0x12e3e2['applications']&&_['isArray'](_0x12e3e2[_0xf1e6('0x15')])&&_0x12e3e2['applications'][_0xf1e6('0x16')]){for(var _0x123f24=0x0;_0x123f24<_0x12e3e2[_0xf1e6('0x15')][_0xf1e6('0x16')];_0x123f24+=0x1){var _0x4b6a35=_0x12e3e2[_0xf1e6('0x15')][_0x123f24];if(fs['existsSync'](path[_0xf1e6('0x17')](__dirname,_0xf1e6('0x15'),_0x4b6a35[_0xf1e6('0x18')]+_0xf1e6('0x19')))){var _0x3e4e79=[];switch(_0x4b6a35[_0xf1e6('0x18')][_0xf1e6('0x1a')]()){case _0xf1e6('0x1b'):var _0x1c8438=_0x4b6a35[_0xf1e6('0x1c')][_0xf1e6('0x1d')](',');_0x3e4e79[_0xf1e6('0x1e')](_0x1c8438[0x0]);_0x3e4e79[_0xf1e6('0x1e')](_0x1c8438['slice'](0x1,_0x1c8438['length'])[_0xf1e6('0x17')](','));break;case'dialogflow':var _0x3ff392=_0x4b6a35[_0xf1e6('0x1c')][_0xf1e6('0x1d')](',');_0x3e4e79[_0xf1e6('0x1e')](_0x3ff392[0x0]);_0x3e4e79[_0xf1e6('0x1e')](_0x3ff392[0x1]);_0x3e4e79[_0xf1e6('0x1e')](_0x3ff392['slice'](0x2,_0x3ff392[_0xf1e6('0x16')])[_0xf1e6('0x17')](','));break;case _0xf1e6('0x1f'):var _0x8b2cba=_0x4b6a35['appdata'][_0xf1e6('0x1d')](',');_0x3e4e79['push'](_0x8b2cba[0x0]);_0x3e4e79[_0xf1e6('0x1e')](_0x8b2cba[0x1]);_0x3e4e79['push'](_0x8b2cba[0x2]);_0x3e4e79[_0xf1e6('0x1e')](_0x8b2cba[0x3]);_0x3e4e79[_0xf1e6('0x1e')](_0x8b2cba['slice'](0x4,_0x8b2cba['length'])[_0xf1e6('0x17')](','));break;case _0xf1e6('0x20'):_0x3e4e79[_0xf1e6('0x1e')](_0x4b6a35[_0xf1e6('0x1c')]);break;case _0xf1e6('0x21'):_0x3e4e79['push'](_0x4b6a35['TagId']);_0x3e4e79[_0xf1e6('0x1e')](_0x4b6a35[_0xf1e6('0x1c')]);break;default:_0x3e4e79=_[_0xf1e6('0xd')](_0x4b6a35[_0xf1e6('0x1c')])?[]:_0x4b6a35[_0xf1e6('0x1c')][_0xf1e6('0x1d')](',');}var _0x16477a={'id':util[_0xf1e6('0xc')](_0xf1e6('0x22'),_0x60cede,_0x4b6a35['id'],_0x4b6a35[_0xf1e6('0x18')]),'condition':require(_0xf1e6('0x23'))[_0xf1e6('0x24')](_0x60cede,getIntervals(_0x4ac472[_0xf1e6('0x25')],_0x4b6a35),_0x4ac472),'consequence':require(_0xf1e6('0x26')+_0x4b6a35[_0xf1e6('0x18')])[_0xf1e6('0x27')](_0x60cede,_0x3e4e79,_0x4ac472,_0x12e3e2),'p':_0x4b6a35[_0xf1e6('0x28')]||0x0};logger[_0xf1e6('0x29')](_0xf1e6('0x2a'),_0x16477a['id'],_0xf1e6('0x2b'),getIntervals(_0x4ac472[_0xf1e6('0x25')],_0x4b6a35)['join'](_0xf1e6('0x2c')));_0x564788['push'](_0x16477a);}else{logger[_0xf1e6('0x2d')](_0xf1e6('0x2e'),path[_0xf1e6('0x17')](__dirname,_0xf1e6('0x15'),_0x4b6a35[_0xf1e6('0x18')]+_0xf1e6('0x19')));}}_0x4ac472[_0xf1e6('0x13')][_0x60cede]=new RuleEngine(_0x564788);_0x4ac472[_0xf1e6('0x13')][_0x60cede][_0xf1e6('0x2f')](_0x12e3e2,function(_0x5f173c){logger[_0xf1e6('0x29')]('Applications\x20executed',JSON['stringify'](_0x5f173c[_0xf1e6('0x30')]));if(_0x4ac472[_0xf1e6('0x13')][_0x60cede]){_0x4ac472[_0xf1e6('0x13')][_0x60cede][_0xf1e6('0x31')](_0xf1e6('0x32'));}});return _0x41e05c({'code':0xc8,'message':_0x12e3e2});}else{logger['info'](_0xf1e6('0x33'));return _0x41e05c({'code':0xc8,'message':_0x12e3e2});}}catch(_0x5452aa){logger[_0xf1e6('0x2d')](_0x5452aa[_0xf1e6('0x34')]);return _0x109ac4(_0x15ebee[_0xf1e6('0x2d')](0x1f4,_0x5452aa));}}return _0x109ac4(_0xf1e6('0x35'));});},'AcceptMessage':function(_0x3276d1){var _0xe46222=this;return new Promise(function(_0x363015,_0x5c7157){if(_0x3276d1[_0xf1e6('0x20')]&&_0x3276d1[_0xf1e6('0x20')]['id']){try{var _0x2fdef8=getId(_0x3276d1[_0xf1e6('0x36')],_0x3276d1['message']?_0x3276d1['message']['id']:0x0,_0x3276d1[_0xf1e6('0x14')]?_0x3276d1[_0xf1e6('0x14')]['id']:0x0);if(_0x4ac472[_0xf1e6('0x13')][_0x2fdef8]){_0x4ac472['rules'][_0x2fdef8][_0xf1e6('0x31')](_0xf1e6('0x37'));if(rpc[_0x3276d1[_0xf1e6('0x36')]+_0xf1e6('0x38')]){rpc[_0x3276d1[_0xf1e6('0x36')]+_0xf1e6('0x38')]['update'](_0x2fdef8,{'UserId':_0x3276d1[_0xf1e6('0x20')]['UserId']})[_0xf1e6('0x39')](function(_0x42ad1b){logger[_0xf1e6('0x2d')](_0xf1e6('0x3a'));});}}return _0x363015({'code':0xc8,'message':_0x3276d1});}catch(_0x5ed7a5){logger[_0xf1e6('0x2d')](_0x5ed7a5['stack']);return _0x5c7157(_0xe46222['error'](0x1f4,_0x5ed7a5));}}logger[_0xf1e6('0x2d')]('message\x20is\x20empty');return _0x5c7157(_0xe46222[_0xf1e6('0x2d')](0x1f4,_0xf1e6('0x3b')));});},'RejectMessage':function(_0xccffb9){var _0x477d22=this;return new Promise(function(_0x418835,_0x45a902){if(_0xccffb9['agent']&&_0xccffb9[_0xf1e6('0x3c')]['id']){try{if(_0x4ac472[_0xf1e6('0x3d')][_0xccffb9[_0xf1e6('0x3c')]['id']]){_0x4ac472[_0xf1e6('0x3d')][_0xccffb9['agent']['id']][_0xf1e6('0x3e')]=![];_0x4ac472[_0xf1e6('0x3d')][_0xccffb9[_0xf1e6('0x3c')]['id']][_0xf1e6('0x3f')]=undefined;}return _0x418835({'code':0xc8,'message':_0xccffb9});}catch(_0x5a555f){logger['error'](_0x5a555f['stack']);return _0x45a902(_0x477d22['error'](0x1f4,_0x5a555f));}}logger[_0xf1e6('0x2d')](_0xf1e6('0x3b'));return _0x45a902(_0x477d22['error'](0x1f4,_0xf1e6('0x3b')));});},'AbandonInteraction':function(_0xf84aba){var _0x57c17b=this;return new Promise(function(_0x4b30fe,_0x501224){if(_0xf84aba[_0xf1e6('0x36')]&&_0xf84aba[_0xf1e6('0x14')]&&_0xf84aba[_0xf1e6('0x14')]['id']){try{var _0x3e7692=getId(_0xf84aba[_0xf1e6('0x36')],_0xf84aba[_0xf1e6('0x20')]?_0xf84aba['message']['id']:0x0,_0xf84aba['interaction']?_0xf84aba['interaction']['id']:0x0);if(_0x4ac472['rules'][_0x3e7692]){_0x4ac472[_0xf1e6('0x13')][_0x3e7692]['emit']('end');}return _0x4b30fe({'code':0xc8,'message':_0xf84aba});}catch(_0x5ea765){logger[_0xf1e6('0x2d')](_0x5ea765[_0xf1e6('0x34')]);return _0x501224(_0x57c17b[_0xf1e6('0x2d')](0x1f4,_0x5ea765));}}logger['error'](_0xf1e6('0x3b'));return _0x501224(_0x57c17b[_0xf1e6('0x2d')](0x1f4,_0xf1e6('0x3b')));});},'AgentCapacity':function(_0x3b31f4){var _0x183c37=this;return new Promise(function(_0x46f680,_0x47ca08){if(_0x4ac472[_0xf1e6('0x3d')]['hasOwnProperty'](_0x3b31f4['id'])){for(var _0x224709 in _0x3b31f4['capacity']){if(_0x3b31f4[_0xf1e6('0x40')][_0xf1e6('0x41')](_0x224709)){if(_0x4ac472[_0xf1e6('0x3d')][_0x3b31f4['id']][_0xf1e6('0x41')](_0x224709+_0xf1e6('0x42'))){_0x4ac472[_0xf1e6('0x3d')][_0x3b31f4['id']][_0x224709+_0xf1e6('0x42')]=parseInt(_0x3b31f4[_0xf1e6('0x40')][_0x224709],0xa);}}}_0x4ac472[_0xf1e6('0x3d')][_0x3b31f4['id']][_0xf1e6('0x43')]();return _0x46f680({'code':0xc8,'message':_0x4ac472[_0xf1e6('0x3d')][_0x3b31f4['id']]});}else{return _0x47ca08(_0x183c37[_0xf1e6('0x2d')](0x1f4,'agent\x20not\x20found'));}});},'Agents':function(_0x3b4ab0){return new Promise(function(_0x23513e,_0x46ef1d){var _0x36666c=_[_0xf1e6('0x44')](_0x4ac472[_0xf1e6('0x3d')]);_0x23513e({'count':_0x36666c[_0xf1e6('0x16')],'rows':_0x36666c});});},'ChatQueues':function(_0x4f2a5a){return new Promise(function(_0x83bdde,_0x38fbaa){var _0x58c598=[];for(var _0xacfd35 in _0x4ac472[_0xf1e6('0x45')]){if(_0x4ac472[_0xf1e6('0x45')][_0xf1e6('0x41')](_0xacfd35)){var _0x58db0b=_0x4ac472['chatQueues'][_0xacfd35];var _0x5494bf={'id':_0x58db0b['id'],'available':_0x58db0b['available'],'loggedIn':_0x58db0b[_0xf1e6('0x46')],'name':_0x58db0b['name'],'paused':_0x58db0b[_0xf1e6('0x47')],'waiting':_0x58db0b[_0xf1e6('0x48')]};_0x58c598[_0xf1e6('0x1e')](_0x5494bf);}}_0x83bdde({'count':_0x58c598[_0xf1e6('0x16')],'rows':_0x58c598});});},'MailQueues':function(_0x9eaac3){return new Promise(function(_0x1026e4,_0x544fd7){var _0x57a78f=[];for(var _0x30bcb0 in _0x4ac472[_0xf1e6('0x49')]){if(_0x4ac472['mailQueues']['hasOwnProperty'](_0x30bcb0)){var _0x22cc64=_0x4ac472['mailQueues'][_0x30bcb0];var _0x60d9c1={'id':_0x22cc64['id'],'available':_0x22cc64[_0xf1e6('0x4a')],'loggedIn':_0x22cc64[_0xf1e6('0x46')],'name':_0x22cc64[_0xf1e6('0x4b')],'paused':_0x22cc64[_0xf1e6('0x47')],'waiting':_0x22cc64[_0xf1e6('0x48')]};_0x57a78f[_0xf1e6('0x1e')](_0x60d9c1);}}_0x1026e4({'count':_0x57a78f['length'],'rows':_0x57a78f});});},'OpenchannelQueues':function(_0x2c638a){return new Promise(function(_0x38ae3a,_0x15a18b){var _0x540da5=[];for(var _0x4bddc1 in _0x4ac472['openchannelQueues']){if(_0x4ac472['openchannelQueues'][_0xf1e6('0x41')](_0x4bddc1)){var _0x2f3e6e=_0x4ac472[_0xf1e6('0x4c')][_0x4bddc1];var _0x21a9b2={'id':_0x2f3e6e['id'],'available':_0x2f3e6e[_0xf1e6('0x4a')],'loggedIn':_0x2f3e6e['loggedIn'],'name':_0x2f3e6e['name'],'paused':_0x2f3e6e[_0xf1e6('0x47')],'waiting':_0x2f3e6e['waiting']};_0x540da5['push'](_0x21a9b2);}}_0x38ae3a({'count':_0x540da5['length'],'rows':_0x540da5});});},'SmsQueues':function(_0x4e3e56){return new Promise(function(_0x44fe73,_0x1212c1){var _0x467b23=[];for(var _0x5e2eb0 in _0x4ac472['smsQueues']){if(_0x4ac472[_0xf1e6('0x4d')][_0xf1e6('0x41')](_0x5e2eb0)){var _0x166f1c=_0x4ac472['smsQueues'][_0x5e2eb0];var _0xc8d716={'id':_0x166f1c['id'],'available':_0x166f1c[_0xf1e6('0x4a')],'loggedIn':_0x166f1c['loggedIn'],'name':_0x166f1c[_0xf1e6('0x4b')],'paused':_0x166f1c[_0xf1e6('0x47')],'waiting':_0x166f1c[_0xf1e6('0x48')]};_0x467b23[_0xf1e6('0x1e')](_0xc8d716);}}_0x44fe73({'count':_0x467b23['length'],'rows':_0x467b23});});},'FaxQueues':function(_0x2ea4c3){return new Promise(function(_0x32a692,_0x4b8d1c){var _0x2d05c1=[];for(var _0x2f5df6 in _0x4ac472[_0xf1e6('0x4e')]){if(_0x4ac472['faxQueues'][_0xf1e6('0x41')](_0x2f5df6)){var _0x59fb5e=_0x4ac472['faxQueues'][_0x2f5df6];var _0x543fba={'id':_0x59fb5e['id'],'available':_0x59fb5e['available'],'loggedIn':_0x59fb5e[_0xf1e6('0x46')],'name':_0x59fb5e[_0xf1e6('0x4b')],'paused':_0x59fb5e[_0xf1e6('0x47')],'waiting':_0x59fb5e[_0xf1e6('0x48')]};_0x2d05c1[_0xf1e6('0x1e')](_0x543fba);}}_0x32a692({'count':_0x2d05c1['length'],'rows':_0x2d05c1});});},'ChatQueuesWaitingInteractions':function(_0x3d9031){return new Promise(function(_0x24205b,_0x15ec80){var _0x49e7eb=_[_0xf1e6('0x44')](_0x4ac472[_0xf1e6('0x4f')]);_0x24205b({'count':_0x49e7eb[_0xf1e6('0x16')],'rows':_0x49e7eb});});},'MailQueuesWaitingInteractions':function(_0xb22bca){return new Promise(function(_0x7c5600,_0x57417a){var _0x4e9961=_[_0xf1e6('0x44')](_0x4ac472[_0xf1e6('0x50')]);_0x7c5600({'count':_0x4e9961['length'],'rows':_0x4e9961});});},'OpenchannelQueuesWaitingInteractions':function(_0x324882){return new Promise(function(_0x1c33d8,_0x408f66){var _0x253c7d=_[_0xf1e6('0x44')](_0x4ac472[_0xf1e6('0x51')]);_0x1c33d8({'count':_0x253c7d[_0xf1e6('0x16')],'rows':_0x253c7d});});},'SmsQueuesWaitingInteractions':function(_0x1584a5){return new Promise(function(_0x51740b,_0x5355af){var _0x2cba97=_[_0xf1e6('0x44')](_0x4ac472[_0xf1e6('0x52')]);_0x51740b({'count':_0x2cba97[_0xf1e6('0x16')],'rows':_0x2cba97});});},'FaxQueuesWaitingInteractions':function(_0x55e1cf){return new Promise(function(_0x43f3bc,_0x4a01e0){var _0x43e17e=_['values'](_0x4ac472[_0xf1e6('0x53')]);_0x43f3bc({'count':_0x43e17e[_0xf1e6('0x16')],'rows':_0x43e17e});});}};var _0x25dabe=jayson[_0xf1e6('0x54')](_0x33b7be)[_0xf1e6('0x55')]();_0x25dabe['on'](_0xf1e6('0x2d'),function(_0x5cca50){logger[_0xf1e6('0x2d')](JSON['stringify'](_0x5cca50));return _0x217853(_0x5cca50);});_0x25dabe[_0xf1e6('0x12')](0x232c,'127.0.0.1',function(){console[_0xf1e6('0x56')](_0xf1e6('0x57'),0x232c);return _0x18477c(_0xf1e6('0x58')+0x232c);});});};