10e83b922927a461274a0144d50b53237be90ffd
[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 _0x6f65=['variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','debug','[%s][dials][dialbegin]','assign','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','dialstatus','ANSWER','answertime','now','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','[%s][dials][dialend]','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridnum','calleridname','complete','duration','endtime','starttime','holdtime','diffTime','billableseconds','lodash','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','dialstring','connectedlinenum','CreateVoiceDialReport','newexten','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','appdata','application','set','toLowerCase','split','error','varset','[%s][dials][varset]','isNil'];(function(_0x10004b,_0x1c8f2e){var _0x21c20e=function(_0x31ee37){while(--_0x31ee37){_0x10004b['push'](_0x10004b['shift']());}};_0x21c20e(++_0x1c8f2e);}(_0x6f65,0x1bf));var _0x56f6=function(_0x4f3d21,_0x4f247d){_0x4f3d21=_0x4f3d21-0x0;var _0x12f12d=_0x6f65[_0x4f3d21];return _0x12f12d;};'use strict';var _=require(_0x56f6('0x0'));var util=require('util');var utils=require(_0x56f6('0x1'));var dials={};function writeDB(_0x406ed7){utils[_0x56f6('0x2')](util[_0x56f6('0x3')](_0x56f6('0x4'),_0x406ed7[_0x56f6('0x5')],_0x406ed7['channel'],_0x406ed7[_0x56f6('0x6')],_0x406ed7['calleridnum'],_0x406ed7[_0x56f6('0x7')],_0x406ed7['dialstatus']));utils['request'](_0x56f6('0x8'),_0x406ed7);delete dials[_0x406ed7['uniqueid']];}exports[_0x56f6('0x9')]=function(_0x56d255){try{utils['debug'](util['format'](_0x56f6('0xa'),_0x56d255[_0x56f6('0x5')]),_0x56d255);utils[_0x56f6('0x2')](util[_0x56f6('0x3')](_0x56f6('0xb'),_0x56d255[_0x56f6('0x5')],_0x56d255['application'],_0x56d255[_0x56f6('0xc')]));if(_0x56d255[_0x56f6('0xd')]['toLowerCase']()==_0x56f6('0xe')&&_['startsWith'](_0x56d255['appdata'][_0x56f6('0xf')](),'cdr(routeid)')){var _0x106cf6=_0x56d255[_0x56f6('0xc')][_0x56f6('0x10')]('=');dials[_0x56d255[_0x56f6('0x5')]]={'routeId':_0x106cf6[0x1]};}}catch(_0x5797a6){utils[_0x56f6('0x11')](util[_0x56f6('0x3')](_0x56f6('0xa'),_0x56d255[_0x56f6('0x5')]),_0x5797a6);}};exports[_0x56f6('0x12')]=function(_0x56140a){try{utils['debug'](util['format'](_0x56f6('0x13'),_0x56140a[_0x56f6('0x5')]),_0x56140a);if(!_[_0x56f6('0x14')](_0x56140a[_0x56f6('0x15')][_0x56f6('0x16')])){utils[_0x56f6('0x2')](util['format'](_0x56f6('0x17'),_0x56140a[_0x56f6('0x5')],_0x56140a[_0x56f6('0x18')]));dials[_0x56140a[_0x56f6('0x5')]]={'routeId':_0x56140a[_0x56f6('0x18')]};}}catch(_0x382fab){utils['error'](util[_0x56f6('0x3')]('[%s][dials][varset]',_0x56140a[_0x56f6('0x5')]),_0x382fab);}};exports[_0x56f6('0x19')]=function(_0x359e0b){try{if(!_['isNil'](dials[_0x359e0b['uniqueid']])){utils[_0x56f6('0x1a')](util[_0x56f6('0x3')](_0x56f6('0x1b'),_0x359e0b['uniqueid']),_0x359e0b);dials[_0x359e0b[_0x56f6('0x5')]]=_[_0x56f6('0x1c')](dials[_0x359e0b[_0x56f6('0x5')]],_0x359e0b);dials[_0x359e0b['uniqueid']]['starttime']=utils['now']();dials[_0x359e0b[_0x56f6('0x5')]][_0x56f6('0x1d')]=_0x56f6('0x1e');utils[_0x56f6('0x2')](util[_0x56f6('0x3')](_0x56f6('0x1f'),_0x359e0b[_0x56f6('0x5')],dials[_0x359e0b[_0x56f6('0x5')]]['starttime']));}}catch(_0x41f76e){utils['error'](util[_0x56f6('0x3')](_0x56f6('0x1b'),_0x359e0b[_0x56f6('0x5')]),_0x41f76e);}};exports[_0x56f6('0x20')]=function(_0x4bd210){try{if(!_[_0x56f6('0x14')](dials[_0x4bd210['uniqueid']])){utils['debug'](util[_0x56f6('0x3')]('[%s][dials][dialend]',_0x4bd210[_0x56f6('0x5')]),_0x4bd210);dials[_0x4bd210[_0x56f6('0x5')]][_0x56f6('0x21')]=_0x4bd210[_0x56f6('0x21')];if(_0x4bd210[_0x56f6('0x21')]==_0x56f6('0x22')){dials[_0x4bd210['uniqueid']]=_[_0x56f6('0x1c')](dials[_0x4bd210['uniqueid']],_0x4bd210);dials[_0x4bd210[_0x56f6('0x5')]][_0x56f6('0x23')]=utils[_0x56f6('0x24')]();dials[_0x4bd210[_0x56f6('0x5')]][_0x56f6('0x1d')]=_0x56f6('0x25');utils[_0x56f6('0x2')](util[_0x56f6('0x3')](_0x56f6('0x26'),_0x4bd210[_0x56f6('0x5')],_0x4bd210['dialstatus'],dials[_0x4bd210[_0x56f6('0x5')]]['answertime']));}else{utils[_0x56f6('0x2')](util['format'](_0x56f6('0x27'),_0x4bd210['uniqueid'],_0x4bd210[_0x56f6('0x21')]));}}}catch(_0x36d197){utils[_0x56f6('0x11')](util[_0x56f6('0x3')](_0x56f6('0x28'),_0x4bd210[_0x56f6('0x5')]),_0x36d197);}};exports['hangup']=function(_0x21fe4f){try{if(!_[_0x56f6('0x14')](dials[_0x21fe4f[_0x56f6('0x5')]])){utils[_0x56f6('0x1a')](util[_0x56f6('0x3')](_0x56f6('0x29'),_0x21fe4f[_0x56f6('0x5')]),_0x21fe4f);utils[_0x56f6('0x2')](util['format'](_0x56f6('0x2a'),_0x21fe4f[_0x56f6('0x5')],_0x21fe4f[_0x56f6('0x2b')],_0x21fe4f[_0x56f6('0x2c')],_0x21fe4f['cause-txt']));dials[_0x21fe4f[_0x56f6('0x5')]]=_[_0x56f6('0x1c')](dials[_0x21fe4f[_0x56f6('0x5')]],{'endtime':utils[_0x56f6('0x24')](),'lastevent':_0x56f6('0x2d')});dials[_0x21fe4f[_0x56f6('0x5')]][_0x56f6('0x2e')]=utils['diffTime'](dials[_0x21fe4f[_0x56f6('0x5')]][_0x56f6('0x2f')],dials[_0x21fe4f[_0x56f6('0x5')]][_0x56f6('0x30')]);dials[_0x21fe4f[_0x56f6('0x5')]][_0x56f6('0x31')]=utils[_0x56f6('0x32')](dials[_0x21fe4f['uniqueid']]['answertime']||dials[_0x21fe4f[_0x56f6('0x5')]][_0x56f6('0x2f')],dials[_0x21fe4f[_0x56f6('0x5')]][_0x56f6('0x30')]);dials[_0x21fe4f[_0x56f6('0x5')]][_0x56f6('0x33')]=dials[_0x21fe4f[_0x56f6('0x5')]]['answertime']?utils[_0x56f6('0x32')](dials[_0x21fe4f[_0x56f6('0x5')]]['endtime'],dials[_0x21fe4f['uniqueid']]['answertime']):0x0;writeDB(dials[_0x21fe4f[_0x56f6('0x5')]]);}}catch(_0x22a906){utils[_0x56f6('0x11')](util[_0x56f6('0x3')]('[%s][dials][hangup]',_0x21fe4f[_0x56f6('0x5')]),_0x22a906);}};