eb283628ddda5146012394c1dd75f49210bdedc3
[motion2.git] / server / services / xdr / dials.controller.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 _0x2b9a=['[%s][dials][dialbegin]','lastevent','called','starttime','dialend','[%s][dials][dialend]','assign','now','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','answertime','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','complete','diffTime','endtime','holdtime','billableseconds','lodash','util','./utils','info','uniqueid','channel','dialstring','calleridnum','dialstatus','request','CreateVoiceDialReport','newexten','format','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','split','error','varset','debug','isNil','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','[%s][dials][varset]','dialbegin'];(function(_0x26e184,_0x1b1f2c){var _0x193c1c=function(_0x447fad){while(--_0x447fad){_0x26e184['push'](_0x26e184['shift']());}};_0x193c1c(++_0x1b1f2c);}(_0x2b9a,0x73));var _0xa2b9=function(_0x55c84c,_0x11b3fc){_0x55c84c=_0x55c84c-0x0;var _0x4e934c=_0x2b9a[_0x55c84c];return _0x4e934c;};'use strict';var _=require(_0xa2b9('0x0'));var util=require(_0xa2b9('0x1'));var utils=require(_0xa2b9('0x2'));var dials={};function writeDB(_0x4a2aba){utils[_0xa2b9('0x3')](util['format']('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x4a2aba[_0xa2b9('0x4')],_0x4a2aba[_0xa2b9('0x5')],_0x4a2aba[_0xa2b9('0x6')],_0x4a2aba[_0xa2b9('0x7')],_0x4a2aba['connectedlinenum'],_0x4a2aba[_0xa2b9('0x8')]));utils[_0xa2b9('0x9')](_0xa2b9('0xa'),_0x4a2aba);delete dials[_0x4a2aba[_0xa2b9('0x4')]];}exports[_0xa2b9('0xb')]=function(_0x4a8bf6){try{utils['debug'](util[_0xa2b9('0xc')](_0xa2b9('0xd'),_0x4a8bf6['uniqueid']),_0x4a8bf6);utils[_0xa2b9('0x3')](util[_0xa2b9('0xc')](_0xa2b9('0xe'),_0x4a8bf6['uniqueid'],_0x4a8bf6[_0xa2b9('0xf')],_0x4a8bf6[_0xa2b9('0x10')]));if(_0x4a8bf6['application'][_0xa2b9('0x11')]()==_0xa2b9('0x12')&&_['startsWith'](_0x4a8bf6[_0xa2b9('0x10')][_0xa2b9('0x11')](),'cdr(routeid)')){var _0x27c19c=_0x4a8bf6[_0xa2b9('0x10')][_0xa2b9('0x13')]('=');dials[_0x4a8bf6[_0xa2b9('0x4')]]={'routeId':_0x27c19c[0x1]};}}catch(_0x3b2172){utils[_0xa2b9('0x14')](util['format'](_0xa2b9('0xd'),_0x4a8bf6['uniqueid']),_0x3b2172);}};exports[_0xa2b9('0x15')]=function(_0x1cc362){try{utils[_0xa2b9('0x16')](util['format']('[%s][dials][varset]',_0x1cc362[_0xa2b9('0x4')]),_0x1cc362);if(!_[_0xa2b9('0x17')](_0x1cc362['variable'][_0xa2b9('0x18')])){utils[_0xa2b9('0x3')](util[_0xa2b9('0xc')](_0xa2b9('0x19'),_0x1cc362[_0xa2b9('0x4')],_0x1cc362[_0xa2b9('0x1a')]));dials[_0x1cc362[_0xa2b9('0x4')]]={'routeId':_0x1cc362[_0xa2b9('0x1a')]};}}catch(_0x3807b9){utils[_0xa2b9('0x14')](util[_0xa2b9('0xc')](_0xa2b9('0x1b'),_0x1cc362[_0xa2b9('0x4')]),_0x3807b9);}};exports[_0xa2b9('0x1c')]=function(_0x8164fa){try{if(!_[_0xa2b9('0x17')](dials[_0x8164fa[_0xa2b9('0x4')]])){utils[_0xa2b9('0x16')](util['format'](_0xa2b9('0x1d'),_0x8164fa[_0xa2b9('0x4')]),_0x8164fa);dials[_0x8164fa['uniqueid']]=_['assign'](dials[_0x8164fa['uniqueid']],_0x8164fa);dials[_0x8164fa[_0xa2b9('0x4')]]['starttime']=utils['now']();dials[_0x8164fa[_0xa2b9('0x4')]][_0xa2b9('0x1e')]=_0xa2b9('0x1f');utils[_0xa2b9('0x3')](util[_0xa2b9('0xc')]('[%s][dials][hangup]\x20starttime:%s\x20lastevent:called',_0x8164fa['uniqueid'],dials[_0x8164fa['uniqueid']][_0xa2b9('0x20')]));}}catch(_0x24766e){utils['error'](util[_0xa2b9('0xc')]('[%s][dials][dialbegin]',_0x8164fa[_0xa2b9('0x4')]),_0x24766e);}};exports[_0xa2b9('0x21')]=function(_0x5dc2b5){try{if(!_[_0xa2b9('0x17')](dials[_0x5dc2b5[_0xa2b9('0x4')]])){utils[_0xa2b9('0x16')](util['format'](_0xa2b9('0x22'),_0x5dc2b5['uniqueid']),_0x5dc2b5);dials[_0x5dc2b5[_0xa2b9('0x4')]][_0xa2b9('0x8')]=_0x5dc2b5[_0xa2b9('0x8')];if(_0x5dc2b5[_0xa2b9('0x8')]=='ANSWER'){dials[_0x5dc2b5[_0xa2b9('0x4')]]=_[_0xa2b9('0x23')](dials[_0x5dc2b5['uniqueid']],_0x5dc2b5);dials[_0x5dc2b5[_0xa2b9('0x4')]]['answertime']=utils[_0xa2b9('0x24')]();dials[_0x5dc2b5[_0xa2b9('0x4')]][_0xa2b9('0x1e')]=_0xa2b9('0x25');utils[_0xa2b9('0x3')](util[_0xa2b9('0xc')](_0xa2b9('0x26'),_0x5dc2b5[_0xa2b9('0x4')],_0x5dc2b5['dialstatus'],dials[_0x5dc2b5[_0xa2b9('0x4')]][_0xa2b9('0x27')]));}else{utils[_0xa2b9('0x3')](util[_0xa2b9('0xc')](_0xa2b9('0x28'),_0x5dc2b5['uniqueid'],_0x5dc2b5[_0xa2b9('0x8')]));}}}catch(_0xcf21e2){utils[_0xa2b9('0x14')](util['format'](_0xa2b9('0x22'),_0x5dc2b5[_0xa2b9('0x4')]),_0xcf21e2);}};exports[_0xa2b9('0x29')]=function(_0x54feab){try{if(!_['isNil'](dials[_0x54feab[_0xa2b9('0x4')]])){utils[_0xa2b9('0x16')](util[_0xa2b9('0xc')]('[%s][dials][hangup]',_0x54feab[_0xa2b9('0x4')]),_0x54feab);utils[_0xa2b9('0x3')](util['format'](_0xa2b9('0x2a'),_0x54feab['uniqueid'],_0x54feab[_0xa2b9('0x7')],_0x54feab['calleridname'],_0x54feab['cause-txt']));dials[_0x54feab['uniqueid']]=_[_0xa2b9('0x23')](dials[_0x54feab[_0xa2b9('0x4')]],{'endtime':utils['now'](),'lastevent':_0xa2b9('0x2b')});dials[_0x54feab[_0xa2b9('0x4')]]['duration']=utils[_0xa2b9('0x2c')](dials[_0x54feab[_0xa2b9('0x4')]][_0xa2b9('0x2d')],dials[_0x54feab[_0xa2b9('0x4')]][_0xa2b9('0x20')]);dials[_0x54feab['uniqueid']][_0xa2b9('0x2e')]=utils[_0xa2b9('0x2c')](dials[_0x54feab[_0xa2b9('0x4')]]['answertime']||dials[_0x54feab[_0xa2b9('0x4')]][_0xa2b9('0x2d')],dials[_0x54feab['uniqueid']][_0xa2b9('0x20')]);dials[_0x54feab[_0xa2b9('0x4')]][_0xa2b9('0x2f')]=dials[_0x54feab[_0xa2b9('0x4')]]['answertime']?utils[_0xa2b9('0x2c')](dials[_0x54feab[_0xa2b9('0x4')]][_0xa2b9('0x2d')],dials[_0x54feab[_0xa2b9('0x4')]][_0xa2b9('0x27')]):0x0;writeDB(dials[_0x54feab[_0xa2b9('0x4')]]);}}catch(_0x2d2553){utils[_0xa2b9('0x14')](util['format']('[%s][dials][hangup]',_0x54feab[_0xa2b9('0x4')]),_0x2d2553);}};