b606c14ad85ba248138f03d2fc9e0b069b291182
[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 _0x87cb=['newexten','debug','[%s][dials][newexten]','info','application','appdata','toLowerCase','set','cdr(routeid)','split','varset','[%s][dials][varset]','isNil','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','error','[%s][dials][dialbegin]','assign','starttime','now','lastevent','called','dialend','[%s][dials][dialend]','answertime','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt','complete','duration','diffTime','endtime','lodash','util','./utils','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','dialstring','calleridnum','connectedlinenum','dialstatus','request','CreateVoiceDialReport'];(function(_0xea207,_0x5f395f){var _0x58ef7f=function(_0x8371fc){while(--_0x8371fc){_0xea207['push'](_0xea207['shift']());}};_0x58ef7f(++_0x5f395f);}(_0x87cb,0xe4));var _0xb87c=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x87cb[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0xb87c('0x0'));var util=require(_0xb87c('0x1'));var utils=require(_0xb87c('0x2'));var dials={};function writeDB(_0x19d885){utils['info'](util[_0xb87c('0x3')](_0xb87c('0x4'),_0x19d885[_0xb87c('0x5')],_0x19d885['channel'],_0x19d885[_0xb87c('0x6')],_0x19d885[_0xb87c('0x7')],_0x19d885[_0xb87c('0x8')],_0x19d885[_0xb87c('0x9')]));utils[_0xb87c('0xa')](_0xb87c('0xb'),_0x19d885);delete dials[_0x19d885['uniqueid']];}exports[_0xb87c('0xc')]=function(_0x259e7b){try{utils[_0xb87c('0xd')](util['format'](_0xb87c('0xe'),_0x259e7b[_0xb87c('0x5')]),_0x259e7b);utils[_0xb87c('0xf')](util[_0xb87c('0x3')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x259e7b[_0xb87c('0x5')],_0x259e7b[_0xb87c('0x10')],_0x259e7b[_0xb87c('0x11')]));if(_0x259e7b[_0xb87c('0x10')][_0xb87c('0x12')]()==_0xb87c('0x13')&&_['startsWith'](_0x259e7b['appdata'][_0xb87c('0x12')](),_0xb87c('0x14'))){var _0x24f15f=_0x259e7b['appdata'][_0xb87c('0x15')]('=');dials[_0x259e7b[_0xb87c('0x5')]]={'routeId':_0x24f15f[0x1]};}}catch(_0x24bcbe){utils['error'](util[_0xb87c('0x3')](_0xb87c('0xe'),_0x259e7b[_0xb87c('0x5')]),_0x24bcbe);}};exports[_0xb87c('0x16')]=function(_0x432b7e){try{utils[_0xb87c('0xd')](util[_0xb87c('0x3')](_0xb87c('0x17'),_0x432b7e[_0xb87c('0x5')]),_0x432b7e);if(!_[_0xb87c('0x18')](_0x432b7e['variable'][_0xb87c('0x19')])){utils[_0xb87c('0xf')](util[_0xb87c('0x3')](_0xb87c('0x1a'),_0x432b7e[_0xb87c('0x5')],_0x432b7e[_0xb87c('0x1b')]));dials[_0x432b7e[_0xb87c('0x5')]]={'routeId':_0x432b7e[_0xb87c('0x1b')]};}}catch(_0x2d4770){utils[_0xb87c('0x1c')](util[_0xb87c('0x3')](_0xb87c('0x17'),_0x432b7e[_0xb87c('0x5')]),_0x2d4770);}};exports['dialbegin']=function(_0x23fef0){try{if(!_[_0xb87c('0x18')](dials[_0x23fef0[_0xb87c('0x5')]])){utils[_0xb87c('0xd')](util[_0xb87c('0x3')](_0xb87c('0x1d'),_0x23fef0[_0xb87c('0x5')]),_0x23fef0);dials[_0x23fef0[_0xb87c('0x5')]]=_[_0xb87c('0x1e')](dials[_0x23fef0[_0xb87c('0x5')]],_0x23fef0);dials[_0x23fef0[_0xb87c('0x5')]][_0xb87c('0x1f')]=utils[_0xb87c('0x20')]();dials[_0x23fef0[_0xb87c('0x5')]][_0xb87c('0x21')]=_0xb87c('0x22');utils[_0xb87c('0xf')](util[_0xb87c('0x3')]('[%s][dials][hangup]\x20starttime:%s\x20lastevent:called',_0x23fef0[_0xb87c('0x5')],dials[_0x23fef0['uniqueid']][_0xb87c('0x1f')]));}}catch(_0x25ab89){utils['error'](util[_0xb87c('0x3')]('[%s][dials][dialbegin]',_0x23fef0[_0xb87c('0x5')]),_0x25ab89);}};exports[_0xb87c('0x23')]=function(_0xb7b1ce){try{if(!_[_0xb87c('0x18')](dials[_0xb7b1ce[_0xb87c('0x5')]])){utils['debug'](util['format'](_0xb87c('0x24'),_0xb7b1ce['uniqueid']),_0xb7b1ce);dials[_0xb7b1ce[_0xb87c('0x5')]][_0xb87c('0x9')]=_0xb7b1ce[_0xb87c('0x9')];if(_0xb7b1ce['dialstatus']=='ANSWER'){dials[_0xb7b1ce['uniqueid']]=_[_0xb87c('0x1e')](dials[_0xb7b1ce[_0xb87c('0x5')]],_0xb7b1ce);dials[_0xb7b1ce[_0xb87c('0x5')]][_0xb87c('0x25')]=utils['now']();dials[_0xb7b1ce[_0xb87c('0x5')]]['lastevent']='connect';utils[_0xb87c('0xf')](util['format'](_0xb87c('0x26'),_0xb7b1ce[_0xb87c('0x5')],_0xb7b1ce['dialstatus'],dials[_0xb7b1ce[_0xb87c('0x5')]][_0xb87c('0x25')]));}else{utils[_0xb87c('0xf')](util['format'](_0xb87c('0x27'),_0xb7b1ce[_0xb87c('0x5')],_0xb7b1ce[_0xb87c('0x9')]));}}}catch(_0x3ce15a){utils[_0xb87c('0x1c')](util['format'](_0xb87c('0x24'),_0xb7b1ce[_0xb87c('0x5')]),_0x3ce15a);}};exports['hangup']=function(_0x2fc3d5){try{if(!_['isNil'](dials[_0x2fc3d5['uniqueid']])){utils['debug'](util[_0xb87c('0x3')](_0xb87c('0x28'),_0x2fc3d5[_0xb87c('0x5')]),_0x2fc3d5);utils[_0xb87c('0xf')](util[_0xb87c('0x3')](_0xb87c('0x29'),_0x2fc3d5[_0xb87c('0x5')],_0x2fc3d5['calleridnum'],_0x2fc3d5[_0xb87c('0x2a')],_0x2fc3d5[_0xb87c('0x2b')]));dials[_0x2fc3d5[_0xb87c('0x5')]]=_[_0xb87c('0x1e')](dials[_0x2fc3d5['uniqueid']],{'endtime':utils[_0xb87c('0x20')](),'lastevent':_0xb87c('0x2c')});dials[_0x2fc3d5[_0xb87c('0x5')]][_0xb87c('0x2d')]=utils[_0xb87c('0x2e')](dials[_0x2fc3d5[_0xb87c('0x5')]][_0xb87c('0x2f')],dials[_0x2fc3d5[_0xb87c('0x5')]][_0xb87c('0x1f')]);dials[_0x2fc3d5[_0xb87c('0x5')]]['holdtime']=utils[_0xb87c('0x2e')](dials[_0x2fc3d5[_0xb87c('0x5')]]['answertime']||dials[_0x2fc3d5[_0xb87c('0x5')]][_0xb87c('0x2f')],dials[_0x2fc3d5['uniqueid']][_0xb87c('0x1f')]);dials[_0x2fc3d5['uniqueid']]['billableseconds']=dials[_0x2fc3d5[_0xb87c('0x5')]][_0xb87c('0x25')]?utils[_0xb87c('0x2e')](dials[_0x2fc3d5[_0xb87c('0x5')]][_0xb87c('0x2f')],dials[_0x2fc3d5[_0xb87c('0x5')]][_0xb87c('0x25')]):0x0;writeDB(dials[_0x2fc3d5['uniqueid']]);}}catch(_0x2f240a){utils['error'](util[_0xb87c('0x3')](_0xb87c('0x28'),_0x2fc3d5[_0xb87c('0x5')]),_0x2f240a);}};