Built motion from commit 10af8726.|2.6.34
[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 _0xdbdf=['custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','motionChannel','undefined','voice','debug','inspect','checkTriggers','interface','hasOwnProperty','status','variables','Actions','length','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','render','template\x20not\x20found','url','uri','buildUri','isNil','data3','data4','location','windowWidth','data5','windowHeight','data6','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','merge','trigger:%s','exec','integration','queue','routeId','urlforward','script','parse','query','search','channel','AllConditions','every','AnyConditions','some','checkTrigger:\x20trigger','evt','checkConditions','field','account','chat','ChatWebsiteId','operator','value','AccountId','upperFirst','interaction','message','event','agent','membername','lastevent','null','substatus','offlineMessage','created','equals','exports','util','lodash','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','../ami','redis','defaults','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','freshsalesAccounts','accounts','dynamics365Accounts'];(function(_0x40bffc,_0x3a45d7){var _0x3007e9=function(_0x4c8fda){while(--_0x4c8fda){_0x40bffc['push'](_0x40bffc['shift']());}};_0x3007e9(++_0x3a45d7);}(_0xdbdf,0xf1));var _0xfdbd=function(_0x526fb1,_0x429960){_0x526fb1=_0x526fb1-0x0;var _0x167b6a=_0xdbdf[_0x526fb1];return _0x167b6a;};'use strict';var util=require(_0xfdbd('0x0'));var _=require(_0xfdbd('0x1'));var url=require('url');var Mustache=require(_0xfdbd('0x2'));var Redis=require(_0xfdbd('0x3'));var urlforward=require(_0xfdbd('0x4'));var integration=require(_0xfdbd('0x5'));var cmContact=require(_0xfdbd('0x6'));var script=require(_0xfdbd('0x7'));var config=require(_0xfdbd('0x8'));var logger=require(_0xfdbd('0x9'))('trigger');var ami=require(_0xfdbd('0xa'));config[_0xfdbd('0xb')]=_[_0xfdbd('0xc')](config['redis'],{'host':_0xfdbd('0xd'),'port':0x18eb});var io=require(_0xfdbd('0xe'))(new Redis(config[_0xfdbd('0xb')]));var operators={'equals':function(_0x31f3ec,_0x1cb75b){return _0x31f3ec==_0x1cb75b;},'not_equals':function(_0x275454,_0x8557a9){return _0x275454!=_0x8557a9;}};var barAndWebActions=[_0xfdbd('0xf'),'url',_0xfdbd('0x10')];function Trigger(_0x57e3c5){this[_0xfdbd('0x11')]=_0x57e3c5[_0xfdbd('0x11')];this['agents']=_0x57e3c5[_0xfdbd('0x12')];this[_0xfdbd('0x13')]=_0x57e3c5[_0xfdbd('0x13')];this[_0xfdbd('0x14')]=_0x57e3c5['templates'];this[_0xfdbd('0x15')]=_0x57e3c5[_0xfdbd('0x15')];this[_0xfdbd('0x16')]=_0x57e3c5[_0xfdbd('0x16')];this[_0xfdbd('0x17')]=_0x57e3c5[_0xfdbd('0x17')];this['salesforceAccounts']=_0x57e3c5[_0xfdbd('0x18')];this[_0xfdbd('0x19')]=_0x57e3c5[_0xfdbd('0x19')];this['zohoAccounts']=_0x57e3c5[_0xfdbd('0x1a')];this[_0xfdbd('0x1b')]=_0x57e3c5['deskAccounts'];this[_0xfdbd('0x1c')]=_0x57e3c5[_0xfdbd('0x1c')];this[_0xfdbd('0x1d')]=_0x57e3c5[_0xfdbd('0x1d')];this['dynamics365Accounts']=_0x57e3c5['dynamics365Accounts'];this[_0xfdbd('0x1e')]=_0x57e3c5[_0xfdbd('0x1e')];this[_0xfdbd('0x1f')]={'zendesk':this[_0xfdbd('0x16')],'salesforce':this['salesforceAccounts'],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0xfdbd('0x19')],'zoho':this['zohoAccounts'],'desk':this[_0xfdbd('0x1b')],'vtiger':this[_0xfdbd('0x1c')],'dynamics365':this[_0xfdbd('0x20')],'freshsales':this[_0xfdbd('0x1e')],'servicenow':this[_0xfdbd('0x1d')]};ami['on'](_0xfdbd('0x21'),this[_0xfdbd('0x22')][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x24'),this['syncCustomEvent']['bind'](this));ami['on'](_0xfdbd('0x25'),this[_0xfdbd('0x22')][_0xfdbd('0x23')](this));ami['on']('custom:agentcomplete',this[_0xfdbd('0x22')]['bind'](this));ami['on'](_0xfdbd('0x26'),this[_0xfdbd('0x22')][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x27'),this[_0xfdbd('0x22')][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x28'),this['syncCustomEvent'][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x29'),this['syncCustomEvent']['bind'](this));ami['on'](_0xfdbd('0x2a'),this[_0xfdbd('0x22')]['bind'](this));ami['on'](_0xfdbd('0x2b'),this[_0xfdbd('0x22')][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x2c'),this[_0xfdbd('0x22')][_0xfdbd('0x23')](this));ami['on']('custom:timeout',this[_0xfdbd('0x22')][_0xfdbd('0x23')](this));ami['on']('custom:dialbegin',this[_0xfdbd('0x2d')][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x2e'),this[_0xfdbd('0x2d')][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x2f'),this[_0xfdbd('0x2d')][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x30'),this['syncCustomEvent'][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x31'),this[_0xfdbd('0x22')][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x32'),this['syncCustomEvent'][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x33'),this[_0xfdbd('0x22')][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x34'),this[_0xfdbd('0x22')]['bind'](this));ami['on']('custom:acceptmessage',this[_0xfdbd('0x22')][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x35'),this[_0xfdbd('0x22')][_0xfdbd('0x23')](this));ami['on'](_0xfdbd('0x36'),this[_0xfdbd('0x22')]['bind'](this));}Trigger[_0xfdbd('0x37')][_0xfdbd('0x38')]=function(_0x4da7eb,_0x506a0d,_0x230a72){logger[_0xfdbd('0x39')](_0x4da7eb,_0x506a0d,JSON['stringify'](_0x230a72));io['to'](_0x4da7eb)[_0xfdbd('0x38')](_0x506a0d,_0x230a72);};Trigger[_0xfdbd('0x37')]['syncCustomEvent']=function(_0x1416d1){var _0x4fb6de=_['clone'](_0x1416d1);if(typeof _0x4fb6de[_0xfdbd('0x3a')]===_0xfdbd('0x3b')){_0x4fb6de[_0xfdbd('0x3a')]=_0xfdbd('0x3c');}logger[_0xfdbd('0x3d')]('syncCustomEvent',util[_0xfdbd('0x3e')](_0x4fb6de,{'showHidden':!![],'depth':null}));this[_0xfdbd('0x3f')](_0x4fb6de);};Trigger[_0xfdbd('0x37')]['syncAgentDial']=function(_0x16d0b4){if(this[_0xfdbd('0x12')][_0x16d0b4[_0xfdbd('0x40')]]){this[_0xfdbd('0x22')](_0x16d0b4);}};Trigger[_0xfdbd('0x37')]['checkTriggers']=function(_0x3f3b72){var _0x2e3f4d;for(var _0x3b8b58 in this['triggers']){if(this['triggers'][_0xfdbd('0x41')](_0x3b8b58)){if(this[_0xfdbd('0x11')][_0x3b8b58][_0xfdbd('0x42')]){_0x2e3f4d=this['checkTrigger'](this[_0xfdbd('0x11')][_0x3b8b58],_0x3f3b72);if(_0x2e3f4d){_['merge'](_0x3f3b72,_0x3f3b72[_0xfdbd('0x43')]);for(var _0x164eb2=0x0,_0x3ec447,_0x37b01b,_0x2126aa;_0x164eb2<this[_0xfdbd('0x11')][_0x3b8b58][_0xfdbd('0x44')][_0xfdbd('0x45')];_0x164eb2+=0x1){_0x3ec447=this[_0xfdbd('0x11')][_0x3b8b58][_0xfdbd('0x44')][_0x164eb2];if(this['agents'][_0x3f3b72['interface']]){switch(_0x3ec447[_0xfdbd('0x46')][_0xfdbd('0x47')]()){case _0xfdbd('0x48'):break;case _0xfdbd('0x49'):case _0xfdbd('0x4a'):var _0x55939b={};switch(barAndWebActions[_0x3ec447[_0xfdbd('0x4b')]]){case _0xfdbd('0xf'):_0x55939b[_0xfdbd('0x4c')]=_0x3ec447[_0xfdbd('0x4d')];_0x55939b[_0xfdbd('0x4e')]=this[_0xfdbd('0x14')][_0x3ec447['data2']]?Mustache[_0xfdbd('0x4f')](this[_0xfdbd('0x14')][_0x3ec447[_0xfdbd('0x4d')]][_0xfdbd('0x4e')],_0x3f3b72):_0xfdbd('0x50');break;case _0xfdbd('0x51'):_0x55939b[_0xfdbd('0x52')]=this[_0xfdbd('0x53')](_0x3ec447[_0xfdbd('0x4d')],_0x3f3b72,_[_0xfdbd('0x54')](_0x3ec447[_0xfdbd('0x55')])?!![]:parseInt(_0x3ec447[_0xfdbd('0x55')],0xa));if(_[_0xfdbd('0x54')](_0x3ec447[_0xfdbd('0x56')])){_0x55939b[_0xfdbd('0x57')]='0';}else{_0x55939b['uriLocation']=_0x3ec447['data4'];_0x55939b[_0xfdbd('0x58')]=_[_0xfdbd('0x54')](_0x3ec447[_0xfdbd('0x59')])?'800':_0x3ec447['data5'];_0x55939b[_0xfdbd('0x5a')]=_[_0xfdbd('0x54')](_0x3ec447['data6'])?'600':_0x3ec447[_0xfdbd('0x5b')];}break;case _0xfdbd('0x10'):_0x55939b[_0xfdbd('0x5c')]=_0x3ec447[_0xfdbd('0x4d')]?Mustache['render'](_0x3ec447[_0xfdbd('0x4d')],_0x3f3b72):'';_0x55939b[_0xfdbd('0x5d')]=_0x3ec447[_0xfdbd('0x55')]?Mustache[_0xfdbd('0x4f')](_0x3ec447[_0xfdbd('0x55')],_0x3f3b72):'';break;}this[_0xfdbd('0x38')](util[_0xfdbd('0x5e')](_0xfdbd('0x5f'),this[_0xfdbd('0x12')][_0x3f3b72[_0xfdbd('0x40')]][_0xfdbd('0x60')]),util[_0xfdbd('0x5e')](_0xfdbd('0x61'),_0x3ec447[_0xfdbd('0x46')][_0xfdbd('0x47')](),barAndWebActions[_0x3ec447['data1']]),_[_0xfdbd('0x62')](_0x55939b,_0x3f3b72));break;case'jscripty':this['emit'](util[_0xfdbd('0x5e')](_0xfdbd('0x5f'),this['agents'][_0x3f3b72[_0xfdbd('0x40')]][_0xfdbd('0x60')]),util[_0xfdbd('0x5e')](_0xfdbd('0x63'),_0x3ec447[_0xfdbd('0x46')]['toLowerCase']()),_[_0xfdbd('0x62')]({'ProjectId':parseInt(_0x3ec447[_0xfdbd('0x4b')],0xa)},_0x3f3b72));break;default:this['emit'](util[_0xfdbd('0x5e')](_0xfdbd('0x5f'),this[_0xfdbd('0x12')][_0x3f3b72[_0xfdbd('0x40')]][_0xfdbd('0x60')]),util[_0xfdbd('0x5e')](_0xfdbd('0x63'),_0x3ec447['action'][_0xfdbd('0x47')]()),_['merge']({},_0x3ec447,_0x3f3b72));}}switch(_0x3ec447[_0xfdbd('0x46')][_0xfdbd('0x47')]()){case _0xfdbd('0x48'):cmContact[_0xfdbd('0x64')](this[_0xfdbd('0x12')][_0x3f3b72[_0xfdbd('0x40')]],this[_0xfdbd('0x11')][_0x3b8b58],_0x3ec447,_0x3f3b72);break;case _0xfdbd('0x65'):integration[_0xfdbd('0x64')](_0x3ec447,_0x3f3b72,this[_0xfdbd('0x1f')],this[_0xfdbd('0x12')][_0x3f3b72[_0xfdbd('0x40')]],this[_0xfdbd('0x13')][_0x3f3b72[_0xfdbd('0x66')]],this['voiceExtensions'][_0x3f3b72[_0xfdbd('0x67')]]);break;case _0xfdbd('0x68'):urlforward[_0xfdbd('0x64')](_0x3ec447,_0x3f3b72);break;case _0xfdbd('0x69'):script[_0xfdbd('0x64')](_0x3ec447,_0x3f3b72);break;}}}}}}};Trigger[_0xfdbd('0x37')][_0xfdbd('0x53')]=function(_0x25aae4,_0x5ae5c2,_0x5cff9f){var _0x37b220=url[_0xfdbd('0x6a')](Mustache[_0xfdbd('0x4f')](_0x25aae4,_0x5ae5c2),!![]);if(_0x5cff9f){_['merge'](_0x37b220[_0xfdbd('0x6b')],_0x5ae5c2);}delete _0x37b220[_0xfdbd('0x6c')];var _0xeca355=url[_0xfdbd('0x5e')](_0x37b220);_0xeca355=_0xeca355['replace'](/\/\?/g,'?');return _0xeca355;};Trigger[_0xfdbd('0x37')]['checkTrigger']=function(_0x19721e,_0x4ba512){var _0x2e5f85=!![];var _0x284bc8=!![];var _0x14d9c8=![];if(_0x19721e[_0xfdbd('0x6d')]===_0x4ba512['motionChannel']){_0x14d9c8=!![];}if(_0x19721e[_0xfdbd('0x6e')][_0xfdbd('0x45')]){_0x2e5f85=_[_0xfdbd('0x6f')](_0x19721e[_0xfdbd('0x6e')],this['checkConditions'](_0x4ba512,_0x19721e['channel']));}if(_0x19721e[_0xfdbd('0x70')][_0xfdbd('0x45')]){_0x284bc8=_[_0xfdbd('0x71')](_0x19721e[_0xfdbd('0x70')],this['checkConditions'](_0x4ba512,_0x19721e[_0xfdbd('0x6d')]));}var _0x132046=_0x14d9c8&&_0x2e5f85&&_0x284bc8;logger['debug'](_0xfdbd('0x72'),util[_0xfdbd('0x3e')](_0x19721e,{'showHidden':!![],'depth':null}),_0xfdbd('0x73'),util[_0xfdbd('0x3e')](_0x4ba512,{'showHidden':!![],'depth':null}),_0x14d9c8,_0x2e5f85,_0x284bc8);return _0x132046;};Trigger['prototype'][_0xfdbd('0x74')]=function(_0x52ca56,_0x540d8d){return function(_0x28a53e){switch(_0x28a53e[_0xfdbd('0x75')]){case _0xfdbd('0x76'):if(_0x52ca56[_0xfdbd('0x6d')]===_0x540d8d){if(_0x540d8d===_0xfdbd('0x77')){return _0x52ca56[_0xfdbd('0x78')]?operators[_0x28a53e[_0xfdbd('0x79')]](Number(_0x28a53e[_0xfdbd('0x7a')]),_0x52ca56[_0xfdbd('0x78')]):![];}else{return _0x52ca56[_['upperFirst'](_0x540d8d)+_0xfdbd('0x7b')]?operators[_0x28a53e[_0xfdbd('0x79')]](Number(_0x28a53e[_0xfdbd('0x7a')]),_0x52ca56[_[_0xfdbd('0x7c')](_0x540d8d)+_0xfdbd('0x7b')]):![];}}break;case _0xfdbd('0x7d'):case _0xfdbd('0x7e'):if(_0x52ca56[_0xfdbd('0x6d')]===_0x540d8d){return _0x52ca56[_0xfdbd('0x7f')]?operators[_0x28a53e['operator']](_0x28a53e[_0xfdbd('0x7a')],_0x52ca56['event']):![];}break;case _0xfdbd('0x66'):return _0x52ca56[_0xfdbd('0x66')]?operators[_0x28a53e[_0xfdbd('0x79')]](_0x28a53e['value'],_0x52ca56[_0xfdbd('0x66')]):![];case _0xfdbd('0x80'):return _0x52ca56['membername']?operators[_0x28a53e[_0xfdbd('0x79')]](_0x28a53e['value'],_0x52ca56[_0xfdbd('0x81')]):![];case _0xfdbd('0x82'):return _0x52ca56[_0xfdbd('0x82')]?operators[_0x28a53e[_0xfdbd('0x79')]](_0x28a53e[_0xfdbd('0x7a')],_0x52ca56[_0xfdbd('0x82')]):![];case _0xfdbd('0x67'):return _0x52ca56[_0xfdbd('0x67')]?operators[_0x28a53e[_0xfdbd('0x79')]](_0x28a53e[_0xfdbd('0x7a')],_0x52ca56[_0xfdbd('0x67')]):![];case'mailSubstatus':if(_0x28a53e[_0xfdbd('0x7a')]===_0xfdbd('0x83'))_0x28a53e['value']=null;return typeof _0x52ca56[_0xfdbd('0x84')]!==_0xfdbd('0x3b')?operators[_0x28a53e[_0xfdbd('0x79')]](_0x28a53e[_0xfdbd('0x7a')],_0x52ca56[_0xfdbd('0x84')]):![];case _0xfdbd('0x85'):if(_0x52ca56['channel']===_0x540d8d){return _0x28a53e[_0xfdbd('0x7a')]===_0xfdbd('0x86')&&_0x28a53e[_0xfdbd('0x79')]===_0xfdbd('0x87')?!![]:![];}break;}return![];};};module[_0xfdbd('0x88')]=Trigger;