Built motion from commit 3d6333b4.|2.6.31
[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 _0x150e=['ACTIVE','originated','INACTIVE','DISACTIVED','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','extractCalleridName','isUndefined','\x22%s\x22\x20<%s>','format','string','getCallerId','\x5cw{0,','pow','replace','toString','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value','decrementOriginate','length','checkContactEmpty','erlangb','createdAt','tags','updatedAt','undefined','XMD-','toUpperCase','substring','setXMDContactVariables','lodash','util','../../../../config/logger','../../../../config/environment/shared','timezones','BLACKLIST','RESCHEDULED_CONTACTS','IS_DISACTIVED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RECALLFAILEDTIMEOUT','RUNNING','TIMEZONE_UNKNOW','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','dialMethod','preview','type','ivr','isIVRCampaign','outbound','isOutboundQueue','active','isIVRCampaignActive','milliseconds','diff','seconds','getSeconds','dialActive','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','Trunk','name','dialTimezone','isNil','Interval','NULL_INTERVAL','isEmpty','dialGlobalInterval','Intervals','EMPTY_INTERVAL','reachable','unmonitored','includes','status','TrunkBackup'];(function(_0x3e5086,_0x48f4a2){var _0xfeb102=function(_0x5a945f){while(--_0x5a945f){_0x3e5086['push'](_0x3e5086['shift']());}};_0xfeb102(++_0x48f4a2);}(_0x150e,0x7c));var _0xe150=function(_0x3a0506,_0x4ac8b5){_0x3a0506=_0x3a0506-0x0;var _0x1f2620=_0x150e[_0x3a0506];return _0x1f2620;};'use strict';var _=require(_0xe150('0x0'));var moment=require('moment');var util=require(_0xe150('0x1'));var logger=require(_0xe150('0x2'))('dialer');var timezones=require(_0xe150('0x3'))[_0xe150('0x4')];var CAMPAIGN_STATUS={'ACTIVE':'ACTIVE','BLACKLIST':_0xe150('0x5'),'CONTACTS_RESCHEDULED':_0xe150('0x6'),'DEACTIVATED':'DEACTIVATED','DISACTIVED':_0xe150('0x7'),'EMPTY_INTERVAL':_0xe150('0x8'),'INACTIVE':_0xe150('0x9'),'NO_AGENTS_LOGGED':_0xe150('0xa'),'NO_AVAILABLE_CONTACTS':_0xe150('0xb'),'NULL_INTERVAL':'INTERVAL_IS_NULL','OVERTIME_INTERVAL':_0xe150('0xc'),'OVERTIME_GLOBAL_INTERVAL':_0xe150('0xd'),'QUEUE_RECALL':_0xe150('0xe'),'RECALL_TIMEOUT':_0xe150('0xf'),'RUNNING':_0xe150('0x10'),'UNKNOWN_TIMEZONE':_0xe150('0x11'),'UNREACHABLE_TRUNK':_0xe150('0x12')};exports[_0xe150('0x13')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x10490b){return _0x10490b[_0xe150('0x14')]===_0xe150('0x15');}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x181a98){return _0x181a98[_0xe150('0x16')]===_0xe150('0x17');}exports[_0xe150('0x18')]=isIVRCampaign;function isOutboundQueue(_0x175134){return _0x175134[_0xe150('0x16')]===_0xe150('0x19');}exports[_0xe150('0x1a')]=isOutboundQueue;function isQueueCampaignActive(_0x2cc8a6){return _0x2cc8a6['dialActive'];}exports['isQueueCampaignActive']=isQueueCampaignActive;function isIVRCampaignActive(_0x53f7f5){return _0x53f7f5[_0xe150('0x1b')];}exports[_0xe150('0x1c')]=isIVRCampaignActive;function getSeconds(_0x4b07ef,_0x427238){var _0x105fc0=moment(_0x4b07ef)[_0xe150('0x1d')](0x0);var _0x25b95c=moment(_0x427238)[_0xe150('0x1d')](0x0);return _0x105fc0[_0xe150('0x1e')](_0x25b95c,_0xe150('0x1f'));}exports[_0xe150('0x20')]=getSeconds;function hasQueueCampaignDataChanged(_0x4a4db1,_0x389b4c){var _0x3d36f1=![];var _0x10af68=_0x4a4db1['dialMethod']!==_0x389b4c[_0xe150('0x14')]||_0x4a4db1[_0xe150('0x21')]!==_0x389b4c['dialActive']||_0x4a4db1[_0xe150('0x22')]!==_0x389b4c[_0xe150('0x22')];var _0xd7fb23=_0x4a4db1[_0xe150('0x23')]!==_0x389b4c[_0xe150('0x23')]||_0x4a4db1['loggedIn']!==_0x389b4c[_0xe150('0x24')]||_0x4a4db1['loggedInDb']!==_0x389b4c[_0xe150('0x25')]||_0x4a4db1[_0xe150('0x26')]!==_0x389b4c['paused']||_0x4a4db1[_0xe150('0x27')]!==_0x389b4c[_0xe150('0x27')]||_0x4a4db1[_0xe150('0x28')]!==_0x389b4c[_0xe150('0x28')]||_0x4a4db1[_0xe150('0x29')]!==_0x389b4c['waiting']||_0x4a4db1[_0xe150('0x2a')]!==_0x389b4c[_0xe150('0x2a')]||_0x4a4db1['originated']!==_0x389b4c['originated'];if(_0x4a4db1[_0xe150('0x2b')]&&_0x389b4c['Trunk']){_0x3d36f1=_0x4a4db1[_0xe150('0x2b')]['name']!==_0x389b4c[_0xe150('0x2b')][_0xe150('0x2c')]||_0x4a4db1[_0xe150('0x2b')][_0xe150('0x1b')]!==_0x389b4c[_0xe150('0x2b')][_0xe150('0x1b')];}return _0x10af68||_0xd7fb23||_0x3d36f1;}exports['hasQueueCampaignDataChanged']=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x21fdcb){var _0x4db9f0=null;var _0x18d302=_0x21fdcb[_0xe150('0x2d')];if(_[_0xe150('0x2e')](_0x21fdcb['dialGlobalInterval'])||_[_0xe150('0x2e')](_0x21fdcb[_0xe150('0x2f')])||_[_0xe150('0x2e')](_0x21fdcb[_0xe150('0x2f')]['Intervals'])){_0x4db9f0=CAMPAIGN_STATUS[_0xe150('0x30')];}else if(_[_0xe150('0x31')](_0x21fdcb[_0xe150('0x32')])||_['isEmpty'](_0x21fdcb[_0xe150('0x2f')][_0xe150('0x33')])){_0x4db9f0=CAMPAIGN_STATUS[_0xe150('0x34')];}else if(_0x18d302&&!timezones[_0x18d302]){_0x4db9f0=CAMPAIGN_STATUS['UNKNOWN_TIMEZONE'];}return _0x4db9f0;}function checkAnyValidTrunk(_0x418aa3,_0x2d82f0){var _0xd6751=null;var _0x4d79f4='SIP/';var _0x52b9a5=[_0xe150('0x35'),_0xe150('0x36')];var _0x3afdd3=!![];if(_0x418aa3['Trunk']&&_0x418aa3[_0xe150('0x2b')][_0xe150('0x1b')]){_0x4d79f4+=_0x418aa3[_0xe150('0x2b')]['name'];_0xd6751=_0x2d82f0[_0x4d79f4];_0x3afdd3=_0x52b9a5[_0xe150('0x37')](_0xd6751[_0xe150('0x38')]);}else if(_0x418aa3['TrunkBackup']&&_0x418aa3[_0xe150('0x39')]['active']){_0x4d79f4+=_0x418aa3[_0xe150('0x39')][_0xe150('0x2c')];_0xd6751=_0x2d82f0[_0x4d79f4];_0x3afdd3=_0x52b9a5[_0xe150('0x37')](_0xd6751[_0xe150('0x38')]);}return _0x3afdd3;}function getQueueCampaignStatusMessage(_0x3facff,_0x17eae6){var _0x1f724c=CAMPAIGN_STATUS[_0xe150('0x3a')];var _0x192a17=isPreviewCampaign(_0x3facff);if(!isQueueCampaignActive(_0x3facff)){if(_0x192a17){_0x1f724c=CAMPAIGN_STATUS['INACTIVE'];}else{if(_0x3facff[_0xe150('0x3b')]===0x0&&_0x3facff[_0xe150('0x27')]===0x0&&_0x3facff[_0xe150('0x29')]===0x0&&(_0x3facff[_0xe150('0x28')]||0x0)===0x0){_0x1f724c=CAMPAIGN_STATUS[_0xe150('0x3c')];}else{_0x1f724c=CAMPAIGN_STATUS[_0xe150('0x3d')];}}}else if(_0x3facff['loggedIn']===0x0){_0x1f724c=CAMPAIGN_STATUS[_0xe150('0x3e')];}else if(!checkAnyValidTrunk(_0x3facff,_0x17eae6)){_0x1f724c=CAMPAIGN_STATUS[_0xe150('0x3f')];}else if(!isPreviewCampaign(_0x3facff)){var _0x45b806=checkAnyValidQueueCampaignInterval(_0x3facff);if(_0x45b806){_0x1f724c=_0x45b806;}}return _0x1f724c;}exports[_0xe150('0x40')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x93c5cd){var _0x3ba2b5=CAMPAIGN_STATUS[_0xe150('0x3d')];if(_0x93c5cd[_0xe150('0x3b')]===0x0&&_0x93c5cd[_0xe150('0x27')]===0x0&&_0x93c5cd[_0xe150('0x29')]===0x0&&(_0x93c5cd[_0xe150('0x28')]||0x0)===0x0){_0x3ba2b5=CAMPAIGN_STATUS[_0xe150('0x3c')];}return _0x3ba2b5;}exports[_0xe150('0x41')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x2e5c83){var _0x459a42=_0x2e5c83['match'](/"(.*?)"/);return _0x459a42?_0x459a42[0x1]:_0x2e5c83;}exports[_0xe150('0x42')]=extractCalleridName;function getCallerId(_0x12fdf6,_0x561dce,_0x10b2d3){if(!_['isUndefined'](_0x10b2d3)&&typeof _0x10b2d3==='string'&&!_[_0xe150('0x31')](_0x10b2d3)){if(!_[_0xe150('0x43')](_0x561dce)&&typeof _0x561dce==='string'&&!_[_0xe150('0x31')](_0x561dce)){return util['format'](_0xe150('0x44'),_0x561dce,_0x10b2d3);}return util[_0xe150('0x45')]('\x22%s\x22\x20<%s>',_0x10b2d3,_0x10b2d3);}if(!_['isUndefined'](_0x12fdf6)&&typeof _0x12fdf6===_0xe150('0x46')&&!_[_0xe150('0x31')](_0x12fdf6)){return _0x12fdf6;}return'\x22\x22\x20<>';}exports[_0xe150('0x47')]=getCallerId;function getCallerIdRandom(_0x4a887e,_0x456bbe){var _0x56eff4;var _0x5ec29;var _0x22b127;if(_0x456bbe<=0x0){_0x456bbe=0x1;}_0x56eff4=new RegExp(_0xe150('0x48')+_0x456bbe+'}$');_0x5ec29=Math[_0xe150('0x49')](0xa,_0x456bbe-0x1);_0x22b127=Math['pow'](0xa,_0x456bbe)-0x1;return util[_0xe150('0x45')]('%s',_[_0xe150('0x4a')](_0x4a887e,_0x56eff4,_['random'](_0x5ec29,_0x22b127)[_0xe150('0x4b')]()));}exports[_0xe150('0x4c')]=getCallerIdRandom;function decrementOriginate(_0x59669f,_0x594cc5){if(_0x59669f[_0xe150('0x3b')]&&_0x59669f['originated']>0x0){_0x59669f[_0xe150('0x3b')]-=0x1;}else{logger[_0xe150('0x4d')](_0xe150('0x4e'),_0x594cc5);}}exports[_0xe150('0x4f')]=decrementOriginate;function checkContactEmpty(_0x3142c9){return _0x3142c9&&_0x3142c9[_0xe150('0x50')]>0x0;}exports[_0xe150('0x51')]=checkContactEmpty;function erlangb(_0x58ba2f,_0x5c1fed){if(_0x5c1fed===0x0){return 0x0;}var _0x4f59b7=0x1;for(var _0x2ed5ba=0x1;_0x2ed5ba<=_0x5c1fed;_0x2ed5ba+=0x1){_0x4f59b7=0x1+_0x4f59b7*_0x2ed5ba/_0x58ba2f;}return 0x1/_0x4f59b7;}exports[_0xe150('0x52')]=erlangb;function checkContactLowerLimitOriginate(_0x14e3e0,_0x573a01,_0x1886b7){if(_0x573a01>_0x1886b7){for(var _0x33f1e2=0x0;_0x33f1e2<_0x573a01-_0x1886b7;_0x33f1e2+=0x1){decrementOriginate(_0x14e3e0,'[checkContactLowerLimitOriginate]\x20');}}}exports['checkContactLowerLimitOriginate']=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x2ccdbf){var _0xd8b091={};var _0x19dda6=['id',_0xe150('0x53'),_0xe150('0x54'),_0xe150('0x55')];const _0x47dce4=0xfa;if(_0x2ccdbf){for(var _0x2e9897 in _0x2ccdbf){if(typeof _0x2ccdbf[_0x2e9897]!==_0xe150('0x56')){if(!_[_0xe150('0x2e')](_0x2ccdbf[_0x2e9897])&&!_0x19dda6['includes'](_0x2e9897)){if(_0x2e9897==='description'&&_0x2ccdbf[_0x2e9897][_0xe150('0x50')]>_0x47dce4){_0xd8b091[_0xe150('0x57')+_0x2e9897[_0xe150('0x58')]()]=_0x2ccdbf[_0x2e9897][_0xe150('0x4b')]()[_0xe150('0x59')](0x0,_0x47dce4);}else{_0xd8b091['XMD-'+_0x2e9897[_0xe150('0x58')]()]=_0x2ccdbf[_0x2e9897];}}}}}return _0xd8b091;}exports[_0xe150('0x5a')]=setXMDContactVariables;