Built motion from commit (unavailable).|2.4.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 _0x8142=['toLowerCase','contactmanager','motionbar','browser','data1','data2','html','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','uriLocation','800','data6','winapp','winApplication','format','user:%s','agents','action','jscripty','name','trigger:%s','exec','integration','queue','routeId','urlforward','script','parse','search','replace','AllConditions','every','checkConditions','channel','AnyConditions','field','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','message','event','agent','membername','lastevent','exports','util','lodash','mustache','./urlforward','./integration','./cmContact','./script','../rpc/cmContact','../../../config/environment','../../../config/logger','trigger','../ami','defaults','redis','localhost','popup','url','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','bind','custom:agentconnect','custom:agentringnoanswer','syncCustomEvent','custom:agentcomplete','custom:queuecallerabandon','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:incomingmessage','custom:outgoingmessage','custom:rejectmessage','prototype','info','stringify','emit','clone','interface','checkTriggers','triggers','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length'];(function(_0x2aec18,_0x1e717f){var _0xe63eb9=function(_0x44ccd5){while(--_0x44ccd5){_0x2aec18['push'](_0x2aec18['shift']());}};_0xe63eb9(++_0x1e717f);}(_0x8142,0x18d));var _0x2814=function(_0xfed299,_0x21b8d0){_0xfed299=_0xfed299-0x0;var _0x4ef1f2=_0x8142[_0xfed299];return _0x4ef1f2;};'use strict';var util=require(_0x2814('0x0'));var _=require(_0x2814('0x1'));var url=require('url');var Mustache=require(_0x2814('0x2'));var Redis=require('ioredis');var urlforward=require(_0x2814('0x3'));var integration=require(_0x2814('0x4'));var cmContact=require(_0x2814('0x5'));var script=require(_0x2814('0x6'));var cmContactRpc=require(_0x2814('0x7'));var config=require(_0x2814('0x8'));var logger=require(_0x2814('0x9'))(_0x2814('0xa'));var ami=require(_0x2814('0xb'));config['redis']=_[_0x2814('0xc')](config[_0x2814('0xd')],{'host':_0x2814('0xe'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x2814('0xd')]));var operators={'equals':function(_0x12337d,_0x4fd808){return _0x12337d==_0x4fd808;},'not_equals':function(_0x44943a,_0x1449c8){return _0x44943a!=_0x1449c8;}};var barAndWebActions=[_0x2814('0xf'),_0x2814('0x10'),'winapp'];function Trigger(_0x5de5df){this['triggers']=_0x5de5df['triggers'];this['agents']=_0x5de5df['agents'];this['voiceQueues']=_0x5de5df[_0x2814('0x11')];this[_0x2814('0x12')]=_0x5de5df[_0x2814('0x12')];this[_0x2814('0x13')]=_0x5de5df[_0x2814('0x13')];this[_0x2814('0x14')]=_0x5de5df[_0x2814('0x14')];this[_0x2814('0x15')]=_0x5de5df[_0x2814('0x15')];this[_0x2814('0x16')]=_0x5de5df[_0x2814('0x16')];this[_0x2814('0x17')]=_0x5de5df[_0x2814('0x17')];this[_0x2814('0x18')]=_0x5de5df['zohoAccounts'];this['deskAccounts']=_0x5de5df[_0x2814('0x19')];this['vtigerAccounts']=_0x5de5df[_0x2814('0x1a')];this[_0x2814('0x1b')]=_0x5de5df[_0x2814('0x1b')];this[_0x2814('0x1c')]=_0x5de5df[_0x2814('0x1c')];this[_0x2814('0x1d')]=_0x5de5df[_0x2814('0x1d')];this[_0x2814('0x1e')]={'zendesk':this[_0x2814('0x14')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0x2814('0x15')],'sugarcrm':this[_0x2814('0x17')],'zoho':this[_0x2814('0x18')],'desk':this['deskAccounts'],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0x2814('0x1c')],'freshsales':this[_0x2814('0x1d')],'servicenow':this[_0x2814('0x1b')]};ami['on'](_0x2814('0x1f'),this['syncCustomEvent'][_0x2814('0x20')](this));ami['on'](_0x2814('0x21'),this['syncCustomEvent'][_0x2814('0x20')](this));ami['on'](_0x2814('0x22'),this[_0x2814('0x23')][_0x2814('0x20')](this));ami['on'](_0x2814('0x24'),this[_0x2814('0x23')]['bind'](this));ami['on'](_0x2814('0x25'),this[_0x2814('0x23')][_0x2814('0x20')](this));ami['on']('custom:dialbegin',this[_0x2814('0x26')][_0x2814('0x20')](this));ami['on'](_0x2814('0x27'),this[_0x2814('0x26')][_0x2814('0x20')](this));ami['on']('custom:dialend',this[_0x2814('0x26')][_0x2814('0x20')](this));ami['on'](_0x2814('0x28'),this['syncCustomEvent'][_0x2814('0x20')](this));ami['on']('custom:closedinteraction',this[_0x2814('0x23')][_0x2814('0x20')](this));ami['on'](_0x2814('0x29'),this[_0x2814('0x23')][_0x2814('0x20')](this));ami['on'](_0x2814('0x2a'),this[_0x2814('0x23')][_0x2814('0x20')](this));ami['on']('custom:acceptmessage',this[_0x2814('0x23')][_0x2814('0x20')](this));ami['on'](_0x2814('0x2b'),this[_0x2814('0x23')][_0x2814('0x20')](this));}Trigger[_0x2814('0x2c')]['emit']=function(_0x5ba3b6,_0x5d5d24,_0x1b2f94){logger[_0x2814('0x2d')](_0x5ba3b6,_0x5d5d24,JSON[_0x2814('0x2e')](_0x1b2f94));io['to'](_0x5ba3b6)[_0x2814('0x2f')](_0x5d5d24,_0x1b2f94);};Trigger[_0x2814('0x2c')][_0x2814('0x23')]=function(_0x4749bf){var _0x302262=_[_0x2814('0x30')](_0x4749bf);this['checkTriggers'](_0x302262);};Trigger['prototype'][_0x2814('0x26')]=function(_0x5cd257){if(this['agents'][_0x5cd257[_0x2814('0x31')]]){this[_0x2814('0x23')](_0x5cd257);}};Trigger[_0x2814('0x2c')][_0x2814('0x32')]=function(_0x8078d){var _0x553113;for(var _0x4c63a3 in this[_0x2814('0x33')]){if(this[_0x2814('0x33')][_0x2814('0x34')](_0x4c63a3)){if(this[_0x2814('0x33')][_0x4c63a3][_0x2814('0x35')]){_0x553113=this[_0x2814('0x36')](this[_0x2814('0x33')][_0x4c63a3],_0x8078d);if(_0x553113){_[_0x2814('0x37')](_0x8078d,_0x8078d[_0x2814('0x38')]);for(var _0x532ad6=0x0,_0x5a4d9a,_0x4cc836,_0x1d1877;_0x532ad6<this[_0x2814('0x33')][_0x4c63a3][_0x2814('0x39')][_0x2814('0x3a')];_0x532ad6+=0x1){_0x5a4d9a=this[_0x2814('0x33')][_0x4c63a3][_0x2814('0x39')][_0x532ad6];if(this['agents'][_0x8078d[_0x2814('0x31')]]){switch(_0x5a4d9a['action'][_0x2814('0x3b')]()){case _0x2814('0x3c'):break;case _0x2814('0x3d'):case _0x2814('0x3e'):var _0x14d03f={};switch(barAndWebActions[_0x5a4d9a[_0x2814('0x3f')]]){case _0x2814('0xf'):_0x14d03f['TemplateId']=_0x5a4d9a[_0x2814('0x40')];_0x14d03f[_0x2814('0x41')]=this['templates'][_0x5a4d9a['data2']]?Mustache[_0x2814('0x42')](this['templates'][_0x5a4d9a[_0x2814('0x40')]][_0x2814('0x41')],_0x8078d):_0x2814('0x43');break;case _0x2814('0x10'):_0x14d03f[_0x2814('0x44')]=this[_0x2814('0x45')](_0x5a4d9a[_0x2814('0x40')],_0x8078d,_[_0x2814('0x46')](_0x5a4d9a[_0x2814('0x47')])?!![]:parseInt(_0x5a4d9a[_0x2814('0x47')],0xa));if(_[_0x2814('0x46')](_0x5a4d9a[_0x2814('0x48')])){_0x14d03f[_0x2814('0x49')]='0';}else{_0x14d03f[_0x2814('0x4a')]=_0x5a4d9a[_0x2814('0x48')];_0x14d03f['windowWidth']=_[_0x2814('0x46')](_0x5a4d9a['data5'])?_0x2814('0x4b'):_0x5a4d9a['data5'];_0x14d03f['windowHeight']=_[_0x2814('0x46')](_0x5a4d9a[_0x2814('0x4c')])?'600':_0x5a4d9a[_0x2814('0x4c')];}break;case _0x2814('0x4d'):_0x14d03f[_0x2814('0x4e')]=_0x5a4d9a[_0x2814('0x40')]?Mustache[_0x2814('0x42')](_0x5a4d9a[_0x2814('0x40')],_0x8078d):'';_0x14d03f['winArguments']=_0x5a4d9a[_0x2814('0x47')]?Mustache[_0x2814('0x42')](_0x5a4d9a[_0x2814('0x47')],_0x8078d):'';break;}this['emit'](util[_0x2814('0x4f')](_0x2814('0x50'),this[_0x2814('0x51')][_0x8078d[_0x2814('0x31')]]['name']),util['format']('trigger:%s:%s',_0x5a4d9a[_0x2814('0x52')][_0x2814('0x3b')](),barAndWebActions[_0x5a4d9a[_0x2814('0x3f')]]),_[_0x2814('0x37')](_0x14d03f,_0x8078d));break;case _0x2814('0x53'):this[_0x2814('0x2f')](util[_0x2814('0x4f')](_0x2814('0x50'),this[_0x2814('0x51')][_0x8078d[_0x2814('0x31')]][_0x2814('0x54')]),util[_0x2814('0x4f')](_0x2814('0x55'),_0x5a4d9a[_0x2814('0x52')][_0x2814('0x3b')]()),_[_0x2814('0x37')]({'ProjectId':parseInt(_0x5a4d9a[_0x2814('0x3f')],0xa)},_0x8078d));break;default:this['emit'](util[_0x2814('0x4f')]('user:%s',this[_0x2814('0x51')][_0x8078d[_0x2814('0x31')]]['name']),util[_0x2814('0x4f')]('trigger:%s',_0x5a4d9a[_0x2814('0x52')][_0x2814('0x3b')]()),_[_0x2814('0x37')]({},_0x5a4d9a,_0x8078d));}}switch(_0x5a4d9a[_0x2814('0x52')]['toLowerCase']()){case _0x2814('0x3c'):cmContact[_0x2814('0x56')](this[_0x2814('0x51')][_0x8078d[_0x2814('0x31')]],_0x5a4d9a,_0x8078d,cmContactRpc);break;case _0x2814('0x57'):integration[_0x2814('0x56')](_0x5a4d9a,_0x8078d,this[_0x2814('0x1e')],this[_0x2814('0x51')][_0x8078d[_0x2814('0x31')]],this['voiceQueues'][_0x8078d[_0x2814('0x58')]],this[_0x2814('0x13')][_0x8078d[_0x2814('0x59')]]);break;case _0x2814('0x5a'):urlforward[_0x2814('0x56')](_0x5a4d9a,_0x8078d);break;case _0x2814('0x5b'):script['exec'](_0x5a4d9a,_0x8078d);break;}}}}}}};Trigger[_0x2814('0x2c')][_0x2814('0x45')]=function(_0x51e860,_0x1cd6c2,_0x210a6d){var _0x3cf612=url[_0x2814('0x5c')](Mustache[_0x2814('0x42')](_0x51e860,_0x1cd6c2),!![]);if(_0x210a6d){_['merge'](_0x3cf612['query'],_0x1cd6c2);}delete _0x3cf612[_0x2814('0x5d')];var _0x127c15=url[_0x2814('0x4f')](_0x3cf612);_0x127c15=_0x127c15[_0x2814('0x5e')](/\/\?/g,'?');return _0x127c15;};Trigger[_0x2814('0x2c')]['checkTrigger']=function(_0x472225,_0x1d6fb5){var _0x3d6397=!![],_0x3a838d=!![];if(_0x472225[_0x2814('0x5f')][_0x2814('0x3a')]){_0x3d6397=_[_0x2814('0x60')](_0x472225[_0x2814('0x5f')],this[_0x2814('0x61')](_0x1d6fb5,_0x472225[_0x2814('0x62')]));}if(_0x472225['AnyConditions'][_0x2814('0x3a')]){_0x3a838d=_['some'](_0x472225[_0x2814('0x63')],this['checkConditions'](_0x1d6fb5,_0x472225[_0x2814('0x62')]));}return _0x3d6397&&_0x3a838d;};Trigger[_0x2814('0x2c')][_0x2814('0x61')]=function(_0x501172,_0x35174f){return function(_0x23bd4a){switch(_0x23bd4a[_0x2814('0x64')]){case _0x2814('0x65'):if(_0x501172[_0x2814('0x62')]===_0x35174f){if(_0x35174f===_0x2814('0x66')){return _0x501172[_0x2814('0x67')]?operators[_0x23bd4a[_0x2814('0x68')]](Number(_0x23bd4a[_0x2814('0x69')]),_0x501172['ChatWebsiteId']):![];}else{return _0x501172[_[_0x2814('0x6a')](_0x35174f)+_0x2814('0x6b')]?operators[_0x23bd4a[_0x2814('0x68')]](Number(_0x23bd4a['value']),_0x501172[_[_0x2814('0x6a')](_0x35174f)+_0x2814('0x6b')]):![];}}break;case'interaction':case _0x2814('0x6c'):if(_0x501172[_0x2814('0x62')]===_0x35174f){return _0x501172[_0x2814('0x6d')]?operators[_0x23bd4a['operator']](_0x23bd4a['value'],_0x501172[_0x2814('0x6d')]):![];}break;case'queue':return _0x501172[_0x2814('0x58')]?operators[_0x23bd4a[_0x2814('0x68')]](_0x23bd4a[_0x2814('0x69')],_0x501172['queue']):![];case _0x2814('0x6e'):return _0x501172['membername']?operators[_0x23bd4a['operator']](_0x23bd4a[_0x2814('0x69')],_0x501172[_0x2814('0x6f')]):![];case _0x2814('0x70'):return _0x501172['lastevent']?operators[_0x23bd4a[_0x2814('0x68')]](_0x23bd4a[_0x2814('0x69')],_0x501172[_0x2814('0x70')]):![];case _0x2814('0x59'):return _0x501172['routeId']?operators[_0x23bd4a[_0x2814('0x68')]](_0x23bd4a['value'],_0x501172[_0x2814('0x59')]):![];}return![];};};module[_0x2814('0x71')]=Trigger;