Built motion from commit bab6f49e.|2.6.17
[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 _0xd02a=['pTalking','inUse','originated','Trunk','name','active','hasQueueCampaignDataChanged','dialTimezone','isNil','dialGlobalInterval','Interval','isEmpty','Intervals','SIP/','unmonitored','status','TrunkBackup','includes','INACTIVE','waiting','DISACTIVED','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','match','isUndefined','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','getCallerId','\x5cw{0,','replace','random','toString','getCallerIdRandom','error','decrementOriginate','length','erlangb','checkContactLowerLimitOriginate','tags','updatedAt','undefined','%s%s','XMD-','toUpperCase','moment','util','../../../../config/logger','dialer','ACTIVE','BLACKLIST','DEACTIVATED','IS_DISACTIVED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AGENTS_NOT_LOGGED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RECALLFAILEDTIMEOUT','TIMEZONE_UNKNOW','dialMethod','preview','type','ivr','isIVRCampaign','isOutboundQueue','dialActive','isQueueCampaignActive','isIVRCampaignActive','milliseconds','diff','seconds','getSeconds','message','available','loggedIn','loggedInDb','paused','talking'];(function(_0x8963e7,_0x120546){var _0x49cdf7=function(_0x5a5ce1){while(--_0x5a5ce1){_0x8963e7['push'](_0x8963e7['shift']());}};_0x49cdf7(++_0x120546);}(_0xd02a,0x84));var _0xad02=function(_0x4b6418,_0x5afc1b){_0x4b6418=_0x4b6418-0x0;var _0x335d4b=_0xd02a[_0x4b6418];return _0x335d4b;};'use strict';var _=require('lodash');var moment=require(_0xad02('0x0'));var util=require(_0xad02('0x1'));var logger=require(_0xad02('0x2'))(_0xad02('0x3'));var timezones=require('../../../../config/environment/shared')['timezones'];var CAMPAIGN_STATUS={'ACTIVE':_0xad02('0x4'),'BLACKLIST':_0xad02('0x5'),'CONTACTS_RESCHEDULED':'RESCHEDULED_CONTACTS','DEACTIVATED':_0xad02('0x6'),'DISACTIVED':_0xad02('0x7'),'EMPTY_INTERVAL':_0xad02('0x8'),'INACTIVE':_0xad02('0x9'),'NO_AGENTS_LOGGED':_0xad02('0xa'),'NO_AVAILABLE_CONTACTS':'AVAILABLE_CONTACTS_FINISHED','NULL_INTERVAL':_0xad02('0xb'),'OVERTIME_INTERVAL':_0xad02('0xc'),'OVERTIME_GLOBAL_INTERVAL':_0xad02('0xd'),'QUEUE_RECALL':_0xad02('0xe'),'RECALL_TIMEOUT':_0xad02('0xf'),'RUNNING':'RUNNING','UNKNOWN_TIMEZONE':_0xad02('0x10'),'UNREACHABLE_TRUNK':'TRUNK_IS_NOT_REACHABLE'};exports['CAMPAIGN_STATUS']=CAMPAIGN_STATUS;function isPreviewCampaign(_0x4e9654){return _0x4e9654[_0xad02('0x11')]===_0xad02('0x12');}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x287dbc){return _0x287dbc[_0xad02('0x13')]===_0xad02('0x14');}exports[_0xad02('0x15')]=isIVRCampaign;function isOutboundQueue(_0x436748){return _0x436748['type']==='outbound';}exports[_0xad02('0x16')]=isOutboundQueue;function isQueueCampaignActive(_0x381436){return _0x381436[_0xad02('0x17')];}exports[_0xad02('0x18')]=isQueueCampaignActive;function isIVRCampaignActive(_0x55f691){return _0x55f691['active'];}exports[_0xad02('0x19')]=isIVRCampaignActive;function getSeconds(_0xac7d05,_0x554c22){var _0x2ded58=moment(_0xac7d05)['milliseconds'](0x0);var _0x156a47=moment(_0x554c22)[_0xad02('0x1a')](0x0);return _0x2ded58[_0xad02('0x1b')](_0x156a47,_0xad02('0x1c'));}exports[_0xad02('0x1d')]=getSeconds;function hasQueueCampaignDataChanged(_0x3664f9,_0x15dfda){var _0x305f00=![];var _0x31e30b=_0x3664f9[_0xad02('0x11')]!==_0x15dfda['dialMethod']||_0x3664f9[_0xad02('0x17')]!==_0x15dfda['dialActive']||_0x3664f9[_0xad02('0x1e')]!==_0x15dfda[_0xad02('0x1e')];var _0x3446e3=_0x3664f9[_0xad02('0x1f')]!==_0x15dfda[_0xad02('0x1f')]||_0x3664f9['loggedIn']!==_0x15dfda[_0xad02('0x20')]||_0x3664f9[_0xad02('0x21')]!==_0x15dfda[_0xad02('0x21')]||_0x3664f9[_0xad02('0x22')]!==_0x15dfda[_0xad02('0x22')]||_0x3664f9[_0xad02('0x23')]!==_0x15dfda['talking']||_0x3664f9['pTalking']!==_0x15dfda[_0xad02('0x24')]||_0x3664f9['waiting']!==_0x15dfda['waiting']||_0x3664f9[_0xad02('0x25')]!==_0x15dfda[_0xad02('0x25')]||_0x3664f9['originated']!==_0x15dfda[_0xad02('0x26')];if(_0x3664f9['Trunk']&&_0x15dfda[_0xad02('0x27')]){_0x305f00=_0x3664f9['Trunk'][_0xad02('0x28')]!==_0x15dfda[_0xad02('0x27')][_0xad02('0x28')]||_0x3664f9['Trunk'][_0xad02('0x29')]!==_0x15dfda[_0xad02('0x27')][_0xad02('0x29')];}return _0x31e30b||_0x3446e3||_0x305f00;}exports[_0xad02('0x2a')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x1ed408){var _0x5ad3f2=null;var _0x30e9f6=_0x1ed408[_0xad02('0x2b')];if(_[_0xad02('0x2c')](_0x1ed408[_0xad02('0x2d')])||_[_0xad02('0x2c')](_0x1ed408[_0xad02('0x2e')])||_['isNil'](_0x1ed408['Interval']['Intervals'])){_0x5ad3f2=CAMPAIGN_STATUS['NULL_INTERVAL'];}else if(_['isEmpty'](_0x1ed408['dialGlobalInterval'])||_[_0xad02('0x2f')](_0x1ed408[_0xad02('0x2e')][_0xad02('0x30')])){_0x5ad3f2=CAMPAIGN_STATUS['EMPTY_INTERVAL'];}else if(_0x30e9f6&&!timezones[_0x30e9f6]){_0x5ad3f2=CAMPAIGN_STATUS['UNKNOWN_TIMEZONE'];}return _0x5ad3f2;}function checkAnyValidTrunk(_0x246f5e,_0x70ae66){var _0x45e917=null;var _0x514eb1=_0xad02('0x31');var _0x54ba66=['reachable',_0xad02('0x32')];var _0x2a35de=!![];if(_0x246f5e[_0xad02('0x27')]&&_0x246f5e[_0xad02('0x27')][_0xad02('0x29')]){_0x514eb1+=_0x246f5e[_0xad02('0x27')]['name'];_0x45e917=_0x70ae66[_0x514eb1];_0x2a35de=_0x54ba66['includes'](_0x45e917[_0xad02('0x33')]);}else if(_0x246f5e[_0xad02('0x34')]&&_0x246f5e[_0xad02('0x34')][_0xad02('0x29')]){_0x514eb1+=_0x246f5e[_0xad02('0x34')][_0xad02('0x28')];_0x45e917=_0x70ae66[_0x514eb1];_0x2a35de=_0x54ba66[_0xad02('0x35')](_0x45e917['status']);}return _0x2a35de;}function getQueueCampaignStatusMessage(_0x396a58,_0x19de02){var _0x3a3fd2=CAMPAIGN_STATUS[_0xad02('0x4')];var _0x45b2ed=isPreviewCampaign(_0x396a58);if(!isQueueCampaignActive(_0x396a58)){if(_0x45b2ed){_0x3a3fd2=CAMPAIGN_STATUS[_0xad02('0x36')];}else{if(_0x396a58[_0xad02('0x26')]===0x0&&_0x396a58[_0xad02('0x23')]===0x0&&_0x396a58[_0xad02('0x37')]===0x0&&(_0x396a58[_0xad02('0x24')]||0x0)===0x0){_0x3a3fd2=CAMPAIGN_STATUS[_0xad02('0x36')];}else{_0x3a3fd2=CAMPAIGN_STATUS[_0xad02('0x38')];}}}else if(_0x396a58[_0xad02('0x20')]===0x0){_0x3a3fd2=CAMPAIGN_STATUS[_0xad02('0x39')];}else if(!checkAnyValidTrunk(_0x396a58,_0x19de02)){_0x3a3fd2=CAMPAIGN_STATUS[_0xad02('0x3a')];}else if(!isPreviewCampaign(_0x396a58)){var _0x295472=checkAnyValidQueueCampaignInterval(_0x396a58);if(_0x295472){_0x3a3fd2=_0x295472;}}return _0x3a3fd2;}exports[_0xad02('0x3b')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x415e9d){var _0x2e3fbe=CAMPAIGN_STATUS[_0xad02('0x38')];if(_0x415e9d[_0xad02('0x26')]===0x0&&_0x415e9d[_0xad02('0x23')]===0x0&&_0x415e9d[_0xad02('0x37')]===0x0&&(_0x415e9d[_0xad02('0x24')]||0x0)===0x0){_0x2e3fbe=CAMPAIGN_STATUS[_0xad02('0x36')];}return _0x2e3fbe;}exports[_0xad02('0x3c')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x62c77){var _0x2f8411=_0x62c77[_0xad02('0x3d')](/"(.*?)"/);return _0x2f8411?_0x2f8411[0x1]:_0x62c77;}exports['extractCalleridName']=extractCalleridName;function getCallerId(_0x4e4b8e,_0xecb1fb,_0x5f29a3){if(!_[_0xad02('0x3e')](_0x5f29a3)&&typeof _0x5f29a3===_0xad02('0x3f')&&!_[_0xad02('0x2f')](_0x5f29a3)){if(!_[_0xad02('0x3e')](_0xecb1fb)&&typeof _0xecb1fb===_0xad02('0x3f')&&!_[_0xad02('0x2f')](_0xecb1fb)){return util[_0xad02('0x40')](_0xad02('0x41'),_0xecb1fb,_0x5f29a3);}return util[_0xad02('0x40')](_0xad02('0x41'),_0x5f29a3,_0x5f29a3);}if(!_[_0xad02('0x3e')](_0x4e4b8e)&&typeof _0x4e4b8e==='string'&&!_[_0xad02('0x2f')](_0x4e4b8e)){return _0x4e4b8e;}return _0xad02('0x42');}exports[_0xad02('0x43')]=getCallerId;function getCallerIdRandom(_0xa6c04b,_0x39ee10){var _0x175033;var _0x51f597;var _0xe89057;if(_0x39ee10<=0x0){_0x39ee10=0x1;}_0x175033=new RegExp(_0xad02('0x44')+_0x39ee10+'}$');_0x51f597=Math['pow'](0xa,_0x39ee10-0x1);_0xe89057=Math['pow'](0xa,_0x39ee10)-0x1;return util['format']('%s',_[_0xad02('0x45')](_0xa6c04b,_0x175033,_[_0xad02('0x46')](_0x51f597,_0xe89057)[_0xad02('0x47')]()));}exports[_0xad02('0x48')]=getCallerIdRandom;function decrementOriginate(_0x451acb){if(_0x451acb[_0xad02('0x26')]&&_0x451acb[_0xad02('0x26')]>0x0){_0x451acb['originated']-=0x1;}else{logger[_0xad02('0x49')]('[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative');}}exports[_0xad02('0x4a')]=decrementOriginate;function checkContactEmpty(_0x42b31b){return _0x42b31b&&_0x42b31b[_0xad02('0x4b')]>0x0;}exports['checkContactEmpty']=checkContactEmpty;function erlangb(_0x2abf37,_0x405712){if(_0x405712===0x0){return 0x0;}var _0x382d60=0x1;for(var _0x49553a=0x1;_0x49553a<=_0x405712;_0x49553a+=0x1){_0x382d60=0x1+_0x382d60*_0x49553a/_0x2abf37;}return 0x1/_0x382d60;}exports[_0xad02('0x4c')]=erlangb;function checkContactLowerLimitOriginate(_0x2543ff,_0x21a018,_0x288ce6){if(_0x21a018>_0x288ce6){for(var _0x58436b=0x0;_0x58436b<_0x21a018-_0x288ce6;_0x58436b+=0x1){decrementOriginate(_0x2543ff);}}}exports[_0xad02('0x4d')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x2be197){var _0xf1a83d={};var _0x148802=['id','createdAt','description',_0xad02('0x4e'),_0xad02('0x4f')];if(_0x2be197){for(var _0x50bf61 in _0x2be197){if(typeof _0x2be197[_0x50bf61]!==_0xad02('0x50')){if(!_['isNil'](_0x2be197[_0x50bf61])&&!_0x148802[_0xad02('0x35')](_0x50bf61)){_0xf1a83d[util[_0xad02('0x40')](_0xad02('0x51'),_0xad02('0x52'),_0x50bf61[_0xad02('0x53')]())]=_0x2be197[_0x50bf61];}}}}return _0xf1a83d;}exports['setXMDContactVariables']=setXMDContactVariables;