2f3a88ccc1fc937f6c58ce48b1035966b2968af2
[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 _0xa0ef=['variable','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','[%s][dials][varset]','dialbegin','starttime','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialbegin]','dialend','ANSWER','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','calleridnum','calleridname','cause-txt','assign','diffTime','holdtime','endtime','billableseconds','[%s][dials][hangup]','lodash','./utils','info','format','uniqueid','channel','dialstring','dialstatus','request','CreateVoiceDialReport','newexten','debug','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','cdr(routeid)','split','error','varset','isNil'];(function(_0x53a0b5,_0x2f10d6){var _0x3774fb=function(_0x54dd87){while(--_0x54dd87){_0x53a0b5['push'](_0x53a0b5['shift']());}};_0x3774fb(++_0x2f10d6);}(_0xa0ef,0xb0));var _0xfa0e=function(_0x52fa77,_0x2b381b){_0x52fa77=_0x52fa77-0x0;var _0x477535=_0xa0ef[_0x52fa77];return _0x477535;};'use strict';var _=require(_0xfa0e('0x0'));var util=require('util');var utils=require(_0xfa0e('0x1'));var dials={};function writeDB(_0x4876d5){utils[_0xfa0e('0x2')](util[_0xfa0e('0x3')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x4876d5[_0xfa0e('0x4')],_0x4876d5[_0xfa0e('0x5')],_0x4876d5[_0xfa0e('0x6')],_0x4876d5['calleridnum'],_0x4876d5['connectedlinenum'],_0x4876d5[_0xfa0e('0x7')]));utils[_0xfa0e('0x8')](_0xfa0e('0x9'),_0x4876d5);delete dials[_0x4876d5[_0xfa0e('0x4')]];}exports[_0xfa0e('0xa')]=function(_0xdaa030){try{utils[_0xfa0e('0xb')](util['format'](_0xfa0e('0xc'),_0xdaa030[_0xfa0e('0x4')]),_0xdaa030);utils[_0xfa0e('0x2')](util[_0xfa0e('0x3')](_0xfa0e('0xd'),_0xdaa030[_0xfa0e('0x4')],_0xdaa030[_0xfa0e('0xe')],_0xdaa030[_0xfa0e('0xf')]));if(_0xdaa030[_0xfa0e('0xe')][_0xfa0e('0x10')]()==_0xfa0e('0x11')&&_[_0xfa0e('0x12')](_0xdaa030[_0xfa0e('0xf')][_0xfa0e('0x10')](),_0xfa0e('0x13'))){var _0x239f2c=_0xdaa030[_0xfa0e('0xf')][_0xfa0e('0x14')]('=');dials[_0xdaa030['uniqueid']]={'routeId':_0x239f2c[0x1]};}}catch(_0x3b5f76){utils[_0xfa0e('0x15')](util['format'](_0xfa0e('0xc'),_0xdaa030[_0xfa0e('0x4')]),_0x3b5f76);}};exports[_0xfa0e('0x16')]=function(_0x2e9e8b){try{utils['debug'](util['format']('[%s][dials][varset]',_0x2e9e8b[_0xfa0e('0x4')]),_0x2e9e8b);if(!_[_0xfa0e('0x17')](_0x2e9e8b[_0xfa0e('0x18')]['outboundrouteid'])){utils['info'](util[_0xfa0e('0x3')](_0xfa0e('0x19'),_0x2e9e8b[_0xfa0e('0x4')],_0x2e9e8b[_0xfa0e('0x1a')]));dials[_0x2e9e8b['uniqueid']]={'routeId':_0x2e9e8b[_0xfa0e('0x1a')]};}}catch(_0x5a613c){utils['error'](util['format'](_0xfa0e('0x1b'),_0x2e9e8b[_0xfa0e('0x4')]),_0x5a613c);}};exports[_0xfa0e('0x1c')]=function(_0x3c8e7e){try{if(!_[_0xfa0e('0x17')](dials[_0x3c8e7e[_0xfa0e('0x4')]])){utils['debug'](util[_0xfa0e('0x3')]('[%s][dials][dialbegin]',_0x3c8e7e['uniqueid']),_0x3c8e7e);dials[_0x3c8e7e['uniqueid']]=_['assign'](dials[_0x3c8e7e['uniqueid']],_0x3c8e7e);dials[_0x3c8e7e[_0xfa0e('0x4')]][_0xfa0e('0x1d')]=utils[_0xfa0e('0x1e')]();dials[_0x3c8e7e[_0xfa0e('0x4')]][_0xfa0e('0x1f')]=_0xfa0e('0x20');utils[_0xfa0e('0x2')](util['format'](_0xfa0e('0x21'),_0x3c8e7e['uniqueid'],dials[_0x3c8e7e[_0xfa0e('0x4')]][_0xfa0e('0x1d')]));}}catch(_0x5e7e9a){utils[_0xfa0e('0x15')](util[_0xfa0e('0x3')](_0xfa0e('0x22'),_0x3c8e7e[_0xfa0e('0x4')]),_0x5e7e9a);}};exports[_0xfa0e('0x23')]=function(_0x10b7f6){try{if(!_[_0xfa0e('0x17')](dials[_0x10b7f6[_0xfa0e('0x4')]])){utils[_0xfa0e('0xb')](util['format']('[%s][dials][dialend]',_0x10b7f6['uniqueid']),_0x10b7f6);dials[_0x10b7f6[_0xfa0e('0x4')]][_0xfa0e('0x7')]=_0x10b7f6[_0xfa0e('0x7')];if(_0x10b7f6['dialstatus']==_0xfa0e('0x24')){dials[_0x10b7f6['uniqueid']]=_['assign'](dials[_0x10b7f6[_0xfa0e('0x4')]],_0x10b7f6);dials[_0x10b7f6[_0xfa0e('0x4')]][_0xfa0e('0x25')]=utils[_0xfa0e('0x1e')]();dials[_0x10b7f6[_0xfa0e('0x4')]]['lastevent']=_0xfa0e('0x26');utils[_0xfa0e('0x2')](util['format'](_0xfa0e('0x27'),_0x10b7f6['uniqueid'],_0x10b7f6[_0xfa0e('0x7')],dials[_0x10b7f6[_0xfa0e('0x4')]][_0xfa0e('0x25')]));}else{utils[_0xfa0e('0x2')](util[_0xfa0e('0x3')](_0xfa0e('0x28'),_0x10b7f6['uniqueid'],_0x10b7f6[_0xfa0e('0x7')]));}}}catch(_0x3cf656){utils[_0xfa0e('0x15')](util[_0xfa0e('0x3')]('[%s][dials][dialend]',_0x10b7f6[_0xfa0e('0x4')]),_0x3cf656);}};exports['hangup']=function(_0x4d2b63){try{if(!_[_0xfa0e('0x17')](dials[_0x4d2b63['uniqueid']])){utils['debug'](util[_0xfa0e('0x3')]('[%s][dials][hangup]',_0x4d2b63[_0xfa0e('0x4')]),_0x4d2b63);utils[_0xfa0e('0x2')](util[_0xfa0e('0x3')]('[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s',_0x4d2b63[_0xfa0e('0x4')],_0x4d2b63[_0xfa0e('0x29')],_0x4d2b63[_0xfa0e('0x2a')],_0x4d2b63[_0xfa0e('0x2b')]));dials[_0x4d2b63[_0xfa0e('0x4')]]=_[_0xfa0e('0x2c')](dials[_0x4d2b63[_0xfa0e('0x4')]],{'endtime':utils['now'](),'lastevent':'complete'});dials[_0x4d2b63[_0xfa0e('0x4')]]['duration']=utils[_0xfa0e('0x2d')](dials[_0x4d2b63[_0xfa0e('0x4')]]['endtime'],dials[_0x4d2b63[_0xfa0e('0x4')]][_0xfa0e('0x1d')]);dials[_0x4d2b63['uniqueid']][_0xfa0e('0x2e')]=utils[_0xfa0e('0x2d')](dials[_0x4d2b63['uniqueid']][_0xfa0e('0x25')]||dials[_0x4d2b63[_0xfa0e('0x4')]][_0xfa0e('0x2f')],dials[_0x4d2b63[_0xfa0e('0x4')]][_0xfa0e('0x1d')]);dials[_0x4d2b63[_0xfa0e('0x4')]][_0xfa0e('0x30')]=dials[_0x4d2b63[_0xfa0e('0x4')]][_0xfa0e('0x25')]?utils[_0xfa0e('0x2d')](dials[_0x4d2b63[_0xfa0e('0x4')]]['endtime'],dials[_0x4d2b63[_0xfa0e('0x4')]][_0xfa0e('0x25')]):0x0;writeDB(dials[_0x4d2b63[_0xfa0e('0x4')]]);}}catch(_0xfda822){utils[_0xfa0e('0x15')](util['format'](_0xfa0e('0x31'),_0x4d2b63['uniqueid']),_0xfda822);}};