Built motion from commit bab6f49e.|2.6.17
[motion2.git] / server / services / ami / trigger / 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 _0x72b1=['800','windowHeight','600','data6','winApplication','winArguments','format','user:%s','trigger:%s:%s','jscripty','name','trigger:%s','exec','integration','accounts','voiceQueues','queue','routeId','script','parse','query','replace','channel','AllConditions','every','checkConditions','some','AnyConditions','account','chat','operator','value','ChatWebsiteId','upperFirst','AccountId','interaction','message','event','membername','lastevent','mailSubstatus','null','undefined','offlineMessage','created','equals','exports','util','url','mustache','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','localhost','winapp','triggers','agents','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','custom:dialconnect','custom:dialend','syncAgentDial','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','stringify','clone','motionChannel','voice','debug','inspect','checkTriggers','interface','hasOwnProperty','status','checkTrigger','variables','length','Actions','action','toLowerCase','contactmanager','browser','data1','TemplateId','data2','html','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','uriLocation','windowWidth','data5'];(function(_0x362260,_0x36751d){var _0x5d320a=function(_0x2a35e3){while(--_0x2a35e3){_0x362260['push'](_0x362260['shift']());}};_0x5d320a(++_0x36751d);}(_0x72b1,0xb6));var _0x172b=function(_0x2da3db,_0x507841){_0x2da3db=_0x2da3db-0x0;var _0x2f3455=_0x72b1[_0x2da3db];return _0x2f3455;};'use strict';var util=require(_0x172b('0x0'));var _=require('lodash');var url=require(_0x172b('0x1'));var Mustache=require(_0x172b('0x2'));var Redis=require('ioredis');var urlforward=require(_0x172b('0x3'));var integration=require(_0x172b('0x4'));var cmContact=require(_0x172b('0x5'));var script=require(_0x172b('0x6'));var config=require(_0x172b('0x7'));var logger=require(_0x172b('0x8'))(_0x172b('0x9'));var ami=require(_0x172b('0xa'));config['redis']=_['defaults'](config[_0x172b('0xb')],{'host':_0x172b('0xc'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x172b('0xb')]));var operators={'equals':function(_0x20d365,_0x20c409){return _0x20d365==_0x20c409;},'not_equals':function(_0x331387,_0x35ff5a){return _0x331387!=_0x35ff5a;}};var barAndWebActions=['popup',_0x172b('0x1'),_0x172b('0xd')];function Trigger(_0x5d3dc2){this[_0x172b('0xe')]=_0x5d3dc2['triggers'];this['agents']=_0x5d3dc2[_0x172b('0xf')];this['voiceQueues']=_0x5d3dc2['voiceQueues'];this[_0x172b('0x10')]=_0x5d3dc2[_0x172b('0x10')];this['voiceExtensions']=_0x5d3dc2[_0x172b('0x11')];this[_0x172b('0x12')]=_0x5d3dc2[_0x172b('0x12')];this[_0x172b('0x13')]=_0x5d3dc2[_0x172b('0x13')];this[_0x172b('0x14')]=_0x5d3dc2[_0x172b('0x14')];this[_0x172b('0x15')]=_0x5d3dc2[_0x172b('0x15')];this[_0x172b('0x16')]=_0x5d3dc2['zohoAccounts'];this[_0x172b('0x17')]=_0x5d3dc2[_0x172b('0x17')];this[_0x172b('0x18')]=_0x5d3dc2[_0x172b('0x18')];this['servicenowAccounts']=_0x5d3dc2[_0x172b('0x19')];this[_0x172b('0x1a')]=_0x5d3dc2[_0x172b('0x1a')];this[_0x172b('0x1b')]=_0x5d3dc2[_0x172b('0x1b')];this['accounts']={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x172b('0x14')],'freshdesk':this[_0x172b('0x13')],'sugarcrm':this[_0x172b('0x15')],'zoho':this[_0x172b('0x16')],'desk':this[_0x172b('0x17')],'vtiger':this['vtigerAccounts'],'dynamics365':this['dynamics365Accounts'],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x172b('0x19')]};ami['on'](_0x172b('0x1c'),this[_0x172b('0x1d')][_0x172b('0x1e')](this));ami['on']('custom:agentconnect',this[_0x172b('0x1d')][_0x172b('0x1e')](this));ami['on'](_0x172b('0x1f'),this['syncCustomEvent'][_0x172b('0x1e')](this));ami['on'](_0x172b('0x20'),this[_0x172b('0x1d')][_0x172b('0x1e')](this));ami['on'](_0x172b('0x21'),this[_0x172b('0x1d')][_0x172b('0x1e')](this));ami['on']('custom:agentnoanswer',this[_0x172b('0x1d')]['bind'](this));ami['on'](_0x172b('0x22'),this[_0x172b('0x1d')][_0x172b('0x1e')](this));ami['on'](_0x172b('0x23'),this[_0x172b('0x1d')]['bind'](this));ami['on'](_0x172b('0x24'),this[_0x172b('0x1d')][_0x172b('0x1e')](this));ami['on'](_0x172b('0x25'),this['syncCustomEvent'][_0x172b('0x1e')](this));ami['on'](_0x172b('0x26'),this['syncCustomEvent'][_0x172b('0x1e')](this));ami['on'](_0x172b('0x27'),this[_0x172b('0x1d')][_0x172b('0x1e')](this));ami['on'](_0x172b('0x28'),this['syncAgentDial'][_0x172b('0x1e')](this));ami['on'](_0x172b('0x29'),this['syncAgentDial'][_0x172b('0x1e')](this));ami['on'](_0x172b('0x2a'),this[_0x172b('0x2b')]['bind'](this));ami['on'](_0x172b('0x2c'),this[_0x172b('0x1d')][_0x172b('0x1e')](this));ami['on'](_0x172b('0x2d'),this[_0x172b('0x1d')][_0x172b('0x1e')](this));ami['on'](_0x172b('0x2e'),this['syncCustomEvent']['bind'](this));ami['on'](_0x172b('0x2f'),this[_0x172b('0x1d')][_0x172b('0x1e')](this));ami['on'](_0x172b('0x30'),this[_0x172b('0x1d')][_0x172b('0x1e')](this));ami['on'](_0x172b('0x31'),this[_0x172b('0x1d')]['bind'](this));ami['on'](_0x172b('0x32'),this[_0x172b('0x1d')][_0x172b('0x1e')](this));ami['on'](_0x172b('0x33'),this[_0x172b('0x1d')][_0x172b('0x1e')](this));}Trigger[_0x172b('0x34')][_0x172b('0x35')]=function(_0x506209,_0x253f28,_0x18542d){logger[_0x172b('0x36')](_0x506209,_0x253f28,JSON[_0x172b('0x37')](_0x18542d));io['to'](_0x506209)[_0x172b('0x35')](_0x253f28,_0x18542d);};Trigger[_0x172b('0x34')][_0x172b('0x1d')]=function(_0x282c8e){var _0x1ef8f7=_[_0x172b('0x38')](_0x282c8e);if(typeof _0x1ef8f7[_0x172b('0x39')]==='undefined'){_0x1ef8f7[_0x172b('0x39')]=_0x172b('0x3a');}logger[_0x172b('0x3b')](_0x172b('0x1d'),util[_0x172b('0x3c')](_0x1ef8f7,{'showHidden':!![],'depth':null}));this[_0x172b('0x3d')](_0x1ef8f7);};Trigger[_0x172b('0x34')][_0x172b('0x2b')]=function(_0x4573a0){if(this['agents'][_0x4573a0[_0x172b('0x3e')]]){this[_0x172b('0x1d')](_0x4573a0);}};Trigger[_0x172b('0x34')][_0x172b('0x3d')]=function(_0x181af0){var _0x234cd4;for(var _0x3a06fd in this[_0x172b('0xe')]){if(this['triggers'][_0x172b('0x3f')](_0x3a06fd)){if(this[_0x172b('0xe')][_0x3a06fd][_0x172b('0x40')]){_0x234cd4=this[_0x172b('0x41')](this[_0x172b('0xe')][_0x3a06fd],_0x181af0);if(_0x234cd4){_['merge'](_0x181af0,_0x181af0[_0x172b('0x42')]);for(var _0x45cf5e=0x0,_0x158bf1,_0x20bba5,_0x2c60e6;_0x45cf5e<this[_0x172b('0xe')][_0x3a06fd]['Actions'][_0x172b('0x43')];_0x45cf5e+=0x1){_0x158bf1=this[_0x172b('0xe')][_0x3a06fd][_0x172b('0x44')][_0x45cf5e];if(this['agents'][_0x181af0[_0x172b('0x3e')]]){switch(_0x158bf1[_0x172b('0x45')][_0x172b('0x46')]()){case _0x172b('0x47'):break;case'motionbar':case _0x172b('0x48'):var _0x28e785={};switch(barAndWebActions[_0x158bf1[_0x172b('0x49')]]){case'popup':_0x28e785[_0x172b('0x4a')]=_0x158bf1[_0x172b('0x4b')];_0x28e785[_0x172b('0x4c')]=this[_0x172b('0x10')][_0x158bf1[_0x172b('0x4b')]]?Mustache[_0x172b('0x4d')](this[_0x172b('0x10')][_0x158bf1[_0x172b('0x4b')]]['html'],_0x181af0):_0x172b('0x4e');break;case _0x172b('0x1'):_0x28e785[_0x172b('0x4f')]=this[_0x172b('0x50')](_0x158bf1[_0x172b('0x4b')],_0x181af0,_[_0x172b('0x51')](_0x158bf1[_0x172b('0x52')])?!![]:parseInt(_0x158bf1[_0x172b('0x52')],0xa));if(_[_0x172b('0x51')](_0x158bf1[_0x172b('0x53')])){_0x28e785[_0x172b('0x54')]='0';}else{_0x28e785[_0x172b('0x55')]=_0x158bf1['data4'];_0x28e785[_0x172b('0x56')]=_[_0x172b('0x51')](_0x158bf1[_0x172b('0x57')])?_0x172b('0x58'):_0x158bf1[_0x172b('0x57')];_0x28e785[_0x172b('0x59')]=_[_0x172b('0x51')](_0x158bf1['data6'])?_0x172b('0x5a'):_0x158bf1[_0x172b('0x5b')];}break;case _0x172b('0xd'):_0x28e785[_0x172b('0x5c')]=_0x158bf1['data2']?Mustache[_0x172b('0x4d')](_0x158bf1[_0x172b('0x4b')],_0x181af0):'';_0x28e785[_0x172b('0x5d')]=_0x158bf1[_0x172b('0x52')]?Mustache[_0x172b('0x4d')](_0x158bf1[_0x172b('0x52')],_0x181af0):'';break;}this['emit'](util[_0x172b('0x5e')](_0x172b('0x5f'),this[_0x172b('0xf')][_0x181af0[_0x172b('0x3e')]]['name']),util[_0x172b('0x5e')](_0x172b('0x60'),_0x158bf1['action'][_0x172b('0x46')](),barAndWebActions[_0x158bf1['data1']]),_['merge'](_0x28e785,_0x181af0));break;case _0x172b('0x61'):this['emit'](util[_0x172b('0x5e')](_0x172b('0x5f'),this[_0x172b('0xf')][_0x181af0[_0x172b('0x3e')]][_0x172b('0x62')]),util['format'](_0x172b('0x63'),_0x158bf1[_0x172b('0x45')]['toLowerCase']()),_['merge']({'ProjectId':parseInt(_0x158bf1[_0x172b('0x49')],0xa)},_0x181af0));break;default:this['emit'](util['format'](_0x172b('0x5f'),this[_0x172b('0xf')][_0x181af0[_0x172b('0x3e')]][_0x172b('0x62')]),util[_0x172b('0x5e')](_0x172b('0x63'),_0x158bf1[_0x172b('0x45')][_0x172b('0x46')]()),_['merge']({},_0x158bf1,_0x181af0));}}switch(_0x158bf1[_0x172b('0x45')][_0x172b('0x46')]()){case _0x172b('0x47'):cmContact[_0x172b('0x64')](this[_0x172b('0xf')][_0x181af0['interface']],this[_0x172b('0xe')][_0x3a06fd],_0x158bf1,_0x181af0);break;case _0x172b('0x65'):integration[_0x172b('0x64')](_0x158bf1,_0x181af0,this[_0x172b('0x66')],this[_0x172b('0xf')][_0x181af0[_0x172b('0x3e')]],this[_0x172b('0x67')][_0x181af0[_0x172b('0x68')]],this[_0x172b('0x11')][_0x181af0[_0x172b('0x69')]]);break;case'urlforward':urlforward[_0x172b('0x64')](_0x158bf1,_0x181af0);break;case _0x172b('0x6a'):script[_0x172b('0x64')](_0x158bf1,_0x181af0);break;}}}}}}};Trigger[_0x172b('0x34')][_0x172b('0x50')]=function(_0x2b5dd3,_0xd526ea,_0x540fc6){var _0x32cb9c=url[_0x172b('0x6b')](Mustache[_0x172b('0x4d')](_0x2b5dd3,_0xd526ea),!![]);if(_0x540fc6){_['merge'](_0x32cb9c[_0x172b('0x6c')],_0xd526ea);}delete _0x32cb9c['search'];var _0x16e326=url[_0x172b('0x5e')](_0x32cb9c);_0x16e326=_0x16e326[_0x172b('0x6d')](/\/\?/g,'?');return _0x16e326;};Trigger[_0x172b('0x34')]['checkTrigger']=function(_0x5a1b63,_0x29d8a5){var _0x2552d7=!![];var _0x53b234=!![];var _0x3765f9=![];if(_0x5a1b63[_0x172b('0x6e')]===_0x29d8a5[_0x172b('0x39')]){_0x3765f9=!![];}if(_0x5a1b63[_0x172b('0x6f')][_0x172b('0x43')]){_0x2552d7=_[_0x172b('0x70')](_0x5a1b63[_0x172b('0x6f')],this[_0x172b('0x71')](_0x29d8a5,_0x5a1b63['channel']));}if(_0x5a1b63['AnyConditions'][_0x172b('0x43')]){_0x53b234=_[_0x172b('0x72')](_0x5a1b63[_0x172b('0x73')],this[_0x172b('0x71')](_0x29d8a5,_0x5a1b63['channel']));}var _0x53d5da=_0x3765f9&&_0x2552d7&&_0x53b234;logger[_0x172b('0x3b')]('checkTrigger:\x20trigger',util[_0x172b('0x3c')](_0x5a1b63,{'showHidden':!![],'depth':null}),'evt',util[_0x172b('0x3c')](_0x29d8a5,{'showHidden':!![],'depth':null}),_0x3765f9,_0x2552d7,_0x53b234);return _0x53d5da;};Trigger['prototype'][_0x172b('0x71')]=function(_0x50b302,_0x4262ee){return function(_0xab6dfa){switch(_0xab6dfa['field']){case _0x172b('0x74'):if(_0x50b302['channel']===_0x4262ee){if(_0x4262ee===_0x172b('0x75')){return _0x50b302['ChatWebsiteId']?operators[_0xab6dfa[_0x172b('0x76')]](Number(_0xab6dfa[_0x172b('0x77')]),_0x50b302[_0x172b('0x78')]):![];}else{return _0x50b302[_[_0x172b('0x79')](_0x4262ee)+_0x172b('0x7a')]?operators[_0xab6dfa[_0x172b('0x76')]](Number(_0xab6dfa[_0x172b('0x77')]),_0x50b302[_[_0x172b('0x79')](_0x4262ee)+_0x172b('0x7a')]):![];}}break;case _0x172b('0x7b'):case _0x172b('0x7c'):if(_0x50b302[_0x172b('0x6e')]===_0x4262ee){return _0x50b302['event']?operators[_0xab6dfa[_0x172b('0x76')]](_0xab6dfa[_0x172b('0x77')],_0x50b302[_0x172b('0x7d')]):![];}break;case _0x172b('0x68'):return _0x50b302[_0x172b('0x68')]?operators[_0xab6dfa[_0x172b('0x76')]](_0xab6dfa[_0x172b('0x77')],_0x50b302[_0x172b('0x68')]):![];case'agent':return _0x50b302[_0x172b('0x7e')]?operators[_0xab6dfa[_0x172b('0x76')]](_0xab6dfa[_0x172b('0x77')],_0x50b302['membername']):![];case _0x172b('0x7f'):return _0x50b302['lastevent']?operators[_0xab6dfa[_0x172b('0x76')]](_0xab6dfa[_0x172b('0x77')],_0x50b302[_0x172b('0x7f')]):![];case'routeId':return _0x50b302[_0x172b('0x69')]?operators[_0xab6dfa['operator']](_0xab6dfa[_0x172b('0x77')],_0x50b302[_0x172b('0x69')]):![];case _0x172b('0x80'):if(_0xab6dfa['value']===_0x172b('0x81'))_0xab6dfa[_0x172b('0x77')]=null;return typeof _0x50b302['substatus']!==_0x172b('0x82')?operators[_0xab6dfa[_0x172b('0x76')]](_0xab6dfa['value'],_0x50b302['substatus']):![];case _0x172b('0x83'):if(_0x50b302[_0x172b('0x6e')]===_0x4262ee){return _0xab6dfa[_0x172b('0x77')]===_0x172b('0x84')&&_0xab6dfa[_0x172b('0x76')]===_0x172b('0x85')?!![]:![];}break;}return![];};};module[_0x172b('0x86')]=Trigger;