Built motion from commit c738b9ac.|2.6.25
[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 _0x3725=['merge','toLowerCase','contactmanager','motionbar','data1','popup','TemplateId','data2','render','html','template\x20not\x20found','uri','data3','isNil','data4','location','uriLocation','windowWidth','data5','800','windowHeight','600','winArguments','user:%s','format','action','name','trigger:%s','queue','routeId','urlforward','exec','script','buildUri','parse','search','checkTrigger','channel','motionChannel','length','every','checkConditions','AnyConditions','some','checkTrigger:\x20trigger','inspect','field','account','chat','operator','ChatWebsiteId','upperFirst','AccountId','interaction','message','event','value','agent','membername','lastevent','mailSubstatus','null','substatus','offlineMessage','equals','exports','util','lodash','url','mustache','ioredis','./urlforward','./integration','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','localhost','socket.io-emitter','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','clone','voice','debug','checkTriggers','interface','status'];(function(_0x5c1358,_0x22a0cf){var _0xc99eac=function(_0x3b622c){while(--_0x3b622c){_0x5c1358['push'](_0x5c1358['shift']());}};_0xc99eac(++_0x22a0cf);}(_0x3725,0xc1));var _0x5372=function(_0x1c892f,_0xfbc8b6){_0x1c892f=_0x1c892f-0x0;var _0x449509=_0x3725[_0x1c892f];return _0x449509;};'use strict';var util=require(_0x5372('0x0'));var _=require(_0x5372('0x1'));var url=require(_0x5372('0x2'));var Mustache=require(_0x5372('0x3'));var Redis=require(_0x5372('0x4'));var urlforward=require(_0x5372('0x5'));var integration=require(_0x5372('0x6'));var cmContact=require('./cmContact');var script=require('./script');var config=require(_0x5372('0x7'));var logger=require(_0x5372('0x8'))(_0x5372('0x9'));var ami=require(_0x5372('0xa'));config[_0x5372('0xb')]=_[_0x5372('0xc')](config[_0x5372('0xb')],{'host':_0x5372('0xd'),'port':0x18eb});var io=require(_0x5372('0xe'))(new Redis(config[_0x5372('0xb')]));var operators={'equals':function(_0x42e74b,_0x583c88){return _0x42e74b==_0x583c88;},'not_equals':function(_0x44ab92,_0x3217bc){return _0x44ab92!=_0x3217bc;}};var barAndWebActions=['popup',_0x5372('0x2'),_0x5372('0xf')];function Trigger(_0x39da30){this['triggers']=_0x39da30[_0x5372('0x10')];this[_0x5372('0x11')]=_0x39da30[_0x5372('0x11')];this[_0x5372('0x12')]=_0x39da30[_0x5372('0x12')];this[_0x5372('0x13')]=_0x39da30[_0x5372('0x13')];this[_0x5372('0x14')]=_0x39da30[_0x5372('0x14')];this[_0x5372('0x15')]=_0x39da30[_0x5372('0x15')];this[_0x5372('0x16')]=_0x39da30[_0x5372('0x16')];this[_0x5372('0x17')]=_0x39da30[_0x5372('0x17')];this['sugarcrmAccounts']=_0x39da30['sugarcrmAccounts'];this['zohoAccounts']=_0x39da30['zohoAccounts'];this[_0x5372('0x18')]=_0x39da30[_0x5372('0x18')];this[_0x5372('0x19')]=_0x39da30['vtigerAccounts'];this[_0x5372('0x1a')]=_0x39da30[_0x5372('0x1a')];this[_0x5372('0x1b')]=_0x39da30[_0x5372('0x1b')];this['freshsalesAccounts']=_0x39da30['freshsalesAccounts'];this['accounts']={'zendesk':this[_0x5372('0x15')],'salesforce':this[_0x5372('0x17')],'freshdesk':this[_0x5372('0x16')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this['zohoAccounts'],'desk':this[_0x5372('0x18')],'vtiger':this[_0x5372('0x19')],'dynamics365':this[_0x5372('0x1b')],'freshsales':this[_0x5372('0x1c')],'servicenow':this[_0x5372('0x1a')]};ami['on'](_0x5372('0x1d'),this[_0x5372('0x1e')]['bind'](this));ami['on'](_0x5372('0x1f'),this[_0x5372('0x1e')][_0x5372('0x20')](this));ami['on'](_0x5372('0x21'),this[_0x5372('0x1e')][_0x5372('0x20')](this));ami['on'](_0x5372('0x22'),this[_0x5372('0x1e')][_0x5372('0x20')](this));ami['on'](_0x5372('0x23'),this['syncCustomEvent'][_0x5372('0x20')](this));ami['on'](_0x5372('0x24'),this[_0x5372('0x1e')][_0x5372('0x20')](this));ami['on'](_0x5372('0x25'),this[_0x5372('0x1e')]['bind'](this));ami['on'](_0x5372('0x26'),this[_0x5372('0x1e')]['bind'](this));ami['on'](_0x5372('0x27'),this['syncCustomEvent'][_0x5372('0x20')](this));ami['on'](_0x5372('0x28'),this['syncCustomEvent'][_0x5372('0x20')](this));ami['on'](_0x5372('0x29'),this[_0x5372('0x1e')][_0x5372('0x20')](this));ami['on'](_0x5372('0x2a'),this['syncCustomEvent'][_0x5372('0x20')](this));ami['on'](_0x5372('0x2b'),this[_0x5372('0x2c')][_0x5372('0x20')](this));ami['on'](_0x5372('0x2d'),this[_0x5372('0x2c')][_0x5372('0x20')](this));ami['on']('custom:dialend',this['syncAgentDial'][_0x5372('0x20')](this));ami['on']('custom:newinteraction',this[_0x5372('0x1e')][_0x5372('0x20')](this));ami['on'](_0x5372('0x2e'),this['syncCustomEvent']['bind'](this));ami['on'](_0x5372('0x2f'),this[_0x5372('0x1e')][_0x5372('0x20')](this));ami['on'](_0x5372('0x30'),this[_0x5372('0x1e')][_0x5372('0x20')](this));ami['on']('custom:outgoingmessage',this[_0x5372('0x1e')]['bind'](this));ami['on'](_0x5372('0x31'),this[_0x5372('0x1e')]['bind'](this));ami['on'](_0x5372('0x32'),this[_0x5372('0x1e')][_0x5372('0x20')](this));ami['on'](_0x5372('0x33'),this[_0x5372('0x1e')][_0x5372('0x20')](this));}Trigger[_0x5372('0x34')][_0x5372('0x35')]=function(_0x3528ad,_0x5ceea3,_0x5a6801){logger[_0x5372('0x36')](_0x3528ad,_0x5ceea3,JSON['stringify'](_0x5a6801));io['to'](_0x3528ad)['emit'](_0x5ceea3,_0x5a6801);};Trigger[_0x5372('0x34')][_0x5372('0x1e')]=function(_0x1d862){var _0xcba48c=_[_0x5372('0x37')](_0x1d862);if(typeof _0xcba48c['motionChannel']==='undefined'){_0xcba48c['motionChannel']=_0x5372('0x38');}logger[_0x5372('0x39')](_0x5372('0x1e'),util['inspect'](_0xcba48c,{'showHidden':!![],'depth':null}));this[_0x5372('0x3a')](_0xcba48c);};Trigger[_0x5372('0x34')][_0x5372('0x2c')]=function(_0x555854){if(this['agents'][_0x555854[_0x5372('0x3b')]]){this[_0x5372('0x1e')](_0x555854);}};Trigger['prototype'][_0x5372('0x3a')]=function(_0x11bf65){var _0x1e2ca;for(var _0x28b401 in this['triggers']){if(this['triggers']['hasOwnProperty'](_0x28b401)){if(this[_0x5372('0x10')][_0x28b401][_0x5372('0x3c')]){_0x1e2ca=this['checkTrigger'](this[_0x5372('0x10')][_0x28b401],_0x11bf65);if(_0x1e2ca){_[_0x5372('0x3d')](_0x11bf65,_0x11bf65['variables']);for(var _0x1f2f51=0x0,_0x17b83f,_0x3b8d4e,_0x26ff74;_0x1f2f51<this[_0x5372('0x10')][_0x28b401]['Actions']['length'];_0x1f2f51+=0x1){_0x17b83f=this[_0x5372('0x10')][_0x28b401]['Actions'][_0x1f2f51];if(this['agents'][_0x11bf65[_0x5372('0x3b')]]){switch(_0x17b83f['action'][_0x5372('0x3e')]()){case _0x5372('0x3f'):break;case _0x5372('0x40'):case'browser':var _0x31ae40={};switch(barAndWebActions[_0x17b83f[_0x5372('0x41')]]){case _0x5372('0x42'):_0x31ae40[_0x5372('0x43')]=_0x17b83f[_0x5372('0x44')];_0x31ae40['html']=this[_0x5372('0x13')][_0x17b83f[_0x5372('0x44')]]?Mustache[_0x5372('0x45')](this[_0x5372('0x13')][_0x17b83f[_0x5372('0x44')]][_0x5372('0x46')],_0x11bf65):_0x5372('0x47');break;case _0x5372('0x2'):_0x31ae40[_0x5372('0x48')]=this['buildUri'](_0x17b83f[_0x5372('0x44')],_0x11bf65,_['isNil'](_0x17b83f[_0x5372('0x49')])?!![]:parseInt(_0x17b83f[_0x5372('0x49')],0xa));if(_[_0x5372('0x4a')](_0x17b83f[_0x5372('0x4b')])){_0x31ae40[_0x5372('0x4c')]='0';}else{_0x31ae40[_0x5372('0x4d')]=_0x17b83f['data4'];_0x31ae40[_0x5372('0x4e')]=_[_0x5372('0x4a')](_0x17b83f[_0x5372('0x4f')])?_0x5372('0x50'):_0x17b83f['data5'];_0x31ae40[_0x5372('0x51')]=_[_0x5372('0x4a')](_0x17b83f['data6'])?_0x5372('0x52'):_0x17b83f['data6'];}break;case'winapp':_0x31ae40['winApplication']=_0x17b83f[_0x5372('0x44')]?Mustache[_0x5372('0x45')](_0x17b83f['data2'],_0x11bf65):'';_0x31ae40[_0x5372('0x53')]=_0x17b83f['data3']?Mustache[_0x5372('0x45')](_0x17b83f[_0x5372('0x49')],_0x11bf65):'';break;}this['emit'](util['format'](_0x5372('0x54'),this[_0x5372('0x11')][_0x11bf65[_0x5372('0x3b')]]['name']),util[_0x5372('0x55')]('trigger:%s:%s',_0x17b83f[_0x5372('0x56')][_0x5372('0x3e')](),barAndWebActions[_0x17b83f[_0x5372('0x41')]]),_['merge'](_0x31ae40,_0x11bf65));break;case'jscripty':this[_0x5372('0x35')](util['format'](_0x5372('0x54'),this[_0x5372('0x11')][_0x11bf65['interface']][_0x5372('0x57')]),util[_0x5372('0x55')](_0x5372('0x58'),_0x17b83f[_0x5372('0x56')][_0x5372('0x3e')]()),_[_0x5372('0x3d')]({'ProjectId':parseInt(_0x17b83f[_0x5372('0x41')],0xa)},_0x11bf65));break;default:this[_0x5372('0x35')](util[_0x5372('0x55')]('user:%s',this[_0x5372('0x11')][_0x11bf65['interface']][_0x5372('0x57')]),util[_0x5372('0x55')](_0x5372('0x58'),_0x17b83f['action']['toLowerCase']()),_[_0x5372('0x3d')]({},_0x17b83f,_0x11bf65));}}switch(_0x17b83f[_0x5372('0x56')]['toLowerCase']()){case _0x5372('0x3f'):cmContact['exec'](this['agents'][_0x11bf65['interface']],this[_0x5372('0x10')][_0x28b401],_0x17b83f,_0x11bf65);break;case'integration':integration['exec'](_0x17b83f,_0x11bf65,this['accounts'],this[_0x5372('0x11')][_0x11bf65[_0x5372('0x3b')]],this['voiceQueues'][_0x11bf65[_0x5372('0x59')]],this['voiceExtensions'][_0x11bf65[_0x5372('0x5a')]]);break;case _0x5372('0x5b'):urlforward[_0x5372('0x5c')](_0x17b83f,_0x11bf65);break;case _0x5372('0x5d'):script[_0x5372('0x5c')](_0x17b83f,_0x11bf65);break;}}}}}}};Trigger[_0x5372('0x34')][_0x5372('0x5e')]=function(_0x565965,_0x397511,_0x3b3e0a){var _0x1a4fec=url[_0x5372('0x5f')](Mustache['render'](_0x565965,_0x397511),!![]);if(_0x3b3e0a){_['merge'](_0x1a4fec['query'],_0x397511);}delete _0x1a4fec[_0x5372('0x60')];var _0x5716af=url[_0x5372('0x55')](_0x1a4fec);_0x5716af=_0x5716af['replace'](/\/\?/g,'?');return _0x5716af;};Trigger[_0x5372('0x34')][_0x5372('0x61')]=function(_0x29c1be,_0x231ae1){var _0x65f27f=!![];var _0x1c9c8f=!![];var _0x238006=![];if(_0x29c1be[_0x5372('0x62')]===_0x231ae1[_0x5372('0x63')]){_0x238006=!![];}if(_0x29c1be['AllConditions'][_0x5372('0x64')]){_0x65f27f=_[_0x5372('0x65')](_0x29c1be['AllConditions'],this[_0x5372('0x66')](_0x231ae1,_0x29c1be[_0x5372('0x62')]));}if(_0x29c1be[_0x5372('0x67')][_0x5372('0x64')]){_0x1c9c8f=_[_0x5372('0x68')](_0x29c1be[_0x5372('0x67')],this[_0x5372('0x66')](_0x231ae1,_0x29c1be[_0x5372('0x62')]));}var _0x2f43ce=_0x238006&&_0x65f27f&&_0x1c9c8f;logger['debug'](_0x5372('0x69'),util['inspect'](_0x29c1be,{'showHidden':!![],'depth':null}),'evt',util[_0x5372('0x6a')](_0x231ae1,{'showHidden':!![],'depth':null}),_0x238006,_0x65f27f,_0x1c9c8f);return _0x2f43ce;};Trigger['prototype']['checkConditions']=function(_0x17c703,_0x121c64){return function(_0x4bd1d9){switch(_0x4bd1d9[_0x5372('0x6b')]){case _0x5372('0x6c'):if(_0x17c703[_0x5372('0x62')]===_0x121c64){if(_0x121c64===_0x5372('0x6d')){return _0x17c703['ChatWebsiteId']?operators[_0x4bd1d9[_0x5372('0x6e')]](Number(_0x4bd1d9['value']),_0x17c703[_0x5372('0x6f')]):![];}else{return _0x17c703[_[_0x5372('0x70')](_0x121c64)+_0x5372('0x71')]?operators[_0x4bd1d9[_0x5372('0x6e')]](Number(_0x4bd1d9['value']),_0x17c703[_[_0x5372('0x70')](_0x121c64)+_0x5372('0x71')]):![];}}break;case _0x5372('0x72'):case _0x5372('0x73'):if(_0x17c703[_0x5372('0x62')]===_0x121c64){return _0x17c703[_0x5372('0x74')]?operators[_0x4bd1d9['operator']](_0x4bd1d9[_0x5372('0x75')],_0x17c703[_0x5372('0x74')]):![];}break;case'queue':return _0x17c703[_0x5372('0x59')]?operators[_0x4bd1d9[_0x5372('0x6e')]](_0x4bd1d9[_0x5372('0x75')],_0x17c703[_0x5372('0x59')]):![];case _0x5372('0x76'):return _0x17c703['membername']?operators[_0x4bd1d9[_0x5372('0x6e')]](_0x4bd1d9[_0x5372('0x75')],_0x17c703[_0x5372('0x77')]):![];case _0x5372('0x78'):return _0x17c703[_0x5372('0x78')]?operators[_0x4bd1d9['operator']](_0x4bd1d9[_0x5372('0x75')],_0x17c703[_0x5372('0x78')]):![];case _0x5372('0x5a'):return _0x17c703[_0x5372('0x5a')]?operators[_0x4bd1d9[_0x5372('0x6e')]](_0x4bd1d9[_0x5372('0x75')],_0x17c703[_0x5372('0x5a')]):![];case _0x5372('0x79'):if(_0x4bd1d9['value']===_0x5372('0x7a'))_0x4bd1d9[_0x5372('0x75')]=null;return typeof _0x17c703[_0x5372('0x7b')]!=='undefined'?operators[_0x4bd1d9[_0x5372('0x6e')]](_0x4bd1d9[_0x5372('0x75')],_0x17c703[_0x5372('0x7b')]):![];case _0x5372('0x7c'):if(_0x17c703[_0x5372('0x62')]===_0x121c64){return _0x4bd1d9[_0x5372('0x75')]==='created'&&_0x4bd1d9[_0x5372('0x6e')]===_0x5372('0x7d')?!![]:![];}break;}return![];};};module[_0x5372('0x7e')]=Trigger;