Built motion from commit a61a4a20.|2.5.46
[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 _0x5a9e=['triggers','hasOwnProperty','status','merge','variables','length','Actions','action','toLowerCase','motionbar','browser','data1','popup','TemplateId','html','data2','render','template\x20not\x20found','buildUri','data3','isNil','location','data4','windowWidth','data5','windowHeight','data6','600','winapp','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','jscripty','contactmanager','integration','exec','urlforward','search','replace','channel','AllConditions','some','checkConditions','field','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','message','event','queue','agent','membername','lastevent','routeId','mailSubstatus','substatus','created','equals','exports','lodash','url','./urlforward','./integration','./cmContact','./script','../../../config/environment','trigger','redis','defaults','socket.io-emitter','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:closedinteraction','custom:substatus','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','emit','info','stringify','prototype','clone','motionChannel','undefined','voice','checkTriggers','interface'];(function(_0x2fef7c,_0x1e72c9){var _0x3a6212=function(_0x5f27a7){while(--_0x5f27a7){_0x2fef7c['push'](_0x2fef7c['shift']());}};_0x3a6212(++_0x1e72c9);}(_0x5a9e,0xbd));var _0xe5a9=function(_0x4d934b,_0x52f8e9){_0x4d934b=_0x4d934b-0x0;var _0xc0338b=_0x5a9e[_0x4d934b];return _0xc0338b;};'use strict';var util=require('util');var _=require(_0xe5a9('0x0'));var url=require(_0xe5a9('0x1'));var Mustache=require('mustache');var Redis=require('ioredis');var urlforward=require(_0xe5a9('0x2'));var integration=require(_0xe5a9('0x3'));var cmContact=require(_0xe5a9('0x4'));var script=require(_0xe5a9('0x5'));var config=require(_0xe5a9('0x6'));var logger=require('../../../config/logger')(_0xe5a9('0x7'));var ami=require('../ami');config[_0xe5a9('0x8')]=_[_0xe5a9('0x9')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xe5a9('0xa'))(new Redis(config[_0xe5a9('0x8')]));var operators={'equals':function(_0x1f5bfc,_0x322f01){return _0x1f5bfc==_0x322f01;},'not_equals':function(_0x1336ca,_0x530b67){return _0x1336ca!=_0x530b67;}};var barAndWebActions=['popup',_0xe5a9('0x1'),'winapp'];function Trigger(_0x7ec4cf){this['triggers']=_0x7ec4cf['triggers'];this[_0xe5a9('0xb')]=_0x7ec4cf[_0xe5a9('0xb')];this[_0xe5a9('0xc')]=_0x7ec4cf[_0xe5a9('0xc')];this[_0xe5a9('0xd')]=_0x7ec4cf[_0xe5a9('0xd')];this[_0xe5a9('0xe')]=_0x7ec4cf['voiceExtensions'];this[_0xe5a9('0xf')]=_0x7ec4cf[_0xe5a9('0xf')];this[_0xe5a9('0x10')]=_0x7ec4cf[_0xe5a9('0x10')];this[_0xe5a9('0x11')]=_0x7ec4cf[_0xe5a9('0x11')];this[_0xe5a9('0x12')]=_0x7ec4cf['sugarcrmAccounts'];this[_0xe5a9('0x13')]=_0x7ec4cf[_0xe5a9('0x13')];this[_0xe5a9('0x14')]=_0x7ec4cf['deskAccounts'];this['vtigerAccounts']=_0x7ec4cf[_0xe5a9('0x15')];this[_0xe5a9('0x16')]=_0x7ec4cf[_0xe5a9('0x16')];this[_0xe5a9('0x17')]=_0x7ec4cf[_0xe5a9('0x17')];this[_0xe5a9('0x18')]=_0x7ec4cf['freshsalesAccounts'];this[_0xe5a9('0x19')]={'zendesk':this['zendeskAccounts'],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0xe5a9('0x10')],'sugarcrm':this[_0xe5a9('0x12')],'zoho':this[_0xe5a9('0x13')],'desk':this[_0xe5a9('0x14')],'vtiger':this[_0xe5a9('0x15')],'dynamics365':this[_0xe5a9('0x17')],'freshsales':this['freshsalesAccounts'],'servicenow':this['servicenowAccounts']};ami['on'](_0xe5a9('0x1a'),this[_0xe5a9('0x1b')][_0xe5a9('0x1c')](this));ami['on'](_0xe5a9('0x1d'),this[_0xe5a9('0x1b')][_0xe5a9('0x1c')](this));ami['on']('custom:agentringnoanswer',this[_0xe5a9('0x1b')][_0xe5a9('0x1c')](this));ami['on']('custom:agentcomplete',this[_0xe5a9('0x1b')][_0xe5a9('0x1c')](this));ami['on']('custom:agentnosuchnumber',this[_0xe5a9('0x1b')]['bind'](this));ami['on'](_0xe5a9('0x1e'),this[_0xe5a9('0x1b')][_0xe5a9('0x1c')](this));ami['on'](_0xe5a9('0x1f'),this['syncCustomEvent'][_0xe5a9('0x1c')](this));ami['on'](_0xe5a9('0x20'),this[_0xe5a9('0x1b')][_0xe5a9('0x1c')](this));ami['on'](_0xe5a9('0x21'),this[_0xe5a9('0x1b')][_0xe5a9('0x1c')](this));ami['on'](_0xe5a9('0x22'),this[_0xe5a9('0x1b')]['bind'](this));ami['on'](_0xe5a9('0x23'),this[_0xe5a9('0x1b')]['bind'](this));ami['on'](_0xe5a9('0x24'),this['syncCustomEvent'][_0xe5a9('0x1c')](this));ami['on'](_0xe5a9('0x25'),this[_0xe5a9('0x26')][_0xe5a9('0x1c')](this));ami['on'](_0xe5a9('0x27'),this[_0xe5a9('0x26')][_0xe5a9('0x1c')](this));ami['on'](_0xe5a9('0x28'),this[_0xe5a9('0x26')][_0xe5a9('0x1c')](this));ami['on']('custom:newinteraction',this[_0xe5a9('0x1b')][_0xe5a9('0x1c')](this));ami['on'](_0xe5a9('0x29'),this[_0xe5a9('0x1b')][_0xe5a9('0x1c')](this));ami['on'](_0xe5a9('0x2a'),this['syncCustomEvent'][_0xe5a9('0x1c')](this));ami['on']('custom:incomingmessage',this[_0xe5a9('0x1b')][_0xe5a9('0x1c')](this));ami['on'](_0xe5a9('0x2b'),this[_0xe5a9('0x1b')][_0xe5a9('0x1c')](this));ami['on'](_0xe5a9('0x2c'),this[_0xe5a9('0x1b')]['bind'](this));ami['on'](_0xe5a9('0x2d'),this[_0xe5a9('0x1b')][_0xe5a9('0x1c')](this));ami['on'](_0xe5a9('0x2e'),this[_0xe5a9('0x1b')][_0xe5a9('0x1c')](this));}Trigger['prototype'][_0xe5a9('0x2f')]=function(_0x171e81,_0x57a896,_0x4d940e){logger[_0xe5a9('0x30')](_0x171e81,_0x57a896,JSON[_0xe5a9('0x31')](_0x4d940e));io['to'](_0x171e81)[_0xe5a9('0x2f')](_0x57a896,_0x4d940e);};Trigger[_0xe5a9('0x32')][_0xe5a9('0x1b')]=function(_0x4448ea){var _0x1b0662=_[_0xe5a9('0x33')](_0x4448ea);if(typeof _0x1b0662[_0xe5a9('0x34')]===_0xe5a9('0x35')){_0x1b0662[_0xe5a9('0x34')]=_0xe5a9('0x36');}this[_0xe5a9('0x37')](_0x1b0662);};Trigger['prototype']['syncAgentDial']=function(_0xbecff3){if(this[_0xe5a9('0xb')][_0xbecff3[_0xe5a9('0x38')]]){this[_0xe5a9('0x1b')](_0xbecff3);}};Trigger[_0xe5a9('0x32')]['checkTriggers']=function(_0x118389){var _0x539c69;for(var _0x14169b in this[_0xe5a9('0x39')]){if(this[_0xe5a9('0x39')][_0xe5a9('0x3a')](_0x14169b)){if(this[_0xe5a9('0x39')][_0x14169b][_0xe5a9('0x3b')]){_0x539c69=this['checkTrigger'](this[_0xe5a9('0x39')][_0x14169b],_0x118389);if(_0x539c69){_[_0xe5a9('0x3c')](_0x118389,_0x118389[_0xe5a9('0x3d')]);for(var _0x24b0ce=0x0,_0xc5c13f,_0x211f5e,_0x269c3c;_0x24b0ce<this['triggers'][_0x14169b]['Actions'][_0xe5a9('0x3e')];_0x24b0ce+=0x1){_0xc5c13f=this[_0xe5a9('0x39')][_0x14169b][_0xe5a9('0x3f')][_0x24b0ce];if(this[_0xe5a9('0xb')][_0x118389['interface']]){switch(_0xc5c13f[_0xe5a9('0x40')][_0xe5a9('0x41')]()){case'contactmanager':break;case _0xe5a9('0x42'):case _0xe5a9('0x43'):var _0xea997a={};switch(barAndWebActions[_0xc5c13f[_0xe5a9('0x44')]]){case _0xe5a9('0x45'):_0xea997a[_0xe5a9('0x46')]=_0xc5c13f['data2'];_0xea997a[_0xe5a9('0x47')]=this[_0xe5a9('0xd')][_0xc5c13f[_0xe5a9('0x48')]]?Mustache[_0xe5a9('0x49')](this[_0xe5a9('0xd')][_0xc5c13f[_0xe5a9('0x48')]][_0xe5a9('0x47')],_0x118389):_0xe5a9('0x4a');break;case _0xe5a9('0x1'):_0xea997a['uri']=this[_0xe5a9('0x4b')](_0xc5c13f[_0xe5a9('0x48')],_0x118389,_['isNil'](_0xc5c13f[_0xe5a9('0x4c')])?!![]:parseInt(_0xc5c13f[_0xe5a9('0x4c')],0xa));if(_[_0xe5a9('0x4d')](_0xc5c13f['data4'])){_0xea997a[_0xe5a9('0x4e')]='0';}else{_0xea997a['uriLocation']=_0xc5c13f[_0xe5a9('0x4f')];_0xea997a[_0xe5a9('0x50')]=_[_0xe5a9('0x4d')](_0xc5c13f[_0xe5a9('0x51')])?'800':_0xc5c13f[_0xe5a9('0x51')];_0xea997a[_0xe5a9('0x52')]=_[_0xe5a9('0x4d')](_0xc5c13f[_0xe5a9('0x53')])?_0xe5a9('0x54'):_0xc5c13f[_0xe5a9('0x53')];}break;case _0xe5a9('0x55'):_0xea997a[_0xe5a9('0x56')]=_0xc5c13f[_0xe5a9('0x48')]?Mustache[_0xe5a9('0x49')](_0xc5c13f[_0xe5a9('0x48')],_0x118389):'';_0xea997a[_0xe5a9('0x57')]=_0xc5c13f[_0xe5a9('0x4c')]?Mustache[_0xe5a9('0x49')](_0xc5c13f[_0xe5a9('0x4c')],_0x118389):'';break;}this[_0xe5a9('0x2f')](util[_0xe5a9('0x58')](_0xe5a9('0x59'),this[_0xe5a9('0xb')][_0x118389[_0xe5a9('0x38')]][_0xe5a9('0x5a')]),util[_0xe5a9('0x58')](_0xe5a9('0x5b'),_0xc5c13f[_0xe5a9('0x40')][_0xe5a9('0x41')](),barAndWebActions[_0xc5c13f[_0xe5a9('0x44')]]),_[_0xe5a9('0x3c')](_0xea997a,_0x118389));break;case _0xe5a9('0x5c'):this['emit'](util[_0xe5a9('0x58')]('user:%s',this['agents'][_0x118389[_0xe5a9('0x38')]][_0xe5a9('0x5a')]),util[_0xe5a9('0x58')]('trigger:%s',_0xc5c13f[_0xe5a9('0x40')][_0xe5a9('0x41')]()),_[_0xe5a9('0x3c')]({'ProjectId':parseInt(_0xc5c13f[_0xe5a9('0x44')],0xa)},_0x118389));break;default:this[_0xe5a9('0x2f')](util['format'](_0xe5a9('0x59'),this[_0xe5a9('0xb')][_0x118389['interface']][_0xe5a9('0x5a')]),util[_0xe5a9('0x58')]('trigger:%s',_0xc5c13f[_0xe5a9('0x40')][_0xe5a9('0x41')]()),_[_0xe5a9('0x3c')]({},_0xc5c13f,_0x118389));}}switch(_0xc5c13f['action'][_0xe5a9('0x41')]()){case _0xe5a9('0x5d'):cmContact['exec'](this[_0xe5a9('0xb')][_0x118389[_0xe5a9('0x38')]],this['triggers'][_0x14169b],_0xc5c13f,_0x118389);break;case _0xe5a9('0x5e'):integration[_0xe5a9('0x5f')](_0xc5c13f,_0x118389,this[_0xe5a9('0x19')],this[_0xe5a9('0xb')][_0x118389['interface']],this[_0xe5a9('0xc')][_0x118389['queue']],this['voiceExtensions'][_0x118389['routeId']]);break;case _0xe5a9('0x60'):urlforward['exec'](_0xc5c13f,_0x118389);break;case'script':script[_0xe5a9('0x5f')](_0xc5c13f,_0x118389);break;}}}}}}};Trigger[_0xe5a9('0x32')]['buildUri']=function(_0x33ef80,_0x281a2a,_0x42cde4){var _0x4e5b74=url['parse'](Mustache[_0xe5a9('0x49')](_0x33ef80,_0x281a2a),!![]);if(_0x42cde4){_[_0xe5a9('0x3c')](_0x4e5b74['query'],_0x281a2a);}delete _0x4e5b74[_0xe5a9('0x61')];var _0x30a88=url[_0xe5a9('0x58')](_0x4e5b74);_0x30a88=_0x30a88[_0xe5a9('0x62')](/\/\?/g,'?');return _0x30a88;};Trigger[_0xe5a9('0x32')]['checkTrigger']=function(_0x3565ba,_0x2f2dcd){var _0xd75676=!![];var _0x19f4e6=!![];var _0x14210a=![];if(_0x3565ba[_0xe5a9('0x63')]===_0x2f2dcd[_0xe5a9('0x34')]){_0x14210a=!![];}if(_0x3565ba[_0xe5a9('0x64')][_0xe5a9('0x3e')]){_0xd75676=_['every'](_0x3565ba[_0xe5a9('0x64')],this['checkConditions'](_0x2f2dcd,_0x3565ba[_0xe5a9('0x63')]));}if(_0x3565ba['AnyConditions']['length']){_0x19f4e6=_[_0xe5a9('0x65')](_0x3565ba['AnyConditions'],this[_0xe5a9('0x66')](_0x2f2dcd,_0x3565ba[_0xe5a9('0x63')]));}return _0x14210a&&_0xd75676&&_0x19f4e6;};Trigger[_0xe5a9('0x32')][_0xe5a9('0x66')]=function(_0x3baa0b,_0xb4ea7a){return function(_0xd2151d){switch(_0xd2151d[_0xe5a9('0x67')]){case _0xe5a9('0x68'):if(_0x3baa0b[_0xe5a9('0x63')]===_0xb4ea7a){if(_0xb4ea7a===_0xe5a9('0x69')){return _0x3baa0b[_0xe5a9('0x6a')]?operators[_0xd2151d[_0xe5a9('0x6b')]](Number(_0xd2151d[_0xe5a9('0x6c')]),_0x3baa0b[_0xe5a9('0x6a')]):![];}else{return _0x3baa0b[_[_0xe5a9('0x6d')](_0xb4ea7a)+_0xe5a9('0x6e')]?operators[_0xd2151d[_0xe5a9('0x6b')]](Number(_0xd2151d[_0xe5a9('0x6c')]),_0x3baa0b[_[_0xe5a9('0x6d')](_0xb4ea7a)+_0xe5a9('0x6e')]):![];}}break;case'interaction':case _0xe5a9('0x6f'):if(_0x3baa0b[_0xe5a9('0x63')]===_0xb4ea7a){return _0x3baa0b[_0xe5a9('0x70')]?operators[_0xd2151d['operator']](_0xd2151d[_0xe5a9('0x6c')],_0x3baa0b[_0xe5a9('0x70')]):![];}break;case _0xe5a9('0x71'):return _0x3baa0b[_0xe5a9('0x71')]?operators[_0xd2151d[_0xe5a9('0x6b')]](_0xd2151d[_0xe5a9('0x6c')],_0x3baa0b[_0xe5a9('0x71')]):![];case _0xe5a9('0x72'):return _0x3baa0b['membername']?operators[_0xd2151d['operator']](_0xd2151d[_0xe5a9('0x6c')],_0x3baa0b[_0xe5a9('0x73')]):![];case _0xe5a9('0x74'):return _0x3baa0b[_0xe5a9('0x74')]?operators[_0xd2151d['operator']](_0xd2151d[_0xe5a9('0x6c')],_0x3baa0b[_0xe5a9('0x74')]):![];case _0xe5a9('0x75'):return _0x3baa0b[_0xe5a9('0x75')]?operators[_0xd2151d[_0xe5a9('0x6b')]](_0xd2151d['value'],_0x3baa0b[_0xe5a9('0x75')]):![];case _0xe5a9('0x76'):if(_0xd2151d[_0xe5a9('0x6c')]==='null')_0xd2151d[_0xe5a9('0x6c')]=null;return typeof _0x3baa0b[_0xe5a9('0x77')]!=='undefined'?operators[_0xd2151d[_0xe5a9('0x6b')]](_0xd2151d[_0xe5a9('0x6c')],_0x3baa0b[_0xe5a9('0x77')]):![];case'offlineMessage':if(_0x3baa0b[_0xe5a9('0x63')]===_0xb4ea7a){return _0xd2151d[_0xe5a9('0x6c')]===_0xe5a9('0x78')&&_0xd2151d[_0xe5a9('0x6b')]===_0xe5a9('0x79')?!![]:![];}break;}return![];};};module[_0xe5a9('0x7a')]=Trigger;