Built motion from commit 3c2ce842.|2.6.31
[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 _0xe40b=['[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','cdr(routeid)','split','error','varset','[%s][dials][varset]','isNil','variable','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','[%s][dials][dialbegin]','starttime','lastevent','called','ANSWER','assign','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]','hangup','calleridname','cause-txt','now','duration','diffTime','endtime','holdtime','billableseconds','util','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','channel','dialstring','calleridnum','connectedlinenum','dialstatus','request','CreateVoiceDialReport','uniqueid','newexten','debug'];(function(_0x21fe98,_0x55db4c){var _0x19dde3=function(_0x3c38ae){while(--_0x3c38ae){_0x21fe98['push'](_0x21fe98['shift']());}};_0x19dde3(++_0x55db4c);}(_0xe40b,0x189));var _0xbe40=function(_0x930cf7,_0x368e48){_0x930cf7=_0x930cf7-0x0;var _0x151ce3=_0xe40b[_0x930cf7];return _0x151ce3;};'use strict';var _=require('lodash');var util=require(_0xbe40('0x0'));var utils=require(_0xbe40('0x1'));var dials={};function writeDB(_0x3289cd){utils[_0xbe40('0x2')](util[_0xbe40('0x3')](_0xbe40('0x4'),_0x3289cd['uniqueid'],_0x3289cd[_0xbe40('0x5')],_0x3289cd[_0xbe40('0x6')],_0x3289cd[_0xbe40('0x7')],_0x3289cd[_0xbe40('0x8')],_0x3289cd[_0xbe40('0x9')]));utils[_0xbe40('0xa')](_0xbe40('0xb'),_0x3289cd);delete dials[_0x3289cd[_0xbe40('0xc')]];}exports[_0xbe40('0xd')]=function(_0x474ffc){try{utils[_0xbe40('0xe')](util[_0xbe40('0x3')](_0xbe40('0xf'),_0x474ffc[_0xbe40('0xc')]),_0x474ffc);utils[_0xbe40('0x2')](util[_0xbe40('0x3')](_0xbe40('0x10'),_0x474ffc[_0xbe40('0xc')],_0x474ffc[_0xbe40('0x11')],_0x474ffc[_0xbe40('0x12')]));if(_0x474ffc[_0xbe40('0x11')][_0xbe40('0x13')]()==_0xbe40('0x14')&&_[_0xbe40('0x15')](_0x474ffc[_0xbe40('0x12')][_0xbe40('0x13')](),_0xbe40('0x16'))){var _0x2f06d6=_0x474ffc[_0xbe40('0x12')][_0xbe40('0x17')]('=');dials[_0x474ffc[_0xbe40('0xc')]]={'routeId':_0x2f06d6[0x1]};}}catch(_0x408e94){utils[_0xbe40('0x18')](util['format'](_0xbe40('0xf'),_0x474ffc['uniqueid']),_0x408e94);}};exports[_0xbe40('0x19')]=function(_0x47e763){try{utils[_0xbe40('0xe')](util[_0xbe40('0x3')](_0xbe40('0x1a'),_0x47e763[_0xbe40('0xc')]),_0x47e763);if(!_[_0xbe40('0x1b')](_0x47e763[_0xbe40('0x1c')]['outboundrouteid'])){utils[_0xbe40('0x2')](util[_0xbe40('0x3')](_0xbe40('0x1d'),_0x47e763['uniqueid'],_0x47e763['value']));dials[_0x47e763[_0xbe40('0xc')]]={'routeId':_0x47e763[_0xbe40('0x1e')]};}}catch(_0x237397){utils['error'](util[_0xbe40('0x3')](_0xbe40('0x1a'),_0x47e763[_0xbe40('0xc')]),_0x237397);}};exports[_0xbe40('0x1f')]=function(_0x4efb02){try{if(!_[_0xbe40('0x1b')](dials[_0x4efb02[_0xbe40('0xc')]])){utils['debug'](util[_0xbe40('0x3')](_0xbe40('0x20'),_0x4efb02[_0xbe40('0xc')]),_0x4efb02);dials[_0x4efb02[_0xbe40('0xc')]]=_['assign'](dials[_0x4efb02['uniqueid']],_0x4efb02);dials[_0x4efb02[_0xbe40('0xc')]][_0xbe40('0x21')]=utils['now']();dials[_0x4efb02[_0xbe40('0xc')]][_0xbe40('0x22')]=_0xbe40('0x23');utils[_0xbe40('0x2')](util['format']('[%s][dials][hangup]\x20starttime:%s\x20lastevent:called',_0x4efb02[_0xbe40('0xc')],dials[_0x4efb02[_0xbe40('0xc')]][_0xbe40('0x21')]));}}catch(_0x35ea7e){utils['error'](util[_0xbe40('0x3')]('[%s][dials][dialbegin]',_0x4efb02[_0xbe40('0xc')]),_0x35ea7e);}};exports['dialend']=function(_0x5925b7){try{if(!_[_0xbe40('0x1b')](dials[_0x5925b7[_0xbe40('0xc')]])){utils[_0xbe40('0xe')](util[_0xbe40('0x3')]('[%s][dials][dialend]',_0x5925b7['uniqueid']),_0x5925b7);dials[_0x5925b7[_0xbe40('0xc')]][_0xbe40('0x9')]=_0x5925b7[_0xbe40('0x9')];if(_0x5925b7[_0xbe40('0x9')]==_0xbe40('0x24')){dials[_0x5925b7[_0xbe40('0xc')]]=_[_0xbe40('0x25')](dials[_0x5925b7[_0xbe40('0xc')]],_0x5925b7);dials[_0x5925b7['uniqueid']][_0xbe40('0x26')]=utils['now']();dials[_0x5925b7[_0xbe40('0xc')]]['lastevent']=_0xbe40('0x27');utils[_0xbe40('0x2')](util[_0xbe40('0x3')](_0xbe40('0x28'),_0x5925b7['uniqueid'],_0x5925b7[_0xbe40('0x9')],dials[_0x5925b7[_0xbe40('0xc')]][_0xbe40('0x26')]));}else{utils[_0xbe40('0x2')](util['format']('[%s][dials][dialend]\x20dialstatus:%s',_0x5925b7['uniqueid'],_0x5925b7[_0xbe40('0x9')]));}}}catch(_0x443fc7){utils['error'](util[_0xbe40('0x3')](_0xbe40('0x29'),_0x5925b7[_0xbe40('0xc')]),_0x443fc7);}};exports[_0xbe40('0x2a')]=function(_0x142574){try{if(!_['isNil'](dials[_0x142574[_0xbe40('0xc')]])){utils[_0xbe40('0xe')](util['format']('[%s][dials][hangup]',_0x142574['uniqueid']),_0x142574);utils['info'](util[_0xbe40('0x3')]('[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s',_0x142574['uniqueid'],_0x142574[_0xbe40('0x7')],_0x142574[_0xbe40('0x2b')],_0x142574[_0xbe40('0x2c')]));dials[_0x142574[_0xbe40('0xc')]]=_['assign'](dials[_0x142574[_0xbe40('0xc')]],{'endtime':utils[_0xbe40('0x2d')](),'lastevent':'complete'});dials[_0x142574['uniqueid']][_0xbe40('0x2e')]=utils[_0xbe40('0x2f')](dials[_0x142574[_0xbe40('0xc')]][_0xbe40('0x30')],dials[_0x142574[_0xbe40('0xc')]][_0xbe40('0x21')]);dials[_0x142574[_0xbe40('0xc')]][_0xbe40('0x31')]=utils[_0xbe40('0x2f')](dials[_0x142574[_0xbe40('0xc')]][_0xbe40('0x26')]||dials[_0x142574['uniqueid']][_0xbe40('0x30')],dials[_0x142574[_0xbe40('0xc')]][_0xbe40('0x21')]);dials[_0x142574['uniqueid']][_0xbe40('0x32')]=dials[_0x142574[_0xbe40('0xc')]]['answertime']?utils[_0xbe40('0x2f')](dials[_0x142574['uniqueid']][_0xbe40('0x30')],dials[_0x142574['uniqueid']][_0xbe40('0x26')]):0x0;writeDB(dials[_0x142574[_0xbe40('0xc')]]);}}catch(_0x4fbd11){utils[_0xbe40('0x18')](util['format']('[%s][dials][hangup]',_0x142574[_0xbe40('0xc')]),_0x4fbd11);}};