Built motion from commit 0900f080.|2.5.45
[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 _0x4bfa=['device','agentcalled','[%s][index][agentcalled]','uniqueid','agentringnoanswer','[%s][index][agentringnoanswer]','[%s][index][agentconnect]','agentconnect','agentcomplete','[%s][index][agentcomplete]','queuecallerabandon','[%s][index][queuecallerabandon]','queuecallerjoin','[%s][index][queuecallerjoin]','queuecallerleave','[%s][index][queuecallerleave]','musiconholdstart','[%s][index][musiconholdstart]','[%s][index][musiconholdstop]','musiconholdstop','newstate','[%s][index][newstate]','hangup','[%s][index][hangup]','cdr','[%s][index][cdr]','blindtransfer','[%s][index][blindtransfer]','attendedtransfer','[%s][index][attendedtransfer]','origtransfereruniqueid','varset','[%s][index][varset]','newexten','[%s][index][newexten]','newchannel','[%s][index][newchannel]','[%s][index][dialbegin]','dialbegin','[%s]dialbegin','[%s][index][dialend]','dialend','../../config/environment','xdr','disabled','env','production','asterisk','port','password','keepConnected','info','XDR\x20DISABLED','Asterisk\x20disabled\x20on\x20localhost','./calls.controller','./queues.controller','./recordings.controller','./dials.controller','./transfers.controller','./core.controller','connect','shutdown','fullybooted','error','close','managerevent','devicestatechange','debug','format','[%s][index][devicestatechange]'];(function(_0x4a8cf5,_0x5e186b){var _0x1c9a96=function(_0x9b50f9){while(--_0x9b50f9){_0x4a8cf5['push'](_0x4a8cf5['shift']());}};_0x1c9a96(++_0x5e186b);}(_0x4bfa,0xb6));var _0xa4bf=function(_0x1aa5eb,_0x4efec4){_0x1aa5eb=_0x1aa5eb-0x0;var _0x45f0fa=_0x4bfa[_0x1aa5eb];return _0x45f0fa;};var AsteriskManager=require('asterisk-manager');var config=require(_0xa4bf('0x0'));var utils=require('./utils');var util=require('util');var isXDREnabled=config[_0xa4bf('0x1')]&&config[_0xa4bf('0x1')][_0xa4bf('0x2')]?!config[_0xa4bf('0x1')]['disabled']:!![];var isProduction=config[_0xa4bf('0x3')]===_0xa4bf('0x4')||![];var isLocalAsterisk=config[_0xa4bf('0x1')]&&config['xdr']['local']===!![]||![];var ami=new AsteriskManager(config[_0xa4bf('0x5')][_0xa4bf('0x6')],config[_0xa4bf('0x5')]['ip'],config['asterisk']['username'],config[_0xa4bf('0x5')][_0xa4bf('0x7')],!![]);ami[_0xa4bf('0x8')]();if(!isXDREnabled){utils[_0xa4bf('0x9')](_0xa4bf('0xa'));}else if(!isProduction&&!isLocalAsterisk){utils[_0xa4bf('0x9')](_0xa4bf('0xb'));}else{var agents=require('./agents.controller');var calls=require(_0xa4bf('0xc'));var queues=require(_0xa4bf('0xd'));var recordings=require(_0xa4bf('0xe'));var members=require('./members.controller');var dials=require(_0xa4bf('0xf'));var transfers=require(_0xa4bf('0x10'));var core=require(_0xa4bf('0x11'));ami['on'](_0xa4bf('0x12'),core[_0xa4bf('0x12')]);ami['on']('shutdown',core[_0xa4bf('0x13')]);ami['on']('fullybooted',core[_0xa4bf('0x14')]);ami['on'](_0xa4bf('0x15'),core[_0xa4bf('0x15')]);ami['on'](_0xa4bf('0x16'),core[_0xa4bf('0x16')]);ami['on'](_0xa4bf('0x17'),core[_0xa4bf('0x17')]);ami['on'](_0xa4bf('0x18'),function(_0x319c1d){try{utils[_0xa4bf('0x19')](util['format']('[%s][index][devicestatechange]',_0x319c1d['device']),_0x319c1d);members[_0xa4bf('0x18')](_0x319c1d);}catch(_0xac55d3){utils['error'](util[_0xa4bf('0x1a')](_0xa4bf('0x1b'),_0x319c1d[_0xa4bf('0x1c')]),_0xac55d3);}});ami['on'](_0xa4bf('0x1d'),function(_0x5874d0){try{utils[_0xa4bf('0x19')](util[_0xa4bf('0x1a')](_0xa4bf('0x1e'),_0x5874d0['uniqueid']),_0x5874d0);agents[_0xa4bf('0x1d')](_0x5874d0);}catch(_0x5ce286){utils['error'](util['format']('[%s][index][agentcalled]',_0x5874d0[_0xa4bf('0x1f')]),_0x5ce286);}});ami['on'](_0xa4bf('0x20'),function(_0x554076){try{utils[_0xa4bf('0x19')](util[_0xa4bf('0x1a')](_0xa4bf('0x21'),_0x554076[_0xa4bf('0x1f')]),_0x554076);agents['agentringnoanswer'](_0x554076);}catch(_0x49f6eb){utils[_0xa4bf('0x15')](util[_0xa4bf('0x1a')](_0xa4bf('0x21'),_0x554076[_0xa4bf('0x1f')]),_0x49f6eb);}});ami['on']('agentconnect',function(_0x30ab3e){try{utils[_0xa4bf('0x19')](util[_0xa4bf('0x1a')](_0xa4bf('0x22'),_0x30ab3e['uniqueid']),_0x30ab3e);agents[_0xa4bf('0x23')](_0x30ab3e);queues['agentconnect'](_0x30ab3e);}catch(_0x59de1a){utils[_0xa4bf('0x15')](util[_0xa4bf('0x1a')](_0xa4bf('0x22'),_0x30ab3e['uniqueid']),_0x59de1a);}});ami['on']('agentcomplete',function(_0x521432){try{utils['debug'](util[_0xa4bf('0x1a')]('[%s][index][agentcomplete]',_0x521432[_0xa4bf('0x1f')]),_0x521432);agents[_0xa4bf('0x24')](_0x521432);queues[_0xa4bf('0x24')](_0x521432);members['agentcomplete'](_0x521432);}catch(_0x36ec34){utils[_0xa4bf('0x15')](util[_0xa4bf('0x1a')](_0xa4bf('0x25'),_0x521432[_0xa4bf('0x1f')]),_0x36ec34);}});ami['on'](_0xa4bf('0x26'),function(_0x5a151b){try{utils['debug'](util[_0xa4bf('0x1a')]('[%s][index][queuecallerabandon]',_0x5a151b[_0xa4bf('0x1f')]),_0x5a151b);agents['queuecallerabandon'](_0x5a151b);queues[_0xa4bf('0x26')](_0x5a151b);}catch(_0x20d926){utils['error'](util[_0xa4bf('0x1a')](_0xa4bf('0x27'),_0x5a151b[_0xa4bf('0x1f')]),_0x20d926);}});ami['on'](_0xa4bf('0x28'),function(_0x43a93e){try{utils['debug'](util['format'](_0xa4bf('0x29'),_0x43a93e[_0xa4bf('0x1f')]),_0x43a93e);queues[_0xa4bf('0x28')](_0x43a93e);recordings[_0xa4bf('0x28')](_0x43a93e);}catch(_0x5c951d){utils['error'](util[_0xa4bf('0x1a')](_0xa4bf('0x29'),_0x43a93e[_0xa4bf('0x1f')]),_0x5c951d);}});ami['on'](_0xa4bf('0x2a'),function(_0x1e83da){try{utils[_0xa4bf('0x19')](util['format'](_0xa4bf('0x2b'),_0x1e83da[_0xa4bf('0x1f')]),_0x1e83da);queues[_0xa4bf('0x2a')](_0x1e83da);}catch(_0x504814){utils[_0xa4bf('0x15')](util['format'](_0xa4bf('0x2b'),_0x1e83da['uniqueid']),_0x504814);}});ami['on'](_0xa4bf('0x2c'),function(_0x3e5a61){try{utils['debug'](util[_0xa4bf('0x1a')](_0xa4bf('0x2d'),_0x3e5a61[_0xa4bf('0x1f')]),_0x3e5a61);queues['musiconholdstart'](_0x3e5a61);calls[_0xa4bf('0x2c')](_0x3e5a61);}catch(_0x5e1ff2){utils[_0xa4bf('0x15')](util[_0xa4bf('0x1a')]('[%s][index][musiconholdstart]',_0x3e5a61[_0xa4bf('0x1f')]),_0x5e1ff2);}});ami['on']('musiconholdstop',function(_0x23ac01){try{utils[_0xa4bf('0x19')](util[_0xa4bf('0x1a')](_0xa4bf('0x2e'),_0x23ac01[_0xa4bf('0x1f')]),_0x23ac01);queues[_0xa4bf('0x2f')](_0x23ac01);calls[_0xa4bf('0x2f')](_0x23ac01);}catch(_0x37c34d){utils[_0xa4bf('0x15')](util[_0xa4bf('0x1a')](_0xa4bf('0x2e'),_0x23ac01['uniqueid']),_0x37c34d);}});ami['on'](_0xa4bf('0x30'),function(_0x56e321){try{utils['debug'](util[_0xa4bf('0x1a')](_0xa4bf('0x31'),_0x56e321[_0xa4bf('0x1f')]),_0x56e321);calls[_0xa4bf('0x30')](_0x56e321);recordings[_0xa4bf('0x30')](_0x56e321);}catch(_0x399657){utils[_0xa4bf('0x15')](util['format'](_0xa4bf('0x31'),_0x56e321[_0xa4bf('0x1f')]),_0x399657);}});ami['on']('hangup',function(_0x3d0796){try{utils['debug'](util[_0xa4bf('0x1a')]('[%s][index][hangup]',_0x3d0796[_0xa4bf('0x1f')]),_0x3d0796);calls[_0xa4bf('0x32')](_0x3d0796);recordings[_0xa4bf('0x32')](_0x3d0796);dials[_0xa4bf('0x32')](_0x3d0796);agents[_0xa4bf('0x32')](_0x3d0796);queues['hangup'](_0x3d0796);}catch(_0x3053dc){utils['error'](util[_0xa4bf('0x1a')](_0xa4bf('0x33'),_0x3d0796[_0xa4bf('0x1f')]),_0x3053dc);}});ami['on'](_0xa4bf('0x34'),function(_0xb931c5){try{utils[_0xa4bf('0x19')](util['format'](_0xa4bf('0x35'),_0xb931c5[_0xa4bf('0x1f')]),_0xb931c5);members['cdr'](_0xb931c5);}catch(_0x2d2a20){utils[_0xa4bf('0x15')](util[_0xa4bf('0x1a')]('[%s][index][cdr]',_0xb931c5[_0xa4bf('0x1f')]),_0x2d2a20);}});ami['on'](_0xa4bf('0x36'),function(_0x19d088){try{utils[_0xa4bf('0x19')](util[_0xa4bf('0x1a')](_0xa4bf('0x37'),_0x19d088[_0xa4bf('0x1f')]),_0x19d088);queues['blindtransfer'](_0x19d088);agents[_0xa4bf('0x36')](_0x19d088);transfers[_0xa4bf('0x36')](_0x19d088);recordings[_0xa4bf('0x36')](_0x19d088);}catch(_0x387945){utils['error'](util['format'](_0xa4bf('0x37'),_0x19d088[_0xa4bf('0x1f')]),_0x387945);}});ami['on'](_0xa4bf('0x38'),function(_0x48d920){try{utils['debug'](util[_0xa4bf('0x1a')](_0xa4bf('0x39'),_0x48d920['origtransfereruniqueid']),_0x48d920);queues[_0xa4bf('0x38')](_0x48d920);transfers['attendedtransfer'](_0x48d920);agents['attendedtransfer'](_0x48d920);calls[_0xa4bf('0x38')](_0x48d920);}catch(_0x27bfe2){utils[_0xa4bf('0x15')](util[_0xa4bf('0x1a')](_0xa4bf('0x39'),_0x48d920[_0xa4bf('0x3a')]),_0x27bfe2);}});ami['on'](_0xa4bf('0x3b'),function(_0x5d5e63){try{utils[_0xa4bf('0x19')](util[_0xa4bf('0x1a')]('[%s][index][varset]',_0x5d5e63[_0xa4bf('0x1f')]),_0x5d5e63);queues[_0xa4bf('0x3b')](_0x5d5e63);recordings[_0xa4bf('0x3b')](_0x5d5e63);calls['varset'](_0x5d5e63);dials[_0xa4bf('0x3b')](_0x5d5e63);}catch(_0x23cb81){utils[_0xa4bf('0x15')](util[_0xa4bf('0x1a')](_0xa4bf('0x3c'),_0x5d5e63[_0xa4bf('0x1f')]),_0x23cb81);}});ami['on'](_0xa4bf('0x3d'),function(_0xfdf7a7){try{utils[_0xa4bf('0x19')](util['format'](_0xa4bf('0x3e'),_0xfdf7a7[_0xa4bf('0x1f')]),_0xfdf7a7);calls[_0xa4bf('0x3d')](_0xfdf7a7);recordings[_0xa4bf('0x3d')](_0xfdf7a7);dials[_0xa4bf('0x3d')](_0xfdf7a7);}catch(_0x4c870d){utils['error'](util[_0xa4bf('0x1a')](_0xa4bf('0x3e'),_0xfdf7a7[_0xa4bf('0x1f')]),_0x4c870d);}});ami['on'](_0xa4bf('0x3f'),function(_0x5474bd){try{utils[_0xa4bf('0x19')](util[_0xa4bf('0x1a')](_0xa4bf('0x40'),_0x5474bd[_0xa4bf('0x1f')]),_0x5474bd);calls[_0xa4bf('0x3f')](_0x5474bd);recordings['newchannel'](_0x5474bd);}catch(_0x1da8ce){utils[_0xa4bf('0x15')](util['format']('[%s][index][newchannel]',_0x5474bd[_0xa4bf('0x1f')]),_0x1da8ce);}});ami['on']('dialbegin',function(_0x144d66){try{utils[_0xa4bf('0x19')](util['format'](_0xa4bf('0x41'),_0x144d66[_0xa4bf('0x1f')]),_0x144d66);dials[_0xa4bf('0x42')](_0x144d66);}catch(_0x2e1dea){utils['error'](util[_0xa4bf('0x1a')](_0xa4bf('0x43'),_0x144d66[_0xa4bf('0x1f')]),_0x2e1dea);}});ami['on']('dialend',function(_0x460dce){try{utils[_0xa4bf('0x19')](util[_0xa4bf('0x1a')](_0xa4bf('0x44'),_0x460dce[_0xa4bf('0x1f')]),_0x460dce);dials[_0xa4bf('0x45')](_0x460dce);}catch(_0x3eb707){utils['error'](util['format'](_0xa4bf('0x44'),_0x460dce[_0xa4bf('0x1f')]),_0x3eb707);}});}