Built motion from commit 52c8a02d.|2.6.29
[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 _0x5d58=['moment','util','../../../../config/logger','dialer','../../../../config/environment/shared','timezones','ACTIVE','RESCHEDULED_CONTACTS','DEACTIVATED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RECALLFAILEDTIMEOUT','RUNNING','TIMEZONE_UNKNOW','TRUNK_IS_NOT_REACHABLE','dialMethod','preview','isPreviewCampaign','type','ivr','isIVRCampaign','outbound','dialActive','isQueueCampaignActive','active','isIVRCampaignActive','milliseconds','diff','seconds','getSeconds','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','hasQueueCampaignDataChanged','dialTimezone','isNil','Interval','Intervals','dialGlobalInterval','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','reachable','unmonitored','includes','status','TrunkBackup','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','DISACTIVED','INACTIVE','getQueueCampaignActiveStatusMessage','match','extractCalleridName','isEmpty','isUndefined','string','\x22%s\x22\x20<%s>','\x22\x22\x20<>','\x5cw{0,','pow','format','replace','toString','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','decrementOriginate','checkContactEmpty','erlangb','checkContactLowerLimitOriginate','createdAt','tags','undefined','length','XMD-','toUpperCase','setXMDContactVariables','lodash'];(function(_0x4498a2,_0x143689){var _0x411aa8=function(_0x1a85dc){while(--_0x1a85dc){_0x4498a2['push'](_0x4498a2['shift']());}};_0x411aa8(++_0x143689);}(_0x5d58,0xb9));var _0x85d5=function(_0x461249,_0x823744){_0x461249=_0x461249-0x0;var _0x2adb9b=_0x5d58[_0x461249];return _0x2adb9b;};'use strict';var _=require(_0x85d5('0x0'));var moment=require(_0x85d5('0x1'));var util=require(_0x85d5('0x2'));var logger=require(_0x85d5('0x3'))(_0x85d5('0x4'));var timezones=require(_0x85d5('0x5'))[_0x85d5('0x6')];var CAMPAIGN_STATUS={'ACTIVE':_0x85d5('0x7'),'BLACKLIST':'BLACKLIST','CONTACTS_RESCHEDULED':_0x85d5('0x8'),'DEACTIVATED':_0x85d5('0x9'),'DISACTIVED':'IS_DISACTIVED','EMPTY_INTERVAL':_0x85d5('0xa'),'INACTIVE':_0x85d5('0xb'),'NO_AGENTS_LOGGED':'AGENTS_NOT_LOGGED','NO_AVAILABLE_CONTACTS':_0x85d5('0xc'),'NULL_INTERVAL':_0x85d5('0xd'),'OVERTIME_INTERVAL':_0x85d5('0xe'),'OVERTIME_GLOBAL_INTERVAL':_0x85d5('0xf'),'QUEUE_RECALL':_0x85d5('0x10'),'RECALL_TIMEOUT':_0x85d5('0x11'),'RUNNING':_0x85d5('0x12'),'UNKNOWN_TIMEZONE':_0x85d5('0x13'),'UNREACHABLE_TRUNK':_0x85d5('0x14')};exports['CAMPAIGN_STATUS']=CAMPAIGN_STATUS;function isPreviewCampaign(_0x17e012){return _0x17e012[_0x85d5('0x15')]===_0x85d5('0x16');}exports[_0x85d5('0x17')]=isPreviewCampaign;function isIVRCampaign(_0x4f9a6b){return _0x4f9a6b[_0x85d5('0x18')]===_0x85d5('0x19');}exports[_0x85d5('0x1a')]=isIVRCampaign;function isOutboundQueue(_0x3eb8ee){return _0x3eb8ee[_0x85d5('0x18')]===_0x85d5('0x1b');}exports['isOutboundQueue']=isOutboundQueue;function isQueueCampaignActive(_0x540726){return _0x540726[_0x85d5('0x1c')];}exports[_0x85d5('0x1d')]=isQueueCampaignActive;function isIVRCampaignActive(_0x109873){return _0x109873[_0x85d5('0x1e')];}exports[_0x85d5('0x1f')]=isIVRCampaignActive;function getSeconds(_0x29d4a4,_0x219f55){var _0x99e54e=moment(_0x29d4a4)[_0x85d5('0x20')](0x0);var _0x464b55=moment(_0x219f55)[_0x85d5('0x20')](0x0);return _0x99e54e[_0x85d5('0x21')](_0x464b55,_0x85d5('0x22'));}exports[_0x85d5('0x23')]=getSeconds;function hasQueueCampaignDataChanged(_0x4b31d8,_0x4f4845){var _0x285822=![];var _0x4763fa=_0x4b31d8[_0x85d5('0x15')]!==_0x4f4845['dialMethod']||_0x4b31d8[_0x85d5('0x1c')]!==_0x4f4845['dialActive']||_0x4b31d8[_0x85d5('0x24')]!==_0x4f4845['message'];var _0x16b944=_0x4b31d8[_0x85d5('0x25')]!==_0x4f4845[_0x85d5('0x25')]||_0x4b31d8[_0x85d5('0x26')]!==_0x4f4845[_0x85d5('0x26')]||_0x4b31d8[_0x85d5('0x27')]!==_0x4f4845[_0x85d5('0x27')]||_0x4b31d8[_0x85d5('0x28')]!==_0x4f4845['paused']||_0x4b31d8[_0x85d5('0x29')]!==_0x4f4845[_0x85d5('0x29')]||_0x4b31d8[_0x85d5('0x2a')]!==_0x4f4845[_0x85d5('0x2a')]||_0x4b31d8[_0x85d5('0x2b')]!==_0x4f4845[_0x85d5('0x2b')]||_0x4b31d8['inUse']!==_0x4f4845[_0x85d5('0x2c')]||_0x4b31d8[_0x85d5('0x2d')]!==_0x4f4845[_0x85d5('0x2d')];if(_0x4b31d8[_0x85d5('0x2e')]&&_0x4f4845[_0x85d5('0x2e')]){_0x285822=_0x4b31d8[_0x85d5('0x2e')][_0x85d5('0x2f')]!==_0x4f4845[_0x85d5('0x2e')][_0x85d5('0x2f')]||_0x4b31d8['Trunk'][_0x85d5('0x1e')]!==_0x4f4845[_0x85d5('0x2e')][_0x85d5('0x1e')];}return _0x4763fa||_0x16b944||_0x285822;}exports[_0x85d5('0x30')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x285c89){var _0x499766=null;var _0x10e7e5=_0x285c89[_0x85d5('0x31')];if(_[_0x85d5('0x32')](_0x285c89['dialGlobalInterval'])||_[_0x85d5('0x32')](_0x285c89[_0x85d5('0x33')])||_[_0x85d5('0x32')](_0x285c89['Interval'][_0x85d5('0x34')])){_0x499766=CAMPAIGN_STATUS['NULL_INTERVAL'];}else if(_['isEmpty'](_0x285c89[_0x85d5('0x35')])||_['isEmpty'](_0x285c89[_0x85d5('0x33')][_0x85d5('0x34')])){_0x499766=CAMPAIGN_STATUS[_0x85d5('0x36')];}else if(_0x10e7e5&&!timezones[_0x10e7e5]){_0x499766=CAMPAIGN_STATUS[_0x85d5('0x37')];}return _0x499766;}function checkAnyValidTrunk(_0x48cfc6,_0x369563){var _0x33343d=null;var _0x163090='SIP/';var _0x1c9a2b=[_0x85d5('0x38'),_0x85d5('0x39')];var _0x402354=!![];if(_0x48cfc6['Trunk']&&_0x48cfc6[_0x85d5('0x2e')][_0x85d5('0x1e')]){_0x163090+=_0x48cfc6[_0x85d5('0x2e')]['name'];_0x33343d=_0x369563[_0x163090];_0x402354=_0x1c9a2b[_0x85d5('0x3a')](_0x33343d[_0x85d5('0x3b')]);}else if(_0x48cfc6['TrunkBackup']&&_0x48cfc6[_0x85d5('0x3c')][_0x85d5('0x1e')]){_0x163090+=_0x48cfc6['TrunkBackup'][_0x85d5('0x2f')];_0x33343d=_0x369563[_0x163090];_0x402354=_0x1c9a2b[_0x85d5('0x3a')](_0x33343d[_0x85d5('0x3b')]);}return _0x402354;}function getQueueCampaignStatusMessage(_0x2355ba,_0x161cb5){var _0x50b0e2=CAMPAIGN_STATUS[_0x85d5('0x7')];var _0x1846ac=isPreviewCampaign(_0x2355ba);if(!isQueueCampaignActive(_0x2355ba)){if(_0x1846ac){_0x50b0e2=CAMPAIGN_STATUS['INACTIVE'];}else{if(_0x2355ba[_0x85d5('0x2d')]===0x0&&_0x2355ba[_0x85d5('0x29')]===0x0&&_0x2355ba[_0x85d5('0x2b')]===0x0&&(_0x2355ba[_0x85d5('0x2a')]||0x0)===0x0){_0x50b0e2=CAMPAIGN_STATUS['INACTIVE'];}else{_0x50b0e2=CAMPAIGN_STATUS['DISACTIVED'];}}}else if(_0x2355ba[_0x85d5('0x26')]===0x0){_0x50b0e2=CAMPAIGN_STATUS[_0x85d5('0x3d')];}else if(!checkAnyValidTrunk(_0x2355ba,_0x161cb5)){_0x50b0e2=CAMPAIGN_STATUS[_0x85d5('0x3e')];}else if(!isPreviewCampaign(_0x2355ba)){var _0x106c52=checkAnyValidQueueCampaignInterval(_0x2355ba);if(_0x106c52){_0x50b0e2=_0x106c52;}}return _0x50b0e2;}exports[_0x85d5('0x3f')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x4dbf84){var _0x47287a=CAMPAIGN_STATUS[_0x85d5('0x40')];if(_0x4dbf84[_0x85d5('0x2d')]===0x0&&_0x4dbf84[_0x85d5('0x29')]===0x0&&_0x4dbf84[_0x85d5('0x2b')]===0x0&&(_0x4dbf84[_0x85d5('0x2a')]||0x0)===0x0){_0x47287a=CAMPAIGN_STATUS[_0x85d5('0x41')];}return _0x47287a;}exports[_0x85d5('0x42')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x43d54f){var _0xafa6b5=_0x43d54f[_0x85d5('0x43')](/"(.*?)"/);return _0xafa6b5?_0xafa6b5[0x1]:_0x43d54f;}exports[_0x85d5('0x44')]=extractCalleridName;function getCallerId(_0x241c81,_0x1ab242,_0xff88e0){if(!_['isUndefined'](_0xff88e0)&&typeof _0xff88e0==='string'&&!_[_0x85d5('0x45')](_0xff88e0)){if(!_[_0x85d5('0x46')](_0x1ab242)&&typeof _0x1ab242===_0x85d5('0x47')&&!_[_0x85d5('0x45')](_0x1ab242)){return util['format'](_0x85d5('0x48'),_0x1ab242,_0xff88e0);}return util['format'](_0x85d5('0x48'),_0xff88e0,_0xff88e0);}if(!_[_0x85d5('0x46')](_0x241c81)&&typeof _0x241c81===_0x85d5('0x47')&&!_['isEmpty'](_0x241c81)){return _0x241c81;}return _0x85d5('0x49');}exports['getCallerId']=getCallerId;function getCallerIdRandom(_0x236a79,_0x566a96){var _0x583f17;var _0x5bd240;var _0x17c5c7;if(_0x566a96<=0x0){_0x566a96=0x1;}_0x583f17=new RegExp(_0x85d5('0x4a')+_0x566a96+'}$');_0x5bd240=Math[_0x85d5('0x4b')](0xa,_0x566a96-0x1);_0x17c5c7=Math[_0x85d5('0x4b')](0xa,_0x566a96)-0x1;return util[_0x85d5('0x4c')]('%s',_[_0x85d5('0x4d')](_0x236a79,_0x583f17,_['random'](_0x5bd240,_0x17c5c7)[_0x85d5('0x4e')]()));}exports[_0x85d5('0x4f')]=getCallerIdRandom;function decrementOriginate(_0x46676f){if(_0x46676f[_0x85d5('0x2d')]&&_0x46676f[_0x85d5('0x2d')]>0x0){_0x46676f[_0x85d5('0x2d')]-=0x1;}else{logger[_0x85d5('0x50')](_0x85d5('0x51'));}}exports[_0x85d5('0x52')]=decrementOriginate;function checkContactEmpty(_0x23f34d){return _0x23f34d&&_0x23f34d['length']>0x0;}exports[_0x85d5('0x53')]=checkContactEmpty;function erlangb(_0x2beacc,_0x2c6b52){if(_0x2c6b52===0x0){return 0x0;}var _0x3cc0e0=0x1;for(var _0x581bf1=0x1;_0x581bf1<=_0x2c6b52;_0x581bf1+=0x1){_0x3cc0e0=0x1+_0x3cc0e0*_0x581bf1/_0x2beacc;}return 0x1/_0x3cc0e0;}exports[_0x85d5('0x54')]=erlangb;function checkContactLowerLimitOriginate(_0x579d5a,_0xf0821a,_0x1a67d8){if(_0xf0821a>_0x1a67d8){for(var _0x2fcc49=0x0;_0x2fcc49<_0xf0821a-_0x1a67d8;_0x2fcc49+=0x1){decrementOriginate(_0x579d5a);}}}exports[_0x85d5('0x55')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x198a40){var _0xfb7bd8={};var _0x52d7ca=['id',_0x85d5('0x56'),_0x85d5('0x57'),'updatedAt'];const _0x2b7bbe=0xfa;if(_0x198a40){for(var _0x34369f in _0x198a40){if(typeof _0x198a40[_0x34369f]!==_0x85d5('0x58')){if(!_[_0x85d5('0x32')](_0x198a40[_0x34369f])&&!_0x52d7ca[_0x85d5('0x3a')](_0x34369f)){if(_0x34369f==='description'&&_0x198a40[_0x34369f][_0x85d5('0x59')]>_0x2b7bbe){_0xfb7bd8[_0x85d5('0x5a')+_0x34369f[_0x85d5('0x5b')]()]=_0x198a40[_0x34369f][_0x85d5('0x4e')]()['substring'](0x0,_0x2b7bbe);}else{_0xfb7bd8[_0x85d5('0x5a')+_0x34369f[_0x85d5('0x5b')]()]=_0x198a40[_0x34369f];}}}}}return _0xfb7bd8;}exports[_0x85d5('0x5c')]=setXMDContactVariables;