Built motion from commit 953226e6.|2.6.32
[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 _0x0e9e=['getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','match','extractCalleridName','isUndefined','string','format','\x22%s\x22\x20<%s>','getCallerId','\x5cw{0,','pow','replace','random','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value','decrementOriginate','checkContactEmpty','erlangb','checkContactLowerLimitOriginate','createdAt','tags','undefined','length','XMD-','toString','toUpperCase','setXMDContactVariables','util','dialer','../../../../config/environment/shared','timezones','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','IS_DISACTIVED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','RECALLINQUEUE','RECALLFAILEDTIMEOUT','TIMEZONE_UNKNOW','dialMethod','preview','type','ivr','isIVRCampaign','isOutboundQueue','isQueueCampaignActive','active','diff','getSeconds','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','dialTimezone','isNil','dialGlobalInterval','Interval','Intervals','NULL_INTERVAL','isEmpty','EMPTY_INTERVAL','SIP/','reachable','includes','status','TrunkBackup','ACTIVE','INACTIVE','DISACTIVED','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK'];(function(_0x3fe080,_0x52e584){var _0x3721cf=function(_0x1a39b9){while(--_0x1a39b9){_0x3fe080['push'](_0x3fe080['shift']());}};_0x3721cf(++_0x52e584);}(_0x0e9e,0xc4));var _0xe0e9=function(_0x5a48d6,_0x622339){_0x5a48d6=_0x5a48d6-0x0;var _0x4347df=_0x0e9e[_0x5a48d6];return _0x4347df;};'use strict';var _=require('lodash');var moment=require('moment');var util=require(_0xe0e9('0x0'));var logger=require('../../../../config/logger')(_0xe0e9('0x1'));var timezones=require(_0xe0e9('0x2'))[_0xe0e9('0x3')];var CAMPAIGN_STATUS={'ACTIVE':'ACTIVE','BLACKLIST':_0xe0e9('0x4'),'CONTACTS_RESCHEDULED':_0xe0e9('0x5'),'DEACTIVATED':_0xe0e9('0x6'),'DISACTIVED':_0xe0e9('0x7'),'EMPTY_INTERVAL':_0xe0e9('0x8'),'INACTIVE':_0xe0e9('0x9'),'NO_AGENTS_LOGGED':'AGENTS_NOT_LOGGED','NO_AVAILABLE_CONTACTS':_0xe0e9('0xa'),'NULL_INTERVAL':_0xe0e9('0xb'),'OVERTIME_INTERVAL':_0xe0e9('0xc'),'OVERTIME_GLOBAL_INTERVAL':'GLOBAL_INTERVAL_IS_OVERTIME','QUEUE_RECALL':_0xe0e9('0xd'),'RECALL_TIMEOUT':_0xe0e9('0xe'),'RUNNING':'RUNNING','UNKNOWN_TIMEZONE':_0xe0e9('0xf'),'UNREACHABLE_TRUNK':'TRUNK_IS_NOT_REACHABLE'};exports['CAMPAIGN_STATUS']=CAMPAIGN_STATUS;function isPreviewCampaign(_0x30dafb){return _0x30dafb[_0xe0e9('0x10')]===_0xe0e9('0x11');}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x1ec7bc){return _0x1ec7bc[_0xe0e9('0x12')]===_0xe0e9('0x13');}exports[_0xe0e9('0x14')]=isIVRCampaign;function isOutboundQueue(_0x10c6c6){return _0x10c6c6[_0xe0e9('0x12')]==='outbound';}exports[_0xe0e9('0x15')]=isOutboundQueue;function isQueueCampaignActive(_0x3a7f95){return _0x3a7f95['dialActive'];}exports[_0xe0e9('0x16')]=isQueueCampaignActive;function isIVRCampaignActive(_0x488fa4){return _0x488fa4[_0xe0e9('0x17')];}exports['isIVRCampaignActive']=isIVRCampaignActive;function getSeconds(_0x15f174,_0x2f9d77){var _0x503c96=moment(_0x15f174)['milliseconds'](0x0);var _0xce578d=moment(_0x2f9d77)['milliseconds'](0x0);return _0x503c96[_0xe0e9('0x18')](_0xce578d,'seconds');}exports[_0xe0e9('0x19')]=getSeconds;function hasQueueCampaignDataChanged(_0x1a3139,_0x49a053){var _0x24aa45=![];var _0x505e44=_0x1a3139[_0xe0e9('0x10')]!==_0x49a053[_0xe0e9('0x10')]||_0x1a3139['dialActive']!==_0x49a053['dialActive']||_0x1a3139['message']!==_0x49a053[_0xe0e9('0x1a')];var _0x803ea9=_0x1a3139['available']!==_0x49a053[_0xe0e9('0x1b')]||_0x1a3139[_0xe0e9('0x1c')]!==_0x49a053[_0xe0e9('0x1c')]||_0x1a3139[_0xe0e9('0x1d')]!==_0x49a053['loggedInDb']||_0x1a3139[_0xe0e9('0x1e')]!==_0x49a053['paused']||_0x1a3139['talking']!==_0x49a053[_0xe0e9('0x1f')]||_0x1a3139['pTalking']!==_0x49a053[_0xe0e9('0x20')]||_0x1a3139[_0xe0e9('0x21')]!==_0x49a053['waiting']||_0x1a3139[_0xe0e9('0x22')]!==_0x49a053[_0xe0e9('0x22')]||_0x1a3139[_0xe0e9('0x23')]!==_0x49a053[_0xe0e9('0x23')];if(_0x1a3139[_0xe0e9('0x24')]&&_0x49a053[_0xe0e9('0x24')]){_0x24aa45=_0x1a3139['Trunk']['name']!==_0x49a053[_0xe0e9('0x24')][_0xe0e9('0x25')]||_0x1a3139[_0xe0e9('0x24')][_0xe0e9('0x17')]!==_0x49a053[_0xe0e9('0x24')][_0xe0e9('0x17')];}return _0x505e44||_0x803ea9||_0x24aa45;}exports['hasQueueCampaignDataChanged']=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x2bcb89){var _0x327e19=null;var _0x14a6b0=_0x2bcb89[_0xe0e9('0x26')];if(_[_0xe0e9('0x27')](_0x2bcb89[_0xe0e9('0x28')])||_['isNil'](_0x2bcb89[_0xe0e9('0x29')])||_[_0xe0e9('0x27')](_0x2bcb89[_0xe0e9('0x29')][_0xe0e9('0x2a')])){_0x327e19=CAMPAIGN_STATUS[_0xe0e9('0x2b')];}else if(_[_0xe0e9('0x2c')](_0x2bcb89[_0xe0e9('0x28')])||_['isEmpty'](_0x2bcb89[_0xe0e9('0x29')][_0xe0e9('0x2a')])){_0x327e19=CAMPAIGN_STATUS[_0xe0e9('0x2d')];}else if(_0x14a6b0&&!timezones[_0x14a6b0]){_0x327e19=CAMPAIGN_STATUS['UNKNOWN_TIMEZONE'];}return _0x327e19;}function checkAnyValidTrunk(_0x5a8fec,_0x168605){var _0x3c8996=null;var _0x20478b=_0xe0e9('0x2e');var _0x4a3a4e=[_0xe0e9('0x2f'),'unmonitored'];var _0x22cef4=!![];if(_0x5a8fec['Trunk']&&_0x5a8fec[_0xe0e9('0x24')][_0xe0e9('0x17')]){_0x20478b+=_0x5a8fec['Trunk'][_0xe0e9('0x25')];_0x3c8996=_0x168605[_0x20478b];_0x22cef4=_0x4a3a4e[_0xe0e9('0x30')](_0x3c8996[_0xe0e9('0x31')]);}else if(_0x5a8fec[_0xe0e9('0x32')]&&_0x5a8fec[_0xe0e9('0x32')][_0xe0e9('0x17')]){_0x20478b+=_0x5a8fec[_0xe0e9('0x32')][_0xe0e9('0x25')];_0x3c8996=_0x168605[_0x20478b];_0x22cef4=_0x4a3a4e[_0xe0e9('0x30')](_0x3c8996[_0xe0e9('0x31')]);}return _0x22cef4;}function getQueueCampaignStatusMessage(_0x147058,_0x588536){var _0x43a5dc=CAMPAIGN_STATUS[_0xe0e9('0x33')];var _0x142636=isPreviewCampaign(_0x147058);if(!isQueueCampaignActive(_0x147058)){if(_0x142636){_0x43a5dc=CAMPAIGN_STATUS[_0xe0e9('0x34')];}else{if(_0x147058[_0xe0e9('0x23')]===0x0&&_0x147058['talking']===0x0&&_0x147058[_0xe0e9('0x21')]===0x0&&(_0x147058[_0xe0e9('0x20')]||0x0)===0x0){_0x43a5dc=CAMPAIGN_STATUS[_0xe0e9('0x34')];}else{_0x43a5dc=CAMPAIGN_STATUS[_0xe0e9('0x35')];}}}else if(_0x147058['loggedIn']===0x0){_0x43a5dc=CAMPAIGN_STATUS[_0xe0e9('0x36')];}else if(!checkAnyValidTrunk(_0x147058,_0x588536)){_0x43a5dc=CAMPAIGN_STATUS[_0xe0e9('0x37')];}else if(!isPreviewCampaign(_0x147058)){var _0xd2a047=checkAnyValidQueueCampaignInterval(_0x147058);if(_0xd2a047){_0x43a5dc=_0xd2a047;}}return _0x43a5dc;}exports[_0xe0e9('0x38')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x249dec){var _0x536544=CAMPAIGN_STATUS[_0xe0e9('0x35')];if(_0x249dec['originated']===0x0&&_0x249dec[_0xe0e9('0x1f')]===0x0&&_0x249dec[_0xe0e9('0x21')]===0x0&&(_0x249dec['pTalking']||0x0)===0x0){_0x536544=CAMPAIGN_STATUS[_0xe0e9('0x34')];}return _0x536544;}exports[_0xe0e9('0x39')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x397a0d){var _0x2cf73e=_0x397a0d[_0xe0e9('0x3a')](/"(.*?)"/);return _0x2cf73e?_0x2cf73e[0x1]:_0x397a0d;}exports[_0xe0e9('0x3b')]=extractCalleridName;function getCallerId(_0x2c3e19,_0x464bdc,_0x4a76d2){if(!_[_0xe0e9('0x3c')](_0x4a76d2)&&typeof _0x4a76d2===_0xe0e9('0x3d')&&!_[_0xe0e9('0x2c')](_0x4a76d2)){if(!_[_0xe0e9('0x3c')](_0x464bdc)&&typeof _0x464bdc==='string'&&!_[_0xe0e9('0x2c')](_0x464bdc)){return util[_0xe0e9('0x3e')](_0xe0e9('0x3f'),_0x464bdc,_0x4a76d2);}return util['format'](_0xe0e9('0x3f'),_0x4a76d2,_0x4a76d2);}if(!_[_0xe0e9('0x3c')](_0x2c3e19)&&typeof _0x2c3e19===_0xe0e9('0x3d')&&!_[_0xe0e9('0x2c')](_0x2c3e19)){return _0x2c3e19;}return'\x22\x22\x20<>';}exports[_0xe0e9('0x40')]=getCallerId;function getCallerIdRandom(_0x4cf944,_0x19e9da){var _0x5c95d1;var _0x508a1b;var _0x205df3;if(_0x19e9da<=0x0){_0x19e9da=0x1;}_0x5c95d1=new RegExp(_0xe0e9('0x41')+_0x19e9da+'}$');_0x508a1b=Math[_0xe0e9('0x42')](0xa,_0x19e9da-0x1);_0x205df3=Math[_0xe0e9('0x42')](0xa,_0x19e9da)-0x1;return util['format']('%s',_[_0xe0e9('0x43')](_0x4cf944,_0x5c95d1,_[_0xe0e9('0x44')](_0x508a1b,_0x205df3)['toString']()));}exports[_0xe0e9('0x45')]=getCallerIdRandom;function decrementOriginate(_0x4308e8,_0x10475c){if(_0x4308e8[_0xe0e9('0x23')]&&_0x4308e8[_0xe0e9('0x23')]>0x0){_0x4308e8['originated']-=0x1;}else{logger[_0xe0e9('0x46')](_0xe0e9('0x47'),_0x10475c);}}exports[_0xe0e9('0x48')]=decrementOriginate;function checkContactEmpty(_0x557c0b){return _0x557c0b&&_0x557c0b['length']>0x0;}exports[_0xe0e9('0x49')]=checkContactEmpty;function erlangb(_0x34c372,_0x339cd8){if(_0x339cd8===0x0){return 0x0;}var _0x37e434=0x1;for(var _0x532cba=0x1;_0x532cba<=_0x339cd8;_0x532cba+=0x1){_0x37e434=0x1+_0x37e434*_0x532cba/_0x34c372;}return 0x1/_0x37e434;}exports[_0xe0e9('0x4a')]=erlangb;function checkContactLowerLimitOriginate(_0x38ae20,_0x33c43a,_0x482d23){if(_0x33c43a>_0x482d23){for(var _0x4cf6a5=0x0;_0x4cf6a5<_0x33c43a-_0x482d23;_0x4cf6a5+=0x1){decrementOriginate(_0x38ae20,'[checkContactLowerLimitOriginate]\x20');}}}exports[_0xe0e9('0x4b')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x4e0013){var _0x37b502={};var _0x419361=['id',_0xe0e9('0x4c'),_0xe0e9('0x4d'),'updatedAt'];const _0x110cd9=0xfa;if(_0x4e0013){for(var _0x56d663 in _0x4e0013){if(typeof _0x4e0013[_0x56d663]!==_0xe0e9('0x4e')){if(!_[_0xe0e9('0x27')](_0x4e0013[_0x56d663])&&!_0x419361['includes'](_0x56d663)){if(_0x56d663==='description'&&_0x4e0013[_0x56d663][_0xe0e9('0x4f')]>_0x110cd9){_0x37b502[_0xe0e9('0x50')+_0x56d663['toUpperCase']()]=_0x4e0013[_0x56d663][_0xe0e9('0x51')]()['substring'](0x0,_0x110cd9);}else{_0x37b502[_0xe0e9('0x50')+_0x56d663[_0xe0e9('0x52')]()]=_0x4e0013[_0x56d663];}}}}}return _0x37b502;}exports[_0xe0e9('0x53')]=setXMDContactVariables;