Built motion from commit b0a9a629.|2.6.33
[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 _0x66f9=['set','startsWith','appdata','cdr(routeid)','split','error','varset','debug','isNil','variable','outboundrouteid','value','[%s][dials][varset]','dialbegin','assign','starttime','now','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialbegin]','[%s][dials][dialend]','dialstatus','ANSWER','lastevent','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','calleridname','diffTime','endtime','billableseconds','[%s][dials][hangup]','lodash','util','info','format','uniqueid','channel','dialstring','calleridnum','connectedlinenum','request','CreateVoiceDialReport','newexten','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application'];(function(_0x45ac0c,_0x2f8a58){var _0x4b4074=function(_0x1ddc53){while(--_0x1ddc53){_0x45ac0c['push'](_0x45ac0c['shift']());}};_0x4b4074(++_0x2f8a58);}(_0x66f9,0x181));var _0x966f=function(_0x2b8c3a,_0x34f3fe){_0x2b8c3a=_0x2b8c3a-0x0;var _0x255fcf=_0x66f9[_0x2b8c3a];return _0x255fcf;};'use strict';var _=require(_0x966f('0x0'));var util=require(_0x966f('0x1'));var utils=require('./utils');var dials={};function writeDB(_0x151737){utils[_0x966f('0x2')](util[_0x966f('0x3')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x151737[_0x966f('0x4')],_0x151737[_0x966f('0x5')],_0x151737[_0x966f('0x6')],_0x151737[_0x966f('0x7')],_0x151737[_0x966f('0x8')],_0x151737['dialstatus']));utils[_0x966f('0x9')](_0x966f('0xa'),_0x151737);delete dials[_0x151737[_0x966f('0x4')]];}exports[_0x966f('0xb')]=function(_0x35796b){try{utils['debug'](util[_0x966f('0x3')](_0x966f('0xc'),_0x35796b['uniqueid']),_0x35796b);utils[_0x966f('0x2')](util[_0x966f('0x3')](_0x966f('0xd'),_0x35796b['uniqueid'],_0x35796b[_0x966f('0xe')],_0x35796b['appdata']));if(_0x35796b[_0x966f('0xe')]['toLowerCase']()==_0x966f('0xf')&&_[_0x966f('0x10')](_0x35796b[_0x966f('0x11')]['toLowerCase'](),_0x966f('0x12'))){var _0x503bce=_0x35796b['appdata'][_0x966f('0x13')]('=');dials[_0x35796b[_0x966f('0x4')]]={'routeId':_0x503bce[0x1]};}}catch(_0xbed2af){utils[_0x966f('0x14')](util[_0x966f('0x3')](_0x966f('0xc'),_0x35796b[_0x966f('0x4')]),_0xbed2af);}};exports[_0x966f('0x15')]=function(_0x389a73){try{utils[_0x966f('0x16')](util[_0x966f('0x3')]('[%s][dials][varset]',_0x389a73[_0x966f('0x4')]),_0x389a73);if(!_[_0x966f('0x17')](_0x389a73[_0x966f('0x18')][_0x966f('0x19')])){utils[_0x966f('0x2')](util[_0x966f('0x3')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x389a73[_0x966f('0x4')],_0x389a73[_0x966f('0x1a')]));dials[_0x389a73[_0x966f('0x4')]]={'routeId':_0x389a73[_0x966f('0x1a')]};}}catch(_0x462570){utils[_0x966f('0x14')](util[_0x966f('0x3')](_0x966f('0x1b'),_0x389a73[_0x966f('0x4')]),_0x462570);}};exports[_0x966f('0x1c')]=function(_0x33772c){try{if(!_['isNil'](dials[_0x33772c[_0x966f('0x4')]])){utils['debug'](util[_0x966f('0x3')]('[%s][dials][dialbegin]',_0x33772c[_0x966f('0x4')]),_0x33772c);dials[_0x33772c[_0x966f('0x4')]]=_[_0x966f('0x1d')](dials[_0x33772c['uniqueid']],_0x33772c);dials[_0x33772c[_0x966f('0x4')]][_0x966f('0x1e')]=utils[_0x966f('0x1f')]();dials[_0x33772c[_0x966f('0x4')]]['lastevent']=_0x966f('0x20');utils[_0x966f('0x2')](util[_0x966f('0x3')](_0x966f('0x21'),_0x33772c[_0x966f('0x4')],dials[_0x33772c['uniqueid']][_0x966f('0x1e')]));}}catch(_0x3e5e6c){utils[_0x966f('0x14')](util[_0x966f('0x3')](_0x966f('0x22'),_0x33772c[_0x966f('0x4')]),_0x3e5e6c);}};exports['dialend']=function(_0x33a6ea){try{if(!_[_0x966f('0x17')](dials[_0x33a6ea[_0x966f('0x4')]])){utils[_0x966f('0x16')](util['format'](_0x966f('0x23'),_0x33a6ea[_0x966f('0x4')]),_0x33a6ea);dials[_0x33a6ea['uniqueid']][_0x966f('0x24')]=_0x33a6ea['dialstatus'];if(_0x33a6ea['dialstatus']==_0x966f('0x25')){dials[_0x33a6ea[_0x966f('0x4')]]=_['assign'](dials[_0x33a6ea[_0x966f('0x4')]],_0x33a6ea);dials[_0x33a6ea[_0x966f('0x4')]]['answertime']=utils[_0x966f('0x1f')]();dials[_0x33a6ea[_0x966f('0x4')]][_0x966f('0x26')]=_0x966f('0x27');utils[_0x966f('0x2')](util[_0x966f('0x3')](_0x966f('0x28'),_0x33a6ea[_0x966f('0x4')],_0x33a6ea['dialstatus'],dials[_0x33a6ea[_0x966f('0x4')]][_0x966f('0x29')]));}else{utils[_0x966f('0x2')](util[_0x966f('0x3')](_0x966f('0x2a'),_0x33a6ea['uniqueid'],_0x33a6ea[_0x966f('0x24')]));}}}catch(_0x5de054){utils[_0x966f('0x14')](util['format'](_0x966f('0x23'),_0x33a6ea[_0x966f('0x4')]),_0x5de054);}};exports[_0x966f('0x2b')]=function(_0x4ef3cb){try{if(!_['isNil'](dials[_0x4ef3cb[_0x966f('0x4')]])){utils['debug'](util[_0x966f('0x3')]('[%s][dials][hangup]',_0x4ef3cb[_0x966f('0x4')]),_0x4ef3cb);utils[_0x966f('0x2')](util['format'](_0x966f('0x2c'),_0x4ef3cb[_0x966f('0x4')],_0x4ef3cb['calleridnum'],_0x4ef3cb[_0x966f('0x2d')],_0x4ef3cb['cause-txt']));dials[_0x4ef3cb[_0x966f('0x4')]]=_['assign'](dials[_0x4ef3cb['uniqueid']],{'endtime':utils['now'](),'lastevent':'complete'});dials[_0x4ef3cb[_0x966f('0x4')]]['duration']=utils[_0x966f('0x2e')](dials[_0x4ef3cb[_0x966f('0x4')]][_0x966f('0x2f')],dials[_0x4ef3cb[_0x966f('0x4')]]['starttime']);dials[_0x4ef3cb[_0x966f('0x4')]]['holdtime']=utils[_0x966f('0x2e')](dials[_0x4ef3cb[_0x966f('0x4')]]['answertime']||dials[_0x4ef3cb[_0x966f('0x4')]][_0x966f('0x2f')],dials[_0x4ef3cb[_0x966f('0x4')]][_0x966f('0x1e')]);dials[_0x4ef3cb[_0x966f('0x4')]][_0x966f('0x30')]=dials[_0x4ef3cb[_0x966f('0x4')]][_0x966f('0x29')]?utils[_0x966f('0x2e')](dials[_0x4ef3cb[_0x966f('0x4')]]['endtime'],dials[_0x4ef3cb[_0x966f('0x4')]][_0x966f('0x29')]):0x0;writeDB(dials[_0x4ef3cb['uniqueid']]);}}catch(_0x170d12){utils[_0x966f('0x14')](util['format'](_0x966f('0x31'),_0x4ef3cb[_0x966f('0x4')]),_0x170d12);}};