Built motion from commit 25580385.|2.6.2
[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 _0x251b=['custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialconnect','syncAgentDial','custom:dialend','custom:incomingmessage','custom:outgoingmessage','custom:rejectmessage','custom:offlineMessage','emit','info','stringify','prototype','clone','motionChannel','undefined','interface','checkTriggers','status','checkTrigger','merge','variables','length','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','render','template\x20not\x20found','uri','buildUri','isNil','data3','location','uriLocation','data4','windowWidth','data5','data6','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','trigger:%s','exec','integration','queue','routeId','urlforward','parse','query','search','replace','AllConditions','every','checkConditions','channel','AnyConditions','some','field','chat','ChatWebsiteId','upperFirst','AccountId','operator','value','interaction','message','event','agent','membername','lastevent','substatus','equals','exports','util','url','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','localhost','socket.io-emitter','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentconnect','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion'];(function(_0x51a60c,_0x42faf4){var _0xfb2fb4=function(_0x9de452){while(--_0x9de452){_0x51a60c['push'](_0x51a60c['shift']());}};_0xfb2fb4(++_0x42faf4);}(_0x251b,0xcc));var _0xb251=function(_0x18afca,_0x4219d9){_0x18afca=_0x18afca-0x0;var _0x11603f=_0x251b[_0x18afca];return _0x11603f;};'use strict';var util=require(_0xb251('0x0'));var _=require('lodash');var url=require(_0xb251('0x1'));var Mustache=require(_0xb251('0x2'));var Redis=require(_0xb251('0x3'));var urlforward=require(_0xb251('0x4'));var integration=require(_0xb251('0x5'));var cmContact=require(_0xb251('0x6'));var script=require(_0xb251('0x7'));var config=require(_0xb251('0x8'));var logger=require(_0xb251('0x9'))(_0xb251('0xa'));var ami=require(_0xb251('0xb'));config[_0xb251('0xc')]=_[_0xb251('0xd')](config[_0xb251('0xc')],{'host':_0xb251('0xe'),'port':0x18eb});var io=require(_0xb251('0xf'))(new Redis(config[_0xb251('0xc')]));var operators={'equals':function(_0x300d4f,_0x14a4b8){return _0x300d4f==_0x14a4b8;},'not_equals':function(_0x413aab,_0x3cf82f){return _0x413aab!=_0x3cf82f;}};var barAndWebActions=['popup','url',_0xb251('0x10')];function Trigger(_0x357a98){this[_0xb251('0x11')]=_0x357a98[_0xb251('0x11')];this[_0xb251('0x12')]=_0x357a98[_0xb251('0x12')];this[_0xb251('0x13')]=_0x357a98[_0xb251('0x13')];this[_0xb251('0x14')]=_0x357a98[_0xb251('0x14')];this[_0xb251('0x15')]=_0x357a98['voiceExtensions'];this[_0xb251('0x16')]=_0x357a98['zendeskAccounts'];this[_0xb251('0x17')]=_0x357a98[_0xb251('0x17')];this[_0xb251('0x18')]=_0x357a98[_0xb251('0x18')];this['sugarcrmAccounts']=_0x357a98[_0xb251('0x19')];this[_0xb251('0x1a')]=_0x357a98[_0xb251('0x1a')];this[_0xb251('0x1b')]=_0x357a98[_0xb251('0x1b')];this[_0xb251('0x1c')]=_0x357a98[_0xb251('0x1c')];this[_0xb251('0x1d')]=_0x357a98[_0xb251('0x1d')];this[_0xb251('0x1e')]=_0x357a98[_0xb251('0x1e')];this[_0xb251('0x1f')]=_0x357a98['freshsalesAccounts'];this['accounts']={'zendesk':this[_0xb251('0x16')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0xb251('0x17')],'sugarcrm':this[_0xb251('0x19')],'zoho':this[_0xb251('0x1a')],'desk':this[_0xb251('0x1b')],'vtiger':this[_0xb251('0x1c')],'dynamics365':this['dynamics365Accounts'],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0xb251('0x1d')]};ami['on']('custom:agentcalled',this['syncCustomEvent']['bind'](this));ami['on'](_0xb251('0x20'),this[_0xb251('0x21')][_0xb251('0x22')](this));ami['on'](_0xb251('0x23'),this[_0xb251('0x21')][_0xb251('0x22')](this));ami['on'](_0xb251('0x24'),this[_0xb251('0x21')][_0xb251('0x22')](this));ami['on'](_0xb251('0x25'),this[_0xb251('0x21')][_0xb251('0x22')](this));ami['on'](_0xb251('0x26'),this[_0xb251('0x21')]['bind'](this));ami['on']('custom:agentbusy',this[_0xb251('0x21')][_0xb251('0x22')](this));ami['on'](_0xb251('0x27'),this[_0xb251('0x21')][_0xb251('0x22')](this));ami['on']('custom:agentreject',this[_0xb251('0x21')][_0xb251('0x22')](this));ami['on'](_0xb251('0x28'),this['syncCustomEvent'][_0xb251('0x22')](this));ami['on'](_0xb251('0x29'),this['syncCustomEvent']['bind'](this));ami['on'](_0xb251('0x2a'),this[_0xb251('0x21')]['bind'](this));ami['on']('custom:dialbegin',this['syncAgentDial'][_0xb251('0x22')](this));ami['on'](_0xb251('0x2b'),this[_0xb251('0x2c')][_0xb251('0x22')](this));ami['on'](_0xb251('0x2d'),this['syncAgentDial'][_0xb251('0x22')](this));ami['on']('custom:newinteraction',this[_0xb251('0x21')][_0xb251('0x22')](this));ami['on']('custom:closedinteraction',this[_0xb251('0x21')]['bind'](this));ami['on']('custom:substatus',this[_0xb251('0x21')][_0xb251('0x22')](this));ami['on'](_0xb251('0x2e'),this[_0xb251('0x21')][_0xb251('0x22')](this));ami['on'](_0xb251('0x2f'),this[_0xb251('0x21')][_0xb251('0x22')](this));ami['on']('custom:acceptmessage',this[_0xb251('0x21')][_0xb251('0x22')](this));ami['on'](_0xb251('0x30'),this['syncCustomEvent'][_0xb251('0x22')](this));ami['on'](_0xb251('0x31'),this[_0xb251('0x21')][_0xb251('0x22')](this));}Trigger['prototype'][_0xb251('0x32')]=function(_0x5b5371,_0x3dc893,_0x11c07f){logger[_0xb251('0x33')](_0x5b5371,_0x3dc893,JSON[_0xb251('0x34')](_0x11c07f));io['to'](_0x5b5371)['emit'](_0x3dc893,_0x11c07f);};Trigger[_0xb251('0x35')][_0xb251('0x21')]=function(_0x392f31){var _0x5da377=_[_0xb251('0x36')](_0x392f31);if(typeof _0x5da377[_0xb251('0x37')]===_0xb251('0x38')){_0x5da377[_0xb251('0x37')]='voice';}this['checkTriggers'](_0x5da377);};Trigger[_0xb251('0x35')][_0xb251('0x2c')]=function(_0x57c97c){if(this['agents'][_0x57c97c[_0xb251('0x39')]]){this[_0xb251('0x21')](_0x57c97c);}};Trigger[_0xb251('0x35')][_0xb251('0x3a')]=function(_0x3ec1bf){var _0x41af0f;for(var _0x21fa94 in this[_0xb251('0x11')]){if(this[_0xb251('0x11')]['hasOwnProperty'](_0x21fa94)){if(this[_0xb251('0x11')][_0x21fa94][_0xb251('0x3b')]){_0x41af0f=this[_0xb251('0x3c')](this[_0xb251('0x11')][_0x21fa94],_0x3ec1bf);if(_0x41af0f){_[_0xb251('0x3d')](_0x3ec1bf,_0x3ec1bf[_0xb251('0x3e')]);for(var _0x5c6fb4=0x0,_0x3a7ea7,_0x13cb39,_0x10478d;_0x5c6fb4<this[_0xb251('0x11')][_0x21fa94]['Actions'][_0xb251('0x3f')];_0x5c6fb4+=0x1){_0x3a7ea7=this[_0xb251('0x11')][_0x21fa94]['Actions'][_0x5c6fb4];if(this[_0xb251('0x12')][_0x3ec1bf[_0xb251('0x39')]]){switch(_0x3a7ea7[_0xb251('0x40')][_0xb251('0x41')]()){case _0xb251('0x42'):break;case _0xb251('0x43'):case _0xb251('0x44'):var _0x10cef1={};switch(barAndWebActions[_0x3a7ea7[_0xb251('0x45')]]){case'popup':_0x10cef1[_0xb251('0x46')]=_0x3a7ea7[_0xb251('0x47')];_0x10cef1['html']=this[_0xb251('0x14')][_0x3a7ea7[_0xb251('0x47')]]?Mustache[_0xb251('0x48')](this[_0xb251('0x14')][_0x3a7ea7[_0xb251('0x47')]]['html'],_0x3ec1bf):_0xb251('0x49');break;case _0xb251('0x1'):_0x10cef1[_0xb251('0x4a')]=this[_0xb251('0x4b')](_0x3a7ea7[_0xb251('0x47')],_0x3ec1bf,_[_0xb251('0x4c')](_0x3a7ea7[_0xb251('0x4d')])?!![]:parseInt(_0x3a7ea7[_0xb251('0x4d')],0xa));if(_[_0xb251('0x4c')](_0x3a7ea7['data4'])){_0x10cef1[_0xb251('0x4e')]='0';}else{_0x10cef1[_0xb251('0x4f')]=_0x3a7ea7[_0xb251('0x50')];_0x10cef1[_0xb251('0x51')]=_[_0xb251('0x4c')](_0x3a7ea7[_0xb251('0x52')])?'800':_0x3a7ea7[_0xb251('0x52')];_0x10cef1['windowHeight']=_[_0xb251('0x4c')](_0x3a7ea7[_0xb251('0x53')])?'600':_0x3a7ea7[_0xb251('0x53')];}break;case'winapp':_0x10cef1[_0xb251('0x54')]=_0x3a7ea7[_0xb251('0x47')]?Mustache[_0xb251('0x48')](_0x3a7ea7[_0xb251('0x47')],_0x3ec1bf):'';_0x10cef1[_0xb251('0x55')]=_0x3a7ea7[_0xb251('0x4d')]?Mustache[_0xb251('0x48')](_0x3a7ea7[_0xb251('0x4d')],_0x3ec1bf):'';break;}this[_0xb251('0x32')](util[_0xb251('0x56')](_0xb251('0x57'),this['agents'][_0x3ec1bf[_0xb251('0x39')]][_0xb251('0x58')]),util[_0xb251('0x56')](_0xb251('0x59'),_0x3a7ea7[_0xb251('0x40')][_0xb251('0x41')](),barAndWebActions[_0x3a7ea7[_0xb251('0x45')]]),_[_0xb251('0x3d')](_0x10cef1,_0x3ec1bf));break;case'jscripty':this[_0xb251('0x32')](util[_0xb251('0x56')](_0xb251('0x57'),this[_0xb251('0x12')][_0x3ec1bf['interface']][_0xb251('0x58')]),util['format'](_0xb251('0x5a'),_0x3a7ea7[_0xb251('0x40')][_0xb251('0x41')]()),_['merge']({'ProjectId':parseInt(_0x3a7ea7[_0xb251('0x45')],0xa)},_0x3ec1bf));break;default:this[_0xb251('0x32')](util[_0xb251('0x56')](_0xb251('0x57'),this['agents'][_0x3ec1bf[_0xb251('0x39')]][_0xb251('0x58')]),util['format'](_0xb251('0x5a'),_0x3a7ea7[_0xb251('0x40')]['toLowerCase']()),_[_0xb251('0x3d')]({},_0x3a7ea7,_0x3ec1bf));}}switch(_0x3a7ea7[_0xb251('0x40')][_0xb251('0x41')]()){case _0xb251('0x42'):cmContact[_0xb251('0x5b')](this[_0xb251('0x12')][_0x3ec1bf['interface']],this[_0xb251('0x11')][_0x21fa94],_0x3a7ea7,_0x3ec1bf);break;case _0xb251('0x5c'):integration['exec'](_0x3a7ea7,_0x3ec1bf,this['accounts'],this[_0xb251('0x12')][_0x3ec1bf['interface']],this[_0xb251('0x13')][_0x3ec1bf[_0xb251('0x5d')]],this[_0xb251('0x15')][_0x3ec1bf[_0xb251('0x5e')]]);break;case _0xb251('0x5f'):urlforward[_0xb251('0x5b')](_0x3a7ea7,_0x3ec1bf);break;case'script':script['exec'](_0x3a7ea7,_0x3ec1bf);break;}}}}}}};Trigger[_0xb251('0x35')]['buildUri']=function(_0x45403c,_0x18a984,_0x4bcdc9){var _0x4fbf54=url[_0xb251('0x60')](Mustache[_0xb251('0x48')](_0x45403c,_0x18a984),!![]);if(_0x4bcdc9){_['merge'](_0x4fbf54[_0xb251('0x61')],_0x18a984);}delete _0x4fbf54[_0xb251('0x62')];var _0x4ebf16=url[_0xb251('0x56')](_0x4fbf54);_0x4ebf16=_0x4ebf16[_0xb251('0x63')](/\/\?/g,'?');return _0x4ebf16;};Trigger[_0xb251('0x35')][_0xb251('0x3c')]=function(_0x534611,_0x41beb9){var _0x34149a=!![];var _0x4d0d34=!![];var _0x4e05ff=![];if(_0x534611['channel']===_0x41beb9[_0xb251('0x37')]){_0x4e05ff=!![];}if(_0x534611[_0xb251('0x64')][_0xb251('0x3f')]){_0x34149a=_[_0xb251('0x65')](_0x534611[_0xb251('0x64')],this[_0xb251('0x66')](_0x41beb9,_0x534611[_0xb251('0x67')]));}if(_0x534611[_0xb251('0x68')]['length']){_0x4d0d34=_[_0xb251('0x69')](_0x534611[_0xb251('0x68')],this['checkConditions'](_0x41beb9,_0x534611[_0xb251('0x67')]));}return _0x4e05ff&&_0x34149a&&_0x4d0d34;};Trigger[_0xb251('0x35')][_0xb251('0x66')]=function(_0x199231,_0x1a0c3d){return function(_0x3041dc){switch(_0x3041dc[_0xb251('0x6a')]){case'account':if(_0x199231['channel']===_0x1a0c3d){if(_0x1a0c3d===_0xb251('0x6b')){return _0x199231[_0xb251('0x6c')]?operators[_0x3041dc['operator']](Number(_0x3041dc['value']),_0x199231[_0xb251('0x6c')]):![];}else{return _0x199231[_[_0xb251('0x6d')](_0x1a0c3d)+_0xb251('0x6e')]?operators[_0x3041dc[_0xb251('0x6f')]](Number(_0x3041dc[_0xb251('0x70')]),_0x199231[_[_0xb251('0x6d')](_0x1a0c3d)+_0xb251('0x6e')]):![];}}break;case _0xb251('0x71'):case _0xb251('0x72'):if(_0x199231['channel']===_0x1a0c3d){return _0x199231[_0xb251('0x73')]?operators[_0x3041dc[_0xb251('0x6f')]](_0x3041dc[_0xb251('0x70')],_0x199231['event']):![];}break;case _0xb251('0x5d'):return _0x199231[_0xb251('0x5d')]?operators[_0x3041dc['operator']](_0x3041dc[_0xb251('0x70')],_0x199231[_0xb251('0x5d')]):![];case _0xb251('0x74'):return _0x199231[_0xb251('0x75')]?operators[_0x3041dc[_0xb251('0x6f')]](_0x3041dc[_0xb251('0x70')],_0x199231[_0xb251('0x75')]):![];case _0xb251('0x76'):return _0x199231[_0xb251('0x76')]?operators[_0x3041dc[_0xb251('0x6f')]](_0x3041dc[_0xb251('0x70')],_0x199231[_0xb251('0x76')]):![];case _0xb251('0x5e'):return _0x199231[_0xb251('0x5e')]?operators[_0x3041dc['operator']](_0x3041dc[_0xb251('0x70')],_0x199231[_0xb251('0x5e')]):![];case'mailSubstatus':if(_0x3041dc[_0xb251('0x70')]==='null')_0x3041dc[_0xb251('0x70')]=null;return typeof _0x199231[_0xb251('0x77')]!==_0xb251('0x38')?operators[_0x3041dc[_0xb251('0x6f')]](_0x3041dc['value'],_0x199231[_0xb251('0x77')]):![];case'offlineMessage':if(_0x199231[_0xb251('0x67')]===_0x1a0c3d){return _0x3041dc['value']==='created'&&_0x3041dc[_0xb251('0x6f')]===_0xb251('0x78')?!![]:![];}break;}return![];};};module[_0xb251('0x79')]=Trigger;