Built motion from commit d1eab355.|2.6.28
[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 _0x29d2=['undefined','description','toUpperCase','toString','substring','XMD-','setXMDContactVariables','lodash','moment','util','../../../../config/logger','dialer','../../../../config/environment/shared','timezones','ACTIVE','BLACKLIST','RESCHEDULED_CONTACTS','IS_DISACTIVED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AGENTS_NOT_LOGGED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RECALLFAILEDTIMEOUT','RUNNING','TIMEZONE_UNKNOW','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','dialMethod','preview','isPreviewCampaign','type','outbound','isOutboundQueue','dialActive','isQueueCampaignActive','isIVRCampaignActive','milliseconds','seconds','getSeconds','message','available','loggedIn','loggedInDb','paused','pTalking','waiting','inUse','originated','Trunk','name','active','dialTimezone','isNil','dialGlobalInterval','Interval','Intervals','NULL_INTERVAL','isEmpty','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','SIP/','includes','status','TrunkBackup','INACTIVE','talking','DISACTIVED','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','match','isUndefined','string','format','\x22%s\x22\x20<%s>','pow','replace','random','getCallerIdRandom','error','length','checkContactEmpty','erlangb','checkContactLowerLimitOriginate','createdAt','tags','updatedAt'];(function(_0x915ee1,_0x1203e8){var _0x56ef7a=function(_0x4f07f5){while(--_0x4f07f5){_0x915ee1['push'](_0x915ee1['shift']());}};_0x56ef7a(++_0x1203e8);}(_0x29d2,0x118));var _0x229d=function(_0x16c4d3,_0xe66b23){_0x16c4d3=_0x16c4d3-0x0;var _0xbc8320=_0x29d2[_0x16c4d3];return _0xbc8320;};'use strict';var _=require(_0x229d('0x0'));var moment=require(_0x229d('0x1'));var util=require(_0x229d('0x2'));var logger=require(_0x229d('0x3'))(_0x229d('0x4'));var timezones=require(_0x229d('0x5'))[_0x229d('0x6')];var CAMPAIGN_STATUS={'ACTIVE':_0x229d('0x7'),'BLACKLIST':_0x229d('0x8'),'CONTACTS_RESCHEDULED':_0x229d('0x9'),'DEACTIVATED':'DEACTIVATED','DISACTIVED':_0x229d('0xa'),'EMPTY_INTERVAL':_0x229d('0xb'),'INACTIVE':_0x229d('0xc'),'NO_AGENTS_LOGGED':_0x229d('0xd'),'NO_AVAILABLE_CONTACTS':'AVAILABLE_CONTACTS_FINISHED','NULL_INTERVAL':_0x229d('0xe'),'OVERTIME_INTERVAL':_0x229d('0xf'),'OVERTIME_GLOBAL_INTERVAL':_0x229d('0x10'),'QUEUE_RECALL':_0x229d('0x11'),'RECALL_TIMEOUT':_0x229d('0x12'),'RUNNING':_0x229d('0x13'),'UNKNOWN_TIMEZONE':_0x229d('0x14'),'UNREACHABLE_TRUNK':_0x229d('0x15')};exports[_0x229d('0x16')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x5e085b){return _0x5e085b[_0x229d('0x17')]===_0x229d('0x18');}exports[_0x229d('0x19')]=isPreviewCampaign;function isIVRCampaign(_0x372be4){return _0x372be4['type']==='ivr';}exports['isIVRCampaign']=isIVRCampaign;function isOutboundQueue(_0x51c75c){return _0x51c75c[_0x229d('0x1a')]===_0x229d('0x1b');}exports[_0x229d('0x1c')]=isOutboundQueue;function isQueueCampaignActive(_0x3dbceb){return _0x3dbceb[_0x229d('0x1d')];}exports[_0x229d('0x1e')]=isQueueCampaignActive;function isIVRCampaignActive(_0x5470b0){return _0x5470b0['active'];}exports[_0x229d('0x1f')]=isIVRCampaignActive;function getSeconds(_0x285180,_0x268886){var _0x1faaf9=moment(_0x285180)[_0x229d('0x20')](0x0);var _0x371c02=moment(_0x268886)[_0x229d('0x20')](0x0);return _0x1faaf9['diff'](_0x371c02,_0x229d('0x21'));}exports[_0x229d('0x22')]=getSeconds;function hasQueueCampaignDataChanged(_0x2c3668,_0x12a1c7){var _0xa51449=![];var _0x30f3ad=_0x2c3668[_0x229d('0x17')]!==_0x12a1c7[_0x229d('0x17')]||_0x2c3668[_0x229d('0x1d')]!==_0x12a1c7[_0x229d('0x1d')]||_0x2c3668[_0x229d('0x23')]!==_0x12a1c7[_0x229d('0x23')];var _0x4db30f=_0x2c3668[_0x229d('0x24')]!==_0x12a1c7[_0x229d('0x24')]||_0x2c3668[_0x229d('0x25')]!==_0x12a1c7['loggedIn']||_0x2c3668[_0x229d('0x26')]!==_0x12a1c7[_0x229d('0x26')]||_0x2c3668[_0x229d('0x27')]!==_0x12a1c7[_0x229d('0x27')]||_0x2c3668['talking']!==_0x12a1c7['talking']||_0x2c3668[_0x229d('0x28')]!==_0x12a1c7['pTalking']||_0x2c3668[_0x229d('0x29')]!==_0x12a1c7[_0x229d('0x29')]||_0x2c3668['inUse']!==_0x12a1c7[_0x229d('0x2a')]||_0x2c3668[_0x229d('0x2b')]!==_0x12a1c7['originated'];if(_0x2c3668[_0x229d('0x2c')]&&_0x12a1c7['Trunk']){_0xa51449=_0x2c3668[_0x229d('0x2c')][_0x229d('0x2d')]!==_0x12a1c7[_0x229d('0x2c')]['name']||_0x2c3668[_0x229d('0x2c')][_0x229d('0x2e')]!==_0x12a1c7[_0x229d('0x2c')][_0x229d('0x2e')];}return _0x30f3ad||_0x4db30f||_0xa51449;}exports['hasQueueCampaignDataChanged']=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x1e619f){var _0x5a0715=null;var _0x3a7b51=_0x1e619f[_0x229d('0x2f')];if(_[_0x229d('0x30')](_0x1e619f[_0x229d('0x31')])||_[_0x229d('0x30')](_0x1e619f[_0x229d('0x32')])||_[_0x229d('0x30')](_0x1e619f[_0x229d('0x32')][_0x229d('0x33')])){_0x5a0715=CAMPAIGN_STATUS[_0x229d('0x34')];}else if(_['isEmpty'](_0x1e619f[_0x229d('0x31')])||_[_0x229d('0x35')](_0x1e619f[_0x229d('0x32')][_0x229d('0x33')])){_0x5a0715=CAMPAIGN_STATUS[_0x229d('0x36')];}else if(_0x3a7b51&&!timezones[_0x3a7b51]){_0x5a0715=CAMPAIGN_STATUS[_0x229d('0x37')];}return _0x5a0715;}function checkAnyValidTrunk(_0x203c16,_0x29e1ef){var _0x54622d=null;var _0x2ac7ca=_0x229d('0x38');var _0x492aee=['reachable','unmonitored'];var _0x287908=!![];if(_0x203c16[_0x229d('0x2c')]&&_0x203c16['Trunk'][_0x229d('0x2e')]){_0x2ac7ca+=_0x203c16['Trunk'][_0x229d('0x2d')];_0x54622d=_0x29e1ef[_0x2ac7ca];_0x287908=_0x492aee[_0x229d('0x39')](_0x54622d[_0x229d('0x3a')]);}else if(_0x203c16[_0x229d('0x3b')]&&_0x203c16[_0x229d('0x3b')][_0x229d('0x2e')]){_0x2ac7ca+=_0x203c16[_0x229d('0x3b')][_0x229d('0x2d')];_0x54622d=_0x29e1ef[_0x2ac7ca];_0x287908=_0x492aee[_0x229d('0x39')](_0x54622d[_0x229d('0x3a')]);}return _0x287908;}function getQueueCampaignStatusMessage(_0x3fc1e7,_0x177c04){var _0x5648ba=CAMPAIGN_STATUS[_0x229d('0x7')];var _0x35a1ac=isPreviewCampaign(_0x3fc1e7);if(!isQueueCampaignActive(_0x3fc1e7)){if(_0x35a1ac){_0x5648ba=CAMPAIGN_STATUS[_0x229d('0x3c')];}else{if(_0x3fc1e7['originated']===0x0&&_0x3fc1e7[_0x229d('0x3d')]===0x0&&_0x3fc1e7[_0x229d('0x29')]===0x0&&(_0x3fc1e7[_0x229d('0x28')]||0x0)===0x0){_0x5648ba=CAMPAIGN_STATUS[_0x229d('0x3c')];}else{_0x5648ba=CAMPAIGN_STATUS[_0x229d('0x3e')];}}}else if(_0x3fc1e7[_0x229d('0x25')]===0x0){_0x5648ba=CAMPAIGN_STATUS[_0x229d('0x3f')];}else if(!checkAnyValidTrunk(_0x3fc1e7,_0x177c04)){_0x5648ba=CAMPAIGN_STATUS[_0x229d('0x40')];}else if(!isPreviewCampaign(_0x3fc1e7)){var _0x5a49e3=checkAnyValidQueueCampaignInterval(_0x3fc1e7);if(_0x5a49e3){_0x5648ba=_0x5a49e3;}}return _0x5648ba;}exports[_0x229d('0x41')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x1a9586){var _0x285855=CAMPAIGN_STATUS[_0x229d('0x3e')];if(_0x1a9586['originated']===0x0&&_0x1a9586['talking']===0x0&&_0x1a9586['waiting']===0x0&&(_0x1a9586['pTalking']||0x0)===0x0){_0x285855=CAMPAIGN_STATUS[_0x229d('0x3c')];}return _0x285855;}exports[_0x229d('0x42')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x5648c0){var _0x1abbee=_0x5648c0[_0x229d('0x43')](/"(.*?)"/);return _0x1abbee?_0x1abbee[0x1]:_0x5648c0;}exports['extractCalleridName']=extractCalleridName;function getCallerId(_0x3a3c30,_0x459c38,_0xcb2980){if(!_[_0x229d('0x44')](_0xcb2980)&&typeof _0xcb2980===_0x229d('0x45')&&!_[_0x229d('0x35')](_0xcb2980)){if(!_['isUndefined'](_0x459c38)&&typeof _0x459c38===_0x229d('0x45')&&!_[_0x229d('0x35')](_0x459c38)){return util[_0x229d('0x46')]('\x22%s\x22\x20<%s>',_0x459c38,_0xcb2980);}return util[_0x229d('0x46')](_0x229d('0x47'),_0xcb2980,_0xcb2980);}if(!_[_0x229d('0x44')](_0x3a3c30)&&typeof _0x3a3c30==='string'&&!_[_0x229d('0x35')](_0x3a3c30)){return _0x3a3c30;}return'\x22\x22\x20<>';}exports['getCallerId']=getCallerId;function getCallerIdRandom(_0x3a9067,_0x1f6e31){var _0x4b3d3c;var _0x2cd291;var _0x406e4e;if(_0x1f6e31<=0x0){_0x1f6e31=0x1;}_0x4b3d3c=new RegExp('\x5cw{0,'+_0x1f6e31+'}$');_0x2cd291=Math[_0x229d('0x48')](0xa,_0x1f6e31-0x1);_0x406e4e=Math[_0x229d('0x48')](0xa,_0x1f6e31)-0x1;return util[_0x229d('0x46')]('%s',_[_0x229d('0x49')](_0x3a9067,_0x4b3d3c,_[_0x229d('0x4a')](_0x2cd291,_0x406e4e)['toString']()));}exports[_0x229d('0x4b')]=getCallerIdRandom;function decrementOriginate(_0x402c2f){if(_0x402c2f[_0x229d('0x2b')]&&_0x402c2f['originated']>0x0){_0x402c2f['originated']-=0x1;}else{logger[_0x229d('0x4c')]('[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative');}}exports['decrementOriginate']=decrementOriginate;function checkContactEmpty(_0xe4811e){return _0xe4811e&&_0xe4811e[_0x229d('0x4d')]>0x0;}exports[_0x229d('0x4e')]=checkContactEmpty;function erlangb(_0x34cadf,_0x400e17){if(_0x400e17===0x0){return 0x0;}var _0x1a04f2=0x1;for(var _0x50ec56=0x1;_0x50ec56<=_0x400e17;_0x50ec56+=0x1){_0x1a04f2=0x1+_0x1a04f2*_0x50ec56/_0x34cadf;}return 0x1/_0x1a04f2;}exports[_0x229d('0x4f')]=erlangb;function checkContactLowerLimitOriginate(_0x49efe3,_0x103bc1,_0x236708){if(_0x103bc1>_0x236708){for(var _0x728b3b=0x0;_0x728b3b<_0x103bc1-_0x236708;_0x728b3b+=0x1){decrementOriginate(_0x49efe3);}}}exports[_0x229d('0x50')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x274c00){var _0x1e31eb={};var _0x275945=['id',_0x229d('0x51'),_0x229d('0x52'),_0x229d('0x53')];const _0x3ef78b=0xfa;if(_0x274c00){for(var _0x57703d in _0x274c00){if(typeof _0x274c00[_0x57703d]!==_0x229d('0x54')){if(!_['isNil'](_0x274c00[_0x57703d])&&!_0x275945[_0x229d('0x39')](_0x57703d)){if(_0x57703d===_0x229d('0x55')&&_0x274c00[_0x57703d][_0x229d('0x4d')]>_0x3ef78b){_0x1e31eb['XMD-'+_0x57703d[_0x229d('0x56')]()]=_0x274c00[_0x57703d][_0x229d('0x57')]()[_0x229d('0x58')](0x0,_0x3ef78b);}else{_0x1e31eb[_0x229d('0x59')+_0x57703d[_0x229d('0x56')]()]=_0x274c00[_0x57703d];}}}}}return _0x1e31eb;}exports[_0x229d('0x5a')]=setXMDContactVariables;