07ae191cd10df596b3a6baad326fd8dbc51cc2ad
[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 _0xa38b=['RECALLINQUEUE','RECALLFAILEDTIMEOUT','RUNNING','TIMEZONE_UNKNOW','CAMPAIGN_STATUS','dialMethod','preview','isIVRCampaign','type','isOutboundQueue','isIVRCampaignActive','milliseconds','diff','seconds','dialActive','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','active','hasQueueCampaignDataChanged','isNil','dialGlobalInterval','Interval','Intervals','NULL_INTERVAL','isEmpty','UNKNOWN_TIMEZONE','unmonitored','includes','status','TrunkBackup','INACTIVE','NO_AGENTS_LOGGED','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','extractCalleridName','isUndefined','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','getCallerId','pow','replace','random','toString','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','decrementOriginate','length','checkContactEmpty','erlangb','checkContactLowerLimitOriginate','createdAt','tags','updatedAt','substring','toUpperCase','setXMDContactVariables','lodash','moment','util','../../../../config/logger','dialer','timezones','ACTIVE','BLACKLIST','IS_DISACTIVED','NOT_ACTIVE','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME'];(function(_0x4d17e8,_0x1deb64){var _0x1868d4=function(_0x46ea22){while(--_0x46ea22){_0x4d17e8['push'](_0x4d17e8['shift']());}};_0x1868d4(++_0x1deb64);}(_0xa38b,0x13e));var _0xba38=function(_0x398828,_0x52119b){_0x398828=_0x398828-0x0;var _0x399ce8=_0xa38b[_0x398828];return _0x399ce8;};'use strict';var _=require(_0xba38('0x0'));var moment=require(_0xba38('0x1'));var util=require(_0xba38('0x2'));var logger=require(_0xba38('0x3'))(_0xba38('0x4'));var timezones=require('../../../../config/environment/shared')[_0xba38('0x5')];var CAMPAIGN_STATUS={'ACTIVE':_0xba38('0x6'),'BLACKLIST':_0xba38('0x7'),'CONTACTS_RESCHEDULED':'RESCHEDULED_CONTACTS','DEACTIVATED':'DEACTIVATED','DISACTIVED':_0xba38('0x8'),'EMPTY_INTERVAL':'INTERVAL_IS_EMPTY','INACTIVE':_0xba38('0x9'),'NO_AGENTS_LOGGED':_0xba38('0xa'),'NO_AVAILABLE_CONTACTS':_0xba38('0xb'),'NULL_INTERVAL':'INTERVAL_IS_NULL','OVERTIME_INTERVAL':_0xba38('0xc'),'OVERTIME_GLOBAL_INTERVAL':_0xba38('0xd'),'QUEUE_RECALL':_0xba38('0xe'),'RECALL_TIMEOUT':_0xba38('0xf'),'RUNNING':_0xba38('0x10'),'UNKNOWN_TIMEZONE':_0xba38('0x11'),'UNREACHABLE_TRUNK':'TRUNK_IS_NOT_REACHABLE'};exports[_0xba38('0x12')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0xc2d83a){return _0xc2d83a[_0xba38('0x13')]===_0xba38('0x14');}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x4af04a){return _0x4af04a['type']==='ivr';}exports[_0xba38('0x15')]=isIVRCampaign;function isOutboundQueue(_0x4998f8){return _0x4998f8[_0xba38('0x16')]==='outbound';}exports[_0xba38('0x17')]=isOutboundQueue;function isQueueCampaignActive(_0x4c0934){return _0x4c0934['dialActive'];}exports['isQueueCampaignActive']=isQueueCampaignActive;function isIVRCampaignActive(_0x34058c){return _0x34058c['active'];}exports[_0xba38('0x18')]=isIVRCampaignActive;function getSeconds(_0x5bb715,_0x3f1242){var _0x29fa44=moment(_0x5bb715)[_0xba38('0x19')](0x0);var _0x3e233b=moment(_0x3f1242)[_0xba38('0x19')](0x0);return _0x29fa44[_0xba38('0x1a')](_0x3e233b,_0xba38('0x1b'));}exports['getSeconds']=getSeconds;function hasQueueCampaignDataChanged(_0x37444d,_0x203f0e){var _0xf19a08=![];var _0x31ceda=_0x37444d['dialMethod']!==_0x203f0e[_0xba38('0x13')]||_0x37444d[_0xba38('0x1c')]!==_0x203f0e['dialActive']||_0x37444d[_0xba38('0x1d')]!==_0x203f0e[_0xba38('0x1d')];var _0x4e2708=_0x37444d[_0xba38('0x1e')]!==_0x203f0e[_0xba38('0x1e')]||_0x37444d[_0xba38('0x1f')]!==_0x203f0e['loggedIn']||_0x37444d[_0xba38('0x20')]!==_0x203f0e[_0xba38('0x20')]||_0x37444d[_0xba38('0x21')]!==_0x203f0e['paused']||_0x37444d['talking']!==_0x203f0e[_0xba38('0x22')]||_0x37444d[_0xba38('0x23')]!==_0x203f0e['pTalking']||_0x37444d[_0xba38('0x24')]!==_0x203f0e[_0xba38('0x24')]||_0x37444d[_0xba38('0x25')]!==_0x203f0e['inUse']||_0x37444d[_0xba38('0x26')]!==_0x203f0e[_0xba38('0x26')];if(_0x37444d[_0xba38('0x27')]&&_0x203f0e[_0xba38('0x27')]){_0xf19a08=_0x37444d[_0xba38('0x27')][_0xba38('0x28')]!==_0x203f0e['Trunk']['name']||_0x37444d[_0xba38('0x27')]['active']!==_0x203f0e[_0xba38('0x27')][_0xba38('0x29')];}return _0x31ceda||_0x4e2708||_0xf19a08;}exports[_0xba38('0x2a')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x54a6bf){var _0x3942f6=null;var _0xddf813=_0x54a6bf['dialTimezone'];if(_[_0xba38('0x2b')](_0x54a6bf[_0xba38('0x2c')])||_[_0xba38('0x2b')](_0x54a6bf[_0xba38('0x2d')])||_[_0xba38('0x2b')](_0x54a6bf['Interval'][_0xba38('0x2e')])){_0x3942f6=CAMPAIGN_STATUS[_0xba38('0x2f')];}else if(_['isEmpty'](_0x54a6bf[_0xba38('0x2c')])||_[_0xba38('0x30')](_0x54a6bf['Interval'][_0xba38('0x2e')])){_0x3942f6=CAMPAIGN_STATUS['EMPTY_INTERVAL'];}else if(_0xddf813&&!timezones[_0xddf813]){_0x3942f6=CAMPAIGN_STATUS[_0xba38('0x31')];}return _0x3942f6;}function checkAnyValidTrunk(_0x5d966c,_0x285978){var _0x4fcb5e=null;var _0x3272a4='SIP/';var _0x4e63f3=['reachable',_0xba38('0x32')];var _0x5d7716=!![];if(_0x5d966c[_0xba38('0x27')]&&_0x5d966c[_0xba38('0x27')][_0xba38('0x29')]){_0x3272a4+=_0x5d966c[_0xba38('0x27')][_0xba38('0x28')];_0x4fcb5e=_0x285978[_0x3272a4];_0x5d7716=_0x4e63f3[_0xba38('0x33')](_0x4fcb5e[_0xba38('0x34')]);}else if(_0x5d966c[_0xba38('0x35')]&&_0x5d966c[_0xba38('0x35')][_0xba38('0x29')]){_0x3272a4+=_0x5d966c['TrunkBackup'][_0xba38('0x28')];_0x4fcb5e=_0x285978[_0x3272a4];_0x5d7716=_0x4e63f3[_0xba38('0x33')](_0x4fcb5e['status']);}return _0x5d7716;}function getQueueCampaignStatusMessage(_0x2cdf5c,_0x2d6b9f){var _0x55cd80=CAMPAIGN_STATUS[_0xba38('0x6')];var _0x58d486=isPreviewCampaign(_0x2cdf5c);if(!isQueueCampaignActive(_0x2cdf5c)){if(_0x58d486){_0x55cd80=CAMPAIGN_STATUS[_0xba38('0x36')];}else{if(_0x2cdf5c[_0xba38('0x26')]===0x0&&_0x2cdf5c['talking']===0x0&&_0x2cdf5c[_0xba38('0x24')]===0x0&&(_0x2cdf5c[_0xba38('0x23')]||0x0)===0x0){_0x55cd80=CAMPAIGN_STATUS['INACTIVE'];}else{_0x55cd80=CAMPAIGN_STATUS['DISACTIVED'];}}}else if(_0x2cdf5c['loggedIn']===0x0){_0x55cd80=CAMPAIGN_STATUS[_0xba38('0x37')];}else if(!checkAnyValidTrunk(_0x2cdf5c,_0x2d6b9f)){_0x55cd80=CAMPAIGN_STATUS['UNREACHABLE_TRUNK'];}else if(!isPreviewCampaign(_0x2cdf5c)){var _0x288097=checkAnyValidQueueCampaignInterval(_0x2cdf5c);if(_0x288097){_0x55cd80=_0x288097;}}return _0x55cd80;}exports[_0xba38('0x38')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0xa74a60){var _0x1a466c=CAMPAIGN_STATUS['DISACTIVED'];if(_0xa74a60[_0xba38('0x26')]===0x0&&_0xa74a60[_0xba38('0x22')]===0x0&&_0xa74a60[_0xba38('0x24')]===0x0&&(_0xa74a60[_0xba38('0x23')]||0x0)===0x0){_0x1a466c=CAMPAIGN_STATUS[_0xba38('0x36')];}return _0x1a466c;}exports[_0xba38('0x39')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x424aa7){var _0x5af337=_0x424aa7['match'](/"(.*?)"/);return _0x5af337?_0x5af337[0x1]:_0x424aa7;}exports[_0xba38('0x3a')]=extractCalleridName;function getCallerId(_0x358fa1,_0x403ff0,_0x141242){if(!_[_0xba38('0x3b')](_0x141242)&&typeof _0x141242===_0xba38('0x3c')&&!_[_0xba38('0x30')](_0x141242)){if(!_['isUndefined'](_0x403ff0)&&typeof _0x403ff0===_0xba38('0x3c')&&!_[_0xba38('0x30')](_0x403ff0)){return util['format']('\x22%s\x22\x20<%s>',_0x403ff0,_0x141242);}return util[_0xba38('0x3d')](_0xba38('0x3e'),_0x141242,_0x141242);}if(!_[_0xba38('0x3b')](_0x358fa1)&&typeof _0x358fa1==='string'&&!_[_0xba38('0x30')](_0x358fa1)){return _0x358fa1;}return _0xba38('0x3f');}exports[_0xba38('0x40')]=getCallerId;function getCallerIdRandom(_0x4425d2,_0xcdc0ba){var _0x397882;var _0x3d24f3;var _0x413cc7;if(_0xcdc0ba<=0x0){_0xcdc0ba=0x1;}_0x397882=new RegExp('\x5cw{0,'+_0xcdc0ba+'}$');_0x3d24f3=Math['pow'](0xa,_0xcdc0ba-0x1);_0x413cc7=Math[_0xba38('0x41')](0xa,_0xcdc0ba)-0x1;return util[_0xba38('0x3d')]('%s',_[_0xba38('0x42')](_0x4425d2,_0x397882,_[_0xba38('0x43')](_0x3d24f3,_0x413cc7)[_0xba38('0x44')]()));}exports[_0xba38('0x45')]=getCallerIdRandom;function decrementOriginate(_0x1e2276){if(_0x1e2276[_0xba38('0x26')]&&_0x1e2276[_0xba38('0x26')]>0x0){_0x1e2276[_0xba38('0x26')]-=0x1;}else{logger[_0xba38('0x46')](_0xba38('0x47'));}}exports[_0xba38('0x48')]=decrementOriginate;function checkContactEmpty(_0x89bd94){return _0x89bd94&&_0x89bd94[_0xba38('0x49')]>0x0;}exports[_0xba38('0x4a')]=checkContactEmpty;function erlangb(_0x53286a,_0x227d76){if(_0x227d76===0x0){return 0x0;}var _0x2f056a=0x1;for(var _0xda81ef=0x1;_0xda81ef<=_0x227d76;_0xda81ef+=0x1){_0x2f056a=0x1+_0x2f056a*_0xda81ef/_0x53286a;}return 0x1/_0x2f056a;}exports[_0xba38('0x4b')]=erlangb;function checkContactLowerLimitOriginate(_0x33f401,_0x461d81,_0x458974){if(_0x461d81>_0x458974){for(var _0x14f99c=0x0;_0x14f99c<_0x461d81-_0x458974;_0x14f99c+=0x1){decrementOriginate(_0x33f401);}}}exports[_0xba38('0x4c')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x16a06f){var _0x144225={};var _0x18410d=['id',_0xba38('0x4d'),_0xba38('0x4e'),_0xba38('0x4f')];const _0x269287=0xfa;if(_0x16a06f){for(var _0xe646ab in _0x16a06f){if(typeof _0x16a06f[_0xe646ab]!=='undefined'){if(!_['isNil'](_0x16a06f[_0xe646ab])&&!_0x18410d[_0xba38('0x33')](_0xe646ab)){if(_0xe646ab==='description'&&_0x16a06f[_0xe646ab][_0xba38('0x49')]>_0x269287){_0x144225['XMD-'+_0xe646ab['toUpperCase']()]=_0x16a06f[_0xe646ab]['toString']()[_0xba38('0x50')](0x0,_0x269287);}else{_0x144225['XMD-'+_0xe646ab[_0xba38('0x51')]()]=_0x16a06f[_0xe646ab];}}}}}return _0x144225;}exports[_0xba38('0x52')]=setXMDContactVariables;