2468883698e80d8099fb0a9913bc6da6daa75884
[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 _0x3b23=['NULL_INTERVAL','isEmpty','UNKNOWN_TIMEZONE','SIP/','unmonitored','includes','status','TrunkBackup','INACTIVE','DISACTIVED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','extractCalleridName','string','format','\x22%s\x22\x20<%s>','isUndefined','\x22\x22\x20<>','getCallerId','\x5cw{0,','pow','replace','random','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','length','checkContactEmpty','moment','util','dialer','../../../../config/environment/shared','timezones','ACTIVE','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','RECALLINQUEUE','RECALLFAILEDTIMEOUT','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','isPreviewCampaign','type','ivr','outbound','isOutboundQueue','dialActive','isQueueCampaignActive','active','isIVRCampaignActive','diff','seconds','getSeconds','dialMethod','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','hasQueueCampaignDataChanged','dialTimezone','isNil','dialGlobalInterval','Interval','Intervals'];(function(_0x12b40a,_0x2a06ae){var _0x4e549c=function(_0x1efd71){while(--_0x1efd71){_0x12b40a['push'](_0x12b40a['shift']());}};_0x4e549c(++_0x2a06ae);}(_0x3b23,0x14d));var _0x33b2=function(_0x4066c7,_0x3f1e0a){_0x4066c7=_0x4066c7-0x0;var _0x1c1a4c=_0x3b23[_0x4066c7];return _0x1c1a4c;};'use strict';var _=require('lodash');var moment=require(_0x33b2('0x0'));var util=require(_0x33b2('0x1'));var logger=require('../../../../config/logger')(_0x33b2('0x2'));var timezones=require(_0x33b2('0x3'))[_0x33b2('0x4')];var CAMPAIGN_STATUS={'ACTIVE':_0x33b2('0x5'),'BLACKLIST':_0x33b2('0x6'),'CONTACTS_RESCHEDULED':_0x33b2('0x7'),'DEACTIVATED':_0x33b2('0x8'),'DISACTIVED':'IS_DISACTIVED','EMPTY_INTERVAL':'INTERVAL_IS_EMPTY','INACTIVE':'NOT_ACTIVE','NO_AGENTS_LOGGED':_0x33b2('0x9'),'NO_AVAILABLE_CONTACTS':_0x33b2('0xa'),'NULL_INTERVAL':_0x33b2('0xb'),'OVERTIME_INTERVAL':'INTERVAL_IS_OVERTIME','OVERTIME_GLOBAL_INTERVAL':'GLOBAL_INTERVAL_IS_OVERTIME','QUEUE_RECALL':_0x33b2('0xc'),'RECALL_TIMEOUT':_0x33b2('0xd'),'RUNNING':'RUNNING','UNKNOWN_TIMEZONE':'TIMEZONE_UNKNOW','UNREACHABLE_TRUNK':_0x33b2('0xe')};exports[_0x33b2('0xf')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x9c1398){return _0x9c1398['dialMethod']==='preview';}exports[_0x33b2('0x10')]=isPreviewCampaign;function isIVRCampaign(_0xcc687f){return _0xcc687f[_0x33b2('0x11')]===_0x33b2('0x12');}exports['isIVRCampaign']=isIVRCampaign;function isOutboundQueue(_0x12a333){return _0x12a333[_0x33b2('0x11')]===_0x33b2('0x13');}exports[_0x33b2('0x14')]=isOutboundQueue;function isQueueCampaignActive(_0x1e93d0){return _0x1e93d0[_0x33b2('0x15')];}exports[_0x33b2('0x16')]=isQueueCampaignActive;function isIVRCampaignActive(_0x15fe5b){return _0x15fe5b[_0x33b2('0x17')];}exports[_0x33b2('0x18')]=isIVRCampaignActive;function getSeconds(_0x1e6405,_0x36c3a8){var _0x445e50=moment(_0x1e6405)['milliseconds'](0x0);var _0x26006d=moment(_0x36c3a8)['milliseconds'](0x0);return _0x445e50[_0x33b2('0x19')](_0x26006d,_0x33b2('0x1a'));}exports[_0x33b2('0x1b')]=getSeconds;function hasQueueCampaignDataChanged(_0x21f121,_0x1fb1b5){var _0x5e1a6f=![];var _0xe34dbf=_0x21f121[_0x33b2('0x1c')]!==_0x1fb1b5[_0x33b2('0x1c')]||_0x21f121[_0x33b2('0x15')]!==_0x1fb1b5[_0x33b2('0x15')]||_0x21f121['message']!==_0x1fb1b5[_0x33b2('0x1d')];var _0xd84424=_0x21f121[_0x33b2('0x1e')]!==_0x1fb1b5[_0x33b2('0x1e')]||_0x21f121[_0x33b2('0x1f')]!==_0x1fb1b5['loggedIn']||_0x21f121[_0x33b2('0x20')]!==_0x1fb1b5['loggedInDb']||_0x21f121[_0x33b2('0x21')]!==_0x1fb1b5['paused']||_0x21f121[_0x33b2('0x22')]!==_0x1fb1b5['talking']||_0x21f121[_0x33b2('0x23')]!==_0x1fb1b5['pTalking']||_0x21f121[_0x33b2('0x24')]!==_0x1fb1b5[_0x33b2('0x24')]||_0x21f121[_0x33b2('0x25')]!==_0x1fb1b5[_0x33b2('0x25')]||_0x21f121[_0x33b2('0x26')]!==_0x1fb1b5[_0x33b2('0x26')];if(_0x21f121[_0x33b2('0x27')]&&_0x1fb1b5[_0x33b2('0x27')]){_0x5e1a6f=_0x21f121[_0x33b2('0x27')][_0x33b2('0x28')]!==_0x1fb1b5[_0x33b2('0x27')]['name']||_0x21f121[_0x33b2('0x27')][_0x33b2('0x17')]!==_0x1fb1b5[_0x33b2('0x27')]['active'];}return _0xe34dbf||_0xd84424||_0x5e1a6f;}exports[_0x33b2('0x29')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x16b74e){var _0x3c9ee8=null;var _0x5f2998=_0x16b74e[_0x33b2('0x2a')];if(_[_0x33b2('0x2b')](_0x16b74e[_0x33b2('0x2c')])||_['isNil'](_0x16b74e['Interval'])||_[_0x33b2('0x2b')](_0x16b74e[_0x33b2('0x2d')][_0x33b2('0x2e')])){_0x3c9ee8=CAMPAIGN_STATUS[_0x33b2('0x2f')];}else if(_[_0x33b2('0x30')](_0x16b74e[_0x33b2('0x2c')])||_[_0x33b2('0x30')](_0x16b74e[_0x33b2('0x2d')][_0x33b2('0x2e')])){_0x3c9ee8=CAMPAIGN_STATUS['EMPTY_INTERVAL'];}else if(_0x5f2998&&!timezones[_0x5f2998]){_0x3c9ee8=CAMPAIGN_STATUS[_0x33b2('0x31')];}return _0x3c9ee8;}function checkAnyValidTrunk(_0xb7a1f9,_0x5711b9){var _0x2788f5=null;var _0x107a21=_0x33b2('0x32');var _0x23eac2=['reachable',_0x33b2('0x33')];var _0x530ece=!![];if(_0xb7a1f9[_0x33b2('0x27')]&&_0xb7a1f9[_0x33b2('0x27')][_0x33b2('0x17')]){_0x107a21+=_0xb7a1f9[_0x33b2('0x27')][_0x33b2('0x28')];_0x2788f5=_0x5711b9[_0x107a21];_0x530ece=_0x23eac2[_0x33b2('0x34')](_0x2788f5[_0x33b2('0x35')]);}else if(_0xb7a1f9['TrunkBackup']&&_0xb7a1f9[_0x33b2('0x36')]['active']){_0x107a21+=_0xb7a1f9['TrunkBackup'][_0x33b2('0x28')];_0x2788f5=_0x5711b9[_0x107a21];_0x530ece=_0x23eac2[_0x33b2('0x34')](_0x2788f5['status']);}return _0x530ece;}function getQueueCampaignStatusMessage(_0x367b0c,_0x5c4f3d){var _0x29bae2=CAMPAIGN_STATUS[_0x33b2('0x5')];var _0x5b7a4c=isPreviewCampaign(_0x367b0c);if(!isQueueCampaignActive(_0x367b0c)){if(_0x5b7a4c){_0x29bae2=CAMPAIGN_STATUS['INACTIVE'];}else{if(_0x367b0c['originated']===0x0&&_0x367b0c[_0x33b2('0x22')]===0x0&&_0x367b0c[_0x33b2('0x24')]===0x0&&(_0x367b0c[_0x33b2('0x23')]||0x0)===0x0){_0x29bae2=CAMPAIGN_STATUS[_0x33b2('0x37')];}else{_0x29bae2=CAMPAIGN_STATUS[_0x33b2('0x38')];}}}else if(_0x367b0c[_0x33b2('0x1f')]===0x0){_0x29bae2=CAMPAIGN_STATUS['NO_AGENTS_LOGGED'];}else if(!checkAnyValidTrunk(_0x367b0c,_0x5c4f3d)){_0x29bae2=CAMPAIGN_STATUS[_0x33b2('0x39')];}else if(!isPreviewCampaign(_0x367b0c)){var _0x209460=checkAnyValidQueueCampaignInterval(_0x367b0c);if(_0x209460){_0x29bae2=_0x209460;}}return _0x29bae2;}exports[_0x33b2('0x3a')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x2f1017){var _0x32924c=CAMPAIGN_STATUS[_0x33b2('0x38')];if(_0x2f1017[_0x33b2('0x26')]===0x0&&_0x2f1017[_0x33b2('0x22')]===0x0&&_0x2f1017['waiting']===0x0&&(_0x2f1017[_0x33b2('0x23')]||0x0)===0x0){_0x32924c=CAMPAIGN_STATUS[_0x33b2('0x37')];}return _0x32924c;}exports[_0x33b2('0x3b')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x54c6c6){var _0x55f746=_0x54c6c6['match'](/"(.*?)"/);return _0x55f746?_0x55f746[0x1]:_0x54c6c6;}exports[_0x33b2('0x3c')]=extractCalleridName;function getCallerId(_0x5866cd,_0x341caa,_0x11fa14){if(!_['isUndefined'](_0x11fa14)&&typeof _0x11fa14===_0x33b2('0x3d')&&!_[_0x33b2('0x30')](_0x11fa14)){if(!_['isUndefined'](_0x341caa)&&typeof _0x341caa===_0x33b2('0x3d')&&!_[_0x33b2('0x30')](_0x341caa)){return util[_0x33b2('0x3e')](_0x33b2('0x3f'),_0x341caa,_0x11fa14);}return util['format'](_0x33b2('0x3f'),_0x11fa14,_0x11fa14);}if(!_[_0x33b2('0x40')](_0x5866cd)&&typeof _0x5866cd===_0x33b2('0x3d')&&!_[_0x33b2('0x30')](_0x5866cd)){return _0x5866cd;}return _0x33b2('0x41');}exports[_0x33b2('0x42')]=getCallerId;function getCallerIdRandom(_0x11c74c,_0x262723){var _0xa62fec;var _0x43cfe4;var _0x59084b;if(_0x262723<=0x0){_0x262723=0x1;}_0xa62fec=new RegExp(_0x33b2('0x43')+_0x262723+'}$');_0x43cfe4=Math[_0x33b2('0x44')](0xa,_0x262723-0x1);_0x59084b=Math[_0x33b2('0x44')](0xa,_0x262723)-0x1;return util[_0x33b2('0x3e')]('%s',_[_0x33b2('0x45')](_0x11c74c,_0xa62fec,_[_0x33b2('0x46')](_0x43cfe4,_0x59084b)['toString']()));}exports[_0x33b2('0x47')]=getCallerIdRandom;function decrementOriginate(_0x136cbf){if(_0x136cbf[_0x33b2('0x26')]&&_0x136cbf[_0x33b2('0x26')]>0x0){_0x136cbf['originated']-=0x1;}else{logger[_0x33b2('0x48')](_0x33b2('0x49'));}}exports['decrementOriginate']=decrementOriginate;function checkContactEmpty(_0x4b97d2){return _0x4b97d2&&_0x4b97d2[_0x33b2('0x4a')]>0x0;}exports[_0x33b2('0x4b')]=checkContactEmpty;function erlangb(_0x3f98af,_0x734d1e){if(_0x734d1e===0x0){return 0x0;}var _0xad0c5a=0x1;for(var _0x47f48b=0x1;_0x47f48b<=_0x734d1e;_0x47f48b+=0x1){_0xad0c5a=0x1+_0xad0c5a*_0x47f48b/_0x3f98af;}return 0x1/_0xad0c5a;}exports['erlangb']=erlangb;function checkContactLowerLimitOriginate(_0x19e388,_0x478b8c,_0x1b3956){if(_0x478b8c>_0x1b3956){for(var _0x2a83d6=0x0;_0x2a83d6<_0x478b8c-_0x1b3956;_0x2a83d6+=0x1){decrementOriginate(_0x19e388);}}}exports['checkContactLowerLimitOriginate']=checkContactLowerLimitOriginate;