Built motion from commit a8c4dd89.|2.6.33
[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 _0x15ac=['getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value','decrementOriginate','length','checkContactEmpty','erlangb','[checkContactLowerLimitOriginate]\x20','checkContactLowerLimitOriginate','createdAt','tags','updatedAt','undefined','toUpperCase','substring','XMD-','setXMDContactVariables','lodash','moment','util','../../../../config/logger','dialer','../../../../config/environment/shared','timezones','RESCHEDULED_CONTACTS','DEACTIVATED','IS_DISACTIVED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AGENTS_NOT_LOGGED','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RUNNING','TIMEZONE_UNKNOW','TRUNK_IS_NOT_REACHABLE','dialMethod','preview','isPreviewCampaign','type','ivr','isIVRCampaign','outbound','isOutboundQueue','dialActive','isQueueCampaignActive','isIVRCampaignActive','milliseconds','getSeconds','message','available','loggedIn','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','active','hasQueueCampaignDataChanged','dialTimezone','isNil','dialGlobalInterval','Interval','Intervals','NULL_INTERVAL','isEmpty','UNKNOWN_TIMEZONE','SIP/','reachable','unmonitored','status','TrunkBackup','includes','ACTIVE','INACTIVE','DISACTIVED','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','match','isUndefined','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','getCallerId','\x5cw{0,','pow','replace','random','toString'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x15ac,0x6f));var _0xc15a=function(_0x3d1753,_0x5c1b01){_0x3d1753=_0x3d1753-0x0;var _0x5e2bc3=_0x15ac[_0x3d1753];return _0x5e2bc3;};'use strict';var _=require(_0xc15a('0x0'));var moment=require(_0xc15a('0x1'));var util=require(_0xc15a('0x2'));var logger=require(_0xc15a('0x3'))(_0xc15a('0x4'));var timezones=require(_0xc15a('0x5'))[_0xc15a('0x6')];var CAMPAIGN_STATUS={'ACTIVE':'ACTIVE','BLACKLIST':'BLACKLIST','CONTACTS_RESCHEDULED':_0xc15a('0x7'),'DEACTIVATED':_0xc15a('0x8'),'DISACTIVED':_0xc15a('0x9'),'EMPTY_INTERVAL':_0xc15a('0xa'),'INACTIVE':_0xc15a('0xb'),'NO_AGENTS_LOGGED':_0xc15a('0xc'),'NO_AVAILABLE_CONTACTS':'AVAILABLE_CONTACTS_FINISHED','NULL_INTERVAL':'INTERVAL_IS_NULL','OVERTIME_INTERVAL':_0xc15a('0xd'),'OVERTIME_GLOBAL_INTERVAL':_0xc15a('0xe'),'QUEUE_RECALL':'RECALLINQUEUE','RECALL_TIMEOUT':'RECALLFAILEDTIMEOUT','RUNNING':_0xc15a('0xf'),'UNKNOWN_TIMEZONE':_0xc15a('0x10'),'UNREACHABLE_TRUNK':_0xc15a('0x11')};exports['CAMPAIGN_STATUS']=CAMPAIGN_STATUS;function isPreviewCampaign(_0x19649f){return _0x19649f[_0xc15a('0x12')]===_0xc15a('0x13');}exports[_0xc15a('0x14')]=isPreviewCampaign;function isIVRCampaign(_0x31f16f){return _0x31f16f[_0xc15a('0x15')]===_0xc15a('0x16');}exports[_0xc15a('0x17')]=isIVRCampaign;function isOutboundQueue(_0xf3bf28){return _0xf3bf28[_0xc15a('0x15')]===_0xc15a('0x18');}exports[_0xc15a('0x19')]=isOutboundQueue;function isQueueCampaignActive(_0xb18229){return _0xb18229[_0xc15a('0x1a')];}exports[_0xc15a('0x1b')]=isQueueCampaignActive;function isIVRCampaignActive(_0x43f334){return _0x43f334['active'];}exports[_0xc15a('0x1c')]=isIVRCampaignActive;function getSeconds(_0x1847ab,_0x50c2a4){var _0x32eadb=moment(_0x1847ab)[_0xc15a('0x1d')](0x0);var _0x50808d=moment(_0x50c2a4)[_0xc15a('0x1d')](0x0);return _0x32eadb['diff'](_0x50808d,'seconds');}exports[_0xc15a('0x1e')]=getSeconds;function hasQueueCampaignDataChanged(_0x4734ae,_0x154f65){var _0x2962d5=![];var _0x524d71=_0x4734ae[_0xc15a('0x12')]!==_0x154f65['dialMethod']||_0x4734ae[_0xc15a('0x1a')]!==_0x154f65[_0xc15a('0x1a')]||_0x4734ae[_0xc15a('0x1f')]!==_0x154f65['message'];var _0x2646b6=_0x4734ae[_0xc15a('0x20')]!==_0x154f65[_0xc15a('0x20')]||_0x4734ae['loggedIn']!==_0x154f65[_0xc15a('0x21')]||_0x4734ae['loggedInDb']!==_0x154f65['loggedInDb']||_0x4734ae[_0xc15a('0x22')]!==_0x154f65[_0xc15a('0x22')]||_0x4734ae[_0xc15a('0x23')]!==_0x154f65[_0xc15a('0x23')]||_0x4734ae[_0xc15a('0x24')]!==_0x154f65[_0xc15a('0x24')]||_0x4734ae[_0xc15a('0x25')]!==_0x154f65['waiting']||_0x4734ae[_0xc15a('0x26')]!==_0x154f65[_0xc15a('0x26')]||_0x4734ae['originated']!==_0x154f65[_0xc15a('0x27')];if(_0x4734ae[_0xc15a('0x28')]&&_0x154f65[_0xc15a('0x28')]){_0x2962d5=_0x4734ae[_0xc15a('0x28')][_0xc15a('0x29')]!==_0x154f65['Trunk'][_0xc15a('0x29')]||_0x4734ae[_0xc15a('0x28')][_0xc15a('0x2a')]!==_0x154f65[_0xc15a('0x28')][_0xc15a('0x2a')];}return _0x524d71||_0x2646b6||_0x2962d5;}exports[_0xc15a('0x2b')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x4c19c1){var _0x2d86c8=null;var _0x3eff9d=_0x4c19c1[_0xc15a('0x2c')];if(_[_0xc15a('0x2d')](_0x4c19c1[_0xc15a('0x2e')])||_[_0xc15a('0x2d')](_0x4c19c1[_0xc15a('0x2f')])||_[_0xc15a('0x2d')](_0x4c19c1[_0xc15a('0x2f')][_0xc15a('0x30')])){_0x2d86c8=CAMPAIGN_STATUS[_0xc15a('0x31')];}else if(_[_0xc15a('0x32')](_0x4c19c1['dialGlobalInterval'])||_[_0xc15a('0x32')](_0x4c19c1[_0xc15a('0x2f')][_0xc15a('0x30')])){_0x2d86c8=CAMPAIGN_STATUS['EMPTY_INTERVAL'];}else if(_0x3eff9d&&!timezones[_0x3eff9d]){_0x2d86c8=CAMPAIGN_STATUS[_0xc15a('0x33')];}return _0x2d86c8;}function checkAnyValidTrunk(_0x4ac130,_0x131516){var _0x3cbc6f=null;var _0x204457=_0xc15a('0x34');var _0x16473e=[_0xc15a('0x35'),_0xc15a('0x36')];var _0xc3f4a4=!![];if(_0x4ac130['Trunk']&&_0x4ac130['Trunk']['active']){_0x204457+=_0x4ac130['Trunk'][_0xc15a('0x29')];_0x3cbc6f=_0x131516[_0x204457];_0xc3f4a4=_0x16473e['includes'](_0x3cbc6f[_0xc15a('0x37')]);}else if(_0x4ac130['TrunkBackup']&&_0x4ac130[_0xc15a('0x38')][_0xc15a('0x2a')]){_0x204457+=_0x4ac130[_0xc15a('0x38')][_0xc15a('0x29')];_0x3cbc6f=_0x131516[_0x204457];_0xc3f4a4=_0x16473e[_0xc15a('0x39')](_0x3cbc6f[_0xc15a('0x37')]);}return _0xc3f4a4;}function getQueueCampaignStatusMessage(_0x2fe998,_0x159df9){var _0x441771=CAMPAIGN_STATUS[_0xc15a('0x3a')];var _0x48d7fd=isPreviewCampaign(_0x2fe998);if(!isQueueCampaignActive(_0x2fe998)){if(_0x48d7fd){_0x441771=CAMPAIGN_STATUS[_0xc15a('0x3b')];}else{if(_0x2fe998[_0xc15a('0x27')]===0x0&&_0x2fe998[_0xc15a('0x23')]===0x0&&_0x2fe998[_0xc15a('0x25')]===0x0&&(_0x2fe998['pTalking']||0x0)===0x0){_0x441771=CAMPAIGN_STATUS[_0xc15a('0x3b')];}else{_0x441771=CAMPAIGN_STATUS[_0xc15a('0x3c')];}}}else if(_0x2fe998['loggedIn']===0x0){_0x441771=CAMPAIGN_STATUS[_0xc15a('0x3d')];}else if(!checkAnyValidTrunk(_0x2fe998,_0x159df9)){_0x441771=CAMPAIGN_STATUS[_0xc15a('0x3e')];}else if(!isPreviewCampaign(_0x2fe998)){var _0x40db6c=checkAnyValidQueueCampaignInterval(_0x2fe998);if(_0x40db6c){_0x441771=_0x40db6c;}}return _0x441771;}exports[_0xc15a('0x3f')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0xbfa833){var _0x38eeb8=CAMPAIGN_STATUS[_0xc15a('0x3c')];if(_0xbfa833[_0xc15a('0x27')]===0x0&&_0xbfa833[_0xc15a('0x23')]===0x0&&_0xbfa833['waiting']===0x0&&(_0xbfa833['pTalking']||0x0)===0x0){_0x38eeb8=CAMPAIGN_STATUS[_0xc15a('0x3b')];}return _0x38eeb8;}exports[_0xc15a('0x40')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x1cb2ac){var _0x16d156=_0x1cb2ac[_0xc15a('0x41')](/"(.*?)"/);return _0x16d156?_0x16d156[0x1]:_0x1cb2ac;}exports['extractCalleridName']=extractCalleridName;function getCallerId(_0x2d759d,_0x34d9a1,_0x22d720){if(!_[_0xc15a('0x42')](_0x22d720)&&typeof _0x22d720===_0xc15a('0x43')&&!_[_0xc15a('0x32')](_0x22d720)){if(!_[_0xc15a('0x42')](_0x34d9a1)&&typeof _0x34d9a1===_0xc15a('0x43')&&!_[_0xc15a('0x32')](_0x34d9a1)){return util[_0xc15a('0x44')](_0xc15a('0x45'),_0x34d9a1,_0x22d720);}return util[_0xc15a('0x44')](_0xc15a('0x45'),_0x22d720,_0x22d720);}if(!_[_0xc15a('0x42')](_0x2d759d)&&typeof _0x2d759d==='string'&&!_[_0xc15a('0x32')](_0x2d759d)){return _0x2d759d;}return _0xc15a('0x46');}exports[_0xc15a('0x47')]=getCallerId;function getCallerIdRandom(_0x17aa58,_0x5693d1){var _0x4cac9d;var _0x3b5d67;var _0x2b3cad;if(_0x5693d1<=0x0){_0x5693d1=0x1;}_0x4cac9d=new RegExp(_0xc15a('0x48')+_0x5693d1+'}$');_0x3b5d67=Math[_0xc15a('0x49')](0xa,_0x5693d1-0x1);_0x2b3cad=Math['pow'](0xa,_0x5693d1)-0x1;return util[_0xc15a('0x44')]('%s',_[_0xc15a('0x4a')](_0x17aa58,_0x4cac9d,_[_0xc15a('0x4b')](_0x3b5d67,_0x2b3cad)[_0xc15a('0x4c')]()));}exports[_0xc15a('0x4d')]=getCallerIdRandom;function decrementOriginate(_0xb053e5,_0x4ad1a0){if(_0xb053e5[_0xc15a('0x27')]&&_0xb053e5[_0xc15a('0x27')]>0x0){_0xb053e5[_0xc15a('0x27')]-=0x1;}else{logger[_0xc15a('0x4e')](_0xc15a('0x4f'),_0x4ad1a0);}}exports[_0xc15a('0x50')]=decrementOriginate;function checkContactEmpty(_0x578413){return _0x578413&&_0x578413[_0xc15a('0x51')]>0x0;}exports[_0xc15a('0x52')]=checkContactEmpty;function erlangb(_0x22d7d4,_0x2999d5){if(_0x2999d5===0x0){return 0x0;}var _0x171d12=0x1;for(var _0x147323=0x1;_0x147323<=_0x2999d5;_0x147323+=0x1){_0x171d12=0x1+_0x171d12*_0x147323/_0x22d7d4;}return 0x1/_0x171d12;}exports[_0xc15a('0x53')]=erlangb;function checkContactLowerLimitOriginate(_0x74d2e7,_0x2cbad9,_0x329980){if(_0x2cbad9>_0x329980){for(var _0x4e3d2a=0x0;_0x4e3d2a<_0x2cbad9-_0x329980;_0x4e3d2a+=0x1){decrementOriginate(_0x74d2e7,_0xc15a('0x54'));}}}exports[_0xc15a('0x55')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x110f8e){var _0x24e5dc={};var _0x4fec06=['id',_0xc15a('0x56'),_0xc15a('0x57'),_0xc15a('0x58')];const _0x493bb5=0xfa;if(_0x110f8e){for(var _0x2ff781 in _0x110f8e){if(typeof _0x110f8e[_0x2ff781]!==_0xc15a('0x59')){if(!_[_0xc15a('0x2d')](_0x110f8e[_0x2ff781])&&!_0x4fec06['includes'](_0x2ff781)){if(_0x2ff781==='description'&&_0x110f8e[_0x2ff781][_0xc15a('0x51')]>_0x493bb5){_0x24e5dc['XMD-'+_0x2ff781[_0xc15a('0x5a')]()]=_0x110f8e[_0x2ff781]['toString']()[_0xc15a('0x5b')](0x0,_0x493bb5);}else{_0x24e5dc[_0xc15a('0x5c')+_0x2ff781['toUpperCase']()]=_0x110f8e[_0x2ff781];}}}}}return _0x24e5dc;}exports[_0xc15a('0x5d')]=setXMDContactVariables;