Built motion from commit 39adb707.|2.6.14
[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 _0x017b=['isIVRCampaignActive','milliseconds','diff','seconds','getSeconds','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','dialTimezone','dialGlobalInterval','isNil','Interval','Intervals','isEmpty','EMPTY_INTERVAL','SIP/','reachable','status','TrunkBackup','includes','INACTIVE','DISACTIVED','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','extractCalleridName','isUndefined','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','getCallerId','\x5cw{0,','pow','replace','toString','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','decrementOriginate','length','checkContactEmpty','erlangb','checkContactLowerLimitOriginate','lodash','moment','../../../../config/logger','dialer','timezones','ACTIVE','IS_DISACTIVED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','RECALLFAILEDTIMEOUT','RUNNING','CAMPAIGN_STATUS','dialMethod','preview','type','ivr','outbound','dialActive','isQueueCampaignActive','active'];(function(_0x1a6007,_0x350755){var _0x120665=function(_0x51e6ba){while(--_0x51e6ba){_0x1a6007['push'](_0x1a6007['shift']());}};_0x120665(++_0x350755);}(_0x017b,0x16e));var _0xb017=function(_0x4c9897,_0x177377){_0x4c9897=_0x4c9897-0x0;var _0x3779f2=_0x017b[_0x4c9897];return _0x3779f2;};'use strict';var _=require(_0xb017('0x0'));var moment=require(_0xb017('0x1'));var util=require('util');var logger=require(_0xb017('0x2'))(_0xb017('0x3'));var timezones=require('../../../../config/environment/shared')[_0xb017('0x4')];var CAMPAIGN_STATUS={'ACTIVE':_0xb017('0x5'),'BLACKLIST':'BLACKLIST','CONTACTS_RESCHEDULED':'RESCHEDULED_CONTACTS','DEACTIVATED':'DEACTIVATED','DISACTIVED':_0xb017('0x6'),'EMPTY_INTERVAL':_0xb017('0x7'),'INACTIVE':_0xb017('0x8'),'NO_AGENTS_LOGGED':_0xb017('0x9'),'NO_AVAILABLE_CONTACTS':_0xb017('0xa'),'NULL_INTERVAL':_0xb017('0xb'),'OVERTIME_INTERVAL':_0xb017('0xc'),'OVERTIME_GLOBAL_INTERVAL':'GLOBAL_INTERVAL_IS_OVERTIME','QUEUE_RECALL':'RECALLINQUEUE','RECALL_TIMEOUT':_0xb017('0xd'),'RUNNING':_0xb017('0xe'),'UNKNOWN_TIMEZONE':'TIMEZONE_UNKNOW','UNREACHABLE_TRUNK':'TRUNK_IS_NOT_REACHABLE'};exports[_0xb017('0xf')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x3333b4){return _0x3333b4[_0xb017('0x10')]===_0xb017('0x11');}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x1b5345){return _0x1b5345[_0xb017('0x12')]===_0xb017('0x13');}exports['isIVRCampaign']=isIVRCampaign;function isOutboundQueue(_0x5cf87a){return _0x5cf87a[_0xb017('0x12')]===_0xb017('0x14');}exports['isOutboundQueue']=isOutboundQueue;function isQueueCampaignActive(_0x3aa81b){return _0x3aa81b[_0xb017('0x15')];}exports[_0xb017('0x16')]=isQueueCampaignActive;function isIVRCampaignActive(_0x38a958){return _0x38a958[_0xb017('0x17')];}exports[_0xb017('0x18')]=isIVRCampaignActive;function getSeconds(_0x211749,_0x23862d){var _0x49e101=moment(_0x211749)[_0xb017('0x19')](0x0);var _0x384e0b=moment(_0x23862d)[_0xb017('0x19')](0x0);return _0x49e101[_0xb017('0x1a')](_0x384e0b,_0xb017('0x1b'));}exports[_0xb017('0x1c')]=getSeconds;function hasQueueCampaignDataChanged(_0x55971b,_0x2ee8dc){var _0x3f8f6a=![];var _0x351609=_0x55971b[_0xb017('0x10')]!==_0x2ee8dc[_0xb017('0x10')]||_0x55971b[_0xb017('0x15')]!==_0x2ee8dc[_0xb017('0x15')]||_0x55971b[_0xb017('0x1d')]!==_0x2ee8dc['message'];var _0x3dffb9=_0x55971b['available']!==_0x2ee8dc[_0xb017('0x1e')]||_0x55971b['loggedIn']!==_0x2ee8dc[_0xb017('0x1f')]||_0x55971b[_0xb017('0x20')]!==_0x2ee8dc[_0xb017('0x20')]||_0x55971b[_0xb017('0x21')]!==_0x2ee8dc[_0xb017('0x21')]||_0x55971b[_0xb017('0x22')]!==_0x2ee8dc[_0xb017('0x22')]||_0x55971b['pTalking']!==_0x2ee8dc[_0xb017('0x23')]||_0x55971b[_0xb017('0x24')]!==_0x2ee8dc[_0xb017('0x24')]||_0x55971b[_0xb017('0x25')]!==_0x2ee8dc[_0xb017('0x25')]||_0x55971b[_0xb017('0x26')]!==_0x2ee8dc[_0xb017('0x26')];if(_0x55971b['Trunk']&&_0x2ee8dc[_0xb017('0x27')]){_0x3f8f6a=_0x55971b[_0xb017('0x27')][_0xb017('0x28')]!==_0x2ee8dc[_0xb017('0x27')]['name']||_0x55971b['Trunk'][_0xb017('0x17')]!==_0x2ee8dc[_0xb017('0x27')][_0xb017('0x17')];}return _0x351609||_0x3dffb9||_0x3f8f6a;}exports['hasQueueCampaignDataChanged']=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0xf40c2b){var _0x1b129e=null;var _0x2d89ac=_0xf40c2b[_0xb017('0x29')];if(_['isNil'](_0xf40c2b[_0xb017('0x2a')])||_[_0xb017('0x2b')](_0xf40c2b[_0xb017('0x2c')])||_['isNil'](_0xf40c2b[_0xb017('0x2c')][_0xb017('0x2d')])){_0x1b129e=CAMPAIGN_STATUS['NULL_INTERVAL'];}else if(_['isEmpty'](_0xf40c2b[_0xb017('0x2a')])||_[_0xb017('0x2e')](_0xf40c2b[_0xb017('0x2c')]['Intervals'])){_0x1b129e=CAMPAIGN_STATUS[_0xb017('0x2f')];}else if(_0x2d89ac&&!timezones[_0x2d89ac]){_0x1b129e=CAMPAIGN_STATUS['UNKNOWN_TIMEZONE'];}return _0x1b129e;}function checkAnyValidTrunk(_0x5dce70,_0x5987b6){var _0x3c34ec=null;var _0x85697d=_0xb017('0x30');var _0x175463=[_0xb017('0x31'),'unmonitored'];var _0x50207f=!![];if(_0x5dce70[_0xb017('0x27')]&&_0x5dce70[_0xb017('0x27')]['active']){_0x85697d+=_0x5dce70[_0xb017('0x27')][_0xb017('0x28')];_0x3c34ec=_0x5987b6[_0x85697d];_0x50207f=_0x175463['includes'](_0x3c34ec[_0xb017('0x32')]);}else if(_0x5dce70[_0xb017('0x33')]&&_0x5dce70['TrunkBackup'][_0xb017('0x17')]){_0x85697d+=_0x5dce70['TrunkBackup'][_0xb017('0x28')];_0x3c34ec=_0x5987b6[_0x85697d];_0x50207f=_0x175463[_0xb017('0x34')](_0x3c34ec[_0xb017('0x32')]);}return _0x50207f;}function getQueueCampaignStatusMessage(_0x33178b,_0x3023a7){var _0x2b0dbe=CAMPAIGN_STATUS['ACTIVE'];var _0x42d28b=isPreviewCampaign(_0x33178b);if(!isQueueCampaignActive(_0x33178b)){if(_0x42d28b){_0x2b0dbe=CAMPAIGN_STATUS[_0xb017('0x35')];}else{if(_0x33178b[_0xb017('0x26')]===0x0&&_0x33178b[_0xb017('0x22')]===0x0&&_0x33178b[_0xb017('0x24')]===0x0&&(_0x33178b[_0xb017('0x23')]||0x0)===0x0){_0x2b0dbe=CAMPAIGN_STATUS[_0xb017('0x35')];}else{_0x2b0dbe=CAMPAIGN_STATUS[_0xb017('0x36')];}}}else if(_0x33178b[_0xb017('0x1f')]===0x0){_0x2b0dbe=CAMPAIGN_STATUS[_0xb017('0x37')];}else if(!checkAnyValidTrunk(_0x33178b,_0x3023a7)){_0x2b0dbe=CAMPAIGN_STATUS[_0xb017('0x38')];}else if(!isPreviewCampaign(_0x33178b)){var _0x5630cf=checkAnyValidQueueCampaignInterval(_0x33178b);if(_0x5630cf){_0x2b0dbe=_0x5630cf;}}return _0x2b0dbe;}exports[_0xb017('0x39')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x5f5cec){var _0xc5b5bc=CAMPAIGN_STATUS['DISACTIVED'];if(_0x5f5cec[_0xb017('0x26')]===0x0&&_0x5f5cec[_0xb017('0x22')]===0x0&&_0x5f5cec[_0xb017('0x24')]===0x0&&(_0x5f5cec[_0xb017('0x23')]||0x0)===0x0){_0xc5b5bc=CAMPAIGN_STATUS[_0xb017('0x35')];}return _0xc5b5bc;}exports[_0xb017('0x3a')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x5ecc79){var _0x1d4104=_0x5ecc79['match'](/"(.*?)"/);return _0x1d4104?_0x1d4104[0x1]:_0x5ecc79;}exports[_0xb017('0x3b')]=extractCalleridName;function getCallerId(_0x49155e,_0x20394b,_0x411c51){if(!_[_0xb017('0x3c')](_0x411c51)&&typeof _0x411c51===_0xb017('0x3d')&&!_['isEmpty'](_0x411c51)){if(!_[_0xb017('0x3c')](_0x20394b)&&typeof _0x20394b===_0xb017('0x3d')&&!_[_0xb017('0x2e')](_0x20394b)){return util[_0xb017('0x3e')](_0xb017('0x3f'),_0x20394b,_0x411c51);}return util[_0xb017('0x3e')](_0xb017('0x3f'),_0x411c51,_0x411c51);}if(!_[_0xb017('0x3c')](_0x49155e)&&typeof _0x49155e==='string'&&!_[_0xb017('0x2e')](_0x49155e)){return _0x49155e;}return _0xb017('0x40');}exports[_0xb017('0x41')]=getCallerId;function getCallerIdRandom(_0x5b2d61,_0x2b93a6){var _0x2c7509;var _0xf77c21;var _0x420dea;if(_0x2b93a6<=0x0){_0x2b93a6=0x1;}_0x2c7509=new RegExp(_0xb017('0x42')+_0x2b93a6+'}$');_0xf77c21=Math[_0xb017('0x43')](0xa,_0x2b93a6-0x1);_0x420dea=Math['pow'](0xa,_0x2b93a6)-0x1;return util[_0xb017('0x3e')]('%s',_[_0xb017('0x44')](_0x5b2d61,_0x2c7509,_['random'](_0xf77c21,_0x420dea)[_0xb017('0x45')]()));}exports[_0xb017('0x46')]=getCallerIdRandom;function decrementOriginate(_0x576e1b){if(_0x576e1b[_0xb017('0x26')]&&_0x576e1b[_0xb017('0x26')]>0x0){_0x576e1b[_0xb017('0x26')]-=0x1;}else{logger[_0xb017('0x47')](_0xb017('0x48'));}}exports[_0xb017('0x49')]=decrementOriginate;function checkContactEmpty(_0x51f05d){return _0x51f05d&&_0x51f05d[_0xb017('0x4a')]>0x0;}exports[_0xb017('0x4b')]=checkContactEmpty;function erlangb(_0x3409a0,_0x1461cb){if(_0x1461cb===0x0){return 0x0;}var _0x335dc2=0x1;for(var _0x47050a=0x1;_0x47050a<=_0x1461cb;_0x47050a+=0x1){_0x335dc2=0x1+_0x335dc2*_0x47050a/_0x3409a0;}return 0x1/_0x335dc2;}exports[_0xb017('0x4c')]=erlangb;function checkContactLowerLimitOriginate(_0x8bb918,_0x14d99c,_0x4bc29e){if(_0x14d99c>_0x4bc29e){for(var _0x2f8855=0x0;_0x2f8855<_0x14d99c-_0x4bc29e;_0x2f8855+=0x1){decrementOriginate(_0x8bb918);}}}exports[_0xb017('0x4d')]=checkContactLowerLimitOriginate;