Built motion from commit ddca4d0d.|2.5.47
[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 _0x5699=['custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:outgoingmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','stringify','clone','motionChannel','undefined','voice','checkTriggers','hasOwnProperty','status','variables','Actions','interface','action','contactmanager','motionbar','browser','data2','html','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','uriLocation','windowWidth','data5','800','data6','600','winArguments','format','user:%s','name','merge','trigger:%s','toLowerCase','exec','integration','voiceExtensions','urlforward','script','query','search','checkTrigger','channel','AllConditions','checkConditions','AnyConditions','length','some','field','chat','ChatWebsiteId','operator','upperFirst','AccountId','value','message','event','queue','agent','membername','lastevent','routeId','mailSubstatus','null','substatus','offlineMessage','created','equals','exports','util','lodash','url','ioredis','./urlforward','./integration','../../../config/environment','../../../config/logger','../ami','redis','defaults','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentcomplete','custom:agentnoanswer','custom:agentcongestion','custom:amd','custom:queuecallerabandon','custom:timeout'];(function(_0x14a791,_0xee32e9){var _0x2150f3=function(_0xed859e){while(--_0xed859e){_0x14a791['push'](_0x14a791['shift']());}};_0x2150f3(++_0xee32e9);}(_0x5699,0x148));var _0x9569=function(_0x4624cf,_0x2cb34f){_0x4624cf=_0x4624cf-0x0;var _0x404784=_0x5699[_0x4624cf];return _0x404784;};'use strict';var util=require(_0x9569('0x0'));var _=require(_0x9569('0x1'));var url=require(_0x9569('0x2'));var Mustache=require('mustache');var Redis=require(_0x9569('0x3'));var urlforward=require(_0x9569('0x4'));var integration=require(_0x9569('0x5'));var cmContact=require('./cmContact');var script=require('./script');var config=require(_0x9569('0x6'));var logger=require(_0x9569('0x7'))('trigger');var ami=require(_0x9569('0x8'));config[_0x9569('0x9')]=_[_0x9569('0xa')](config[_0x9569('0x9')],{'host':_0x9569('0xb'),'port':0x18eb});var io=require(_0x9569('0xc'))(new Redis(config[_0x9569('0x9')]));var operators={'equals':function(_0x50c970,_0x3170a7){return _0x50c970==_0x3170a7;},'not_equals':function(_0x23578d,_0x16ad9f){return _0x23578d!=_0x16ad9f;}};var barAndWebActions=[_0x9569('0xd'),_0x9569('0x2'),_0x9569('0xe')];function Trigger(_0x1271d9){this['triggers']=_0x1271d9[_0x9569('0xf')];this[_0x9569('0x10')]=_0x1271d9[_0x9569('0x10')];this[_0x9569('0x11')]=_0x1271d9['voiceQueues'];this[_0x9569('0x12')]=_0x1271d9[_0x9569('0x12')];this['voiceExtensions']=_0x1271d9['voiceExtensions'];this[_0x9569('0x13')]=_0x1271d9['zendeskAccounts'];this[_0x9569('0x14')]=_0x1271d9[_0x9569('0x14')];this[_0x9569('0x15')]=_0x1271d9[_0x9569('0x15')];this['sugarcrmAccounts']=_0x1271d9[_0x9569('0x16')];this['zohoAccounts']=_0x1271d9['zohoAccounts'];this[_0x9569('0x17')]=_0x1271d9[_0x9569('0x17')];this['vtigerAccounts']=_0x1271d9[_0x9569('0x18')];this['servicenowAccounts']=_0x1271d9[_0x9569('0x19')];this[_0x9569('0x1a')]=_0x1271d9[_0x9569('0x1a')];this['freshsalesAccounts']=_0x1271d9[_0x9569('0x1b')];this[_0x9569('0x1c')]={'zendesk':this[_0x9569('0x13')],'salesforce':this[_0x9569('0x15')],'freshdesk':this[_0x9569('0x14')],'sugarcrm':this[_0x9569('0x16')],'zoho':this['zohoAccounts'],'desk':this['deskAccounts'],'vtiger':this[_0x9569('0x18')],'dynamics365':this[_0x9569('0x1a')],'freshsales':this['freshsalesAccounts'],'servicenow':this['servicenowAccounts']};ami['on'](_0x9569('0x1d'),this[_0x9569('0x1e')][_0x9569('0x1f')](this));ami['on']('custom:agentconnect',this['syncCustomEvent'][_0x9569('0x1f')](this));ami['on']('custom:agentringnoanswer',this[_0x9569('0x1e')]['bind'](this));ami['on'](_0x9569('0x20'),this[_0x9569('0x1e')][_0x9569('0x1f')](this));ami['on']('custom:agentnosuchnumber',this['syncCustomEvent'][_0x9569('0x1f')](this));ami['on'](_0x9569('0x21'),this['syncCustomEvent'][_0x9569('0x1f')](this));ami['on']('custom:agentbusy',this[_0x9569('0x1e')][_0x9569('0x1f')](this));ami['on'](_0x9569('0x22'),this[_0x9569('0x1e')]['bind'](this));ami['on']('custom:agentreject',this[_0x9569('0x1e')][_0x9569('0x1f')](this));ami['on'](_0x9569('0x23'),this[_0x9569('0x1e')]['bind'](this));ami['on'](_0x9569('0x24'),this['syncCustomEvent'][_0x9569('0x1f')](this));ami['on'](_0x9569('0x25'),this[_0x9569('0x1e')][_0x9569('0x1f')](this));ami['on'](_0x9569('0x26'),this[_0x9569('0x27')][_0x9569('0x1f')](this));ami['on'](_0x9569('0x28'),this['syncAgentDial']['bind'](this));ami['on'](_0x9569('0x29'),this[_0x9569('0x27')]['bind'](this));ami['on'](_0x9569('0x2a'),this['syncCustomEvent']['bind'](this));ami['on']('custom:closedinteraction',this[_0x9569('0x1e')][_0x9569('0x1f')](this));ami['on']('custom:substatus',this[_0x9569('0x1e')][_0x9569('0x1f')](this));ami['on']('custom:incomingmessage',this[_0x9569('0x1e')]['bind'](this));ami['on'](_0x9569('0x2b'),this['syncCustomEvent'][_0x9569('0x1f')](this));ami['on']('custom:acceptmessage',this[_0x9569('0x1e')][_0x9569('0x1f')](this));ami['on'](_0x9569('0x2c'),this[_0x9569('0x1e')]['bind'](this));ami['on'](_0x9569('0x2d'),this[_0x9569('0x1e')][_0x9569('0x1f')](this));}Trigger[_0x9569('0x2e')][_0x9569('0x2f')]=function(_0x26dcf2,_0x413211,_0x3b9449){logger[_0x9569('0x30')](_0x26dcf2,_0x413211,JSON[_0x9569('0x31')](_0x3b9449));io['to'](_0x26dcf2)[_0x9569('0x2f')](_0x413211,_0x3b9449);};Trigger[_0x9569('0x2e')][_0x9569('0x1e')]=function(_0x2644b2){var _0x2b801c=_[_0x9569('0x32')](_0x2644b2);if(typeof _0x2b801c[_0x9569('0x33')]===_0x9569('0x34')){_0x2b801c['motionChannel']=_0x9569('0x35');}this['checkTriggers'](_0x2b801c);};Trigger['prototype'][_0x9569('0x27')]=function(_0x5aa64e){if(this[_0x9569('0x10')][_0x5aa64e['interface']]){this['syncCustomEvent'](_0x5aa64e);}};Trigger['prototype'][_0x9569('0x36')]=function(_0x368412){var _0x536871;for(var _0x3c98a7 in this[_0x9569('0xf')]){if(this['triggers'][_0x9569('0x37')](_0x3c98a7)){if(this[_0x9569('0xf')][_0x3c98a7][_0x9569('0x38')]){_0x536871=this['checkTrigger'](this[_0x9569('0xf')][_0x3c98a7],_0x368412);if(_0x536871){_['merge'](_0x368412,_0x368412[_0x9569('0x39')]);for(var _0x37562e=0x0,_0x178801,_0x2a60aa,_0x1014d3;_0x37562e<this['triggers'][_0x3c98a7][_0x9569('0x3a')]['length'];_0x37562e+=0x1){_0x178801=this['triggers'][_0x3c98a7][_0x9569('0x3a')][_0x37562e];if(this['agents'][_0x368412[_0x9569('0x3b')]]){switch(_0x178801[_0x9569('0x3c')]['toLowerCase']()){case _0x9569('0x3d'):break;case _0x9569('0x3e'):case _0x9569('0x3f'):var _0x22faeb={};switch(barAndWebActions[_0x178801['data1']]){case _0x9569('0xd'):_0x22faeb['TemplateId']=_0x178801[_0x9569('0x40')];_0x22faeb[_0x9569('0x41')]=this[_0x9569('0x12')][_0x178801[_0x9569('0x40')]]?Mustache[_0x9569('0x42')](this['templates'][_0x178801['data2']]['html'],_0x368412):_0x9569('0x43');break;case _0x9569('0x2'):_0x22faeb[_0x9569('0x44')]=this[_0x9569('0x45')](_0x178801[_0x9569('0x40')],_0x368412,_[_0x9569('0x46')](_0x178801['data3'])?!![]:parseInt(_0x178801[_0x9569('0x47')],0xa));if(_[_0x9569('0x46')](_0x178801[_0x9569('0x48')])){_0x22faeb[_0x9569('0x49')]='0';}else{_0x22faeb[_0x9569('0x4a')]=_0x178801['data4'];_0x22faeb[_0x9569('0x4b')]=_[_0x9569('0x46')](_0x178801[_0x9569('0x4c')])?_0x9569('0x4d'):_0x178801[_0x9569('0x4c')];_0x22faeb['windowHeight']=_[_0x9569('0x46')](_0x178801[_0x9569('0x4e')])?_0x9569('0x4f'):_0x178801[_0x9569('0x4e')];}break;case _0x9569('0xe'):_0x22faeb['winApplication']=_0x178801[_0x9569('0x40')]?Mustache[_0x9569('0x42')](_0x178801['data2'],_0x368412):'';_0x22faeb[_0x9569('0x50')]=_0x178801[_0x9569('0x47')]?Mustache[_0x9569('0x42')](_0x178801['data3'],_0x368412):'';break;}this[_0x9569('0x2f')](util[_0x9569('0x51')](_0x9569('0x52'),this[_0x9569('0x10')][_0x368412['interface']][_0x9569('0x53')]),util[_0x9569('0x51')]('trigger:%s:%s',_0x178801[_0x9569('0x3c')]['toLowerCase'](),barAndWebActions[_0x178801['data1']]),_[_0x9569('0x54')](_0x22faeb,_0x368412));break;case'jscripty':this[_0x9569('0x2f')](util['format'](_0x9569('0x52'),this[_0x9569('0x10')][_0x368412[_0x9569('0x3b')]][_0x9569('0x53')]),util['format'](_0x9569('0x55'),_0x178801[_0x9569('0x3c')][_0x9569('0x56')]()),_[_0x9569('0x54')]({'ProjectId':parseInt(_0x178801['data1'],0xa)},_0x368412));break;default:this[_0x9569('0x2f')](util[_0x9569('0x51')](_0x9569('0x52'),this['agents'][_0x368412[_0x9569('0x3b')]]['name']),util[_0x9569('0x51')](_0x9569('0x55'),_0x178801['action'][_0x9569('0x56')]()),_[_0x9569('0x54')]({},_0x178801,_0x368412));}}switch(_0x178801[_0x9569('0x3c')][_0x9569('0x56')]()){case _0x9569('0x3d'):cmContact[_0x9569('0x57')](this[_0x9569('0x10')][_0x368412[_0x9569('0x3b')]],this[_0x9569('0xf')][_0x3c98a7],_0x178801,_0x368412);break;case _0x9569('0x58'):integration[_0x9569('0x57')](_0x178801,_0x368412,this[_0x9569('0x1c')],this[_0x9569('0x10')][_0x368412[_0x9569('0x3b')]],this[_0x9569('0x11')][_0x368412['queue']],this[_0x9569('0x59')][_0x368412['routeId']]);break;case _0x9569('0x5a'):urlforward[_0x9569('0x57')](_0x178801,_0x368412);break;case _0x9569('0x5b'):script[_0x9569('0x57')](_0x178801,_0x368412);break;}}}}}}};Trigger[_0x9569('0x2e')]['buildUri']=function(_0x2734c5,_0x225587,_0x3558c){var _0x23d0c9=url['parse'](Mustache[_0x9569('0x42')](_0x2734c5,_0x225587),!![]);if(_0x3558c){_[_0x9569('0x54')](_0x23d0c9[_0x9569('0x5c')],_0x225587);}delete _0x23d0c9[_0x9569('0x5d')];var _0x119d41=url[_0x9569('0x51')](_0x23d0c9);_0x119d41=_0x119d41['replace'](/\/\?/g,'?');return _0x119d41;};Trigger[_0x9569('0x2e')][_0x9569('0x5e')]=function(_0x431021,_0x53646f){var _0x19d2c3=!![];var _0x2302ea=!![];var _0x27466d=![];if(_0x431021[_0x9569('0x5f')]===_0x53646f[_0x9569('0x33')]){_0x27466d=!![];}if(_0x431021['AllConditions']['length']){_0x19d2c3=_['every'](_0x431021[_0x9569('0x60')],this[_0x9569('0x61')](_0x53646f,_0x431021[_0x9569('0x5f')]));}if(_0x431021[_0x9569('0x62')][_0x9569('0x63')]){_0x2302ea=_[_0x9569('0x64')](_0x431021[_0x9569('0x62')],this[_0x9569('0x61')](_0x53646f,_0x431021['channel']));}return _0x27466d&&_0x19d2c3&&_0x2302ea;};Trigger[_0x9569('0x2e')]['checkConditions']=function(_0x3a0838,_0x32ac8b){return function(_0x40b762){switch(_0x40b762[_0x9569('0x65')]){case'account':if(_0x3a0838[_0x9569('0x5f')]===_0x32ac8b){if(_0x32ac8b===_0x9569('0x66')){return _0x3a0838[_0x9569('0x67')]?operators[_0x40b762[_0x9569('0x68')]](Number(_0x40b762['value']),_0x3a0838[_0x9569('0x67')]):![];}else{return _0x3a0838[_[_0x9569('0x69')](_0x32ac8b)+_0x9569('0x6a')]?operators[_0x40b762[_0x9569('0x68')]](Number(_0x40b762[_0x9569('0x6b')]),_0x3a0838[_['upperFirst'](_0x32ac8b)+'AccountId']):![];}}break;case'interaction':case _0x9569('0x6c'):if(_0x3a0838[_0x9569('0x5f')]===_0x32ac8b){return _0x3a0838[_0x9569('0x6d')]?operators[_0x40b762[_0x9569('0x68')]](_0x40b762['value'],_0x3a0838[_0x9569('0x6d')]):![];}break;case'queue':return _0x3a0838[_0x9569('0x6e')]?operators[_0x40b762[_0x9569('0x68')]](_0x40b762[_0x9569('0x6b')],_0x3a0838[_0x9569('0x6e')]):![];case _0x9569('0x6f'):return _0x3a0838[_0x9569('0x70')]?operators[_0x40b762[_0x9569('0x68')]](_0x40b762[_0x9569('0x6b')],_0x3a0838['membername']):![];case'lastevent':return _0x3a0838[_0x9569('0x71')]?operators[_0x40b762[_0x9569('0x68')]](_0x40b762[_0x9569('0x6b')],_0x3a0838[_0x9569('0x71')]):![];case _0x9569('0x72'):return _0x3a0838[_0x9569('0x72')]?operators[_0x40b762['operator']](_0x40b762[_0x9569('0x6b')],_0x3a0838[_0x9569('0x72')]):![];case _0x9569('0x73'):if(_0x40b762['value']===_0x9569('0x74'))_0x40b762[_0x9569('0x6b')]=null;return typeof _0x3a0838[_0x9569('0x75')]!==_0x9569('0x34')?operators[_0x40b762[_0x9569('0x68')]](_0x40b762['value'],_0x3a0838[_0x9569('0x75')]):![];case _0x9569('0x76'):if(_0x3a0838[_0x9569('0x5f')]===_0x32ac8b){return _0x40b762['value']===_0x9569('0x77')&&_0x40b762['operator']===_0x9569('0x78')?!![]:![];}break;}return![];};};module[_0x9569('0x79')]=Trigger;