Built motion from commit ffdca78c.|2.6.24
[motion2.git] / server / services / ami / dialer / utils / 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 _0x60dc=['ivr','isIVRCampaign','outbound','isOutboundQueue','dialActive','isQueueCampaignActive','active','isIVRCampaignActive','milliseconds','diff','getSeconds','message','loggedIn','loggedInDb','paused','pTalking','waiting','inUse','originated','Trunk','name','hasQueueCampaignDataChanged','dialTimezone','isNil','dialGlobalInterval','Interval','Intervals','NULL_INTERVAL','isEmpty','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','SIP/','unmonitored','includes','status','TrunkBackup','INACTIVE','DISACTIVED','UNREACHABLE_TRUNK','getQueueCampaignActiveStatusMessage','match','isUndefined','string','format','\x22%s\x22\x20<%s>','getCallerId','\x5cw{0,','pow','replace','random','toString','getCallerIdRandom','decrementOriginate','length','checkContactEmpty','erlangb','checkContactLowerLimitOriginate','createdAt','description','tags','updatedAt','undefined','%s%s','XMD-','toUpperCase','setXMDContactVariables','lodash','util','../../../../config/logger','dialer','../../../../config/environment/shared','timezones','ACTIVE','RESCHEDULED_CONTACTS','IS_DISACTIVED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','RECALLFAILEDTIMEOUT','RUNNING','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','dialMethod','preview','isPreviewCampaign'];(function(_0x67754c,_0x4ee2c1){var _0x1f09ec=function(_0x255080){while(--_0x255080){_0x67754c['push'](_0x67754c['shift']());}};_0x1f09ec(++_0x4ee2c1);}(_0x60dc,0xf0));var _0xc60d=function(_0x2a7889,_0x2e10ac){_0x2a7889=_0x2a7889-0x0;var _0x4dfbf5=_0x60dc[_0x2a7889];return _0x4dfbf5;};'use strict';var _=require(_0xc60d('0x0'));var moment=require('moment');var util=require(_0xc60d('0x1'));var logger=require(_0xc60d('0x2'))(_0xc60d('0x3'));var timezones=require(_0xc60d('0x4'))[_0xc60d('0x5')];var CAMPAIGN_STATUS={'ACTIVE':_0xc60d('0x6'),'BLACKLIST':'BLACKLIST','CONTACTS_RESCHEDULED':_0xc60d('0x7'),'DEACTIVATED':'DEACTIVATED','DISACTIVED':_0xc60d('0x8'),'EMPTY_INTERVAL':_0xc60d('0x9'),'INACTIVE':_0xc60d('0xa'),'NO_AGENTS_LOGGED':'AGENTS_NOT_LOGGED','NO_AVAILABLE_CONTACTS':_0xc60d('0xb'),'NULL_INTERVAL':_0xc60d('0xc'),'OVERTIME_INTERVAL':_0xc60d('0xd'),'OVERTIME_GLOBAL_INTERVAL':'GLOBAL_INTERVAL_IS_OVERTIME','QUEUE_RECALL':'RECALLINQUEUE','RECALL_TIMEOUT':_0xc60d('0xe'),'RUNNING':_0xc60d('0xf'),'UNKNOWN_TIMEZONE':'TIMEZONE_UNKNOW','UNREACHABLE_TRUNK':_0xc60d('0x10')};exports[_0xc60d('0x11')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0xeb3a85){return _0xeb3a85[_0xc60d('0x12')]===_0xc60d('0x13');}exports[_0xc60d('0x14')]=isPreviewCampaign;function isIVRCampaign(_0x2f75e4){return _0x2f75e4['type']===_0xc60d('0x15');}exports[_0xc60d('0x16')]=isIVRCampaign;function isOutboundQueue(_0x4d521b){return _0x4d521b['type']===_0xc60d('0x17');}exports[_0xc60d('0x18')]=isOutboundQueue;function isQueueCampaignActive(_0x28679f){return _0x28679f[_0xc60d('0x19')];}exports[_0xc60d('0x1a')]=isQueueCampaignActive;function isIVRCampaignActive(_0x1512b9){return _0x1512b9[_0xc60d('0x1b')];}exports[_0xc60d('0x1c')]=isIVRCampaignActive;function getSeconds(_0x4944ce,_0x436891){var _0x3e6e92=moment(_0x4944ce)['milliseconds'](0x0);var _0x307cb2=moment(_0x436891)[_0xc60d('0x1d')](0x0);return _0x3e6e92[_0xc60d('0x1e')](_0x307cb2,'seconds');}exports[_0xc60d('0x1f')]=getSeconds;function hasQueueCampaignDataChanged(_0x2d929c,_0x48b318){var _0x345aa6=![];var _0x35f112=_0x2d929c[_0xc60d('0x12')]!==_0x48b318['dialMethod']||_0x2d929c[_0xc60d('0x19')]!==_0x48b318[_0xc60d('0x19')]||_0x2d929c[_0xc60d('0x20')]!==_0x48b318['message'];var _0x391593=_0x2d929c['available']!==_0x48b318['available']||_0x2d929c['loggedIn']!==_0x48b318[_0xc60d('0x21')]||_0x2d929c[_0xc60d('0x22')]!==_0x48b318[_0xc60d('0x22')]||_0x2d929c[_0xc60d('0x23')]!==_0x48b318[_0xc60d('0x23')]||_0x2d929c['talking']!==_0x48b318['talking']||_0x2d929c[_0xc60d('0x24')]!==_0x48b318['pTalking']||_0x2d929c[_0xc60d('0x25')]!==_0x48b318['waiting']||_0x2d929c[_0xc60d('0x26')]!==_0x48b318[_0xc60d('0x26')]||_0x2d929c[_0xc60d('0x27')]!==_0x48b318[_0xc60d('0x27')];if(_0x2d929c[_0xc60d('0x28')]&&_0x48b318[_0xc60d('0x28')]){_0x345aa6=_0x2d929c['Trunk'][_0xc60d('0x29')]!==_0x48b318['Trunk'][_0xc60d('0x29')]||_0x2d929c[_0xc60d('0x28')]['active']!==_0x48b318[_0xc60d('0x28')][_0xc60d('0x1b')];}return _0x35f112||_0x391593||_0x345aa6;}exports[_0xc60d('0x2a')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x38329a){var _0x432211=null;var _0x4cb939=_0x38329a[_0xc60d('0x2b')];if(_[_0xc60d('0x2c')](_0x38329a[_0xc60d('0x2d')])||_['isNil'](_0x38329a[_0xc60d('0x2e')])||_['isNil'](_0x38329a['Interval'][_0xc60d('0x2f')])){_0x432211=CAMPAIGN_STATUS[_0xc60d('0x30')];}else if(_[_0xc60d('0x31')](_0x38329a[_0xc60d('0x2d')])||_[_0xc60d('0x31')](_0x38329a[_0xc60d('0x2e')]['Intervals'])){_0x432211=CAMPAIGN_STATUS[_0xc60d('0x32')];}else if(_0x4cb939&&!timezones[_0x4cb939]){_0x432211=CAMPAIGN_STATUS[_0xc60d('0x33')];}return _0x432211;}function checkAnyValidTrunk(_0x5d24f5,_0x295c5a){var _0x2303a7=null;var _0x1847d=_0xc60d('0x34');var _0x1070fc=['reachable',_0xc60d('0x35')];var _0x5ab7ff=!![];if(_0x5d24f5[_0xc60d('0x28')]&&_0x5d24f5[_0xc60d('0x28')][_0xc60d('0x1b')]){_0x1847d+=_0x5d24f5[_0xc60d('0x28')][_0xc60d('0x29')];_0x2303a7=_0x295c5a[_0x1847d];_0x5ab7ff=_0x1070fc[_0xc60d('0x36')](_0x2303a7[_0xc60d('0x37')]);}else if(_0x5d24f5[_0xc60d('0x38')]&&_0x5d24f5[_0xc60d('0x38')][_0xc60d('0x1b')]){_0x1847d+=_0x5d24f5['TrunkBackup'][_0xc60d('0x29')];_0x2303a7=_0x295c5a[_0x1847d];_0x5ab7ff=_0x1070fc[_0xc60d('0x36')](_0x2303a7[_0xc60d('0x37')]);}return _0x5ab7ff;}function getQueueCampaignStatusMessage(_0x1e1890,_0x23bfa5){var _0x380b74=CAMPAIGN_STATUS[_0xc60d('0x6')];var _0x1723b7=isPreviewCampaign(_0x1e1890);if(!isQueueCampaignActive(_0x1e1890)){if(_0x1723b7){_0x380b74=CAMPAIGN_STATUS['INACTIVE'];}else{if(_0x1e1890[_0xc60d('0x27')]===0x0&&_0x1e1890['talking']===0x0&&_0x1e1890[_0xc60d('0x25')]===0x0&&(_0x1e1890[_0xc60d('0x24')]||0x0)===0x0){_0x380b74=CAMPAIGN_STATUS[_0xc60d('0x39')];}else{_0x380b74=CAMPAIGN_STATUS[_0xc60d('0x3a')];}}}else if(_0x1e1890[_0xc60d('0x21')]===0x0){_0x380b74=CAMPAIGN_STATUS['NO_AGENTS_LOGGED'];}else if(!checkAnyValidTrunk(_0x1e1890,_0x23bfa5)){_0x380b74=CAMPAIGN_STATUS[_0xc60d('0x3b')];}else if(!isPreviewCampaign(_0x1e1890)){var _0x3c8538=checkAnyValidQueueCampaignInterval(_0x1e1890);if(_0x3c8538){_0x380b74=_0x3c8538;}}return _0x380b74;}exports['getQueueCampaignStatusMessage']=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x126bcb){var _0x458b24=CAMPAIGN_STATUS[_0xc60d('0x3a')];if(_0x126bcb['originated']===0x0&&_0x126bcb['talking']===0x0&&_0x126bcb[_0xc60d('0x25')]===0x0&&(_0x126bcb[_0xc60d('0x24')]||0x0)===0x0){_0x458b24=CAMPAIGN_STATUS['INACTIVE'];}return _0x458b24;}exports[_0xc60d('0x3c')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x489699){var _0x420dd9=_0x489699[_0xc60d('0x3d')](/"(.*?)"/);return _0x420dd9?_0x420dd9[0x1]:_0x489699;}exports['extractCalleridName']=extractCalleridName;function getCallerId(_0x26759a,_0x3ff3ca,_0x3c042c){if(!_[_0xc60d('0x3e')](_0x3c042c)&&typeof _0x3c042c===_0xc60d('0x3f')&&!_[_0xc60d('0x31')](_0x3c042c)){if(!_[_0xc60d('0x3e')](_0x3ff3ca)&&typeof _0x3ff3ca===_0xc60d('0x3f')&&!_[_0xc60d('0x31')](_0x3ff3ca)){return util[_0xc60d('0x40')](_0xc60d('0x41'),_0x3ff3ca,_0x3c042c);}return util[_0xc60d('0x40')]('\x22%s\x22\x20<%s>',_0x3c042c,_0x3c042c);}if(!_[_0xc60d('0x3e')](_0x26759a)&&typeof _0x26759a===_0xc60d('0x3f')&&!_[_0xc60d('0x31')](_0x26759a)){return _0x26759a;}return'\x22\x22\x20<>';}exports[_0xc60d('0x42')]=getCallerId;function getCallerIdRandom(_0x394d3d,_0x33d5e4){var _0x5ede6e;var _0x52a4e8;var _0x1f60b9;if(_0x33d5e4<=0x0){_0x33d5e4=0x1;}_0x5ede6e=new RegExp(_0xc60d('0x43')+_0x33d5e4+'}$');_0x52a4e8=Math[_0xc60d('0x44')](0xa,_0x33d5e4-0x1);_0x1f60b9=Math[_0xc60d('0x44')](0xa,_0x33d5e4)-0x1;return util[_0xc60d('0x40')]('%s',_[_0xc60d('0x45')](_0x394d3d,_0x5ede6e,_[_0xc60d('0x46')](_0x52a4e8,_0x1f60b9)[_0xc60d('0x47')]()));}exports[_0xc60d('0x48')]=getCallerIdRandom;function decrementOriginate(_0x147a04){if(_0x147a04['originated']&&_0x147a04[_0xc60d('0x27')]>0x0){_0x147a04[_0xc60d('0x27')]-=0x1;}else{logger['error']('[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative');}}exports[_0xc60d('0x49')]=decrementOriginate;function checkContactEmpty(_0x3485fd){return _0x3485fd&&_0x3485fd[_0xc60d('0x4a')]>0x0;}exports[_0xc60d('0x4b')]=checkContactEmpty;function erlangb(_0x4d9355,_0x174255){if(_0x174255===0x0){return 0x0;}var _0x103ae6=0x1;for(var _0x5c0a4b=0x1;_0x5c0a4b<=_0x174255;_0x5c0a4b+=0x1){_0x103ae6=0x1+_0x103ae6*_0x5c0a4b/_0x4d9355;}return 0x1/_0x103ae6;}exports[_0xc60d('0x4c')]=erlangb;function checkContactLowerLimitOriginate(_0xba3d5c,_0x3d0376,_0x23a28b){if(_0x3d0376>_0x23a28b){for(var _0xe36a01=0x0;_0xe36a01<_0x3d0376-_0x23a28b;_0xe36a01+=0x1){decrementOriginate(_0xba3d5c);}}}exports[_0xc60d('0x4d')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x846a32){var _0x253166={};var _0x4293ee=['id',_0xc60d('0x4e'),_0xc60d('0x4f'),_0xc60d('0x50'),_0xc60d('0x51')];if(_0x846a32){for(var _0x32ff29 in _0x846a32){if(typeof _0x846a32[_0x32ff29]!==_0xc60d('0x52')){if(!_['isNil'](_0x846a32[_0x32ff29])&&!_0x4293ee[_0xc60d('0x36')](_0x32ff29)){_0x253166[util[_0xc60d('0x40')](_0xc60d('0x53'),_0xc60d('0x54'),_0x32ff29[_0xc60d('0x55')]())]=_0x846a32[_0x32ff29];}}}}return _0x253166;}exports[_0xc60d('0x56')]=setXMDContactVariables;