Built motion from commit (unavailable).|2.5.27
[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 _0x1d24=['TemplateId','html','data2','template\x20not\x20found','uri','buildUri','data3','isNil','location','uriLocation','windowWidth','data5','windowHeight','data6','winApplication','winArguments','render','user:%s','name','format','toLowerCase','jscripty','trigger:%s','integration','exec','routeId','urlforward','parse','query','search','replace','AllConditions','checkConditions','channel','AnyConditions','some','field','account','ChatWebsiteId','value','upperFirst','AccountId','operator','interaction','message','event','queue','agent','membername','lastevent','exports','util','lodash','url','./urlforward','./integration','trigger','../ami','redis','defaults','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','prototype','info','stringify','emit','clone','checkTriggers','interface','hasOwnProperty','checkTrigger','merge','variables','Actions','length','action','contactmanager','browser'];(function(_0x5376bb,_0x4b5255){var _0x3b69b4=function(_0x327297){while(--_0x327297){_0x5376bb['push'](_0x5376bb['shift']());}};_0x3b69b4(++_0x4b5255);}(_0x1d24,0xa7));var _0x41d2=function(_0x23200d,_0x15fb6e){_0x23200d=_0x23200d-0x0;var _0x3f8381=_0x1d24[_0x23200d];return _0x3f8381;};'use strict';var util=require(_0x41d2('0x0'));var _=require(_0x41d2('0x1'));var url=require(_0x41d2('0x2'));var Mustache=require('mustache');var Redis=require('ioredis');var urlforward=require(_0x41d2('0x3'));var integration=require(_0x41d2('0x4'));var cmContact=require('./cmContact');var script=require('./script');var config=require('../../../config/environment');var logger=require('../../../config/logger')(_0x41d2('0x5'));var ami=require(_0x41d2('0x6'));config[_0x41d2('0x7')]=_[_0x41d2('0x8')](config[_0x41d2('0x7')],{'host':_0x41d2('0x9'),'port':0x18eb});var io=require(_0x41d2('0xa'))(new Redis(config[_0x41d2('0x7')]));var operators={'equals':function(_0x175b7d,_0x5732c9){return _0x175b7d==_0x5732c9;},'not_equals':function(_0x1331ec,_0x5cd434){return _0x1331ec!=_0x5cd434;}};var barAndWebActions=[_0x41d2('0xb'),_0x41d2('0x2'),_0x41d2('0xc')];function Trigger(_0x2b6848){this[_0x41d2('0xd')]=_0x2b6848[_0x41d2('0xd')];this['agents']=_0x2b6848[_0x41d2('0xe')];this['voiceQueues']=_0x2b6848[_0x41d2('0xf')];this[_0x41d2('0x10')]=_0x2b6848[_0x41d2('0x10')];this[_0x41d2('0x11')]=_0x2b6848[_0x41d2('0x11')];this[_0x41d2('0x12')]=_0x2b6848[_0x41d2('0x12')];this[_0x41d2('0x13')]=_0x2b6848[_0x41d2('0x13')];this[_0x41d2('0x14')]=_0x2b6848['salesforceAccounts'];this[_0x41d2('0x15')]=_0x2b6848['sugarcrmAccounts'];this[_0x41d2('0x16')]=_0x2b6848[_0x41d2('0x16')];this[_0x41d2('0x17')]=_0x2b6848['deskAccounts'];this[_0x41d2('0x18')]=_0x2b6848['vtigerAccounts'];this[_0x41d2('0x19')]=_0x2b6848['servicenowAccounts'];this[_0x41d2('0x1a')]=_0x2b6848['dynamics365Accounts'];this[_0x41d2('0x1b')]=_0x2b6848[_0x41d2('0x1b')];this[_0x41d2('0x1c')]={'zendesk':this[_0x41d2('0x12')],'salesforce':this[_0x41d2('0x14')],'freshdesk':this[_0x41d2('0x13')],'sugarcrm':this[_0x41d2('0x15')],'zoho':this[_0x41d2('0x16')],'desk':this['deskAccounts'],'vtiger':this[_0x41d2('0x18')],'dynamics365':this[_0x41d2('0x1a')],'freshsales':this[_0x41d2('0x1b')],'servicenow':this[_0x41d2('0x19')]};ami['on'](_0x41d2('0x1d'),this[_0x41d2('0x1e')]['bind'](this));ami['on'](_0x41d2('0x1f'),this[_0x41d2('0x1e')]['bind'](this));ami['on']('custom:agentringnoanswer',this[_0x41d2('0x1e')][_0x41d2('0x20')](this));ami['on'](_0x41d2('0x21'),this[_0x41d2('0x1e')][_0x41d2('0x20')](this));ami['on'](_0x41d2('0x22'),this[_0x41d2('0x1e')][_0x41d2('0x20')](this));ami['on'](_0x41d2('0x23'),this[_0x41d2('0x1e')][_0x41d2('0x20')](this));ami['on']('custom:agentbusy',this[_0x41d2('0x1e')][_0x41d2('0x20')](this));ami['on'](_0x41d2('0x24'),this[_0x41d2('0x1e')][_0x41d2('0x20')](this));ami['on'](_0x41d2('0x25'),this[_0x41d2('0x1e')][_0x41d2('0x20')](this));ami['on'](_0x41d2('0x26'),this[_0x41d2('0x1e')][_0x41d2('0x20')](this));ami['on'](_0x41d2('0x27'),this[_0x41d2('0x1e')][_0x41d2('0x20')](this));ami['on'](_0x41d2('0x28'),this[_0x41d2('0x29')][_0x41d2('0x20')](this));ami['on'](_0x41d2('0x2a'),this['syncAgentDial'][_0x41d2('0x20')](this));ami['on'](_0x41d2('0x2b'),this[_0x41d2('0x29')][_0x41d2('0x20')](this));ami['on'](_0x41d2('0x2c'),this[_0x41d2('0x1e')]['bind'](this));ami['on'](_0x41d2('0x2d'),this[_0x41d2('0x1e')][_0x41d2('0x20')](this));ami['on'](_0x41d2('0x2e'),this[_0x41d2('0x1e')][_0x41d2('0x20')](this));ami['on']('custom:outgoingmessage',this['syncCustomEvent']['bind'](this));ami['on'](_0x41d2('0x2f'),this[_0x41d2('0x1e')][_0x41d2('0x20')](this));ami['on'](_0x41d2('0x30'),this[_0x41d2('0x1e')][_0x41d2('0x20')](this));}Trigger[_0x41d2('0x31')]['emit']=function(_0x5f5de6,_0x5da56f,_0x468b7b){logger[_0x41d2('0x32')](_0x5f5de6,_0x5da56f,JSON[_0x41d2('0x33')](_0x468b7b));io['to'](_0x5f5de6)[_0x41d2('0x34')](_0x5da56f,_0x468b7b);};Trigger[_0x41d2('0x31')][_0x41d2('0x1e')]=function(_0x3b95ae){var _0x21e9c6=_[_0x41d2('0x35')](_0x3b95ae);this[_0x41d2('0x36')](_0x21e9c6);};Trigger[_0x41d2('0x31')][_0x41d2('0x29')]=function(_0xa02bd4){if(this[_0x41d2('0xe')][_0xa02bd4[_0x41d2('0x37')]]){this[_0x41d2('0x1e')](_0xa02bd4);}};Trigger['prototype'][_0x41d2('0x36')]=function(_0x3214bc){var _0x19b349;for(var _0x2c571c in this[_0x41d2('0xd')]){if(this[_0x41d2('0xd')][_0x41d2('0x38')](_0x2c571c)){if(this['triggers'][_0x2c571c]['status']){_0x19b349=this[_0x41d2('0x39')](this['triggers'][_0x2c571c],_0x3214bc);if(_0x19b349){_[_0x41d2('0x3a')](_0x3214bc,_0x3214bc[_0x41d2('0x3b')]);for(var _0x42716f=0x0,_0x15bf13,_0x285881,_0x2e7ef1;_0x42716f<this['triggers'][_0x2c571c][_0x41d2('0x3c')][_0x41d2('0x3d')];_0x42716f+=0x1){_0x15bf13=this[_0x41d2('0xd')][_0x2c571c][_0x41d2('0x3c')][_0x42716f];if(this[_0x41d2('0xe')][_0x3214bc[_0x41d2('0x37')]]){switch(_0x15bf13[_0x41d2('0x3e')]['toLowerCase']()){case _0x41d2('0x3f'):break;case'motionbar':case _0x41d2('0x40'):var _0x5705c5={};switch(barAndWebActions[_0x15bf13['data1']]){case _0x41d2('0xb'):_0x5705c5[_0x41d2('0x41')]=_0x15bf13['data2'];_0x5705c5[_0x41d2('0x42')]=this[_0x41d2('0x10')][_0x15bf13[_0x41d2('0x43')]]?Mustache['render'](this[_0x41d2('0x10')][_0x15bf13[_0x41d2('0x43')]][_0x41d2('0x42')],_0x3214bc):_0x41d2('0x44');break;case _0x41d2('0x2'):_0x5705c5[_0x41d2('0x45')]=this[_0x41d2('0x46')](_0x15bf13[_0x41d2('0x43')],_0x3214bc,_['isNil'](_0x15bf13[_0x41d2('0x47')])?!![]:parseInt(_0x15bf13[_0x41d2('0x47')],0xa));if(_[_0x41d2('0x48')](_0x15bf13['data4'])){_0x5705c5[_0x41d2('0x49')]='0';}else{_0x5705c5[_0x41d2('0x4a')]=_0x15bf13['data4'];_0x5705c5[_0x41d2('0x4b')]=_[_0x41d2('0x48')](_0x15bf13[_0x41d2('0x4c')])?'800':_0x15bf13[_0x41d2('0x4c')];_0x5705c5[_0x41d2('0x4d')]=_[_0x41d2('0x48')](_0x15bf13['data6'])?'600':_0x15bf13[_0x41d2('0x4e')];}break;case _0x41d2('0xc'):_0x5705c5[_0x41d2('0x4f')]=_0x15bf13['data2']?Mustache['render'](_0x15bf13[_0x41d2('0x43')],_0x3214bc):'';_0x5705c5[_0x41d2('0x50')]=_0x15bf13[_0x41d2('0x47')]?Mustache[_0x41d2('0x51')](_0x15bf13['data3'],_0x3214bc):'';break;}this[_0x41d2('0x34')](util['format'](_0x41d2('0x52'),this[_0x41d2('0xe')][_0x3214bc[_0x41d2('0x37')]][_0x41d2('0x53')]),util[_0x41d2('0x54')]('trigger:%s:%s',_0x15bf13['action'][_0x41d2('0x55')](),barAndWebActions[_0x15bf13['data1']]),_[_0x41d2('0x3a')](_0x5705c5,_0x3214bc));break;case _0x41d2('0x56'):this[_0x41d2('0x34')](util[_0x41d2('0x54')]('user:%s',this[_0x41d2('0xe')][_0x3214bc['interface']][_0x41d2('0x53')]),util['format'](_0x41d2('0x57'),_0x15bf13[_0x41d2('0x3e')][_0x41d2('0x55')]()),_['merge']({'ProjectId':parseInt(_0x15bf13['data1'],0xa)},_0x3214bc));break;default:this['emit'](util[_0x41d2('0x54')](_0x41d2('0x52'),this[_0x41d2('0xe')][_0x3214bc[_0x41d2('0x37')]]['name']),util[_0x41d2('0x54')]('trigger:%s',_0x15bf13['action'][_0x41d2('0x55')]()),_[_0x41d2('0x3a')]({},_0x15bf13,_0x3214bc));}}switch(_0x15bf13[_0x41d2('0x3e')][_0x41d2('0x55')]()){case _0x41d2('0x3f'):cmContact['exec'](this['agents'][_0x3214bc[_0x41d2('0x37')]],this['triggers'][_0x2c571c],_0x15bf13,_0x3214bc);break;case _0x41d2('0x58'):integration[_0x41d2('0x59')](_0x15bf13,_0x3214bc,this[_0x41d2('0x1c')],this[_0x41d2('0xe')][_0x3214bc[_0x41d2('0x37')]],this[_0x41d2('0xf')][_0x3214bc['queue']],this['voiceExtensions'][_0x3214bc[_0x41d2('0x5a')]]);break;case _0x41d2('0x5b'):urlforward[_0x41d2('0x59')](_0x15bf13,_0x3214bc);break;case'script':script[_0x41d2('0x59')](_0x15bf13,_0x3214bc);break;}}}}}}};Trigger[_0x41d2('0x31')][_0x41d2('0x46')]=function(_0x1d2af2,_0x60d33,_0x5788b2){var _0x11c502=url[_0x41d2('0x5c')](Mustache[_0x41d2('0x51')](_0x1d2af2,_0x60d33),!![]);if(_0x5788b2){_[_0x41d2('0x3a')](_0x11c502[_0x41d2('0x5d')],_0x60d33);}delete _0x11c502[_0x41d2('0x5e')];var _0x4849f5=url[_0x41d2('0x54')](_0x11c502);_0x4849f5=_0x4849f5[_0x41d2('0x5f')](/\/\?/g,'?');return _0x4849f5;};Trigger['prototype'][_0x41d2('0x39')]=function(_0x325150,_0xa1930d){var _0x118bed=!![],_0x562091=!![];if(_0x325150[_0x41d2('0x60')]['length']){_0x118bed=_['every'](_0x325150[_0x41d2('0x60')],this[_0x41d2('0x61')](_0xa1930d,_0x325150[_0x41d2('0x62')]));}if(_0x325150[_0x41d2('0x63')]['length']){_0x562091=_[_0x41d2('0x64')](_0x325150[_0x41d2('0x63')],this['checkConditions'](_0xa1930d,_0x325150[_0x41d2('0x62')]));}return _0x118bed&&_0x562091;};Trigger[_0x41d2('0x31')][_0x41d2('0x61')]=function(_0x465996,_0xea38bd){return function(_0xb8c2ac){switch(_0xb8c2ac[_0x41d2('0x65')]){case _0x41d2('0x66'):if(_0x465996['channel']===_0xea38bd){if(_0xea38bd==='chat'){return _0x465996[_0x41d2('0x67')]?operators[_0xb8c2ac['operator']](Number(_0xb8c2ac[_0x41d2('0x68')]),_0x465996[_0x41d2('0x67')]):![];}else{return _0x465996[_[_0x41d2('0x69')](_0xea38bd)+_0x41d2('0x6a')]?operators[_0xb8c2ac[_0x41d2('0x6b')]](Number(_0xb8c2ac[_0x41d2('0x68')]),_0x465996[_[_0x41d2('0x69')](_0xea38bd)+_0x41d2('0x6a')]):![];}}break;case _0x41d2('0x6c'):case _0x41d2('0x6d'):if(_0x465996[_0x41d2('0x62')]===_0xea38bd){return _0x465996[_0x41d2('0x6e')]?operators[_0xb8c2ac['operator']](_0xb8c2ac['value'],_0x465996[_0x41d2('0x6e')]):![];}break;case _0x41d2('0x6f'):return _0x465996[_0x41d2('0x6f')]?operators[_0xb8c2ac[_0x41d2('0x6b')]](_0xb8c2ac[_0x41d2('0x68')],_0x465996[_0x41d2('0x6f')]):![];case _0x41d2('0x70'):return _0x465996[_0x41d2('0x71')]?operators[_0xb8c2ac[_0x41d2('0x6b')]](_0xb8c2ac[_0x41d2('0x68')],_0x465996['membername']):![];case _0x41d2('0x72'):return _0x465996[_0x41d2('0x72')]?operators[_0xb8c2ac[_0x41d2('0x6b')]](_0xb8c2ac[_0x41d2('0x68')],_0x465996['lastevent']):![];case _0x41d2('0x5a'):return _0x465996[_0x41d2('0x5a')]?operators[_0xb8c2ac[_0x41d2('0x6b')]](_0xb8c2ac[_0x41d2('0x68')],_0x465996[_0x41d2('0x5a')]):![];}return![];};};module[_0x41d2('0x73')]=Trigger;