Built motion from commit 9d0783e6.|2.6.13
[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 _0x3736=['attendedtransfer','[%s][index][attendedtransfer]','origtransfereruniqueid','varset','[%s][index][varset]','newexten','[%s][index][newexten]','newchannel','[%s][index][newchannel]','dialbegin','[%s]dialbegin','dialend','[%s][index][dialend]','../../config/environment','xdr','disabled','production','local','port','asterisk','username','password','info','./agents.controller','./calls.controller','./queues.controller','./recordings.controller','./dials.controller','./transfers.controller','./core.controller','shutdown','fullybooted','error','close','managerevent','devicestatechange','format','device','agentcalled','debug','uniqueid','[%s][index][agentcalled]','agentringnoanswer','[%s][index][agentringnoanswer]','agentconnect','[%s][index][agentconnect]','agentcomplete','[%s][index][agentcomplete]','[%s][index][queuecallerabandon]','[%s][index][queuecallerjoin]','queuecallerjoin','queuecallerleave','[%s][index][queuecallerleave]','musiconholdstart','[%s][index][musiconholdstart]','musiconholdstop','[%s][index][musiconholdstop]','newstate','[%s][index][newstate]','hangup','[%s][index][hangup]','cdr','[%s][index][cdr]','blindtransfer','[%s][index][blindtransfer]'];(function(_0xd6efac,_0xef3d8b){var _0xad098=function(_0x3978fb){while(--_0x3978fb){_0xd6efac['push'](_0xd6efac['shift']());}};_0xad098(++_0xef3d8b);}(_0x3736,0x8f));var _0x6373=function(_0x30248d,_0x133131){_0x30248d=_0x30248d-0x0;var _0x5f5c11=_0x3736[_0x30248d];return _0x5f5c11;};var AsteriskManager=require('asterisk-manager');var config=require(_0x6373('0x0'));var utils=require('./utils');var util=require('util');var isXDREnabled=config[_0x6373('0x1')]&&config[_0x6373('0x1')][_0x6373('0x2')]?!config[_0x6373('0x1')][_0x6373('0x2')]:!![];var isProduction=config['env']===_0x6373('0x3')||![];var isLocalAsterisk=config[_0x6373('0x1')]&&config['xdr'][_0x6373('0x4')]===!![]||![];var ami=new AsteriskManager(config['asterisk'][_0x6373('0x5')],config[_0x6373('0x6')]['ip'],config[_0x6373('0x6')][_0x6373('0x7')],config[_0x6373('0x6')][_0x6373('0x8')],!![]);ami['keepConnected']();if(!isXDREnabled){utils[_0x6373('0x9')]('XDR\x20DISABLED');}else if(!isProduction&&!isLocalAsterisk){utils['info']('Asterisk\x20disabled\x20on\x20localhost');}else{var agents=require(_0x6373('0xa'));var calls=require(_0x6373('0xb'));var queues=require(_0x6373('0xc'));var recordings=require(_0x6373('0xd'));var members=require('./members.controller');var dials=require(_0x6373('0xe'));var transfers=require(_0x6373('0xf'));var core=require(_0x6373('0x10'));ami['on']('connect',core['connect']);ami['on'](_0x6373('0x11'),core[_0x6373('0x11')]);ami['on'](_0x6373('0x12'),core['fullybooted']);ami['on']('error',core[_0x6373('0x13')]);ami['on']('close',core[_0x6373('0x14')]);ami['on'](_0x6373('0x15'),core[_0x6373('0x15')]);ami['on'](_0x6373('0x16'),function(_0x527813){try{utils['debug'](util[_0x6373('0x17')]('[%s][index][devicestatechange]',_0x527813['device']),_0x527813);members[_0x6373('0x16')](_0x527813);}catch(_0x53114a){utils[_0x6373('0x13')](util[_0x6373('0x17')]('[%s][index][devicestatechange]',_0x527813[_0x6373('0x18')]),_0x53114a);}});ami['on'](_0x6373('0x19'),function(_0x5459d9){try{utils[_0x6373('0x1a')](util['format']('[%s][index][agentcalled]',_0x5459d9[_0x6373('0x1b')]),_0x5459d9);agents['agentcalled'](_0x5459d9);}catch(_0x74006f){utils[_0x6373('0x13')](util[_0x6373('0x17')](_0x6373('0x1c'),_0x5459d9[_0x6373('0x1b')]),_0x74006f);}});ami['on'](_0x6373('0x1d'),function(_0x40667b){try{utils[_0x6373('0x1a')](util[_0x6373('0x17')](_0x6373('0x1e'),_0x40667b['uniqueid']),_0x40667b);agents[_0x6373('0x1d')](_0x40667b);}catch(_0x412bf2){utils['error'](util[_0x6373('0x17')](_0x6373('0x1e'),_0x40667b[_0x6373('0x1b')]),_0x412bf2);}});ami['on'](_0x6373('0x1f'),function(_0x415e49){try{utils[_0x6373('0x1a')](util[_0x6373('0x17')]('[%s][index][agentconnect]',_0x415e49[_0x6373('0x1b')]),_0x415e49);agents[_0x6373('0x1f')](_0x415e49);queues[_0x6373('0x1f')](_0x415e49);}catch(_0x558d06){utils[_0x6373('0x13')](util[_0x6373('0x17')](_0x6373('0x20'),_0x415e49['uniqueid']),_0x558d06);}});ami['on'](_0x6373('0x21'),function(_0x375eba){try{utils[_0x6373('0x1a')](util[_0x6373('0x17')]('[%s][index][agentcomplete]',_0x375eba[_0x6373('0x1b')]),_0x375eba);agents[_0x6373('0x21')](_0x375eba);queues[_0x6373('0x21')](_0x375eba);members['agentcomplete'](_0x375eba);}catch(_0x21eb74){utils['error'](util['format'](_0x6373('0x22'),_0x375eba['uniqueid']),_0x21eb74);}});ami['on']('queuecallerabandon',function(_0x51a41f){try{utils[_0x6373('0x1a')](util[_0x6373('0x17')](_0x6373('0x23'),_0x51a41f[_0x6373('0x1b')]),_0x51a41f);agents['queuecallerabandon'](_0x51a41f);queues['queuecallerabandon'](_0x51a41f);}catch(_0x2e82ec){utils[_0x6373('0x13')](util[_0x6373('0x17')](_0x6373('0x23'),_0x51a41f['uniqueid']),_0x2e82ec);}});ami['on']('queuecallerjoin',function(_0x5b3153){try{utils[_0x6373('0x1a')](util[_0x6373('0x17')](_0x6373('0x24'),_0x5b3153['uniqueid']),_0x5b3153);queues[_0x6373('0x25')](_0x5b3153);recordings[_0x6373('0x25')](_0x5b3153);}catch(_0xcfdbd){utils['error'](util['format'](_0x6373('0x24'),_0x5b3153[_0x6373('0x1b')]),_0xcfdbd);}});ami['on'](_0x6373('0x26'),function(_0x4df3bc){try{utils[_0x6373('0x1a')](util['format']('[%s][index][queuecallerleave]',_0x4df3bc[_0x6373('0x1b')]),_0x4df3bc);queues[_0x6373('0x26')](_0x4df3bc);}catch(_0x13757b){utils[_0x6373('0x13')](util['format'](_0x6373('0x27'),_0x4df3bc[_0x6373('0x1b')]),_0x13757b);}});ami['on'](_0x6373('0x28'),function(_0x4b604d){try{utils['debug'](util[_0x6373('0x17')](_0x6373('0x29'),_0x4b604d[_0x6373('0x1b')]),_0x4b604d);queues[_0x6373('0x28')](_0x4b604d);calls[_0x6373('0x28')](_0x4b604d);}catch(_0x3e1ec3){utils[_0x6373('0x13')](util[_0x6373('0x17')](_0x6373('0x29'),_0x4b604d['uniqueid']),_0x3e1ec3);}});ami['on']('musiconholdstop',function(_0x1884f6){try{utils[_0x6373('0x1a')](util[_0x6373('0x17')]('[%s][index][musiconholdstop]',_0x1884f6[_0x6373('0x1b')]),_0x1884f6);queues[_0x6373('0x2a')](_0x1884f6);calls[_0x6373('0x2a')](_0x1884f6);}catch(_0x3e6747){utils[_0x6373('0x13')](util[_0x6373('0x17')](_0x6373('0x2b'),_0x1884f6[_0x6373('0x1b')]),_0x3e6747);}});ami['on'](_0x6373('0x2c'),function(_0x59b122){try{utils[_0x6373('0x1a')](util[_0x6373('0x17')](_0x6373('0x2d'),_0x59b122[_0x6373('0x1b')]),_0x59b122);calls['newstate'](_0x59b122);recordings[_0x6373('0x2c')](_0x59b122);}catch(_0xfb56aa){utils['error'](util['format'](_0x6373('0x2d'),_0x59b122['uniqueid']),_0xfb56aa);}});ami['on'](_0x6373('0x2e'),function(_0x390256){try{utils['debug'](util[_0x6373('0x17')](_0x6373('0x2f'),_0x390256[_0x6373('0x1b')]),_0x390256);calls[_0x6373('0x2e')](_0x390256);recordings[_0x6373('0x2e')](_0x390256);dials[_0x6373('0x2e')](_0x390256);agents['hangup'](_0x390256);queues[_0x6373('0x2e')](_0x390256);}catch(_0x53b8f5){utils[_0x6373('0x13')](util['format'](_0x6373('0x2f'),_0x390256[_0x6373('0x1b')]),_0x53b8f5);}});ami['on'](_0x6373('0x30'),function(_0x4e3c5d){try{utils[_0x6373('0x1a')](util['format']('[%s][index][cdr]',_0x4e3c5d[_0x6373('0x1b')]),_0x4e3c5d);members[_0x6373('0x30')](_0x4e3c5d);}catch(_0x40b7ee){utils[_0x6373('0x13')](util[_0x6373('0x17')](_0x6373('0x31'),_0x4e3c5d[_0x6373('0x1b')]),_0x40b7ee);}});ami['on'](_0x6373('0x32'),function(_0xd1e4ba){try{utils[_0x6373('0x1a')](util['format'](_0x6373('0x33'),_0xd1e4ba[_0x6373('0x1b')]),_0xd1e4ba);queues[_0x6373('0x32')](_0xd1e4ba);agents[_0x6373('0x32')](_0xd1e4ba);transfers['blindtransfer'](_0xd1e4ba);recordings[_0x6373('0x32')](_0xd1e4ba);}catch(_0x3e8a6c){utils['error'](util[_0x6373('0x17')](_0x6373('0x33'),_0xd1e4ba[_0x6373('0x1b')]),_0x3e8a6c);}});ami['on'](_0x6373('0x34'),function(_0x3d4548){try{utils[_0x6373('0x1a')](util[_0x6373('0x17')](_0x6373('0x35'),_0x3d4548[_0x6373('0x36')]),_0x3d4548);queues['attendedtransfer'](_0x3d4548);transfers[_0x6373('0x34')](_0x3d4548);agents[_0x6373('0x34')](_0x3d4548);calls['attendedtransfer'](_0x3d4548);}catch(_0x3c843b){utils[_0x6373('0x13')](util['format'](_0x6373('0x35'),_0x3d4548['origtransfereruniqueid']),_0x3c843b);}});ami['on'](_0x6373('0x37'),function(_0x4f98b5){try{utils['debug'](util[_0x6373('0x17')](_0x6373('0x38'),_0x4f98b5[_0x6373('0x1b')]),_0x4f98b5);queues[_0x6373('0x37')](_0x4f98b5);recordings[_0x6373('0x37')](_0x4f98b5);calls['varset'](_0x4f98b5);dials['varset'](_0x4f98b5);}catch(_0x315bfb){utils['error'](util[_0x6373('0x17')](_0x6373('0x38'),_0x4f98b5[_0x6373('0x1b')]),_0x315bfb);}});ami['on'](_0x6373('0x39'),function(_0x95ee89){try{utils[_0x6373('0x1a')](util['format'](_0x6373('0x3a'),_0x95ee89[_0x6373('0x1b')]),_0x95ee89);calls['newexten'](_0x95ee89);recordings[_0x6373('0x39')](_0x95ee89);dials['newexten'](_0x95ee89);}catch(_0x1334b5){utils['error'](util[_0x6373('0x17')](_0x6373('0x3a'),_0x95ee89[_0x6373('0x1b')]),_0x1334b5);}});ami['on'](_0x6373('0x3b'),function(_0x9d2752){try{utils[_0x6373('0x1a')](util[_0x6373('0x17')]('[%s][index][newchannel]',_0x9d2752[_0x6373('0x1b')]),_0x9d2752);calls['newchannel'](_0x9d2752);recordings[_0x6373('0x3b')](_0x9d2752);}catch(_0x3feb47){utils[_0x6373('0x13')](util[_0x6373('0x17')](_0x6373('0x3c'),_0x9d2752['uniqueid']),_0x3feb47);}});ami['on']('dialbegin',function(_0x46b447){try{utils[_0x6373('0x1a')](util[_0x6373('0x17')]('[%s][index][dialbegin]',_0x46b447[_0x6373('0x1b')]),_0x46b447);dials[_0x6373('0x3d')](_0x46b447);}catch(_0x5cab9a){utils[_0x6373('0x13')](util[_0x6373('0x17')](_0x6373('0x3e'),_0x46b447[_0x6373('0x1b')]),_0x5cab9a);}});ami['on'](_0x6373('0x3f'),function(_0x162f2a){try{utils[_0x6373('0x1a')](util[_0x6373('0x17')](_0x6373('0x40'),_0x162f2a[_0x6373('0x1b')]),_0x162f2a);dials[_0x6373('0x3f')](_0x162f2a);}catch(_0x45f4fd){utils[_0x6373('0x13')](util['format'](_0x6373('0x40'),_0x162f2a[_0x6373('0x1b')]),_0x45f4fd);}});}