cc397cd8e74ed782bcf88b2444d24604d7dff8e4
[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 _0x49dd=['RECALLFAILEDTIMEOUT','TRUNK_IS_NOT_REACHABLE','dialMethod','preview','type','ivr','dialActive','isQueueCampaignActive','active','milliseconds','diff','seconds','getSeconds','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','hasQueueCampaignDataChanged','dialTimezone','isNil','dialGlobalInterval','Interval','Intervals','NULL_INTERVAL','isEmpty','EMPTY_INTERVAL','SIP/','reachable','unmonitored','includes','status','TrunkBackup','INACTIVE','DISACTIVED','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','extractCalleridName','string','isUndefined','\x22%s\x22\x20<%s>','format','\x22\x22\x20<>','getCallerId','\x5cw{0,','pow','replace','random','getCallerIdRandom','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','decrementOriginate','checkContactEmpty','erlangb','checkContactLowerLimitOriginate','createdAt','tags','updatedAt','undefined','description','toUpperCase','toString','substring','XMD-','setXMDContactVariables','lodash','moment','../../../../config/logger','dialer','timezones','ACTIVE','DEACTIVATED','IS_DISACTIVED','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE'];(function(_0x2a6809,_0x44edde){var _0x11c371=function(_0x1a4888){while(--_0x1a4888){_0x2a6809['push'](_0x2a6809['shift']());}};_0x11c371(++_0x44edde);}(_0x49dd,0x14a));var _0xd49d=function(_0x55e6b8,_0x31c7ac){_0x55e6b8=_0x55e6b8-0x0;var _0x3dc8bc=_0x49dd[_0x55e6b8];return _0x3dc8bc;};'use strict';var _=require(_0xd49d('0x0'));var moment=require(_0xd49d('0x1'));var util=require('util');var logger=require(_0xd49d('0x2'))(_0xd49d('0x3'));var timezones=require('../../../../config/environment/shared')[_0xd49d('0x4')];var CAMPAIGN_STATUS={'ACTIVE':_0xd49d('0x5'),'BLACKLIST':'BLACKLIST','CONTACTS_RESCHEDULED':'RESCHEDULED_CONTACTS','DEACTIVATED':_0xd49d('0x6'),'DISACTIVED':_0xd49d('0x7'),'EMPTY_INTERVAL':'INTERVAL_IS_EMPTY','INACTIVE':'NOT_ACTIVE','NO_AGENTS_LOGGED':_0xd49d('0x8'),'NO_AVAILABLE_CONTACTS':_0xd49d('0x9'),'NULL_INTERVAL':_0xd49d('0xa'),'OVERTIME_INTERVAL':_0xd49d('0xb'),'OVERTIME_GLOBAL_INTERVAL':_0xd49d('0xc'),'QUEUE_RECALL':_0xd49d('0xd'),'RECALL_TIMEOUT':_0xd49d('0xe'),'RUNNING':'RUNNING','UNKNOWN_TIMEZONE':'TIMEZONE_UNKNOW','UNREACHABLE_TRUNK':_0xd49d('0xf')};exports['CAMPAIGN_STATUS']=CAMPAIGN_STATUS;function isPreviewCampaign(_0x367738){return _0x367738[_0xd49d('0x10')]===_0xd49d('0x11');}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x552419){return _0x552419[_0xd49d('0x12')]===_0xd49d('0x13');}exports['isIVRCampaign']=isIVRCampaign;function isOutboundQueue(_0x4bae73){return _0x4bae73[_0xd49d('0x12')]==='outbound';}exports['isOutboundQueue']=isOutboundQueue;function isQueueCampaignActive(_0x5ec200){return _0x5ec200[_0xd49d('0x14')];}exports[_0xd49d('0x15')]=isQueueCampaignActive;function isIVRCampaignActive(_0x3dc0d8){return _0x3dc0d8[_0xd49d('0x16')];}exports['isIVRCampaignActive']=isIVRCampaignActive;function getSeconds(_0x3f504c,_0x5a1570){var _0x187e3e=moment(_0x3f504c)[_0xd49d('0x17')](0x0);var _0x875535=moment(_0x5a1570)[_0xd49d('0x17')](0x0);return _0x187e3e[_0xd49d('0x18')](_0x875535,_0xd49d('0x19'));}exports[_0xd49d('0x1a')]=getSeconds;function hasQueueCampaignDataChanged(_0x4ba443,_0x2eb8a8){var _0x39596c=![];var _0x284a70=_0x4ba443[_0xd49d('0x10')]!==_0x2eb8a8['dialMethod']||_0x4ba443[_0xd49d('0x14')]!==_0x2eb8a8[_0xd49d('0x14')]||_0x4ba443['message']!==_0x2eb8a8['message'];var _0x6daa5e=_0x4ba443['available']!==_0x2eb8a8[_0xd49d('0x1b')]||_0x4ba443[_0xd49d('0x1c')]!==_0x2eb8a8[_0xd49d('0x1c')]||_0x4ba443['loggedInDb']!==_0x2eb8a8[_0xd49d('0x1d')]||_0x4ba443[_0xd49d('0x1e')]!==_0x2eb8a8[_0xd49d('0x1e')]||_0x4ba443[_0xd49d('0x1f')]!==_0x2eb8a8['talking']||_0x4ba443[_0xd49d('0x20')]!==_0x2eb8a8[_0xd49d('0x20')]||_0x4ba443[_0xd49d('0x21')]!==_0x2eb8a8[_0xd49d('0x21')]||_0x4ba443[_0xd49d('0x22')]!==_0x2eb8a8[_0xd49d('0x22')]||_0x4ba443['originated']!==_0x2eb8a8[_0xd49d('0x23')];if(_0x4ba443[_0xd49d('0x24')]&&_0x2eb8a8[_0xd49d('0x24')]){_0x39596c=_0x4ba443[_0xd49d('0x24')][_0xd49d('0x25')]!==_0x2eb8a8[_0xd49d('0x24')]['name']||_0x4ba443[_0xd49d('0x24')][_0xd49d('0x16')]!==_0x2eb8a8[_0xd49d('0x24')]['active'];}return _0x284a70||_0x6daa5e||_0x39596c;}exports[_0xd49d('0x26')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x27ec12){var _0x5837c0=null;var _0x1c47b7=_0x27ec12[_0xd49d('0x27')];if(_[_0xd49d('0x28')](_0x27ec12[_0xd49d('0x29')])||_[_0xd49d('0x28')](_0x27ec12['Interval'])||_[_0xd49d('0x28')](_0x27ec12[_0xd49d('0x2a')][_0xd49d('0x2b')])){_0x5837c0=CAMPAIGN_STATUS[_0xd49d('0x2c')];}else if(_[_0xd49d('0x2d')](_0x27ec12[_0xd49d('0x29')])||_[_0xd49d('0x2d')](_0x27ec12[_0xd49d('0x2a')][_0xd49d('0x2b')])){_0x5837c0=CAMPAIGN_STATUS[_0xd49d('0x2e')];}else if(_0x1c47b7&&!timezones[_0x1c47b7]){_0x5837c0=CAMPAIGN_STATUS['UNKNOWN_TIMEZONE'];}return _0x5837c0;}function checkAnyValidTrunk(_0x5797ba,_0x53f428){var _0x33d712=null;var _0x1a3a6c=_0xd49d('0x2f');var _0x342ef7=[_0xd49d('0x30'),_0xd49d('0x31')];var _0x58aa8a=!![];if(_0x5797ba[_0xd49d('0x24')]&&_0x5797ba[_0xd49d('0x24')]['active']){_0x1a3a6c+=_0x5797ba[_0xd49d('0x24')][_0xd49d('0x25')];_0x33d712=_0x53f428[_0x1a3a6c];_0x58aa8a=_0x342ef7[_0xd49d('0x32')](_0x33d712[_0xd49d('0x33')]);}else if(_0x5797ba['TrunkBackup']&&_0x5797ba[_0xd49d('0x34')][_0xd49d('0x16')]){_0x1a3a6c+=_0x5797ba[_0xd49d('0x34')]['name'];_0x33d712=_0x53f428[_0x1a3a6c];_0x58aa8a=_0x342ef7[_0xd49d('0x32')](_0x33d712[_0xd49d('0x33')]);}return _0x58aa8a;}function getQueueCampaignStatusMessage(_0x24340e,_0x501896){var _0x6ca9a1=CAMPAIGN_STATUS[_0xd49d('0x5')];var _0x2ce19e=isPreviewCampaign(_0x24340e);if(!isQueueCampaignActive(_0x24340e)){if(_0x2ce19e){_0x6ca9a1=CAMPAIGN_STATUS['INACTIVE'];}else{if(_0x24340e[_0xd49d('0x23')]===0x0&&_0x24340e[_0xd49d('0x1f')]===0x0&&_0x24340e['waiting']===0x0&&(_0x24340e[_0xd49d('0x20')]||0x0)===0x0){_0x6ca9a1=CAMPAIGN_STATUS[_0xd49d('0x35')];}else{_0x6ca9a1=CAMPAIGN_STATUS[_0xd49d('0x36')];}}}else if(_0x24340e['loggedIn']===0x0){_0x6ca9a1=CAMPAIGN_STATUS[_0xd49d('0x37')];}else if(!checkAnyValidTrunk(_0x24340e,_0x501896)){_0x6ca9a1=CAMPAIGN_STATUS[_0xd49d('0x38')];}else if(!isPreviewCampaign(_0x24340e)){var _0x268575=checkAnyValidQueueCampaignInterval(_0x24340e);if(_0x268575){_0x6ca9a1=_0x268575;}}return _0x6ca9a1;}exports[_0xd49d('0x39')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x31bf2a){var _0x478667=CAMPAIGN_STATUS[_0xd49d('0x36')];if(_0x31bf2a['originated']===0x0&&_0x31bf2a[_0xd49d('0x1f')]===0x0&&_0x31bf2a['waiting']===0x0&&(_0x31bf2a[_0xd49d('0x20')]||0x0)===0x0){_0x478667=CAMPAIGN_STATUS[_0xd49d('0x35')];}return _0x478667;}exports[_0xd49d('0x3a')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x22b31d){var _0x3e526e=_0x22b31d['match'](/"(.*?)"/);return _0x3e526e?_0x3e526e[0x1]:_0x22b31d;}exports[_0xd49d('0x3b')]=extractCalleridName;function getCallerId(_0x4487d5,_0x18687f,_0x37341e){if(!_['isUndefined'](_0x37341e)&&typeof _0x37341e===_0xd49d('0x3c')&&!_[_0xd49d('0x2d')](_0x37341e)){if(!_[_0xd49d('0x3d')](_0x18687f)&&typeof _0x18687f===_0xd49d('0x3c')&&!_[_0xd49d('0x2d')](_0x18687f)){return util['format'](_0xd49d('0x3e'),_0x18687f,_0x37341e);}return util[_0xd49d('0x3f')](_0xd49d('0x3e'),_0x37341e,_0x37341e);}if(!_[_0xd49d('0x3d')](_0x4487d5)&&typeof _0x4487d5===_0xd49d('0x3c')&&!_[_0xd49d('0x2d')](_0x4487d5)){return _0x4487d5;}return _0xd49d('0x40');}exports[_0xd49d('0x41')]=getCallerId;function getCallerIdRandom(_0x16b6f3,_0x2cac79){var _0x4dbc64;var _0x5805d8;var _0x4d6960;if(_0x2cac79<=0x0){_0x2cac79=0x1;}_0x4dbc64=new RegExp(_0xd49d('0x42')+_0x2cac79+'}$');_0x5805d8=Math[_0xd49d('0x43')](0xa,_0x2cac79-0x1);_0x4d6960=Math[_0xd49d('0x43')](0xa,_0x2cac79)-0x1;return util[_0xd49d('0x3f')]('%s',_[_0xd49d('0x44')](_0x16b6f3,_0x4dbc64,_[_0xd49d('0x45')](_0x5805d8,_0x4d6960)['toString']()));}exports[_0xd49d('0x46')]=getCallerIdRandom;function decrementOriginate(_0x15e67d){if(_0x15e67d['originated']&&_0x15e67d[_0xd49d('0x23')]>0x0){_0x15e67d[_0xd49d('0x23')]-=0x1;}else{logger['error'](_0xd49d('0x47'));}}exports[_0xd49d('0x48')]=decrementOriginate;function checkContactEmpty(_0x273fb8){return _0x273fb8&&_0x273fb8['length']>0x0;}exports[_0xd49d('0x49')]=checkContactEmpty;function erlangb(_0x3cbeda,_0x3cdb9b){if(_0x3cdb9b===0x0){return 0x0;}var _0x405c1a=0x1;for(var _0x3f7577=0x1;_0x3f7577<=_0x3cdb9b;_0x3f7577+=0x1){_0x405c1a=0x1+_0x405c1a*_0x3f7577/_0x3cbeda;}return 0x1/_0x405c1a;}exports[_0xd49d('0x4a')]=erlangb;function checkContactLowerLimitOriginate(_0x3535b8,_0x2e11f2,_0x2cbf1a){if(_0x2e11f2>_0x2cbf1a){for(var _0x180293=0x0;_0x180293<_0x2e11f2-_0x2cbf1a;_0x180293+=0x1){decrementOriginate(_0x3535b8);}}}exports[_0xd49d('0x4b')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x2de169){var _0xe51097={};var _0x22331f=['id',_0xd49d('0x4c'),_0xd49d('0x4d'),_0xd49d('0x4e')];const _0x1195f7=0xfa;if(_0x2de169){for(var _0x356ae9 in _0x2de169){if(typeof _0x2de169[_0x356ae9]!==_0xd49d('0x4f')){if(!_['isNil'](_0x2de169[_0x356ae9])&&!_0x22331f[_0xd49d('0x32')](_0x356ae9)){if(_0x356ae9===_0xd49d('0x50')&&_0x2de169[_0x356ae9]['length']>_0x1195f7){_0xe51097['XMD-'+_0x356ae9[_0xd49d('0x51')]()]=_0x2de169[_0x356ae9][_0xd49d('0x52')]()[_0xd49d('0x53')](0x0,_0x1195f7);}else{_0xe51097[_0xd49d('0x54')+_0x356ae9[_0xd49d('0x51')]()]=_0x2de169[_0x356ae9];}}}}}return _0xe51097;}exports[_0xd49d('0x55')]=setXMDContactVariables;