Built motion from commit (unavailable).|2.5.5
[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 _0xf3f9=['custom:dialend','custom:newinteraction','custom:closedinteraction','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','stringify','clone','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','action','contactmanager','motionbar','popup','TemplateId','html','render','data2','template\x20not\x20found','uri','isNil','data3','uriLocation','windowWidth','800','data5','windowHeight','data6','600','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','toLowerCase','data1','jscripty','trigger:%s','exec','queue','routeId','urlforward','buildUri','parse','query','search','replace','AllConditions','every','channel','AnyConditions','length','some','checkConditions','field','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','event','agent','membername','lastevent','exports','util','url','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','trigger','../ami','redis','defaults','localhost','socket.io-emitter','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect'];(function(_0x4382bc,_0x231a2d){var _0x13c82a=function(_0x3723b0){while(--_0x3723b0){_0x4382bc['push'](_0x4382bc['shift']());}};_0x13c82a(++_0x231a2d);}(_0xf3f9,0x14a));var _0x9f3f=function(_0x544d0f,_0x106b83){_0x544d0f=_0x544d0f-0x0;var _0x2bb39a=_0xf3f9[_0x544d0f];return _0x2bb39a;};'use strict';var util=require(_0x9f3f('0x0'));var _=require('lodash');var url=require(_0x9f3f('0x1'));var Mustache=require(_0x9f3f('0x2'));var Redis=require(_0x9f3f('0x3'));var urlforward=require(_0x9f3f('0x4'));var integration=require(_0x9f3f('0x5'));var cmContact=require(_0x9f3f('0x6'));var script=require(_0x9f3f('0x7'));var config=require(_0x9f3f('0x8'));var logger=require('../../../config/logger')(_0x9f3f('0x9'));var ami=require(_0x9f3f('0xa'));config[_0x9f3f('0xb')]=_[_0x9f3f('0xc')](config[_0x9f3f('0xb')],{'host':_0x9f3f('0xd'),'port':0x18eb});var io=require(_0x9f3f('0xe'))(new Redis(config[_0x9f3f('0xb')]));var operators={'equals':function(_0x83eb85,_0x30e1a4){return _0x83eb85==_0x30e1a4;},'not_equals':function(_0x5aba55,_0x338bb){return _0x5aba55!=_0x338bb;}};var barAndWebActions=['popup',_0x9f3f('0x1'),_0x9f3f('0xf')];function Trigger(_0x2e821a){this['triggers']=_0x2e821a[_0x9f3f('0x10')];this[_0x9f3f('0x11')]=_0x2e821a[_0x9f3f('0x11')];this[_0x9f3f('0x12')]=_0x2e821a[_0x9f3f('0x12')];this[_0x9f3f('0x13')]=_0x2e821a[_0x9f3f('0x13')];this[_0x9f3f('0x14')]=_0x2e821a[_0x9f3f('0x14')];this['zendeskAccounts']=_0x2e821a[_0x9f3f('0x15')];this[_0x9f3f('0x16')]=_0x2e821a[_0x9f3f('0x16')];this['salesforceAccounts']=_0x2e821a[_0x9f3f('0x17')];this['sugarcrmAccounts']=_0x2e821a[_0x9f3f('0x18')];this[_0x9f3f('0x19')]=_0x2e821a['zohoAccounts'];this[_0x9f3f('0x1a')]=_0x2e821a[_0x9f3f('0x1a')];this['vtigerAccounts']=_0x2e821a[_0x9f3f('0x1b')];this[_0x9f3f('0x1c')]=_0x2e821a[_0x9f3f('0x1c')];this['dynamics365Accounts']=_0x2e821a[_0x9f3f('0x1d')];this[_0x9f3f('0x1e')]=_0x2e821a[_0x9f3f('0x1e')];this[_0x9f3f('0x1f')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x9f3f('0x17')],'freshdesk':this[_0x9f3f('0x16')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this['zohoAccounts'],'desk':this[_0x9f3f('0x1a')],'vtiger':this[_0x9f3f('0x1b')],'dynamics365':this['dynamics365Accounts'],'freshsales':this[_0x9f3f('0x1e')],'servicenow':this[_0x9f3f('0x1c')]};ami['on'](_0x9f3f('0x20'),this[_0x9f3f('0x21')]['bind'](this));ami['on'](_0x9f3f('0x22'),this[_0x9f3f('0x21')][_0x9f3f('0x23')](this));ami['on'](_0x9f3f('0x24'),this[_0x9f3f('0x21')][_0x9f3f('0x23')](this));ami['on'](_0x9f3f('0x25'),this['syncCustomEvent'][_0x9f3f('0x23')](this));ami['on'](_0x9f3f('0x26'),this[_0x9f3f('0x21')][_0x9f3f('0x23')](this));ami['on'](_0x9f3f('0x27'),this[_0x9f3f('0x21')][_0x9f3f('0x23')](this));ami['on'](_0x9f3f('0x28'),this[_0x9f3f('0x21')][_0x9f3f('0x23')](this));ami['on'](_0x9f3f('0x29'),this[_0x9f3f('0x21')][_0x9f3f('0x23')](this));ami['on'](_0x9f3f('0x2a'),this[_0x9f3f('0x21')]['bind'](this));ami['on'](_0x9f3f('0x2b'),this['syncCustomEvent'][_0x9f3f('0x23')](this));ami['on'](_0x9f3f('0x2c'),this[_0x9f3f('0x21')][_0x9f3f('0x23')](this));ami['on'](_0x9f3f('0x2d'),this[_0x9f3f('0x2e')]['bind'](this));ami['on'](_0x9f3f('0x2f'),this['syncAgentDial'][_0x9f3f('0x23')](this));ami['on'](_0x9f3f('0x30'),this[_0x9f3f('0x2e')][_0x9f3f('0x23')](this));ami['on'](_0x9f3f('0x31'),this[_0x9f3f('0x21')][_0x9f3f('0x23')](this));ami['on'](_0x9f3f('0x32'),this['syncCustomEvent']['bind'](this));ami['on']('custom:incomingmessage',this[_0x9f3f('0x21')]['bind'](this));ami['on']('custom:outgoingmessage',this[_0x9f3f('0x21')]['bind'](this));ami['on'](_0x9f3f('0x33'),this[_0x9f3f('0x21')][_0x9f3f('0x23')](this));ami['on'](_0x9f3f('0x34'),this[_0x9f3f('0x21')][_0x9f3f('0x23')](this));}Trigger[_0x9f3f('0x35')][_0x9f3f('0x36')]=function(_0x272e81,_0x266fca,_0x163e93){logger[_0x9f3f('0x37')](_0x272e81,_0x266fca,JSON[_0x9f3f('0x38')](_0x163e93));io['to'](_0x272e81)[_0x9f3f('0x36')](_0x266fca,_0x163e93);};Trigger[_0x9f3f('0x35')][_0x9f3f('0x21')]=function(_0x213148){var _0x1d5bed=_[_0x9f3f('0x39')](_0x213148);this[_0x9f3f('0x3a')](_0x1d5bed);};Trigger[_0x9f3f('0x35')][_0x9f3f('0x2e')]=function(_0x17c74d){if(this[_0x9f3f('0x11')][_0x17c74d[_0x9f3f('0x3b')]]){this['syncCustomEvent'](_0x17c74d);}};Trigger['prototype'][_0x9f3f('0x3a')]=function(_0x27ae9b){var _0x393919;for(var _0x1f0bf5 in this[_0x9f3f('0x10')]){if(this[_0x9f3f('0x10')][_0x9f3f('0x3c')](_0x1f0bf5)){if(this[_0x9f3f('0x10')][_0x1f0bf5][_0x9f3f('0x3d')]){_0x393919=this[_0x9f3f('0x3e')](this[_0x9f3f('0x10')][_0x1f0bf5],_0x27ae9b);if(_0x393919){_[_0x9f3f('0x3f')](_0x27ae9b,_0x27ae9b[_0x9f3f('0x40')]);for(var _0x5eadd5=0x0,_0x3077c0,_0x21f8e9,_0x35e84c;_0x5eadd5<this['triggers'][_0x1f0bf5][_0x9f3f('0x41')]['length'];_0x5eadd5+=0x1){_0x3077c0=this['triggers'][_0x1f0bf5][_0x9f3f('0x41')][_0x5eadd5];if(this[_0x9f3f('0x11')][_0x27ae9b[_0x9f3f('0x3b')]]){switch(_0x3077c0[_0x9f3f('0x42')]['toLowerCase']()){case _0x9f3f('0x43'):break;case _0x9f3f('0x44'):case'browser':var _0x19888d={};switch(barAndWebActions[_0x3077c0['data1']]){case _0x9f3f('0x45'):_0x19888d[_0x9f3f('0x46')]=_0x3077c0['data2'];_0x19888d[_0x9f3f('0x47')]=this[_0x9f3f('0x13')][_0x3077c0['data2']]?Mustache[_0x9f3f('0x48')](this[_0x9f3f('0x13')][_0x3077c0[_0x9f3f('0x49')]]['html'],_0x27ae9b):_0x9f3f('0x4a');break;case'url':_0x19888d[_0x9f3f('0x4b')]=this['buildUri'](_0x3077c0[_0x9f3f('0x49')],_0x27ae9b,_[_0x9f3f('0x4c')](_0x3077c0[_0x9f3f('0x4d')])?!![]:parseInt(_0x3077c0[_0x9f3f('0x4d')],0xa));if(_[_0x9f3f('0x4c')](_0x3077c0['data4'])){_0x19888d['location']='0';}else{_0x19888d[_0x9f3f('0x4e')]=_0x3077c0['data4'];_0x19888d[_0x9f3f('0x4f')]=_['isNil'](_0x3077c0['data5'])?_0x9f3f('0x50'):_0x3077c0[_0x9f3f('0x51')];_0x19888d[_0x9f3f('0x52')]=_[_0x9f3f('0x4c')](_0x3077c0[_0x9f3f('0x53')])?_0x9f3f('0x54'):_0x3077c0[_0x9f3f('0x53')];}break;case _0x9f3f('0xf'):_0x19888d[_0x9f3f('0x55')]=_0x3077c0[_0x9f3f('0x49')]?Mustache[_0x9f3f('0x48')](_0x3077c0[_0x9f3f('0x49')],_0x27ae9b):'';_0x19888d[_0x9f3f('0x56')]=_0x3077c0[_0x9f3f('0x4d')]?Mustache[_0x9f3f('0x48')](_0x3077c0[_0x9f3f('0x4d')],_0x27ae9b):'';break;}this[_0x9f3f('0x36')](util[_0x9f3f('0x57')](_0x9f3f('0x58'),this[_0x9f3f('0x11')][_0x27ae9b[_0x9f3f('0x3b')]][_0x9f3f('0x59')]),util[_0x9f3f('0x57')](_0x9f3f('0x5a'),_0x3077c0[_0x9f3f('0x42')][_0x9f3f('0x5b')](),barAndWebActions[_0x3077c0[_0x9f3f('0x5c')]]),_[_0x9f3f('0x3f')](_0x19888d,_0x27ae9b));break;case _0x9f3f('0x5d'):this[_0x9f3f('0x36')](util['format'](_0x9f3f('0x58'),this[_0x9f3f('0x11')][_0x27ae9b[_0x9f3f('0x3b')]]['name']),util[_0x9f3f('0x57')]('trigger:%s',_0x3077c0['action'][_0x9f3f('0x5b')]()),_[_0x9f3f('0x3f')]({'ProjectId':parseInt(_0x3077c0[_0x9f3f('0x5c')],0xa)},_0x27ae9b));break;default:this['emit'](util[_0x9f3f('0x57')](_0x9f3f('0x58'),this['agents'][_0x27ae9b[_0x9f3f('0x3b')]][_0x9f3f('0x59')]),util[_0x9f3f('0x57')](_0x9f3f('0x5e'),_0x3077c0['action'][_0x9f3f('0x5b')]()),_[_0x9f3f('0x3f')]({},_0x3077c0,_0x27ae9b));}}switch(_0x3077c0['action']['toLowerCase']()){case _0x9f3f('0x43'):cmContact[_0x9f3f('0x5f')](this['agents'][_0x27ae9b['interface']],this[_0x9f3f('0x10')][_0x1f0bf5],_0x3077c0,_0x27ae9b);break;case'integration':integration[_0x9f3f('0x5f')](_0x3077c0,_0x27ae9b,this[_0x9f3f('0x1f')],this[_0x9f3f('0x11')][_0x27ae9b[_0x9f3f('0x3b')]],this[_0x9f3f('0x12')][_0x27ae9b[_0x9f3f('0x60')]],this[_0x9f3f('0x14')][_0x27ae9b[_0x9f3f('0x61')]]);break;case _0x9f3f('0x62'):urlforward[_0x9f3f('0x5f')](_0x3077c0,_0x27ae9b);break;case'script':script[_0x9f3f('0x5f')](_0x3077c0,_0x27ae9b);break;}}}}}}};Trigger[_0x9f3f('0x35')][_0x9f3f('0x63')]=function(_0x3ce301,_0x4fdd05,_0x1fc796){var _0x138973=url[_0x9f3f('0x64')](Mustache[_0x9f3f('0x48')](_0x3ce301,_0x4fdd05),!![]);if(_0x1fc796){_[_0x9f3f('0x3f')](_0x138973[_0x9f3f('0x65')],_0x4fdd05);}delete _0x138973[_0x9f3f('0x66')];var _0x28428b=url['format'](_0x138973);_0x28428b=_0x28428b[_0x9f3f('0x67')](/\/\?/g,'?');return _0x28428b;};Trigger[_0x9f3f('0x35')][_0x9f3f('0x3e')]=function(_0x3422b4,_0x295fbf){var _0x30b634=!![],_0x48b849=!![];if(_0x3422b4[_0x9f3f('0x68')]['length']){_0x30b634=_[_0x9f3f('0x69')](_0x3422b4[_0x9f3f('0x68')],this['checkConditions'](_0x295fbf,_0x3422b4[_0x9f3f('0x6a')]));}if(_0x3422b4[_0x9f3f('0x6b')][_0x9f3f('0x6c')]){_0x48b849=_[_0x9f3f('0x6d')](_0x3422b4[_0x9f3f('0x6b')],this[_0x9f3f('0x6e')](_0x295fbf,_0x3422b4[_0x9f3f('0x6a')]));}return _0x30b634&&_0x48b849;};Trigger[_0x9f3f('0x35')][_0x9f3f('0x6e')]=function(_0x35c537,_0x3e8406){return function(_0x43e00b){switch(_0x43e00b[_0x9f3f('0x6f')]){case _0x9f3f('0x70'):if(_0x35c537['channel']===_0x3e8406){if(_0x3e8406===_0x9f3f('0x71')){return _0x35c537[_0x9f3f('0x72')]?operators[_0x43e00b[_0x9f3f('0x73')]](Number(_0x43e00b[_0x9f3f('0x74')]),_0x35c537[_0x9f3f('0x72')]):![];}else{return _0x35c537[_[_0x9f3f('0x75')](_0x3e8406)+_0x9f3f('0x76')]?operators[_0x43e00b[_0x9f3f('0x73')]](Number(_0x43e00b[_0x9f3f('0x74')]),_0x35c537[_[_0x9f3f('0x75')](_0x3e8406)+_0x9f3f('0x76')]):![];}}break;case _0x9f3f('0x77'):case _0x9f3f('0x78'):if(_0x35c537['channel']===_0x3e8406){return _0x35c537['event']?operators[_0x43e00b['operator']](_0x43e00b[_0x9f3f('0x74')],_0x35c537[_0x9f3f('0x79')]):![];}break;case'queue':return _0x35c537[_0x9f3f('0x60')]?operators[_0x43e00b[_0x9f3f('0x73')]](_0x43e00b[_0x9f3f('0x74')],_0x35c537['queue']):![];case _0x9f3f('0x7a'):return _0x35c537[_0x9f3f('0x7b')]?operators[_0x43e00b['operator']](_0x43e00b[_0x9f3f('0x74')],_0x35c537[_0x9f3f('0x7b')]):![];case _0x9f3f('0x7c'):return _0x35c537[_0x9f3f('0x7c')]?operators[_0x43e00b[_0x9f3f('0x73')]](_0x43e00b[_0x9f3f('0x74')],_0x35c537[_0x9f3f('0x7c')]):![];case _0x9f3f('0x61'):return _0x35c537[_0x9f3f('0x61')]?operators[_0x43e00b[_0x9f3f('0x73')]](_0x43e00b['value'],_0x35c537[_0x9f3f('0x61')]):![];}return![];};};module[_0x9f3f('0x7d')]=Trigger;