Built motion from commit 9d0783e6.|2.6.13
[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 _0x6d74=['checkContactLowerLimitOriginate','lodash','moment','util','../../../../config/logger','dialer','../../../../config/environment/shared','timezones','RESCHEDULED_CONTACTS','IS_DISACTIVED','INTERVAL_IS_EMPTY','AGENTS_NOT_LOGGED','INTERVAL_IS_NULL','GLOBAL_INTERVAL_IS_OVERTIME','RUNNING','TIMEZONE_UNKNOW','CAMPAIGN_STATUS','isPreviewCampaign','type','outbound','isOutboundQueue','dialActive','isQueueCampaignActive','active','isIVRCampaignActive','milliseconds','diff','seconds','getSeconds','dialMethod','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','dialTimezone','dialGlobalInterval','isNil','Interval','Intervals','isEmpty','UNKNOWN_TIMEZONE','SIP/','status','TrunkBackup','includes','ACTIVE','INACTIVE','NO_AGENTS_LOGGED','getQueueCampaignStatusMessage','DISACTIVED','getQueueCampaignActiveStatusMessage','match','extractCalleridName','string','isUndefined','format','\x22%s\x22\x20<%s>','getCallerId','\x5cw{0,','pow','replace','error','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','decrementOriginate','length','checkContactEmpty','erlangb'];(function(_0x43f04c,_0x55a068){var _0x51e7c6=function(_0x37c46e){while(--_0x37c46e){_0x43f04c['push'](_0x43f04c['shift']());}};_0x51e7c6(++_0x55a068);}(_0x6d74,0x97));var _0x46d7=function(_0x47e7cb,_0x4c1b8d){_0x47e7cb=_0x47e7cb-0x0;var _0x2a8874=_0x6d74[_0x47e7cb];return _0x2a8874;};'use strict';var _=require(_0x46d7('0x0'));var moment=require(_0x46d7('0x1'));var util=require(_0x46d7('0x2'));var logger=require(_0x46d7('0x3'))(_0x46d7('0x4'));var timezones=require(_0x46d7('0x5'))[_0x46d7('0x6')];var CAMPAIGN_STATUS={'ACTIVE':'ACTIVE','BLACKLIST':'BLACKLIST','CONTACTS_RESCHEDULED':_0x46d7('0x7'),'DEACTIVATED':'DEACTIVATED','DISACTIVED':_0x46d7('0x8'),'EMPTY_INTERVAL':_0x46d7('0x9'),'INACTIVE':'NOT_ACTIVE','NO_AGENTS_LOGGED':_0x46d7('0xa'),'NO_AVAILABLE_CONTACTS':'AVAILABLE_CONTACTS_FINISHED','NULL_INTERVAL':_0x46d7('0xb'),'OVERTIME_INTERVAL':'INTERVAL_IS_OVERTIME','OVERTIME_GLOBAL_INTERVAL':_0x46d7('0xc'),'QUEUE_RECALL':'RECALLINQUEUE','RECALL_TIMEOUT':'RECALLFAILEDTIMEOUT','RUNNING':_0x46d7('0xd'),'UNKNOWN_TIMEZONE':_0x46d7('0xe'),'UNREACHABLE_TRUNK':'TRUNK_IS_NOT_REACHABLE'};exports[_0x46d7('0xf')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x9eae31){return _0x9eae31['dialMethod']==='preview';}exports[_0x46d7('0x10')]=isPreviewCampaign;function isIVRCampaign(_0xf7b117){return _0xf7b117['type']==='ivr';}exports['isIVRCampaign']=isIVRCampaign;function isOutboundQueue(_0x10281d){return _0x10281d[_0x46d7('0x11')]===_0x46d7('0x12');}exports[_0x46d7('0x13')]=isOutboundQueue;function isQueueCampaignActive(_0x455e45){return _0x455e45[_0x46d7('0x14')];}exports[_0x46d7('0x15')]=isQueueCampaignActive;function isIVRCampaignActive(_0x4ce96a){return _0x4ce96a[_0x46d7('0x16')];}exports[_0x46d7('0x17')]=isIVRCampaignActive;function getSeconds(_0x382da6,_0x3399e4){var _0x133882=moment(_0x382da6)[_0x46d7('0x18')](0x0);var _0x2b7fe8=moment(_0x3399e4)[_0x46d7('0x18')](0x0);return _0x133882[_0x46d7('0x19')](_0x2b7fe8,_0x46d7('0x1a'));}exports[_0x46d7('0x1b')]=getSeconds;function hasQueueCampaignDataChanged(_0x1f9533,_0x20e2f6){var _0x5d9ab6=![];var _0x1b3106=_0x1f9533[_0x46d7('0x1c')]!==_0x20e2f6[_0x46d7('0x1c')]||_0x1f9533[_0x46d7('0x14')]!==_0x20e2f6[_0x46d7('0x14')]||_0x1f9533[_0x46d7('0x1d')]!==_0x20e2f6['message'];var _0x16f400=_0x1f9533['available']!==_0x20e2f6[_0x46d7('0x1e')]||_0x1f9533[_0x46d7('0x1f')]!==_0x20e2f6[_0x46d7('0x1f')]||_0x1f9533[_0x46d7('0x20')]!==_0x20e2f6[_0x46d7('0x20')]||_0x1f9533[_0x46d7('0x21')]!==_0x20e2f6[_0x46d7('0x21')]||_0x1f9533[_0x46d7('0x22')]!==_0x20e2f6[_0x46d7('0x22')]||_0x1f9533[_0x46d7('0x23')]!==_0x20e2f6[_0x46d7('0x23')]||_0x1f9533[_0x46d7('0x24')]!==_0x20e2f6['waiting']||_0x1f9533[_0x46d7('0x25')]!==_0x20e2f6['inUse']||_0x1f9533[_0x46d7('0x26')]!==_0x20e2f6['originated'];if(_0x1f9533[_0x46d7('0x27')]&&_0x20e2f6[_0x46d7('0x27')]){_0x5d9ab6=_0x1f9533[_0x46d7('0x27')][_0x46d7('0x28')]!==_0x20e2f6[_0x46d7('0x27')][_0x46d7('0x28')]||_0x1f9533[_0x46d7('0x27')]['active']!==_0x20e2f6[_0x46d7('0x27')][_0x46d7('0x16')];}return _0x1b3106||_0x16f400||_0x5d9ab6;}exports['hasQueueCampaignDataChanged']=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x305387){var _0x3e350b=null;var _0x4c6fb0=_0x305387[_0x46d7('0x29')];if(_['isNil'](_0x305387[_0x46d7('0x2a')])||_[_0x46d7('0x2b')](_0x305387[_0x46d7('0x2c')])||_[_0x46d7('0x2b')](_0x305387[_0x46d7('0x2c')][_0x46d7('0x2d')])){_0x3e350b=CAMPAIGN_STATUS['NULL_INTERVAL'];}else if(_[_0x46d7('0x2e')](_0x305387[_0x46d7('0x2a')])||_[_0x46d7('0x2e')](_0x305387[_0x46d7('0x2c')][_0x46d7('0x2d')])){_0x3e350b=CAMPAIGN_STATUS['EMPTY_INTERVAL'];}else if(_0x4c6fb0&&!timezones[_0x4c6fb0]){_0x3e350b=CAMPAIGN_STATUS[_0x46d7('0x2f')];}return _0x3e350b;}function checkAnyValidTrunk(_0x58afd5,_0x255a78){var _0x1324e8=null;var _0x5710ae=_0x46d7('0x30');var _0x39a48f=['reachable','unmonitored'];var _0xeba25a=!![];if(_0x58afd5[_0x46d7('0x27')]&&_0x58afd5[_0x46d7('0x27')]['active']){_0x5710ae+=_0x58afd5[_0x46d7('0x27')][_0x46d7('0x28')];_0x1324e8=_0x255a78[_0x5710ae];_0xeba25a=_0x39a48f['includes'](_0x1324e8[_0x46d7('0x31')]);}else if(_0x58afd5[_0x46d7('0x32')]&&_0x58afd5[_0x46d7('0x32')][_0x46d7('0x16')]){_0x5710ae+=_0x58afd5[_0x46d7('0x32')]['name'];_0x1324e8=_0x255a78[_0x5710ae];_0xeba25a=_0x39a48f[_0x46d7('0x33')](_0x1324e8[_0x46d7('0x31')]);}return _0xeba25a;}function getQueueCampaignStatusMessage(_0x504a19,_0x30d1d7){var _0x175bd6=CAMPAIGN_STATUS[_0x46d7('0x34')];var _0x226321=isPreviewCampaign(_0x504a19);if(!isQueueCampaignActive(_0x504a19)){if(_0x226321){_0x175bd6=CAMPAIGN_STATUS[_0x46d7('0x35')];}else{if(_0x504a19[_0x46d7('0x26')]===0x0&&_0x504a19[_0x46d7('0x22')]===0x0&&_0x504a19[_0x46d7('0x24')]===0x0&&(_0x504a19['pTalking']||0x0)===0x0){_0x175bd6=CAMPAIGN_STATUS[_0x46d7('0x35')];}else{_0x175bd6=CAMPAIGN_STATUS['DISACTIVED'];}}}else if(_0x504a19[_0x46d7('0x1f')]===0x0){_0x175bd6=CAMPAIGN_STATUS[_0x46d7('0x36')];}else if(!checkAnyValidTrunk(_0x504a19,_0x30d1d7)){_0x175bd6=CAMPAIGN_STATUS['UNREACHABLE_TRUNK'];}else if(!isPreviewCampaign(_0x504a19)){var _0x8b6b2e=checkAnyValidQueueCampaignInterval(_0x504a19);if(_0x8b6b2e){_0x175bd6=_0x8b6b2e;}}return _0x175bd6;}exports[_0x46d7('0x37')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x4c4cc9){var _0x129d12=CAMPAIGN_STATUS[_0x46d7('0x38')];if(_0x4c4cc9['originated']===0x0&&_0x4c4cc9['talking']===0x0&&_0x4c4cc9[_0x46d7('0x24')]===0x0&&(_0x4c4cc9['pTalking']||0x0)===0x0){_0x129d12=CAMPAIGN_STATUS['INACTIVE'];}return _0x129d12;}exports[_0x46d7('0x39')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x167b0e){var _0x20f2b6=_0x167b0e[_0x46d7('0x3a')](/"(.*?)"/);return _0x20f2b6?_0x20f2b6[0x1]:_0x167b0e;}exports[_0x46d7('0x3b')]=extractCalleridName;function getCallerId(_0xfdd13a,_0x585558,_0xcfddf2){if(!_['isUndefined'](_0xcfddf2)&&typeof _0xcfddf2===_0x46d7('0x3c')&&!_['isEmpty'](_0xcfddf2)){if(!_[_0x46d7('0x3d')](_0x585558)&&typeof _0x585558==='string'&&!_[_0x46d7('0x2e')](_0x585558)){return util['format']('\x22%s\x22\x20<%s>',_0x585558,_0xcfddf2);}return util[_0x46d7('0x3e')](_0x46d7('0x3f'),_0xcfddf2,_0xcfddf2);}if(!_['isUndefined'](_0xfdd13a)&&typeof _0xfdd13a===_0x46d7('0x3c')&&!_[_0x46d7('0x2e')](_0xfdd13a)){return _0xfdd13a;}return'\x22\x22\x20<>';}exports[_0x46d7('0x40')]=getCallerId;function getCallerIdRandom(_0x5ef37e,_0x2f1ae1){var _0x1ffce9;var _0x205859;var _0xb9ba49;if(_0x2f1ae1<=0x0){_0x2f1ae1=0x1;}_0x1ffce9=new RegExp(_0x46d7('0x41')+_0x2f1ae1+'}$');_0x205859=Math[_0x46d7('0x42')](0xa,_0x2f1ae1-0x1);_0xb9ba49=Math[_0x46d7('0x42')](0xa,_0x2f1ae1)-0x1;return util[_0x46d7('0x3e')]('%s',_[_0x46d7('0x43')](_0x5ef37e,_0x1ffce9,_['random'](_0x205859,_0xb9ba49)['toString']()));}exports['getCallerIdRandom']=getCallerIdRandom;function decrementOriginate(_0x5ed4e2){if(_0x5ed4e2[_0x46d7('0x26')]&&_0x5ed4e2[_0x46d7('0x26')]>0x0){_0x5ed4e2[_0x46d7('0x26')]-=0x1;}else{logger[_0x46d7('0x44')](_0x46d7('0x45'));}}exports[_0x46d7('0x46')]=decrementOriginate;function checkContactEmpty(_0x36bf55){return _0x36bf55&&_0x36bf55[_0x46d7('0x47')]>0x0;}exports[_0x46d7('0x48')]=checkContactEmpty;function erlangb(_0x1ab604,_0x5ce3b6){if(_0x5ce3b6===0x0){return 0x0;}var _0x2f5d7d=0x1;for(var _0x27bdd9=0x1;_0x27bdd9<=_0x5ce3b6;_0x27bdd9+=0x1){_0x2f5d7d=0x1+_0x2f5d7d*_0x27bdd9/_0x1ab604;}return 0x1/_0x2f5d7d;}exports[_0x46d7('0x49')]=erlangb;function checkContactLowerLimitOriginate(_0x5bd0c1,_0x4c1717,_0x3ef61e){if(_0x4c1717>_0x3ef61e){for(var _0x31c4c8=0x0;_0x31c4c8<_0x4c1717-_0x3ef61e;_0x31c4c8+=0x1){decrementOriginate(_0x5bd0c1);}}}exports[_0x46d7('0x4a')]=checkContactLowerLimitOriginate;