Built motion from commit (unavailable).|2.5.6
[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 _0x78f4=['custom:timeout','custom:dialbegin','custom:dialconnect','syncAgentDial','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','prototype','info','stringify','emit','clone','checkTriggers','interface','hasOwnProperty','checkTrigger','merge','variables','Actions','length','action','toLowerCase','motionbar','browser','data1','TemplateId','html','data2','render','template\x20not\x20found','uri','isNil','data3','data4','location','uriLocation','data5','800','windowHeight','data6','600','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','jscripty','contactmanager','exec','routeId','buildUri','parse','AllConditions','every','checkConditions','AnyConditions','field','account','channel','chat','ChatWebsiteId','operator','upperFirst','AccountId','value','message','event','queue','agent','membername','lastevent','exports','url','ioredis','./integration','./cmContact','../../../config/logger','trigger','../ami','redis','defaults','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','vtigerAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnoanswer','custom:agentbusy','custom:agentreject'];(function(_0x2f92e6,_0x469041){var _0x31709a=function(_0x51fe92){while(--_0x51fe92){_0x2f92e6['push'](_0x2f92e6['shift']());}};_0x31709a(++_0x469041);}(_0x78f4,0x193));var _0x478f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x78f4[_0x3dd15e];return _0x231fd0;};'use strict';var util=require('util');var _=require('lodash');var url=require(_0x478f('0x0'));var Mustache=require('mustache');var Redis=require(_0x478f('0x1'));var urlforward=require('./urlforward');var integration=require(_0x478f('0x2'));var cmContact=require(_0x478f('0x3'));var script=require('./script');var config=require('../../../config/environment');var logger=require(_0x478f('0x4'))(_0x478f('0x5'));var ami=require(_0x478f('0x6'));config[_0x478f('0x7')]=_[_0x478f('0x8')](config[_0x478f('0x7')],{'host':'localhost','port':0x18eb});var io=require(_0x478f('0x9'))(new Redis(config[_0x478f('0x7')]));var operators={'equals':function(_0x4e537f,_0x77ddb8){return _0x4e537f==_0x77ddb8;},'not_equals':function(_0x2f6821,_0x5bafc2){return _0x2f6821!=_0x5bafc2;}};var barAndWebActions=[_0x478f('0xa'),_0x478f('0x0'),_0x478f('0xb')];function Trigger(_0x289dc3){this[_0x478f('0xc')]=_0x289dc3[_0x478f('0xc')];this[_0x478f('0xd')]=_0x289dc3[_0x478f('0xd')];this['voiceQueues']=_0x289dc3[_0x478f('0xe')];this[_0x478f('0xf')]=_0x289dc3[_0x478f('0xf')];this[_0x478f('0x10')]=_0x289dc3['voiceExtensions'];this[_0x478f('0x11')]=_0x289dc3['zendeskAccounts'];this[_0x478f('0x12')]=_0x289dc3[_0x478f('0x12')];this[_0x478f('0x13')]=_0x289dc3[_0x478f('0x13')];this[_0x478f('0x14')]=_0x289dc3[_0x478f('0x14')];this[_0x478f('0x15')]=_0x289dc3[_0x478f('0x15')];this[_0x478f('0x16')]=_0x289dc3[_0x478f('0x16')];this['vtigerAccounts']=_0x289dc3['vtigerAccounts'];this['servicenowAccounts']=_0x289dc3[_0x478f('0x17')];this[_0x478f('0x18')]=_0x289dc3['dynamics365Accounts'];this['freshsalesAccounts']=_0x289dc3[_0x478f('0x19')];this[_0x478f('0x1a')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x478f('0x13')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0x478f('0x14')],'zoho':this[_0x478f('0x15')],'desk':this[_0x478f('0x16')],'vtiger':this[_0x478f('0x1b')],'dynamics365':this[_0x478f('0x18')],'freshsales':this[_0x478f('0x19')],'servicenow':this[_0x478f('0x17')]};ami['on'](_0x478f('0x1c'),this[_0x478f('0x1d')][_0x478f('0x1e')](this));ami['on'](_0x478f('0x1f'),this[_0x478f('0x1d')][_0x478f('0x1e')](this));ami['on'](_0x478f('0x20'),this[_0x478f('0x1d')][_0x478f('0x1e')](this));ami['on'](_0x478f('0x21'),this['syncCustomEvent']['bind'](this));ami['on']('custom:agentnosuchnumber',this[_0x478f('0x1d')][_0x478f('0x1e')](this));ami['on'](_0x478f('0x22'),this[_0x478f('0x1d')][_0x478f('0x1e')](this));ami['on'](_0x478f('0x23'),this[_0x478f('0x1d')][_0x478f('0x1e')](this));ami['on']('custom:agentcongestion',this[_0x478f('0x1d')][_0x478f('0x1e')](this));ami['on'](_0x478f('0x24'),this[_0x478f('0x1d')][_0x478f('0x1e')](this));ami['on']('custom:queuecallerabandon',this[_0x478f('0x1d')][_0x478f('0x1e')](this));ami['on'](_0x478f('0x25'),this[_0x478f('0x1d')][_0x478f('0x1e')](this));ami['on'](_0x478f('0x26'),this['syncAgentDial']['bind'](this));ami['on'](_0x478f('0x27'),this[_0x478f('0x28')][_0x478f('0x1e')](this));ami['on']('custom:dialend',this[_0x478f('0x28')][_0x478f('0x1e')](this));ami['on']('custom:newinteraction',this[_0x478f('0x1d')][_0x478f('0x1e')](this));ami['on']('custom:closedinteraction',this['syncCustomEvent']['bind'](this));ami['on'](_0x478f('0x29'),this[_0x478f('0x1d')][_0x478f('0x1e')](this));ami['on'](_0x478f('0x2a'),this['syncCustomEvent']['bind'](this));ami['on'](_0x478f('0x2b'),this[_0x478f('0x1d')]['bind'](this));ami['on']('custom:rejectmessage',this[_0x478f('0x1d')][_0x478f('0x1e')](this));}Trigger[_0x478f('0x2c')]['emit']=function(_0x4752fc,_0xde1843,_0x6031bc){logger[_0x478f('0x2d')](_0x4752fc,_0xde1843,JSON[_0x478f('0x2e')](_0x6031bc));io['to'](_0x4752fc)[_0x478f('0x2f')](_0xde1843,_0x6031bc);};Trigger[_0x478f('0x2c')][_0x478f('0x1d')]=function(_0x3420d9){var _0x51baa1=_[_0x478f('0x30')](_0x3420d9);this[_0x478f('0x31')](_0x51baa1);};Trigger[_0x478f('0x2c')][_0x478f('0x28')]=function(_0x344cf1){if(this[_0x478f('0xd')][_0x344cf1[_0x478f('0x32')]]){this[_0x478f('0x1d')](_0x344cf1);}};Trigger[_0x478f('0x2c')]['checkTriggers']=function(_0x76876){var _0x532037;for(var _0x31f669 in this['triggers']){if(this[_0x478f('0xc')][_0x478f('0x33')](_0x31f669)){if(this['triggers'][_0x31f669]['status']){_0x532037=this[_0x478f('0x34')](this[_0x478f('0xc')][_0x31f669],_0x76876);if(_0x532037){_[_0x478f('0x35')](_0x76876,_0x76876[_0x478f('0x36')]);for(var _0x2d3dc2=0x0,_0x206c22,_0x1d080c,_0x3d99b8;_0x2d3dc2<this[_0x478f('0xc')][_0x31f669][_0x478f('0x37')][_0x478f('0x38')];_0x2d3dc2+=0x1){_0x206c22=this['triggers'][_0x31f669][_0x478f('0x37')][_0x2d3dc2];if(this['agents'][_0x76876[_0x478f('0x32')]]){switch(_0x206c22[_0x478f('0x39')][_0x478f('0x3a')]()){case'contactmanager':break;case _0x478f('0x3b'):case _0x478f('0x3c'):var _0x100cf6={};switch(barAndWebActions[_0x206c22[_0x478f('0x3d')]]){case _0x478f('0xa'):_0x100cf6[_0x478f('0x3e')]=_0x206c22['data2'];_0x100cf6[_0x478f('0x3f')]=this[_0x478f('0xf')][_0x206c22[_0x478f('0x40')]]?Mustache[_0x478f('0x41')](this[_0x478f('0xf')][_0x206c22[_0x478f('0x40')]][_0x478f('0x3f')],_0x76876):_0x478f('0x42');break;case _0x478f('0x0'):_0x100cf6[_0x478f('0x43')]=this['buildUri'](_0x206c22[_0x478f('0x40')],_0x76876,_[_0x478f('0x44')](_0x206c22[_0x478f('0x45')])?!![]:parseInt(_0x206c22['data3'],0xa));if(_[_0x478f('0x44')](_0x206c22[_0x478f('0x46')])){_0x100cf6[_0x478f('0x47')]='0';}else{_0x100cf6[_0x478f('0x48')]=_0x206c22[_0x478f('0x46')];_0x100cf6['windowWidth']=_[_0x478f('0x44')](_0x206c22[_0x478f('0x49')])?_0x478f('0x4a'):_0x206c22[_0x478f('0x49')];_0x100cf6[_0x478f('0x4b')]=_[_0x478f('0x44')](_0x206c22[_0x478f('0x4c')])?_0x478f('0x4d'):_0x206c22[_0x478f('0x4c')];}break;case _0x478f('0xb'):_0x100cf6[_0x478f('0x4e')]=_0x206c22[_0x478f('0x40')]?Mustache[_0x478f('0x41')](_0x206c22['data2'],_0x76876):'';_0x100cf6[_0x478f('0x4f')]=_0x206c22['data3']?Mustache[_0x478f('0x41')](_0x206c22[_0x478f('0x45')],_0x76876):'';break;}this['emit'](util[_0x478f('0x50')](_0x478f('0x51'),this[_0x478f('0xd')][_0x76876[_0x478f('0x32')]][_0x478f('0x52')]),util['format'](_0x478f('0x53'),_0x206c22[_0x478f('0x39')]['toLowerCase'](),barAndWebActions[_0x206c22[_0x478f('0x3d')]]),_[_0x478f('0x35')](_0x100cf6,_0x76876));break;case _0x478f('0x54'):this[_0x478f('0x2f')](util[_0x478f('0x50')](_0x478f('0x51'),this['agents'][_0x76876[_0x478f('0x32')]]['name']),util[_0x478f('0x50')]('trigger:%s',_0x206c22[_0x478f('0x39')][_0x478f('0x3a')]()),_[_0x478f('0x35')]({'ProjectId':parseInt(_0x206c22[_0x478f('0x3d')],0xa)},_0x76876));break;default:this[_0x478f('0x2f')](util[_0x478f('0x50')](_0x478f('0x51'),this[_0x478f('0xd')][_0x76876['interface']][_0x478f('0x52')]),util[_0x478f('0x50')]('trigger:%s',_0x206c22['action']['toLowerCase']()),_[_0x478f('0x35')]({},_0x206c22,_0x76876));}}switch(_0x206c22['action'][_0x478f('0x3a')]()){case _0x478f('0x55'):cmContact[_0x478f('0x56')](this['agents'][_0x76876[_0x478f('0x32')]],this['triggers'][_0x31f669],_0x206c22,_0x76876);break;case'integration':integration[_0x478f('0x56')](_0x206c22,_0x76876,this[_0x478f('0x1a')],this['agents'][_0x76876[_0x478f('0x32')]],this[_0x478f('0xe')][_0x76876['queue']],this[_0x478f('0x10')][_0x76876[_0x478f('0x57')]]);break;case'urlforward':urlforward[_0x478f('0x56')](_0x206c22,_0x76876);break;case'script':script['exec'](_0x206c22,_0x76876);break;}}}}}}};Trigger[_0x478f('0x2c')][_0x478f('0x58')]=function(_0x11c46f,_0xc01093,_0x5ea5ad){var _0x4e59e7=url[_0x478f('0x59')](Mustache['render'](_0x11c46f,_0xc01093),!![]);if(_0x5ea5ad){_[_0x478f('0x35')](_0x4e59e7['query'],_0xc01093);}delete _0x4e59e7['search'];var _0x2b50dc=url[_0x478f('0x50')](_0x4e59e7);_0x2b50dc=_0x2b50dc['replace'](/\/\?/g,'?');return _0x2b50dc;};Trigger[_0x478f('0x2c')][_0x478f('0x34')]=function(_0x54efd2,_0x94e936){var _0x12b2e6=!![],_0x2b2ed4=!![];if(_0x54efd2[_0x478f('0x5a')]['length']){_0x12b2e6=_[_0x478f('0x5b')](_0x54efd2[_0x478f('0x5a')],this[_0x478f('0x5c')](_0x94e936,_0x54efd2['channel']));}if(_0x54efd2[_0x478f('0x5d')][_0x478f('0x38')]){_0x2b2ed4=_['some'](_0x54efd2[_0x478f('0x5d')],this[_0x478f('0x5c')](_0x94e936,_0x54efd2['channel']));}return _0x12b2e6&&_0x2b2ed4;};Trigger[_0x478f('0x2c')][_0x478f('0x5c')]=function(_0xbcf683,_0x1d21b6){return function(_0x26729e){switch(_0x26729e[_0x478f('0x5e')]){case _0x478f('0x5f'):if(_0xbcf683[_0x478f('0x60')]===_0x1d21b6){if(_0x1d21b6===_0x478f('0x61')){return _0xbcf683[_0x478f('0x62')]?operators[_0x26729e[_0x478f('0x63')]](Number(_0x26729e['value']),_0xbcf683[_0x478f('0x62')]):![];}else{return _0xbcf683[_[_0x478f('0x64')](_0x1d21b6)+_0x478f('0x65')]?operators[_0x26729e[_0x478f('0x63')]](Number(_0x26729e[_0x478f('0x66')]),_0xbcf683[_[_0x478f('0x64')](_0x1d21b6)+_0x478f('0x65')]):![];}}break;case'interaction':case _0x478f('0x67'):if(_0xbcf683['channel']===_0x1d21b6){return _0xbcf683[_0x478f('0x68')]?operators[_0x26729e[_0x478f('0x63')]](_0x26729e[_0x478f('0x66')],_0xbcf683[_0x478f('0x68')]):![];}break;case _0x478f('0x69'):return _0xbcf683['queue']?operators[_0x26729e[_0x478f('0x63')]](_0x26729e[_0x478f('0x66')],_0xbcf683[_0x478f('0x69')]):![];case _0x478f('0x6a'):return _0xbcf683[_0x478f('0x6b')]?operators[_0x26729e['operator']](_0x26729e[_0x478f('0x66')],_0xbcf683[_0x478f('0x6b')]):![];case _0x478f('0x6c'):return _0xbcf683[_0x478f('0x6c')]?operators[_0x26729e[_0x478f('0x63')]](_0x26729e[_0x478f('0x66')],_0xbcf683[_0x478f('0x6c')]):![];case _0x478f('0x57'):return _0xbcf683[_0x478f('0x57')]?operators[_0x26729e[_0x478f('0x63')]](_0x26729e[_0x478f('0x66')],_0xbcf683['routeId']):![];}return![];};};module[_0x478f('0x6d')]=Trigger;