1f1bc2abfe1dfc15f297e381b92de21c4f63f486
[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 _0x4f38=['connect','hangup','[%s][dials][hangup]','calleridnum','calleridname','duration','diffTime','endtime','holdtime','billableseconds','lodash','util','./utils','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','dialstring','connectedlinenum','dialstatus','newexten','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase','set','appdata','cdr(routeid)','split','error','varset','[%s][dials][varset]','isNil','variable','outboundrouteid','value','dialbegin','debug','[%s][dials][dialbegin]','assign','lastevent','called','info','starttime','dialend','[%s][dials][dialend]','ANSWER','answertime','now'];(function(_0x35b0a7,_0x531f48){var _0x3fb3b4=function(_0x30cbbf){while(--_0x30cbbf){_0x35b0a7['push'](_0x35b0a7['shift']());}};_0x3fb3b4(++_0x531f48);}(_0x4f38,0x1ea));var _0x84f3=function(_0x25e3a2,_0x45441f){_0x25e3a2=_0x25e3a2-0x0;var _0x5e8f1e=_0x4f38[_0x25e3a2];return _0x5e8f1e;};'use strict';var _=require(_0x84f3('0x0'));var util=require(_0x84f3('0x1'));var utils=require(_0x84f3('0x2'));var dials={};function writeDB(_0x1eb00e){utils['info'](util[_0x84f3('0x3')](_0x84f3('0x4'),_0x1eb00e[_0x84f3('0x5')],_0x1eb00e['channel'],_0x1eb00e[_0x84f3('0x6')],_0x1eb00e['calleridnum'],_0x1eb00e[_0x84f3('0x7')],_0x1eb00e[_0x84f3('0x8')]));utils['request']('CreateVoiceDialReport',_0x1eb00e);delete dials[_0x1eb00e[_0x84f3('0x5')]];}exports[_0x84f3('0x9')]=function(_0x4a6299){try{utils['debug'](util[_0x84f3('0x3')](_0x84f3('0xa'),_0x4a6299[_0x84f3('0x5')]),_0x4a6299);utils['info'](util['format'](_0x84f3('0xb'),_0x4a6299[_0x84f3('0x5')],_0x4a6299[_0x84f3('0xc')],_0x4a6299['appdata']));if(_0x4a6299[_0x84f3('0xc')][_0x84f3('0xd')]()==_0x84f3('0xe')&&_['startsWith'](_0x4a6299[_0x84f3('0xf')]['toLowerCase'](),_0x84f3('0x10'))){var _0x35e5ce=_0x4a6299[_0x84f3('0xf')][_0x84f3('0x11')]('=');dials[_0x4a6299[_0x84f3('0x5')]]={'routeId':_0x35e5ce[0x1]};}}catch(_0x1f0517){utils[_0x84f3('0x12')](util[_0x84f3('0x3')](_0x84f3('0xa'),_0x4a6299[_0x84f3('0x5')]),_0x1f0517);}};exports[_0x84f3('0x13')]=function(_0x594f1d){try{utils['debug'](util[_0x84f3('0x3')](_0x84f3('0x14'),_0x594f1d[_0x84f3('0x5')]),_0x594f1d);if(!_[_0x84f3('0x15')](_0x594f1d[_0x84f3('0x16')][_0x84f3('0x17')])){utils['info'](util[_0x84f3('0x3')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x594f1d[_0x84f3('0x5')],_0x594f1d[_0x84f3('0x18')]));dials[_0x594f1d[_0x84f3('0x5')]]={'routeId':_0x594f1d[_0x84f3('0x18')]};}}catch(_0x16554e){utils[_0x84f3('0x12')](util[_0x84f3('0x3')](_0x84f3('0x14'),_0x594f1d[_0x84f3('0x5')]),_0x16554e);}};exports[_0x84f3('0x19')]=function(_0x3cb535){try{if(!_[_0x84f3('0x15')](dials[_0x3cb535[_0x84f3('0x5')]])){utils[_0x84f3('0x1a')](util['format'](_0x84f3('0x1b'),_0x3cb535[_0x84f3('0x5')]),_0x3cb535);dials[_0x3cb535[_0x84f3('0x5')]]=_[_0x84f3('0x1c')](dials[_0x3cb535['uniqueid']],_0x3cb535);dials[_0x3cb535['uniqueid']]['starttime']=utils['now']();dials[_0x3cb535['uniqueid']][_0x84f3('0x1d')]=_0x84f3('0x1e');utils[_0x84f3('0x1f')](util[_0x84f3('0x3')]('[%s][dials][hangup]\x20starttime:%s\x20lastevent:called',_0x3cb535['uniqueid'],dials[_0x3cb535[_0x84f3('0x5')]][_0x84f3('0x20')]));}}catch(_0xa0745c){utils[_0x84f3('0x12')](util['format'](_0x84f3('0x1b'),_0x3cb535[_0x84f3('0x5')]),_0xa0745c);}};exports[_0x84f3('0x21')]=function(_0x696931){try{if(!_[_0x84f3('0x15')](dials[_0x696931[_0x84f3('0x5')]])){utils[_0x84f3('0x1a')](util[_0x84f3('0x3')](_0x84f3('0x22'),_0x696931[_0x84f3('0x5')]),_0x696931);dials[_0x696931[_0x84f3('0x5')]][_0x84f3('0x8')]=_0x696931['dialstatus'];if(_0x696931[_0x84f3('0x8')]==_0x84f3('0x23')){dials[_0x696931[_0x84f3('0x5')]]=_['assign'](dials[_0x696931['uniqueid']],_0x696931);dials[_0x696931[_0x84f3('0x5')]][_0x84f3('0x24')]=utils[_0x84f3('0x25')]();dials[_0x696931['uniqueid']][_0x84f3('0x1d')]=_0x84f3('0x26');utils[_0x84f3('0x1f')](util[_0x84f3('0x3')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x696931['uniqueid'],_0x696931[_0x84f3('0x8')],dials[_0x696931[_0x84f3('0x5')]][_0x84f3('0x24')]));}else{utils[_0x84f3('0x1f')](util['format']('[%s][dials][dialend]\x20dialstatus:%s',_0x696931[_0x84f3('0x5')],_0x696931[_0x84f3('0x8')]));}}}catch(_0x93100e){utils[_0x84f3('0x12')](util[_0x84f3('0x3')]('[%s][dials][dialend]',_0x696931['uniqueid']),_0x93100e);}};exports[_0x84f3('0x27')]=function(_0x594b8e){try{if(!_['isNil'](dials[_0x594b8e[_0x84f3('0x5')]])){utils[_0x84f3('0x1a')](util[_0x84f3('0x3')](_0x84f3('0x28'),_0x594b8e[_0x84f3('0x5')]),_0x594b8e);utils[_0x84f3('0x1f')](util[_0x84f3('0x3')]('[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s',_0x594b8e[_0x84f3('0x5')],_0x594b8e[_0x84f3('0x29')],_0x594b8e[_0x84f3('0x2a')],_0x594b8e['cause-txt']));dials[_0x594b8e['uniqueid']]=_[_0x84f3('0x1c')](dials[_0x594b8e[_0x84f3('0x5')]],{'endtime':utils[_0x84f3('0x25')](),'lastevent':'complete'});dials[_0x594b8e['uniqueid']][_0x84f3('0x2b')]=utils[_0x84f3('0x2c')](dials[_0x594b8e[_0x84f3('0x5')]][_0x84f3('0x2d')],dials[_0x594b8e[_0x84f3('0x5')]][_0x84f3('0x20')]);dials[_0x594b8e['uniqueid']][_0x84f3('0x2e')]=utils['diffTime'](dials[_0x594b8e[_0x84f3('0x5')]][_0x84f3('0x24')]||dials[_0x594b8e[_0x84f3('0x5')]][_0x84f3('0x2d')],dials[_0x594b8e[_0x84f3('0x5')]][_0x84f3('0x20')]);dials[_0x594b8e[_0x84f3('0x5')]][_0x84f3('0x2f')]=dials[_0x594b8e[_0x84f3('0x5')]][_0x84f3('0x24')]?utils['diffTime'](dials[_0x594b8e[_0x84f3('0x5')]][_0x84f3('0x2d')],dials[_0x594b8e[_0x84f3('0x5')]][_0x84f3('0x24')]):0x0;writeDB(dials[_0x594b8e['uniqueid']]);}}catch(_0x2f59eb){utils[_0x84f3('0x12')](util[_0x84f3('0x3')](_0x84f3('0x28'),_0x594b8e[_0x84f3('0x5')]),_0x2f59eb);}};