Built motion from commit f623a78c.|2.6.31
[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 _0x4bc9=['INACTIVE','DISACTIVED','UNREACHABLE_TRUNK','getQueueCampaignActiveStatusMessage','match','extractCalleridName','isUndefined','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','pow','replace','toString','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value','decrementOriginate','checkContactEmpty','erlangb','[checkContactLowerLimitOriginate]\x20','checkContactLowerLimitOriginate','createdAt','tags','length','XMD-','toUpperCase','substring','setXMDContactVariables','lodash','moment','util','../../../../config/logger','dialer','timezones','ACTIVE','RESCHEDULED_CONTACTS','DEACTIVATED','IS_DISACTIVED','NOT_ACTIVE','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RUNNING','TIMEZONE_UNKNOW','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','preview','isPreviewCampaign','ivr','type','outbound','isOutboundQueue','dialActive','isQueueCampaignActive','active','milliseconds','diff','seconds','getSeconds','dialMethod','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','dialTimezone','isNil','Interval','Intervals','isEmpty','dialGlobalInterval','EMPTY_INTERVAL','SIP/','reachable','unmonitored','includes','status','TrunkBackup'];(function(_0x105d2c,_0x901fb4){var _0x3df304=function(_0xc9ac4d){while(--_0xc9ac4d){_0x105d2c['push'](_0x105d2c['shift']());}};_0x3df304(++_0x901fb4);}(_0x4bc9,0x179));var _0x94bc=function(_0x49b3a6,_0x52eb27){_0x49b3a6=_0x49b3a6-0x0;var _0x53dc62=_0x4bc9[_0x49b3a6];return _0x53dc62;};'use strict';var _=require(_0x94bc('0x0'));var moment=require(_0x94bc('0x1'));var util=require(_0x94bc('0x2'));var logger=require(_0x94bc('0x3'))(_0x94bc('0x4'));var timezones=require('../../../../config/environment/shared')[_0x94bc('0x5')];var CAMPAIGN_STATUS={'ACTIVE':_0x94bc('0x6'),'BLACKLIST':'BLACKLIST','CONTACTS_RESCHEDULED':_0x94bc('0x7'),'DEACTIVATED':_0x94bc('0x8'),'DISACTIVED':_0x94bc('0x9'),'EMPTY_INTERVAL':'INTERVAL_IS_EMPTY','INACTIVE':_0x94bc('0xa'),'NO_AGENTS_LOGGED':_0x94bc('0xb'),'NO_AVAILABLE_CONTACTS':_0x94bc('0xc'),'NULL_INTERVAL':_0x94bc('0xd'),'OVERTIME_INTERVAL':_0x94bc('0xe'),'OVERTIME_GLOBAL_INTERVAL':_0x94bc('0xf'),'QUEUE_RECALL':'RECALLINQUEUE','RECALL_TIMEOUT':'RECALLFAILEDTIMEOUT','RUNNING':_0x94bc('0x10'),'UNKNOWN_TIMEZONE':_0x94bc('0x11'),'UNREACHABLE_TRUNK':_0x94bc('0x12')};exports[_0x94bc('0x13')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x385cb1){return _0x385cb1['dialMethod']===_0x94bc('0x14');}exports[_0x94bc('0x15')]=isPreviewCampaign;function isIVRCampaign(_0x2247c4){return _0x2247c4['type']===_0x94bc('0x16');}exports['isIVRCampaign']=isIVRCampaign;function isOutboundQueue(_0x2c61da){return _0x2c61da[_0x94bc('0x17')]===_0x94bc('0x18');}exports[_0x94bc('0x19')]=isOutboundQueue;function isQueueCampaignActive(_0x5b5fdd){return _0x5b5fdd[_0x94bc('0x1a')];}exports[_0x94bc('0x1b')]=isQueueCampaignActive;function isIVRCampaignActive(_0x4245e0){return _0x4245e0[_0x94bc('0x1c')];}exports['isIVRCampaignActive']=isIVRCampaignActive;function getSeconds(_0x1e5a73,_0xe0081f){var _0x2c1e57=moment(_0x1e5a73)[_0x94bc('0x1d')](0x0);var _0x8fe41d=moment(_0xe0081f)[_0x94bc('0x1d')](0x0);return _0x2c1e57[_0x94bc('0x1e')](_0x8fe41d,_0x94bc('0x1f'));}exports[_0x94bc('0x20')]=getSeconds;function hasQueueCampaignDataChanged(_0x66efb,_0x8d6b3a){var _0x1ee9ec=![];var _0x42195e=_0x66efb[_0x94bc('0x21')]!==_0x8d6b3a['dialMethod']||_0x66efb['dialActive']!==_0x8d6b3a[_0x94bc('0x1a')]||_0x66efb['message']!==_0x8d6b3a['message'];var _0x4a3f6a=_0x66efb['available']!==_0x8d6b3a[_0x94bc('0x22')]||_0x66efb[_0x94bc('0x23')]!==_0x8d6b3a[_0x94bc('0x23')]||_0x66efb['loggedInDb']!==_0x8d6b3a[_0x94bc('0x24')]||_0x66efb[_0x94bc('0x25')]!==_0x8d6b3a[_0x94bc('0x25')]||_0x66efb[_0x94bc('0x26')]!==_0x8d6b3a[_0x94bc('0x26')]||_0x66efb['pTalking']!==_0x8d6b3a[_0x94bc('0x27')]||_0x66efb[_0x94bc('0x28')]!==_0x8d6b3a['waiting']||_0x66efb[_0x94bc('0x29')]!==_0x8d6b3a[_0x94bc('0x29')]||_0x66efb[_0x94bc('0x2a')]!==_0x8d6b3a[_0x94bc('0x2a')];if(_0x66efb[_0x94bc('0x2b')]&&_0x8d6b3a['Trunk']){_0x1ee9ec=_0x66efb['Trunk'][_0x94bc('0x2c')]!==_0x8d6b3a[_0x94bc('0x2b')][_0x94bc('0x2c')]||_0x66efb['Trunk']['active']!==_0x8d6b3a[_0x94bc('0x2b')][_0x94bc('0x1c')];}return _0x42195e||_0x4a3f6a||_0x1ee9ec;}exports['hasQueueCampaignDataChanged']=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x11a94d){var _0x453056=null;var _0x5f94a4=_0x11a94d[_0x94bc('0x2d')];if(_[_0x94bc('0x2e')](_0x11a94d['dialGlobalInterval'])||_[_0x94bc('0x2e')](_0x11a94d[_0x94bc('0x2f')])||_[_0x94bc('0x2e')](_0x11a94d[_0x94bc('0x2f')][_0x94bc('0x30')])){_0x453056=CAMPAIGN_STATUS['NULL_INTERVAL'];}else if(_[_0x94bc('0x31')](_0x11a94d[_0x94bc('0x32')])||_['isEmpty'](_0x11a94d['Interval']['Intervals'])){_0x453056=CAMPAIGN_STATUS[_0x94bc('0x33')];}else if(_0x5f94a4&&!timezones[_0x5f94a4]){_0x453056=CAMPAIGN_STATUS['UNKNOWN_TIMEZONE'];}return _0x453056;}function checkAnyValidTrunk(_0x258e67,_0xb98ab9){var _0x39a0b1=null;var _0x33ea4e=_0x94bc('0x34');var _0x607bde=[_0x94bc('0x35'),_0x94bc('0x36')];var _0x2008a7=!![];if(_0x258e67[_0x94bc('0x2b')]&&_0x258e67[_0x94bc('0x2b')]['active']){_0x33ea4e+=_0x258e67[_0x94bc('0x2b')]['name'];_0x39a0b1=_0xb98ab9[_0x33ea4e];_0x2008a7=_0x607bde[_0x94bc('0x37')](_0x39a0b1[_0x94bc('0x38')]);}else if(_0x258e67[_0x94bc('0x39')]&&_0x258e67[_0x94bc('0x39')][_0x94bc('0x1c')]){_0x33ea4e+=_0x258e67[_0x94bc('0x39')]['name'];_0x39a0b1=_0xb98ab9[_0x33ea4e];_0x2008a7=_0x607bde[_0x94bc('0x37')](_0x39a0b1[_0x94bc('0x38')]);}return _0x2008a7;}function getQueueCampaignStatusMessage(_0x2948c0,_0x50d6fc){var _0x22cda9=CAMPAIGN_STATUS[_0x94bc('0x6')];var _0x14381a=isPreviewCampaign(_0x2948c0);if(!isQueueCampaignActive(_0x2948c0)){if(_0x14381a){_0x22cda9=CAMPAIGN_STATUS[_0x94bc('0x3a')];}else{if(_0x2948c0[_0x94bc('0x2a')]===0x0&&_0x2948c0[_0x94bc('0x26')]===0x0&&_0x2948c0[_0x94bc('0x28')]===0x0&&(_0x2948c0[_0x94bc('0x27')]||0x0)===0x0){_0x22cda9=CAMPAIGN_STATUS[_0x94bc('0x3a')];}else{_0x22cda9=CAMPAIGN_STATUS[_0x94bc('0x3b')];}}}else if(_0x2948c0[_0x94bc('0x23')]===0x0){_0x22cda9=CAMPAIGN_STATUS['NO_AGENTS_LOGGED'];}else if(!checkAnyValidTrunk(_0x2948c0,_0x50d6fc)){_0x22cda9=CAMPAIGN_STATUS[_0x94bc('0x3c')];}else if(!isPreviewCampaign(_0x2948c0)){var _0x1db631=checkAnyValidQueueCampaignInterval(_0x2948c0);if(_0x1db631){_0x22cda9=_0x1db631;}}return _0x22cda9;}exports['getQueueCampaignStatusMessage']=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x3e588b){var _0x33fc2e=CAMPAIGN_STATUS['DISACTIVED'];if(_0x3e588b['originated']===0x0&&_0x3e588b['talking']===0x0&&_0x3e588b[_0x94bc('0x28')]===0x0&&(_0x3e588b[_0x94bc('0x27')]||0x0)===0x0){_0x33fc2e=CAMPAIGN_STATUS['INACTIVE'];}return _0x33fc2e;}exports[_0x94bc('0x3d')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x978d98){var _0x1cff8b=_0x978d98[_0x94bc('0x3e')](/"(.*?)"/);return _0x1cff8b?_0x1cff8b[0x1]:_0x978d98;}exports[_0x94bc('0x3f')]=extractCalleridName;function getCallerId(_0x4b4aac,_0x7982f2,_0xdfd4c){if(!_['isUndefined'](_0xdfd4c)&&typeof _0xdfd4c==='string'&&!_[_0x94bc('0x31')](_0xdfd4c)){if(!_[_0x94bc('0x40')](_0x7982f2)&&typeof _0x7982f2===_0x94bc('0x41')&&!_[_0x94bc('0x31')](_0x7982f2)){return util[_0x94bc('0x42')]('\x22%s\x22\x20<%s>',_0x7982f2,_0xdfd4c);}return util[_0x94bc('0x42')](_0x94bc('0x43'),_0xdfd4c,_0xdfd4c);}if(!_['isUndefined'](_0x4b4aac)&&typeof _0x4b4aac===_0x94bc('0x41')&&!_[_0x94bc('0x31')](_0x4b4aac)){return _0x4b4aac;}return _0x94bc('0x44');}exports['getCallerId']=getCallerId;function getCallerIdRandom(_0x3facb5,_0x868712){var _0x145494;var _0x3d08d2;var _0x9c353b;if(_0x868712<=0x0){_0x868712=0x1;}_0x145494=new RegExp('\x5cw{0,'+_0x868712+'}$');_0x3d08d2=Math[_0x94bc('0x45')](0xa,_0x868712-0x1);_0x9c353b=Math['pow'](0xa,_0x868712)-0x1;return util[_0x94bc('0x42')]('%s',_[_0x94bc('0x46')](_0x3facb5,_0x145494,_['random'](_0x3d08d2,_0x9c353b)[_0x94bc('0x47')]()));}exports[_0x94bc('0x48')]=getCallerIdRandom;function decrementOriginate(_0x333777,_0x1237d7){if(_0x333777[_0x94bc('0x2a')]&&_0x333777[_0x94bc('0x2a')]>0x0){_0x333777[_0x94bc('0x2a')]-=0x1;}else{logger[_0x94bc('0x49')](_0x94bc('0x4a'),_0x1237d7);}}exports[_0x94bc('0x4b')]=decrementOriginate;function checkContactEmpty(_0x2aa2a1){return _0x2aa2a1&&_0x2aa2a1['length']>0x0;}exports[_0x94bc('0x4c')]=checkContactEmpty;function erlangb(_0xfe2d72,_0x2f8422){if(_0x2f8422===0x0){return 0x0;}var _0x5c21a4=0x1;for(var _0x4baaaa=0x1;_0x4baaaa<=_0x2f8422;_0x4baaaa+=0x1){_0x5c21a4=0x1+_0x5c21a4*_0x4baaaa/_0xfe2d72;}return 0x1/_0x5c21a4;}exports[_0x94bc('0x4d')]=erlangb;function checkContactLowerLimitOriginate(_0x5cde7b,_0x356a7b,_0x2c40fd){if(_0x356a7b>_0x2c40fd){for(var _0x4741f6=0x0;_0x4741f6<_0x356a7b-_0x2c40fd;_0x4741f6+=0x1){decrementOriginate(_0x5cde7b,_0x94bc('0x4e'));}}}exports[_0x94bc('0x4f')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x2b895c){var _0x4229e4={};var _0x132346=['id',_0x94bc('0x50'),_0x94bc('0x51'),'updatedAt'];const _0x46a829=0xfa;if(_0x2b895c){for(var _0x2d49d8 in _0x2b895c){if(typeof _0x2b895c[_0x2d49d8]!=='undefined'){if(!_['isNil'](_0x2b895c[_0x2d49d8])&&!_0x132346[_0x94bc('0x37')](_0x2d49d8)){if(_0x2d49d8==='description'&&_0x2b895c[_0x2d49d8][_0x94bc('0x52')]>_0x46a829){_0x4229e4[_0x94bc('0x53')+_0x2d49d8[_0x94bc('0x54')]()]=_0x2b895c[_0x2d49d8][_0x94bc('0x47')]()[_0x94bc('0x55')](0x0,_0x46a829);}else{_0x4229e4['XMD-'+_0x2d49d8['toUpperCase']()]=_0x2b895c[_0x2d49d8];}}}}}return _0x4229e4;}exports[_0x94bc('0x56')]=setXMDContactVariables;