20a04cc73954aa5184d6e3002d4302f505685907
[motion2.git] / server / services / xdr / 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 _0x7ce2=['asterisk-manager','../../config/environment','util','xdr','disabled','env','production','local','asterisk','port','username','keepConnected','info','Asterisk\x20disabled\x20on\x20localhost','./agents.controller','./queues.controller','./recordings.controller','./members.controller','./transfers.controller','./core.controller','connect','shutdown','fullybooted','error','close','managerevent','devicestatechange','debug','[%s][index][devicestatechange]','format','device','agentcalled','[%s][index][agentcalled]','uniqueid','[%s][index][agentringnoanswer]','agentringnoanswer','agentconnect','[%s][index][agentconnect]','agentcomplete','[%s][index][agentcomplete]','queuecallerabandon','queuecallerjoin','[%s][index][queuecallerjoin]','queuecallerleave','[%s][index][queuecallerleave]','musiconholdstart','[%s][index][musiconholdstart]','musiconholdstop','[%s][index][musiconholdstop]','newstate','[%s][index][newstate]','hangup','[%s][index][cdr]','blindtransfer','[%s][index][blindtransfer]','attendedtransfer','[%s][index][attendedtransfer]','origtransfereruniqueid','varset','[%s][index][varset]','newexten','[%s][index][newexten]','newchannel','[%s][index][newchannel]','dialbegin','[%s][index][dialbegin]','[%s][index][dialend]','dialend'];(function(_0x3d2c84,_0x5f5a75){var _0x4f344e=function(_0x4f782f){while(--_0x4f782f){_0x3d2c84['push'](_0x3d2c84['shift']());}};_0x4f344e(++_0x5f5a75);}(_0x7ce2,0x154));var _0x27ce=function(_0x2e6012,_0x56ce8f){_0x2e6012=_0x2e6012-0x0;var _0x31a261=_0x7ce2[_0x2e6012];return _0x31a261;};var AsteriskManager=require(_0x27ce('0x0'));var config=require(_0x27ce('0x1'));var utils=require('./utils');var util=require(_0x27ce('0x2'));var isXDREnabled=config[_0x27ce('0x3')]&&config[_0x27ce('0x3')][_0x27ce('0x4')]?!config['xdr'][_0x27ce('0x4')]:!![];var isProduction=config[_0x27ce('0x5')]===_0x27ce('0x6')||![];var isLocalAsterisk=config[_0x27ce('0x3')]&&config['xdr'][_0x27ce('0x7')]===!![]||![];var ami=new AsteriskManager(config[_0x27ce('0x8')][_0x27ce('0x9')],config['asterisk']['ip'],config['asterisk'][_0x27ce('0xa')],config[_0x27ce('0x8')]['password'],!![]);ami[_0x27ce('0xb')]();if(!isXDREnabled){utils[_0x27ce('0xc')]('XDR\x20DISABLED');}else if(!isProduction&&!isLocalAsterisk){utils[_0x27ce('0xc')](_0x27ce('0xd'));}else{var agents=require(_0x27ce('0xe'));var calls=require('./calls.controller');var queues=require(_0x27ce('0xf'));var recordings=require(_0x27ce('0x10'));var members=require(_0x27ce('0x11'));var dials=require('./dials.controller');var transfers=require(_0x27ce('0x12'));var core=require(_0x27ce('0x13'));ami['on'](_0x27ce('0x14'),core[_0x27ce('0x14')]);ami['on'](_0x27ce('0x15'),core[_0x27ce('0x15')]);ami['on'](_0x27ce('0x16'),core[_0x27ce('0x16')]);ami['on'](_0x27ce('0x17'),core['error']);ami['on'](_0x27ce('0x18'),core['close']);ami['on']('managerevent',core[_0x27ce('0x19')]);ami['on'](_0x27ce('0x1a'),function(_0x550e2a){try{utils[_0x27ce('0x1b')](util['format'](_0x27ce('0x1c'),_0x550e2a['device']),_0x550e2a);members[_0x27ce('0x1a')](_0x550e2a);}catch(_0x5811f2){utils[_0x27ce('0x17')](util[_0x27ce('0x1d')](_0x27ce('0x1c'),_0x550e2a[_0x27ce('0x1e')]),_0x5811f2);}});ami['on'](_0x27ce('0x1f'),function(_0x4f3ff9){try{utils[_0x27ce('0x1b')](util[_0x27ce('0x1d')](_0x27ce('0x20'),_0x4f3ff9[_0x27ce('0x21')]),_0x4f3ff9);agents[_0x27ce('0x1f')](_0x4f3ff9);}catch(_0x586ccc){utils['error'](util[_0x27ce('0x1d')](_0x27ce('0x20'),_0x4f3ff9['uniqueid']),_0x586ccc);}});ami['on']('agentringnoanswer',function(_0x62b4b8){try{utils[_0x27ce('0x1b')](util['format'](_0x27ce('0x22'),_0x62b4b8[_0x27ce('0x21')]),_0x62b4b8);agents[_0x27ce('0x23')](_0x62b4b8);}catch(_0x3f1617){utils[_0x27ce('0x17')](util[_0x27ce('0x1d')](_0x27ce('0x22'),_0x62b4b8[_0x27ce('0x21')]),_0x3f1617);}});ami['on'](_0x27ce('0x24'),function(_0x1fe63c){try{utils[_0x27ce('0x1b')](util['format'](_0x27ce('0x25'),_0x1fe63c[_0x27ce('0x21')]),_0x1fe63c);agents['agentconnect'](_0x1fe63c);queues['agentconnect'](_0x1fe63c);}catch(_0x4bc8c9){utils[_0x27ce('0x17')](util[_0x27ce('0x1d')]('[%s][index][agentconnect]',_0x1fe63c[_0x27ce('0x21')]),_0x4bc8c9);}});ami['on'](_0x27ce('0x26'),function(_0xad7843){try{utils[_0x27ce('0x1b')](util[_0x27ce('0x1d')](_0x27ce('0x27'),_0xad7843[_0x27ce('0x21')]),_0xad7843);agents[_0x27ce('0x26')](_0xad7843);queues['agentcomplete'](_0xad7843);members[_0x27ce('0x26')](_0xad7843);}catch(_0x54c0c3){utils[_0x27ce('0x17')](util[_0x27ce('0x1d')](_0x27ce('0x27'),_0xad7843[_0x27ce('0x21')]),_0x54c0c3);}});ami['on'](_0x27ce('0x28'),function(_0xdc13ad){try{utils[_0x27ce('0x1b')](util[_0x27ce('0x1d')]('[%s][index][queuecallerabandon]',_0xdc13ad[_0x27ce('0x21')]),_0xdc13ad);agents[_0x27ce('0x28')](_0xdc13ad);queues[_0x27ce('0x28')](_0xdc13ad);}catch(_0x3ae51a){utils[_0x27ce('0x17')](util['format']('[%s][index][queuecallerabandon]',_0xdc13ad[_0x27ce('0x21')]),_0x3ae51a);}});ami['on'](_0x27ce('0x29'),function(_0x5587e9){try{utils[_0x27ce('0x1b')](util['format'](_0x27ce('0x2a'),_0x5587e9[_0x27ce('0x21')]),_0x5587e9);queues[_0x27ce('0x29')](_0x5587e9);recordings['queuecallerjoin'](_0x5587e9);}catch(_0x25b7fc){utils[_0x27ce('0x17')](util['format'](_0x27ce('0x2a'),_0x5587e9['uniqueid']),_0x25b7fc);}});ami['on'](_0x27ce('0x2b'),function(_0x43f214){try{utils[_0x27ce('0x1b')](util[_0x27ce('0x1d')]('[%s][index][queuecallerleave]',_0x43f214[_0x27ce('0x21')]),_0x43f214);queues[_0x27ce('0x2b')](_0x43f214);}catch(_0x33dba0){utils[_0x27ce('0x17')](util['format'](_0x27ce('0x2c'),_0x43f214[_0x27ce('0x21')]),_0x33dba0);}});ami['on'](_0x27ce('0x2d'),function(_0x1f3484){try{utils[_0x27ce('0x1b')](util['format'](_0x27ce('0x2e'),_0x1f3484[_0x27ce('0x21')]),_0x1f3484);queues[_0x27ce('0x2d')](_0x1f3484);calls[_0x27ce('0x2d')](_0x1f3484);}catch(_0x142f05){utils['error'](util[_0x27ce('0x1d')](_0x27ce('0x2e'),_0x1f3484['uniqueid']),_0x142f05);}});ami['on'](_0x27ce('0x2f'),function(_0x9d86f){try{utils[_0x27ce('0x1b')](util[_0x27ce('0x1d')]('[%s][index][musiconholdstop]',_0x9d86f[_0x27ce('0x21')]),_0x9d86f);queues[_0x27ce('0x2f')](_0x9d86f);calls['musiconholdstop'](_0x9d86f);}catch(_0xea28aa){utils[_0x27ce('0x17')](util['format'](_0x27ce('0x30'),_0x9d86f[_0x27ce('0x21')]),_0xea28aa);}});ami['on'](_0x27ce('0x31'),function(_0x471d41){try{utils['debug'](util[_0x27ce('0x1d')](_0x27ce('0x32'),_0x471d41[_0x27ce('0x21')]),_0x471d41);calls[_0x27ce('0x31')](_0x471d41);recordings[_0x27ce('0x31')](_0x471d41);}catch(_0x38cfde){utils[_0x27ce('0x17')](util['format'](_0x27ce('0x32'),_0x471d41[_0x27ce('0x21')]),_0x38cfde);}});ami['on'](_0x27ce('0x33'),function(_0x40a660){try{utils[_0x27ce('0x1b')](util[_0x27ce('0x1d')]('[%s][index][hangup]',_0x40a660[_0x27ce('0x21')]),_0x40a660);calls[_0x27ce('0x33')](_0x40a660);recordings[_0x27ce('0x33')](_0x40a660);dials['hangup'](_0x40a660);agents[_0x27ce('0x33')](_0x40a660);queues[_0x27ce('0x33')](_0x40a660);}catch(_0x13d91c){utils['error'](util[_0x27ce('0x1d')]('[%s][index][hangup]',_0x40a660[_0x27ce('0x21')]),_0x13d91c);}});ami['on']('cdr',function(_0x10a376){try{utils[_0x27ce('0x1b')](util['format']('[%s][index][cdr]',_0x10a376[_0x27ce('0x21')]),_0x10a376);members['cdr'](_0x10a376);}catch(_0x2b146b){utils[_0x27ce('0x17')](util[_0x27ce('0x1d')](_0x27ce('0x34'),_0x10a376[_0x27ce('0x21')]),_0x2b146b);}});ami['on'](_0x27ce('0x35'),function(_0x5364c8){try{utils[_0x27ce('0x1b')](util[_0x27ce('0x1d')](_0x27ce('0x36'),_0x5364c8[_0x27ce('0x21')]),_0x5364c8);queues['blindtransfer'](_0x5364c8);agents[_0x27ce('0x35')](_0x5364c8);transfers[_0x27ce('0x35')](_0x5364c8);}catch(_0x5054af){utils[_0x27ce('0x17')](util[_0x27ce('0x1d')](_0x27ce('0x36'),_0x5364c8[_0x27ce('0x21')]),_0x5054af);}});ami['on'](_0x27ce('0x37'),function(_0x1f91d4){try{utils['debug'](util['format'](_0x27ce('0x38'),_0x1f91d4[_0x27ce('0x39')]),_0x1f91d4);queues[_0x27ce('0x37')](_0x1f91d4);transfers[_0x27ce('0x37')](_0x1f91d4);agents[_0x27ce('0x37')](_0x1f91d4);calls[_0x27ce('0x37')](_0x1f91d4);}catch(_0x102aa3){utils['error'](util['format'](_0x27ce('0x38'),_0x1f91d4[_0x27ce('0x39')]),_0x102aa3);}});ami['on'](_0x27ce('0x3a'),function(_0x3865fa){try{utils['debug'](util[_0x27ce('0x1d')](_0x27ce('0x3b'),_0x3865fa['uniqueid']),_0x3865fa);queues[_0x27ce('0x3a')](_0x3865fa);recordings[_0x27ce('0x3a')](_0x3865fa);calls[_0x27ce('0x3a')](_0x3865fa);dials[_0x27ce('0x3a')](_0x3865fa);}catch(_0x128a10){utils[_0x27ce('0x17')](util[_0x27ce('0x1d')]('[%s][index][varset]',_0x3865fa[_0x27ce('0x21')]),_0x128a10);}});ami['on'](_0x27ce('0x3c'),function(_0x307c24){try{utils['debug'](util[_0x27ce('0x1d')](_0x27ce('0x3d'),_0x307c24[_0x27ce('0x21')]),_0x307c24);calls[_0x27ce('0x3c')](_0x307c24);recordings[_0x27ce('0x3c')](_0x307c24);dials[_0x27ce('0x3c')](_0x307c24);}catch(_0x5e00f8){utils[_0x27ce('0x17')](util[_0x27ce('0x1d')](_0x27ce('0x3d'),_0x307c24[_0x27ce('0x21')]),_0x5e00f8);}});ami['on'](_0x27ce('0x3e'),function(_0x4b3f3a){try{utils[_0x27ce('0x1b')](util[_0x27ce('0x1d')](_0x27ce('0x3f'),_0x4b3f3a[_0x27ce('0x21')]),_0x4b3f3a);calls[_0x27ce('0x3e')](_0x4b3f3a);recordings[_0x27ce('0x3e')](_0x4b3f3a);}catch(_0x1e6970){utils[_0x27ce('0x17')](util[_0x27ce('0x1d')]('[%s][index][newchannel]',_0x4b3f3a[_0x27ce('0x21')]),_0x1e6970);}});ami['on'](_0x27ce('0x40'),function(_0x287160){try{utils[_0x27ce('0x1b')](util[_0x27ce('0x1d')](_0x27ce('0x41'),_0x287160['uniqueid']),_0x287160);dials['dialbegin'](_0x287160);}catch(_0x5ca60d){utils['error'](util[_0x27ce('0x1d')]('[%s]dialbegin',_0x287160['uniqueid']),_0x5ca60d);}});ami['on']('dialend',function(_0x3f650c){try{utils[_0x27ce('0x1b')](util['format'](_0x27ce('0x42'),_0x3f650c[_0x27ce('0x21')]),_0x3f650c);dials[_0x27ce('0x43')](_0x3f650c);}catch(_0x377667){utils[_0x27ce('0x17')](util[_0x27ce('0x1d')](_0x27ce('0x42'),_0x3f650c['uniqueid']),_0x377667);}});}