3340621082ff5c2793cf90beed890bfc5cc57a62
[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 _0x9095=['[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','[%s][dials][dialend]','dialstatus','assign','lastevent','[%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','duration','diffTime','endtime','holdtime','starttime','billableseconds','[%s][dials][hangup]','lodash','util','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','dialstring','calleridnum','connectedlinenum','request','CreateVoiceDialReport','newexten','[%s][dials][newexten]','uniqueid','appdata','application','toLowerCase','set','startsWith','cdr(routeid)','split','error','varset','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','[%s][dials][varset]','dialbegin','isNil','debug','now','called'];(function(_0x14163c,_0xc69f08){var _0x554389=function(_0x51162a){while(--_0x51162a){_0x14163c['push'](_0x14163c['shift']());}};_0x554389(++_0xc69f08);}(_0x9095,0x1aa));var _0x5909=function(_0x1b6186,_0x1ec7f2){_0x1b6186=_0x1b6186-0x0;var _0x186121=_0x9095[_0x1b6186];return _0x186121;};'use strict';var _=require(_0x5909('0x0'));var util=require(_0x5909('0x1'));var utils=require(_0x5909('0x2'));var dials={};function writeDB(_0x1262be){utils[_0x5909('0x3')](util[_0x5909('0x4')](_0x5909('0x5'),_0x1262be['uniqueid'],_0x1262be['channel'],_0x1262be[_0x5909('0x6')],_0x1262be[_0x5909('0x7')],_0x1262be[_0x5909('0x8')],_0x1262be['dialstatus']));utils[_0x5909('0x9')](_0x5909('0xa'),_0x1262be);delete dials[_0x1262be['uniqueid']];}exports[_0x5909('0xb')]=function(_0x5bd581){try{utils['debug'](util[_0x5909('0x4')](_0x5909('0xc'),_0x5bd581[_0x5909('0xd')]),_0x5bd581);utils[_0x5909('0x3')](util['format']('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x5bd581[_0x5909('0xd')],_0x5bd581['application'],_0x5bd581[_0x5909('0xe')]));if(_0x5bd581[_0x5909('0xf')][_0x5909('0x10')]()==_0x5909('0x11')&&_[_0x5909('0x12')](_0x5bd581['appdata']['toLowerCase'](),_0x5909('0x13'))){var _0x222be7=_0x5bd581['appdata'][_0x5909('0x14')]('=');dials[_0x5bd581[_0x5909('0xd')]]={'routeId':_0x222be7[0x1]};}}catch(_0x275bdf){utils[_0x5909('0x15')](util[_0x5909('0x4')]('[%s][dials][newexten]',_0x5bd581[_0x5909('0xd')]),_0x275bdf);}};exports[_0x5909('0x16')]=function(_0x46a0d2){try{utils['debug'](util[_0x5909('0x4')]('[%s][dials][varset]',_0x46a0d2[_0x5909('0xd')]),_0x46a0d2);if(!_['isNil'](_0x46a0d2[_0x5909('0x17')][_0x5909('0x18')])){utils[_0x5909('0x3')](util[_0x5909('0x4')](_0x5909('0x19'),_0x46a0d2[_0x5909('0xd')],_0x46a0d2[_0x5909('0x1a')]));dials[_0x46a0d2['uniqueid']]={'routeId':_0x46a0d2[_0x5909('0x1a')]};}}catch(_0x2eba52){utils['error'](util[_0x5909('0x4')](_0x5909('0x1b'),_0x46a0d2[_0x5909('0xd')]),_0x2eba52);}};exports[_0x5909('0x1c')]=function(_0x365a3a){try{if(!_[_0x5909('0x1d')](dials[_0x365a3a[_0x5909('0xd')]])){utils[_0x5909('0x1e')](util[_0x5909('0x4')]('[%s][dials][dialbegin]',_0x365a3a[_0x5909('0xd')]),_0x365a3a);dials[_0x365a3a[_0x5909('0xd')]]=_['assign'](dials[_0x365a3a[_0x5909('0xd')]],_0x365a3a);dials[_0x365a3a[_0x5909('0xd')]]['starttime']=utils[_0x5909('0x1f')]();dials[_0x365a3a[_0x5909('0xd')]]['lastevent']=_0x5909('0x20');utils[_0x5909('0x3')](util[_0x5909('0x4')](_0x5909('0x21'),_0x365a3a[_0x5909('0xd')],dials[_0x365a3a['uniqueid']]['starttime']));}}catch(_0x30fbde){utils[_0x5909('0x15')](util[_0x5909('0x4')]('[%s][dials][dialbegin]',_0x365a3a['uniqueid']),_0x30fbde);}};exports[_0x5909('0x22')]=function(_0x5d825a){try{if(!_[_0x5909('0x1d')](dials[_0x5d825a['uniqueid']])){utils[_0x5909('0x1e')](util[_0x5909('0x4')](_0x5909('0x23'),_0x5d825a[_0x5909('0xd')]),_0x5d825a);dials[_0x5d825a['uniqueid']][_0x5909('0x24')]=_0x5d825a[_0x5909('0x24')];if(_0x5d825a[_0x5909('0x24')]=='ANSWER'){dials[_0x5d825a[_0x5909('0xd')]]=_[_0x5909('0x25')](dials[_0x5d825a['uniqueid']],_0x5d825a);dials[_0x5d825a['uniqueid']]['answertime']=utils['now']();dials[_0x5d825a[_0x5909('0xd')]][_0x5909('0x26')]='connect';utils[_0x5909('0x3')](util[_0x5909('0x4')](_0x5909('0x27'),_0x5d825a[_0x5909('0xd')],_0x5d825a['dialstatus'],dials[_0x5d825a[_0x5909('0xd')]][_0x5909('0x28')]));}else{utils[_0x5909('0x3')](util['format'](_0x5909('0x29'),_0x5d825a[_0x5909('0xd')],_0x5d825a[_0x5909('0x24')]));}}}catch(_0x4be87c){utils[_0x5909('0x15')](util[_0x5909('0x4')](_0x5909('0x23'),_0x5d825a[_0x5909('0xd')]),_0x4be87c);}};exports[_0x5909('0x2a')]=function(_0x36a7ae){try{if(!_['isNil'](dials[_0x36a7ae['uniqueid']])){utils[_0x5909('0x1e')](util[_0x5909('0x4')]('[%s][dials][hangup]',_0x36a7ae[_0x5909('0xd')]),_0x36a7ae);utils[_0x5909('0x3')](util['format'](_0x5909('0x2b'),_0x36a7ae[_0x5909('0xd')],_0x36a7ae[_0x5909('0x7')],_0x36a7ae['calleridname'],_0x36a7ae['cause-txt']));dials[_0x36a7ae['uniqueid']]=_['assign'](dials[_0x36a7ae[_0x5909('0xd')]],{'endtime':utils[_0x5909('0x1f')](),'lastevent':'complete'});dials[_0x36a7ae[_0x5909('0xd')]][_0x5909('0x2c')]=utils[_0x5909('0x2d')](dials[_0x36a7ae[_0x5909('0xd')]][_0x5909('0x2e')],dials[_0x36a7ae[_0x5909('0xd')]]['starttime']);dials[_0x36a7ae[_0x5909('0xd')]][_0x5909('0x2f')]=utils['diffTime'](dials[_0x36a7ae['uniqueid']][_0x5909('0x28')]||dials[_0x36a7ae['uniqueid']][_0x5909('0x2e')],dials[_0x36a7ae['uniqueid']][_0x5909('0x30')]);dials[_0x36a7ae['uniqueid']][_0x5909('0x31')]=dials[_0x36a7ae['uniqueid']]['answertime']?utils[_0x5909('0x2d')](dials[_0x36a7ae[_0x5909('0xd')]]['endtime'],dials[_0x36a7ae[_0x5909('0xd')]][_0x5909('0x28')]):0x0;writeDB(dials[_0x36a7ae['uniqueid']]);}}catch(_0x4c9762){utils[_0x5909('0x15')](util[_0x5909('0x4')](_0x5909('0x32'),_0x36a7ae['uniqueid']),_0x4c9762);}};