Built motion from commit 3c2ce842.|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 _0x880b=['RECALLFAILEDTIMEOUT','RUNNING','TIMEZONE_UNKNOW','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','dialMethod','preview','isPreviewCampaign','type','isIVRCampaign','outbound','isOutboundQueue','dialActive','isQueueCampaignActive','milliseconds','seconds','message','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','active','hasQueueCampaignDataChanged','dialTimezone','isNil','Interval','isEmpty','dialGlobalInterval','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','SIP/','reachable','unmonitored','includes','status','TrunkBackup','INACTIVE','DISACTIVED','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','match','extractCalleridName','isUndefined','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','getCallerId','\x5cw{0,','pow','replace','random','toString','getCallerIdRandom','decrementOriginate','length','erlangb','[checkContactLowerLimitOriginate]\x20','checkContactLowerLimitOriginate','createdAt','tags','updatedAt','description','XMD-','toUpperCase','substring','setXMDContactVariables','lodash','moment','util','../../../../config/logger','dialer','../../../../config/environment/shared','timezones','ACTIVE','BLACKLIST','DEACTIVATED','IS_DISACTIVED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE'];(function(_0xa911e,_0x1a9f9a){var _0x28bd6f=function(_0x3b15ad){while(--_0x3b15ad){_0xa911e['push'](_0xa911e['shift']());}};_0x28bd6f(++_0x1a9f9a);}(_0x880b,0xa9));var _0xb880=function(_0x4964eb,_0x18a716){_0x4964eb=_0x4964eb-0x0;var _0x5313fd=_0x880b[_0x4964eb];return _0x5313fd;};'use strict';var _=require(_0xb880('0x0'));var moment=require(_0xb880('0x1'));var util=require(_0xb880('0x2'));var logger=require(_0xb880('0x3'))(_0xb880('0x4'));var timezones=require(_0xb880('0x5'))[_0xb880('0x6')];var CAMPAIGN_STATUS={'ACTIVE':_0xb880('0x7'),'BLACKLIST':_0xb880('0x8'),'CONTACTS_RESCHEDULED':'RESCHEDULED_CONTACTS','DEACTIVATED':_0xb880('0x9'),'DISACTIVED':_0xb880('0xa'),'EMPTY_INTERVAL':_0xb880('0xb'),'INACTIVE':_0xb880('0xc'),'NO_AGENTS_LOGGED':_0xb880('0xd'),'NO_AVAILABLE_CONTACTS':_0xb880('0xe'),'NULL_INTERVAL':_0xb880('0xf'),'OVERTIME_INTERVAL':_0xb880('0x10'),'OVERTIME_GLOBAL_INTERVAL':_0xb880('0x11'),'QUEUE_RECALL':_0xb880('0x12'),'RECALL_TIMEOUT':_0xb880('0x13'),'RUNNING':_0xb880('0x14'),'UNKNOWN_TIMEZONE':_0xb880('0x15'),'UNREACHABLE_TRUNK':_0xb880('0x16')};exports[_0xb880('0x17')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x411a0d){return _0x411a0d[_0xb880('0x18')]===_0xb880('0x19');}exports[_0xb880('0x1a')]=isPreviewCampaign;function isIVRCampaign(_0x40d5f7){return _0x40d5f7[_0xb880('0x1b')]==='ivr';}exports[_0xb880('0x1c')]=isIVRCampaign;function isOutboundQueue(_0x2ada27){return _0x2ada27[_0xb880('0x1b')]===_0xb880('0x1d');}exports[_0xb880('0x1e')]=isOutboundQueue;function isQueueCampaignActive(_0x2cd2cd){return _0x2cd2cd[_0xb880('0x1f')];}exports[_0xb880('0x20')]=isQueueCampaignActive;function isIVRCampaignActive(_0x21334f){return _0x21334f['active'];}exports['isIVRCampaignActive']=isIVRCampaignActive;function getSeconds(_0x362948,_0x288a1e){var _0x3d09f6=moment(_0x362948)[_0xb880('0x21')](0x0);var _0x12e607=moment(_0x288a1e)[_0xb880('0x21')](0x0);return _0x3d09f6['diff'](_0x12e607,_0xb880('0x22'));}exports['getSeconds']=getSeconds;function hasQueueCampaignDataChanged(_0x4e290b,_0x4613b6){var _0x5ca636=![];var _0x175a76=_0x4e290b[_0xb880('0x18')]!==_0x4613b6[_0xb880('0x18')]||_0x4e290b[_0xb880('0x1f')]!==_0x4613b6[_0xb880('0x1f')]||_0x4e290b[_0xb880('0x23')]!==_0x4613b6[_0xb880('0x23')];var _0x531e1e=_0x4e290b['available']!==_0x4613b6['available']||_0x4e290b[_0xb880('0x24')]!==_0x4613b6['loggedIn']||_0x4e290b[_0xb880('0x25')]!==_0x4613b6[_0xb880('0x25')]||_0x4e290b[_0xb880('0x26')]!==_0x4613b6['paused']||_0x4e290b[_0xb880('0x27')]!==_0x4613b6[_0xb880('0x27')]||_0x4e290b['pTalking']!==_0x4613b6[_0xb880('0x28')]||_0x4e290b[_0xb880('0x29')]!==_0x4613b6[_0xb880('0x29')]||_0x4e290b[_0xb880('0x2a')]!==_0x4613b6['inUse']||_0x4e290b[_0xb880('0x2b')]!==_0x4613b6[_0xb880('0x2b')];if(_0x4e290b[_0xb880('0x2c')]&&_0x4613b6[_0xb880('0x2c')]){_0x5ca636=_0x4e290b[_0xb880('0x2c')][_0xb880('0x2d')]!==_0x4613b6[_0xb880('0x2c')]['name']||_0x4e290b['Trunk'][_0xb880('0x2e')]!==_0x4613b6[_0xb880('0x2c')][_0xb880('0x2e')];}return _0x175a76||_0x531e1e||_0x5ca636;}exports[_0xb880('0x2f')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x238efd){var _0x40dd79=null;var _0x283ced=_0x238efd[_0xb880('0x30')];if(_[_0xb880('0x31')](_0x238efd['dialGlobalInterval'])||_[_0xb880('0x31')](_0x238efd[_0xb880('0x32')])||_['isNil'](_0x238efd[_0xb880('0x32')]['Intervals'])){_0x40dd79=CAMPAIGN_STATUS['NULL_INTERVAL'];}else if(_[_0xb880('0x33')](_0x238efd[_0xb880('0x34')])||_[_0xb880('0x33')](_0x238efd[_0xb880('0x32')]['Intervals'])){_0x40dd79=CAMPAIGN_STATUS[_0xb880('0x35')];}else if(_0x283ced&&!timezones[_0x283ced]){_0x40dd79=CAMPAIGN_STATUS[_0xb880('0x36')];}return _0x40dd79;}function checkAnyValidTrunk(_0x131e7f,_0x18278e){var _0x511223=null;var _0x94dd1=_0xb880('0x37');var _0x5e0a56=[_0xb880('0x38'),_0xb880('0x39')];var _0x12b7ab=!![];if(_0x131e7f['Trunk']&&_0x131e7f[_0xb880('0x2c')][_0xb880('0x2e')]){_0x94dd1+=_0x131e7f[_0xb880('0x2c')][_0xb880('0x2d')];_0x511223=_0x18278e[_0x94dd1];_0x12b7ab=_0x5e0a56[_0xb880('0x3a')](_0x511223[_0xb880('0x3b')]);}else if(_0x131e7f[_0xb880('0x3c')]&&_0x131e7f[_0xb880('0x3c')]['active']){_0x94dd1+=_0x131e7f[_0xb880('0x3c')][_0xb880('0x2d')];_0x511223=_0x18278e[_0x94dd1];_0x12b7ab=_0x5e0a56['includes'](_0x511223[_0xb880('0x3b')]);}return _0x12b7ab;}function getQueueCampaignStatusMessage(_0x40674d,_0x853256){var _0x500a66=CAMPAIGN_STATUS[_0xb880('0x7')];var _0x51585c=isPreviewCampaign(_0x40674d);if(!isQueueCampaignActive(_0x40674d)){if(_0x51585c){_0x500a66=CAMPAIGN_STATUS[_0xb880('0x3d')];}else{if(_0x40674d[_0xb880('0x2b')]===0x0&&_0x40674d['talking']===0x0&&_0x40674d['waiting']===0x0&&(_0x40674d[_0xb880('0x28')]||0x0)===0x0){_0x500a66=CAMPAIGN_STATUS[_0xb880('0x3d')];}else{_0x500a66=CAMPAIGN_STATUS[_0xb880('0x3e')];}}}else if(_0x40674d[_0xb880('0x24')]===0x0){_0x500a66=CAMPAIGN_STATUS[_0xb880('0x3f')];}else if(!checkAnyValidTrunk(_0x40674d,_0x853256)){_0x500a66=CAMPAIGN_STATUS[_0xb880('0x40')];}else if(!isPreviewCampaign(_0x40674d)){var _0x767b2b=checkAnyValidQueueCampaignInterval(_0x40674d);if(_0x767b2b){_0x500a66=_0x767b2b;}}return _0x500a66;}exports[_0xb880('0x41')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x52b97a){var _0x289b19=CAMPAIGN_STATUS['DISACTIVED'];if(_0x52b97a[_0xb880('0x2b')]===0x0&&_0x52b97a[_0xb880('0x27')]===0x0&&_0x52b97a[_0xb880('0x29')]===0x0&&(_0x52b97a[_0xb880('0x28')]||0x0)===0x0){_0x289b19=CAMPAIGN_STATUS[_0xb880('0x3d')];}return _0x289b19;}exports[_0xb880('0x42')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x2b2076){var _0x2abc9f=_0x2b2076[_0xb880('0x43')](/"(.*?)"/);return _0x2abc9f?_0x2abc9f[0x1]:_0x2b2076;}exports[_0xb880('0x44')]=extractCalleridName;function getCallerId(_0xc2e7fa,_0x598d74,_0x4fffcc){if(!_[_0xb880('0x45')](_0x4fffcc)&&typeof _0x4fffcc===_0xb880('0x46')&&!_[_0xb880('0x33')](_0x4fffcc)){if(!_[_0xb880('0x45')](_0x598d74)&&typeof _0x598d74===_0xb880('0x46')&&!_['isEmpty'](_0x598d74)){return util[_0xb880('0x47')](_0xb880('0x48'),_0x598d74,_0x4fffcc);}return util[_0xb880('0x47')](_0xb880('0x48'),_0x4fffcc,_0x4fffcc);}if(!_[_0xb880('0x45')](_0xc2e7fa)&&typeof _0xc2e7fa===_0xb880('0x46')&&!_['isEmpty'](_0xc2e7fa)){return _0xc2e7fa;}return _0xb880('0x49');}exports[_0xb880('0x4a')]=getCallerId;function getCallerIdRandom(_0x1a52e4,_0x2bf2dc){var _0x3cf966;var _0x2cca9b;var _0x28d1d1;if(_0x2bf2dc<=0x0){_0x2bf2dc=0x1;}_0x3cf966=new RegExp(_0xb880('0x4b')+_0x2bf2dc+'}$');_0x2cca9b=Math[_0xb880('0x4c')](0xa,_0x2bf2dc-0x1);_0x28d1d1=Math['pow'](0xa,_0x2bf2dc)-0x1;return util[_0xb880('0x47')]('%s',_[_0xb880('0x4d')](_0x1a52e4,_0x3cf966,_[_0xb880('0x4e')](_0x2cca9b,_0x28d1d1)[_0xb880('0x4f')]()));}exports[_0xb880('0x50')]=getCallerIdRandom;function decrementOriginate(_0x3d81b1,_0x24f930){if(_0x3d81b1['originated']&&_0x3d81b1[_0xb880('0x2b')]>0x0){_0x3d81b1[_0xb880('0x2b')]-=0x1;}else{logger['error']('[decrementOriginate]\x20queue\x20originate\x20value',_0x24f930);}}exports[_0xb880('0x51')]=decrementOriginate;function checkContactEmpty(_0x3d73ff){return _0x3d73ff&&_0x3d73ff[_0xb880('0x52')]>0x0;}exports['checkContactEmpty']=checkContactEmpty;function erlangb(_0x431a10,_0x23ed0e){if(_0x23ed0e===0x0){return 0x0;}var _0x12f5d1=0x1;for(var _0x2f50ac=0x1;_0x2f50ac<=_0x23ed0e;_0x2f50ac+=0x1){_0x12f5d1=0x1+_0x12f5d1*_0x2f50ac/_0x431a10;}return 0x1/_0x12f5d1;}exports[_0xb880('0x53')]=erlangb;function checkContactLowerLimitOriginate(_0x136a14,_0x501bd8,_0x4fbd3e){if(_0x501bd8>_0x4fbd3e){for(var _0x4bd5cb=0x0;_0x4bd5cb<_0x501bd8-_0x4fbd3e;_0x4bd5cb+=0x1){decrementOriginate(_0x136a14,_0xb880('0x54'));}}}exports[_0xb880('0x55')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x32a842){var _0x42627b={};var _0x219b76=['id',_0xb880('0x56'),_0xb880('0x57'),_0xb880('0x58')];const _0x27f9=0xfa;if(_0x32a842){for(var _0x2bd673 in _0x32a842){if(typeof _0x32a842[_0x2bd673]!=='undefined'){if(!_[_0xb880('0x31')](_0x32a842[_0x2bd673])&&!_0x219b76[_0xb880('0x3a')](_0x2bd673)){if(_0x2bd673===_0xb880('0x59')&&_0x32a842[_0x2bd673][_0xb880('0x52')]>_0x27f9){_0x42627b[_0xb880('0x5a')+_0x2bd673[_0xb880('0x5b')]()]=_0x32a842[_0x2bd673][_0xb880('0x4f')]()[_0xb880('0x5c')](0x0,_0x27f9);}else{_0x42627b[_0xb880('0x5a')+_0x2bd673[_0xb880('0x5b')]()]=_0x32a842[_0x2bd673];}}}}}return _0x42627b;}exports[_0xb880('0x5d')]=setXMDContactVariables;