Built motion from commit 00bf23f6.|2.6.16
[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 _0x2616=['motionbar','browser','popup','TemplateId','html','data2','render','uri','buildUri','data3','isNil','data4','location','windowHeight','data6','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','data1','jscripty','trigger:%s','contactmanager','exec','integration','queue','routeId','urlforward','parse','query','search','replace','channel','AllConditions','AnyConditions','checkConditions','checkTrigger:\x20trigger','evt','account','chat','operator','value','ChatWebsiteId','upperFirst','AccountId','interaction','message','agent','membername','lastevent','mailSubstatus','offlineMessage','equals','exports','lodash','url','mustache','ioredis','./urlforward','./cmContact','../../../config/environment','trigger','../ami','redis','socket.io-emitter','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','custom:dialconnect','syncAgentDial','custom:dialend','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','prototype','emit','info','stringify','clone','undefined','motionChannel','voice','debug','inspect','checkTriggers','triggers','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','interface','action','toLowerCase'];(function(_0xba0c2,_0x54cc50){var _0x5a9fa0=function(_0x577bcb){while(--_0x577bcb){_0xba0c2['push'](_0xba0c2['shift']());}};_0x5a9fa0(++_0x54cc50);}(_0x2616,0xb6));var _0x6261=function(_0x378720,_0xa711f1){_0x378720=_0x378720-0x0;var _0x47920a=_0x2616[_0x378720];return _0x47920a;};'use strict';var util=require('util');var _=require(_0x6261('0x0'));var url=require(_0x6261('0x1'));var Mustache=require(_0x6261('0x2'));var Redis=require(_0x6261('0x3'));var urlforward=require(_0x6261('0x4'));var integration=require('./integration');var cmContact=require(_0x6261('0x5'));var script=require('./script');var config=require(_0x6261('0x6'));var logger=require('../../../config/logger')(_0x6261('0x7'));var ami=require(_0x6261('0x8'));config[_0x6261('0x9')]=_['defaults'](config[_0x6261('0x9')],{'host':'localhost','port':0x18eb});var io=require(_0x6261('0xa'))(new Redis(config[_0x6261('0x9')]));var operators={'equals':function(_0x5ec721,_0x34dd89){return _0x5ec721==_0x34dd89;},'not_equals':function(_0xd228cc,_0x3551b1){return _0xd228cc!=_0x3551b1;}};var barAndWebActions=['popup',_0x6261('0x1'),'winapp'];function Trigger(_0xa73285){this['triggers']=_0xa73285['triggers'];this[_0x6261('0xb')]=_0xa73285[_0x6261('0xb')];this[_0x6261('0xc')]=_0xa73285[_0x6261('0xc')];this[_0x6261('0xd')]=_0xa73285['templates'];this[_0x6261('0xe')]=_0xa73285[_0x6261('0xe')];this['zendeskAccounts']=_0xa73285[_0x6261('0xf')];this[_0x6261('0x10')]=_0xa73285['freshdeskAccounts'];this[_0x6261('0x11')]=_0xa73285[_0x6261('0x11')];this[_0x6261('0x12')]=_0xa73285[_0x6261('0x12')];this[_0x6261('0x13')]=_0xa73285['zohoAccounts'];this[_0x6261('0x14')]=_0xa73285[_0x6261('0x14')];this[_0x6261('0x15')]=_0xa73285['vtigerAccounts'];this[_0x6261('0x16')]=_0xa73285[_0x6261('0x16')];this[_0x6261('0x17')]=_0xa73285[_0x6261('0x17')];this[_0x6261('0x18')]=_0xa73285[_0x6261('0x18')];this[_0x6261('0x19')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x6261('0x11')],'freshdesk':this[_0x6261('0x10')],'sugarcrm':this[_0x6261('0x12')],'zoho':this[_0x6261('0x13')],'desk':this['deskAccounts'],'vtiger':this[_0x6261('0x15')],'dynamics365':this[_0x6261('0x17')],'freshsales':this[_0x6261('0x18')],'servicenow':this[_0x6261('0x16')]};ami['on'](_0x6261('0x1a'),this[_0x6261('0x1b')][_0x6261('0x1c')](this));ami['on'](_0x6261('0x1d'),this[_0x6261('0x1b')][_0x6261('0x1c')](this));ami['on']('custom:agentringnoanswer',this[_0x6261('0x1b')][_0x6261('0x1c')](this));ami['on'](_0x6261('0x1e'),this[_0x6261('0x1b')][_0x6261('0x1c')](this));ami['on'](_0x6261('0x1f'),this[_0x6261('0x1b')][_0x6261('0x1c')](this));ami['on'](_0x6261('0x20'),this['syncCustomEvent'][_0x6261('0x1c')](this));ami['on'](_0x6261('0x21'),this[_0x6261('0x1b')][_0x6261('0x1c')](this));ami['on'](_0x6261('0x22'),this['syncCustomEvent'][_0x6261('0x1c')](this));ami['on'](_0x6261('0x23'),this['syncCustomEvent'][_0x6261('0x1c')](this));ami['on'](_0x6261('0x24'),this[_0x6261('0x1b')][_0x6261('0x1c')](this));ami['on'](_0x6261('0x25'),this[_0x6261('0x1b')]['bind'](this));ami['on'](_0x6261('0x26'),this[_0x6261('0x1b')][_0x6261('0x1c')](this));ami['on'](_0x6261('0x27'),this['syncAgentDial'][_0x6261('0x1c')](this));ami['on'](_0x6261('0x28'),this[_0x6261('0x29')][_0x6261('0x1c')](this));ami['on'](_0x6261('0x2a'),this[_0x6261('0x29')][_0x6261('0x1c')](this));ami['on']('custom:newinteraction',this[_0x6261('0x1b')]['bind'](this));ami['on'](_0x6261('0x2b'),this['syncCustomEvent']['bind'](this));ami['on'](_0x6261('0x2c'),this[_0x6261('0x1b')][_0x6261('0x1c')](this));ami['on'](_0x6261('0x2d'),this[_0x6261('0x1b')][_0x6261('0x1c')](this));ami['on'](_0x6261('0x2e'),this[_0x6261('0x1b')][_0x6261('0x1c')](this));ami['on'](_0x6261('0x2f'),this[_0x6261('0x1b')][_0x6261('0x1c')](this));ami['on']('custom:rejectmessage',this['syncCustomEvent'][_0x6261('0x1c')](this));ami['on']('custom:offlineMessage',this[_0x6261('0x1b')][_0x6261('0x1c')](this));}Trigger[_0x6261('0x30')][_0x6261('0x31')]=function(_0xb09c2b,_0x51b41c,_0xc9d8f3){logger[_0x6261('0x32')](_0xb09c2b,_0x51b41c,JSON[_0x6261('0x33')](_0xc9d8f3));io['to'](_0xb09c2b)[_0x6261('0x31')](_0x51b41c,_0xc9d8f3);};Trigger[_0x6261('0x30')]['syncCustomEvent']=function(_0x26e655){var _0x65b5bb=_[_0x6261('0x34')](_0x26e655);if(typeof _0x65b5bb['motionChannel']===_0x6261('0x35')){_0x65b5bb[_0x6261('0x36')]=_0x6261('0x37');}logger[_0x6261('0x38')](_0x6261('0x1b'),util[_0x6261('0x39')](_0x65b5bb,{'showHidden':!![],'depth':null}));this[_0x6261('0x3a')](_0x65b5bb);};Trigger[_0x6261('0x30')]['syncAgentDial']=function(_0x50f4f7){if(this[_0x6261('0xb')][_0x50f4f7['interface']]){this[_0x6261('0x1b')](_0x50f4f7);}};Trigger[_0x6261('0x30')][_0x6261('0x3a')]=function(_0x218ad2){var _0x771d6f;for(var _0x3cce6f in this[_0x6261('0x3b')]){if(this[_0x6261('0x3b')][_0x6261('0x3c')](_0x3cce6f)){if(this['triggers'][_0x3cce6f][_0x6261('0x3d')]){_0x771d6f=this[_0x6261('0x3e')](this[_0x6261('0x3b')][_0x3cce6f],_0x218ad2);if(_0x771d6f){_[_0x6261('0x3f')](_0x218ad2,_0x218ad2[_0x6261('0x40')]);for(var _0x3d1798=0x0,_0x40acb2,_0x55d562,_0xe67232;_0x3d1798<this[_0x6261('0x3b')][_0x3cce6f][_0x6261('0x41')][_0x6261('0x42')];_0x3d1798+=0x1){_0x40acb2=this[_0x6261('0x3b')][_0x3cce6f][_0x6261('0x41')][_0x3d1798];if(this[_0x6261('0xb')][_0x218ad2[_0x6261('0x43')]]){switch(_0x40acb2[_0x6261('0x44')][_0x6261('0x45')]()){case'contactmanager':break;case _0x6261('0x46'):case _0x6261('0x47'):var _0x4314ac={};switch(barAndWebActions[_0x40acb2['data1']]){case _0x6261('0x48'):_0x4314ac[_0x6261('0x49')]=_0x40acb2['data2'];_0x4314ac[_0x6261('0x4a')]=this['templates'][_0x40acb2[_0x6261('0x4b')]]?Mustache[_0x6261('0x4c')](this[_0x6261('0xd')][_0x40acb2['data2']][_0x6261('0x4a')],_0x218ad2):'template\x20not\x20found';break;case _0x6261('0x1'):_0x4314ac[_0x6261('0x4d')]=this[_0x6261('0x4e')](_0x40acb2[_0x6261('0x4b')],_0x218ad2,_['isNil'](_0x40acb2[_0x6261('0x4f')])?!![]:parseInt(_0x40acb2[_0x6261('0x4f')],0xa));if(_[_0x6261('0x50')](_0x40acb2[_0x6261('0x51')])){_0x4314ac[_0x6261('0x52')]='0';}else{_0x4314ac['uriLocation']=_0x40acb2[_0x6261('0x51')];_0x4314ac['windowWidth']=_[_0x6261('0x50')](_0x40acb2['data5'])?'800':_0x40acb2['data5'];_0x4314ac[_0x6261('0x53')]=_[_0x6261('0x50')](_0x40acb2[_0x6261('0x54')])?'600':_0x40acb2[_0x6261('0x54')];}break;case'winapp':_0x4314ac[_0x6261('0x55')]=_0x40acb2[_0x6261('0x4b')]?Mustache[_0x6261('0x4c')](_0x40acb2[_0x6261('0x4b')],_0x218ad2):'';_0x4314ac[_0x6261('0x56')]=_0x40acb2['data3']?Mustache[_0x6261('0x4c')](_0x40acb2[_0x6261('0x4f')],_0x218ad2):'';break;}this[_0x6261('0x31')](util[_0x6261('0x57')](_0x6261('0x58'),this['agents'][_0x218ad2[_0x6261('0x43')]][_0x6261('0x59')]),util[_0x6261('0x57')](_0x6261('0x5a'),_0x40acb2[_0x6261('0x44')][_0x6261('0x45')](),barAndWebActions[_0x40acb2[_0x6261('0x5b')]]),_[_0x6261('0x3f')](_0x4314ac,_0x218ad2));break;case _0x6261('0x5c'):this[_0x6261('0x31')](util['format']('user:%s',this[_0x6261('0xb')][_0x218ad2[_0x6261('0x43')]][_0x6261('0x59')]),util[_0x6261('0x57')](_0x6261('0x5d'),_0x40acb2[_0x6261('0x44')][_0x6261('0x45')]()),_[_0x6261('0x3f')]({'ProjectId':parseInt(_0x40acb2[_0x6261('0x5b')],0xa)},_0x218ad2));break;default:this[_0x6261('0x31')](util[_0x6261('0x57')]('user:%s',this['agents'][_0x218ad2[_0x6261('0x43')]][_0x6261('0x59')]),util[_0x6261('0x57')](_0x6261('0x5d'),_0x40acb2['action'][_0x6261('0x45')]()),_[_0x6261('0x3f')]({},_0x40acb2,_0x218ad2));}}switch(_0x40acb2[_0x6261('0x44')][_0x6261('0x45')]()){case _0x6261('0x5e'):cmContact[_0x6261('0x5f')](this['agents'][_0x218ad2[_0x6261('0x43')]],this[_0x6261('0x3b')][_0x3cce6f],_0x40acb2,_0x218ad2);break;case _0x6261('0x60'):integration[_0x6261('0x5f')](_0x40acb2,_0x218ad2,this[_0x6261('0x19')],this[_0x6261('0xb')][_0x218ad2[_0x6261('0x43')]],this['voiceQueues'][_0x218ad2[_0x6261('0x61')]],this[_0x6261('0xe')][_0x218ad2[_0x6261('0x62')]]);break;case _0x6261('0x63'):urlforward['exec'](_0x40acb2,_0x218ad2);break;case'script':script[_0x6261('0x5f')](_0x40acb2,_0x218ad2);break;}}}}}}};Trigger[_0x6261('0x30')][_0x6261('0x4e')]=function(_0x1aba25,_0x2ac602,_0x2be4e3){var _0x249f85=url[_0x6261('0x64')](Mustache[_0x6261('0x4c')](_0x1aba25,_0x2ac602),!![]);if(_0x2be4e3){_[_0x6261('0x3f')](_0x249f85[_0x6261('0x65')],_0x2ac602);}delete _0x249f85[_0x6261('0x66')];var _0xcb00b7=url[_0x6261('0x57')](_0x249f85);_0xcb00b7=_0xcb00b7[_0x6261('0x67')](/\/\?/g,'?');return _0xcb00b7;};Trigger[_0x6261('0x30')][_0x6261('0x3e')]=function(_0x4a4aa4,_0x2e80a8){var _0x35e672=!![];var _0x3d37b2=!![];var _0x5670f9=![];if(_0x4a4aa4[_0x6261('0x68')]===_0x2e80a8[_0x6261('0x36')]){_0x5670f9=!![];}if(_0x4a4aa4[_0x6261('0x69')][_0x6261('0x42')]){_0x35e672=_['every'](_0x4a4aa4[_0x6261('0x69')],this['checkConditions'](_0x2e80a8,_0x4a4aa4[_0x6261('0x68')]));}if(_0x4a4aa4[_0x6261('0x6a')]['length']){_0x3d37b2=_['some'](_0x4a4aa4['AnyConditions'],this[_0x6261('0x6b')](_0x2e80a8,_0x4a4aa4['channel']));}var _0x56a828=_0x5670f9&&_0x35e672&&_0x3d37b2;logger[_0x6261('0x38')](_0x6261('0x6c'),util['inspect'](_0x4a4aa4,{'showHidden':!![],'depth':null}),_0x6261('0x6d'),util[_0x6261('0x39')](_0x2e80a8,{'showHidden':!![],'depth':null}),_0x5670f9,_0x35e672,_0x3d37b2);return _0x56a828;};Trigger['prototype'][_0x6261('0x6b')]=function(_0x45121c,_0xb102b4){return function(_0xf75682){switch(_0xf75682['field']){case _0x6261('0x6e'):if(_0x45121c[_0x6261('0x68')]===_0xb102b4){if(_0xb102b4===_0x6261('0x6f')){return _0x45121c['ChatWebsiteId']?operators[_0xf75682[_0x6261('0x70')]](Number(_0xf75682[_0x6261('0x71')]),_0x45121c[_0x6261('0x72')]):![];}else{return _0x45121c[_[_0x6261('0x73')](_0xb102b4)+_0x6261('0x74')]?operators[_0xf75682[_0x6261('0x70')]](Number(_0xf75682[_0x6261('0x71')]),_0x45121c[_[_0x6261('0x73')](_0xb102b4)+_0x6261('0x74')]):![];}}break;case _0x6261('0x75'):case _0x6261('0x76'):if(_0x45121c[_0x6261('0x68')]===_0xb102b4){return _0x45121c['event']?operators[_0xf75682[_0x6261('0x70')]](_0xf75682['value'],_0x45121c['event']):![];}break;case'queue':return _0x45121c[_0x6261('0x61')]?operators[_0xf75682[_0x6261('0x70')]](_0xf75682['value'],_0x45121c[_0x6261('0x61')]):![];case _0x6261('0x77'):return _0x45121c[_0x6261('0x78')]?operators[_0xf75682[_0x6261('0x70')]](_0xf75682[_0x6261('0x71')],_0x45121c['membername']):![];case _0x6261('0x79'):return _0x45121c['lastevent']?operators[_0xf75682[_0x6261('0x70')]](_0xf75682[_0x6261('0x71')],_0x45121c['lastevent']):![];case _0x6261('0x62'):return _0x45121c[_0x6261('0x62')]?operators[_0xf75682[_0x6261('0x70')]](_0xf75682['value'],_0x45121c[_0x6261('0x62')]):![];case _0x6261('0x7a'):if(_0xf75682['value']==='null')_0xf75682['value']=null;return typeof _0x45121c['substatus']!=='undefined'?operators[_0xf75682['operator']](_0xf75682['value'],_0x45121c['substatus']):![];case _0x6261('0x7b'):if(_0x45121c[_0x6261('0x68')]===_0xb102b4){return _0xf75682['value']==='created'&&_0xf75682[_0x6261('0x70')]===_0x6261('0x7c')?!![]:![];}break;}return![];};};module[_0x6261('0x7d')]=Trigger;