Built motion from commit (unavailable).|2.5.20
[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 _0xcf8d=['zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','freshsalesAccounts','accounts','dynamics365Accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentnosuchnumber','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:timeout','syncAgentDial','custom:dialconnect','custom:closedinteraction','custom:outgoingmessage','prototype','emit','info','stringify','interface','checkTriggers','hasOwnProperty','checkTrigger','merge','variables','Actions','length','action','toLowerCase','contactmanager','motionbar','browser','data1','popup','TemplateId','data2','html','render','template\x20not\x20found','buildUri','isNil','data3','data4','location','data5','600','data6','winArguments','user:%s','name','format','trigger:%s:%s','trigger:%s','exec','integration','routeId','script','parse','query','replace','AllConditions','every','checkConditions','channel','AnyConditions','field','account','chat','ChatWebsiteId','AccountId','operator','value','upperFirst','interaction','message','event','queue','membername','lastevent','exports','util','lodash','ioredis','./urlforward','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','localhost','socket.io-emitter','url','winapp','triggers','agents','voiceQueues','templates','voiceExtensions'];(function(_0x66f9f9,_0x4e5148){var _0x83efea=function(_0x170509){while(--_0x170509){_0x66f9f9['push'](_0x66f9f9['shift']());}};_0x83efea(++_0x4e5148);}(_0xcf8d,0x1a0));var _0xdcf8=function(_0x2adbeb,_0x5581be){_0x2adbeb=_0x2adbeb-0x0;var _0x5e18a6=_0xcf8d[_0x2adbeb];return _0x5e18a6;};'use strict';var util=require(_0xdcf8('0x0'));var _=require(_0xdcf8('0x1'));var url=require('url');var Mustache=require('mustache');var Redis=require(_0xdcf8('0x2'));var urlforward=require(_0xdcf8('0x3'));var integration=require('./integration');var cmContact=require('./cmContact');var script=require(_0xdcf8('0x4'));var config=require(_0xdcf8('0x5'));var logger=require(_0xdcf8('0x6'))(_0xdcf8('0x7'));var ami=require(_0xdcf8('0x8'));config[_0xdcf8('0x9')]=_[_0xdcf8('0xa')](config[_0xdcf8('0x9')],{'host':_0xdcf8('0xb'),'port':0x18eb});var io=require(_0xdcf8('0xc'))(new Redis(config[_0xdcf8('0x9')]));var operators={'equals':function(_0xe1fb2b,_0x2f78c6){return _0xe1fb2b==_0x2f78c6;},'not_equals':function(_0x5be3c0,_0x41a717){return _0x5be3c0!=_0x41a717;}};var barAndWebActions=['popup',_0xdcf8('0xd'),_0xdcf8('0xe')];function Trigger(_0x3f7f07){this[_0xdcf8('0xf')]=_0x3f7f07['triggers'];this[_0xdcf8('0x10')]=_0x3f7f07[_0xdcf8('0x10')];this[_0xdcf8('0x11')]=_0x3f7f07[_0xdcf8('0x11')];this[_0xdcf8('0x12')]=_0x3f7f07[_0xdcf8('0x12')];this['voiceExtensions']=_0x3f7f07[_0xdcf8('0x13')];this['zendeskAccounts']=_0x3f7f07[_0xdcf8('0x14')];this['freshdeskAccounts']=_0x3f7f07[_0xdcf8('0x15')];this[_0xdcf8('0x16')]=_0x3f7f07[_0xdcf8('0x16')];this[_0xdcf8('0x17')]=_0x3f7f07[_0xdcf8('0x17')];this[_0xdcf8('0x18')]=_0x3f7f07['zohoAccounts'];this[_0xdcf8('0x19')]=_0x3f7f07['deskAccounts'];this[_0xdcf8('0x1a')]=_0x3f7f07[_0xdcf8('0x1a')];this[_0xdcf8('0x1b')]=_0x3f7f07[_0xdcf8('0x1b')];this['dynamics365Accounts']=_0x3f7f07['dynamics365Accounts'];this['freshsalesAccounts']=_0x3f7f07[_0xdcf8('0x1c')];this[_0xdcf8('0x1d')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0xdcf8('0x16')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0xdcf8('0x18')],'desk':this[_0xdcf8('0x19')],'vtiger':this[_0xdcf8('0x1a')],'dynamics365':this[_0xdcf8('0x1e')],'freshsales':this[_0xdcf8('0x1c')],'servicenow':this[_0xdcf8('0x1b')]};ami['on'](_0xdcf8('0x1f'),this[_0xdcf8('0x20')]['bind'](this));ami['on']('custom:agentconnect',this[_0xdcf8('0x20')][_0xdcf8('0x21')](this));ami['on']('custom:agentringnoanswer',this['syncCustomEvent']['bind'](this));ami['on']('custom:agentcomplete',this[_0xdcf8('0x20')][_0xdcf8('0x21')](this));ami['on'](_0xdcf8('0x22'),this[_0xdcf8('0x20')][_0xdcf8('0x21')](this));ami['on']('custom:agentnoanswer',this[_0xdcf8('0x20')][_0xdcf8('0x21')](this));ami['on'](_0xdcf8('0x23'),this[_0xdcf8('0x20')]['bind'](this));ami['on'](_0xdcf8('0x24'),this[_0xdcf8('0x20')][_0xdcf8('0x21')](this));ami['on'](_0xdcf8('0x25'),this[_0xdcf8('0x20')][_0xdcf8('0x21')](this));ami['on'](_0xdcf8('0x26'),this[_0xdcf8('0x20')][_0xdcf8('0x21')](this));ami['on'](_0xdcf8('0x27'),this['syncCustomEvent'][_0xdcf8('0x21')](this));ami['on']('custom:dialbegin',this[_0xdcf8('0x28')][_0xdcf8('0x21')](this));ami['on'](_0xdcf8('0x29'),this[_0xdcf8('0x28')][_0xdcf8('0x21')](this));ami['on']('custom:dialend',this[_0xdcf8('0x28')][_0xdcf8('0x21')](this));ami['on']('custom:newinteraction',this['syncCustomEvent'][_0xdcf8('0x21')](this));ami['on'](_0xdcf8('0x2a'),this['syncCustomEvent'][_0xdcf8('0x21')](this));ami['on']('custom:incomingmessage',this[_0xdcf8('0x20')]['bind'](this));ami['on'](_0xdcf8('0x2b'),this[_0xdcf8('0x20')][_0xdcf8('0x21')](this));ami['on']('custom:acceptmessage',this['syncCustomEvent']['bind'](this));ami['on']('custom:rejectmessage',this[_0xdcf8('0x20')]['bind'](this));}Trigger[_0xdcf8('0x2c')][_0xdcf8('0x2d')]=function(_0x45f499,_0x1319b3,_0x3cce83){logger[_0xdcf8('0x2e')](_0x45f499,_0x1319b3,JSON[_0xdcf8('0x2f')](_0x3cce83));io['to'](_0x45f499)[_0xdcf8('0x2d')](_0x1319b3,_0x3cce83);};Trigger[_0xdcf8('0x2c')][_0xdcf8('0x20')]=function(_0x4d6b90){var _0x463363=_['clone'](_0x4d6b90);this['checkTriggers'](_0x463363);};Trigger[_0xdcf8('0x2c')][_0xdcf8('0x28')]=function(_0x26c8a1){if(this['agents'][_0x26c8a1[_0xdcf8('0x30')]]){this[_0xdcf8('0x20')](_0x26c8a1);}};Trigger[_0xdcf8('0x2c')][_0xdcf8('0x31')]=function(_0x46a12d){var _0x2b60f3;for(var _0x415623 in this[_0xdcf8('0xf')]){if(this[_0xdcf8('0xf')][_0xdcf8('0x32')](_0x415623)){if(this['triggers'][_0x415623]['status']){_0x2b60f3=this[_0xdcf8('0x33')](this['triggers'][_0x415623],_0x46a12d);if(_0x2b60f3){_[_0xdcf8('0x34')](_0x46a12d,_0x46a12d[_0xdcf8('0x35')]);for(var _0x1cbc29=0x0,_0x5ccd7f,_0x33a0b9,_0x5147de;_0x1cbc29<this['triggers'][_0x415623][_0xdcf8('0x36')][_0xdcf8('0x37')];_0x1cbc29+=0x1){_0x5ccd7f=this[_0xdcf8('0xf')][_0x415623]['Actions'][_0x1cbc29];if(this['agents'][_0x46a12d[_0xdcf8('0x30')]]){switch(_0x5ccd7f[_0xdcf8('0x38')][_0xdcf8('0x39')]()){case _0xdcf8('0x3a'):break;case _0xdcf8('0x3b'):case _0xdcf8('0x3c'):var _0x2f321b={};switch(barAndWebActions[_0x5ccd7f[_0xdcf8('0x3d')]]){case _0xdcf8('0x3e'):_0x2f321b[_0xdcf8('0x3f')]=_0x5ccd7f[_0xdcf8('0x40')];_0x2f321b[_0xdcf8('0x41')]=this[_0xdcf8('0x12')][_0x5ccd7f[_0xdcf8('0x40')]]?Mustache[_0xdcf8('0x42')](this[_0xdcf8('0x12')][_0x5ccd7f[_0xdcf8('0x40')]][_0xdcf8('0x41')],_0x46a12d):_0xdcf8('0x43');break;case _0xdcf8('0xd'):_0x2f321b['uri']=this[_0xdcf8('0x44')](_0x5ccd7f[_0xdcf8('0x40')],_0x46a12d,_[_0xdcf8('0x45')](_0x5ccd7f[_0xdcf8('0x46')])?!![]:parseInt(_0x5ccd7f['data3'],0xa));if(_[_0xdcf8('0x45')](_0x5ccd7f[_0xdcf8('0x47')])){_0x2f321b[_0xdcf8('0x48')]='0';}else{_0x2f321b['uriLocation']=_0x5ccd7f[_0xdcf8('0x47')];_0x2f321b['windowWidth']=_[_0xdcf8('0x45')](_0x5ccd7f[_0xdcf8('0x49')])?'800':_0x5ccd7f['data5'];_0x2f321b['windowHeight']=_[_0xdcf8('0x45')](_0x5ccd7f['data6'])?_0xdcf8('0x4a'):_0x5ccd7f[_0xdcf8('0x4b')];}break;case _0xdcf8('0xe'):_0x2f321b['winApplication']=_0x5ccd7f[_0xdcf8('0x40')]?Mustache[_0xdcf8('0x42')](_0x5ccd7f['data2'],_0x46a12d):'';_0x2f321b[_0xdcf8('0x4c')]=_0x5ccd7f[_0xdcf8('0x46')]?Mustache[_0xdcf8('0x42')](_0x5ccd7f[_0xdcf8('0x46')],_0x46a12d):'';break;}this[_0xdcf8('0x2d')](util['format'](_0xdcf8('0x4d'),this[_0xdcf8('0x10')][_0x46a12d['interface']][_0xdcf8('0x4e')]),util[_0xdcf8('0x4f')](_0xdcf8('0x50'),_0x5ccd7f[_0xdcf8('0x38')][_0xdcf8('0x39')](),barAndWebActions[_0x5ccd7f[_0xdcf8('0x3d')]]),_[_0xdcf8('0x34')](_0x2f321b,_0x46a12d));break;case'jscripty':this[_0xdcf8('0x2d')](util[_0xdcf8('0x4f')](_0xdcf8('0x4d'),this[_0xdcf8('0x10')][_0x46a12d['interface']][_0xdcf8('0x4e')]),util[_0xdcf8('0x4f')](_0xdcf8('0x51'),_0x5ccd7f[_0xdcf8('0x38')][_0xdcf8('0x39')]()),_[_0xdcf8('0x34')]({'ProjectId':parseInt(_0x5ccd7f['data1'],0xa)},_0x46a12d));break;default:this[_0xdcf8('0x2d')](util[_0xdcf8('0x4f')](_0xdcf8('0x4d'),this[_0xdcf8('0x10')][_0x46a12d[_0xdcf8('0x30')]][_0xdcf8('0x4e')]),util[_0xdcf8('0x4f')]('trigger:%s',_0x5ccd7f[_0xdcf8('0x38')][_0xdcf8('0x39')]()),_['merge']({},_0x5ccd7f,_0x46a12d));}}switch(_0x5ccd7f[_0xdcf8('0x38')][_0xdcf8('0x39')]()){case _0xdcf8('0x3a'):cmContact[_0xdcf8('0x52')](this[_0xdcf8('0x10')][_0x46a12d[_0xdcf8('0x30')]],this[_0xdcf8('0xf')][_0x415623],_0x5ccd7f,_0x46a12d);break;case _0xdcf8('0x53'):integration[_0xdcf8('0x52')](_0x5ccd7f,_0x46a12d,this[_0xdcf8('0x1d')],this[_0xdcf8('0x10')][_0x46a12d[_0xdcf8('0x30')]],this[_0xdcf8('0x11')][_0x46a12d['queue']],this[_0xdcf8('0x13')][_0x46a12d[_0xdcf8('0x54')]]);break;case'urlforward':urlforward[_0xdcf8('0x52')](_0x5ccd7f,_0x46a12d);break;case _0xdcf8('0x55'):script[_0xdcf8('0x52')](_0x5ccd7f,_0x46a12d);break;}}}}}}};Trigger[_0xdcf8('0x2c')][_0xdcf8('0x44')]=function(_0x46534c,_0xad7450,_0x3446e1){var _0x1432f8=url[_0xdcf8('0x56')](Mustache[_0xdcf8('0x42')](_0x46534c,_0xad7450),!![]);if(_0x3446e1){_[_0xdcf8('0x34')](_0x1432f8[_0xdcf8('0x57')],_0xad7450);}delete _0x1432f8['search'];var _0x20c067=url['format'](_0x1432f8);_0x20c067=_0x20c067[_0xdcf8('0x58')](/\/\?/g,'?');return _0x20c067;};Trigger[_0xdcf8('0x2c')][_0xdcf8('0x33')]=function(_0xc2a87b,_0x4dfeb4){var _0x12223c=!![],_0x21d29e=!![];if(_0xc2a87b[_0xdcf8('0x59')][_0xdcf8('0x37')]){_0x12223c=_[_0xdcf8('0x5a')](_0xc2a87b[_0xdcf8('0x59')],this[_0xdcf8('0x5b')](_0x4dfeb4,_0xc2a87b[_0xdcf8('0x5c')]));}if(_0xc2a87b[_0xdcf8('0x5d')]['length']){_0x21d29e=_['some'](_0xc2a87b[_0xdcf8('0x5d')],this[_0xdcf8('0x5b')](_0x4dfeb4,_0xc2a87b[_0xdcf8('0x5c')]));}return _0x12223c&&_0x21d29e;};Trigger[_0xdcf8('0x2c')][_0xdcf8('0x5b')]=function(_0x4f3846,_0x486d36){return function(_0xa12b5c){switch(_0xa12b5c[_0xdcf8('0x5e')]){case _0xdcf8('0x5f'):if(_0x4f3846[_0xdcf8('0x5c')]===_0x486d36){if(_0x486d36===_0xdcf8('0x60')){return _0x4f3846[_0xdcf8('0x61')]?operators[_0xa12b5c['operator']](Number(_0xa12b5c['value']),_0x4f3846[_0xdcf8('0x61')]):![];}else{return _0x4f3846[_['upperFirst'](_0x486d36)+_0xdcf8('0x62')]?operators[_0xa12b5c[_0xdcf8('0x63')]](Number(_0xa12b5c[_0xdcf8('0x64')]),_0x4f3846[_[_0xdcf8('0x65')](_0x486d36)+_0xdcf8('0x62')]):![];}}break;case _0xdcf8('0x66'):case _0xdcf8('0x67'):if(_0x4f3846[_0xdcf8('0x5c')]===_0x486d36){return _0x4f3846[_0xdcf8('0x68')]?operators[_0xa12b5c[_0xdcf8('0x63')]](_0xa12b5c[_0xdcf8('0x64')],_0x4f3846[_0xdcf8('0x68')]):![];}break;case _0xdcf8('0x69'):return _0x4f3846['queue']?operators[_0xa12b5c[_0xdcf8('0x63')]](_0xa12b5c[_0xdcf8('0x64')],_0x4f3846['queue']):![];case'agent':return _0x4f3846[_0xdcf8('0x6a')]?operators[_0xa12b5c[_0xdcf8('0x63')]](_0xa12b5c[_0xdcf8('0x64')],_0x4f3846[_0xdcf8('0x6a')]):![];case _0xdcf8('0x6b'):return _0x4f3846[_0xdcf8('0x6b')]?operators[_0xa12b5c[_0xdcf8('0x63')]](_0xa12b5c[_0xdcf8('0x64')],_0x4f3846[_0xdcf8('0x6b')]):![];case _0xdcf8('0x54'):return _0x4f3846[_0xdcf8('0x54')]?operators[_0xa12b5c[_0xdcf8('0x63')]](_0xa12b5c[_0xdcf8('0x64')],_0x4f3846[_0xdcf8('0x54')]):![];}return![];};};module[_0xdcf8('0x6c')]=Trigger;