b75fa2a18ec581802271c5c86141d1176dd68ee7
[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 _0x8f08=['called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialend]','ANSWER','answertime','lastevent','connect','[%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','cause-txt','complete','duration','diffTime','endtime','lodash','util','./utils','channel','calleridnum','connectedlinenum','dialstatus','request','CreateVoiceDialReport','uniqueid','newexten','debug','format','info','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','cdr(routeid)','split','error','[%s][dials][newexten]','varset','[%s][dials][varset]','variable','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','isNil','[%s][dials][dialbegin]','assign','starttime','now'];(function(_0x1a4f8a,_0x3abeac){var _0x16dcf3=function(_0x5cdc73){while(--_0x5cdc73){_0x1a4f8a['push'](_0x1a4f8a['shift']());}};_0x16dcf3(++_0x3abeac);}(_0x8f08,0x1d2));var _0x88f0=function(_0x13992d,_0x3029ea){_0x13992d=_0x13992d-0x0;var _0x3d15bf=_0x8f08[_0x13992d];return _0x3d15bf;};'use strict';var _=require(_0x88f0('0x0'));var util=require(_0x88f0('0x1'));var utils=require(_0x88f0('0x2'));var dials={};function writeDB(_0x423f5b){utils['info'](util['format']('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x423f5b['uniqueid'],_0x423f5b[_0x88f0('0x3')],_0x423f5b['dialstring'],_0x423f5b[_0x88f0('0x4')],_0x423f5b[_0x88f0('0x5')],_0x423f5b[_0x88f0('0x6')]));utils[_0x88f0('0x7')](_0x88f0('0x8'),_0x423f5b);delete dials[_0x423f5b[_0x88f0('0x9')]];}exports[_0x88f0('0xa')]=function(_0x5cdf04){try{utils[_0x88f0('0xb')](util[_0x88f0('0xc')]('[%s][dials][newexten]',_0x5cdf04[_0x88f0('0x9')]),_0x5cdf04);utils[_0x88f0('0xd')](util[_0x88f0('0xc')](_0x88f0('0xe'),_0x5cdf04[_0x88f0('0x9')],_0x5cdf04[_0x88f0('0xf')],_0x5cdf04[_0x88f0('0x10')]));if(_0x5cdf04['application'][_0x88f0('0x11')]()==_0x88f0('0x12')&&_[_0x88f0('0x13')](_0x5cdf04[_0x88f0('0x10')][_0x88f0('0x11')](),_0x88f0('0x14'))){var _0x124bc9=_0x5cdf04[_0x88f0('0x10')][_0x88f0('0x15')]('=');dials[_0x5cdf04[_0x88f0('0x9')]]={'routeId':_0x124bc9[0x1]};}}catch(_0x530a60){utils[_0x88f0('0x16')](util[_0x88f0('0xc')](_0x88f0('0x17'),_0x5cdf04[_0x88f0('0x9')]),_0x530a60);}};exports[_0x88f0('0x18')]=function(_0x2deda5){try{utils['debug'](util[_0x88f0('0xc')](_0x88f0('0x19'),_0x2deda5[_0x88f0('0x9')]),_0x2deda5);if(!_['isNil'](_0x2deda5[_0x88f0('0x1a')]['outboundrouteid'])){utils['info'](util[_0x88f0('0xc')](_0x88f0('0x1b'),_0x2deda5[_0x88f0('0x9')],_0x2deda5[_0x88f0('0x1c')]));dials[_0x2deda5['uniqueid']]={'routeId':_0x2deda5['value']};}}catch(_0x154856){utils['error'](util['format'](_0x88f0('0x19'),_0x2deda5[_0x88f0('0x9')]),_0x154856);}};exports['dialbegin']=function(_0x48bf7d){try{if(!_[_0x88f0('0x1d')](dials[_0x48bf7d[_0x88f0('0x9')]])){utils[_0x88f0('0xb')](util[_0x88f0('0xc')](_0x88f0('0x1e'),_0x48bf7d[_0x88f0('0x9')]),_0x48bf7d);dials[_0x48bf7d[_0x88f0('0x9')]]=_[_0x88f0('0x1f')](dials[_0x48bf7d[_0x88f0('0x9')]],_0x48bf7d);dials[_0x48bf7d[_0x88f0('0x9')]][_0x88f0('0x20')]=utils[_0x88f0('0x21')]();dials[_0x48bf7d['uniqueid']]['lastevent']=_0x88f0('0x22');utils[_0x88f0('0xd')](util[_0x88f0('0xc')](_0x88f0('0x23'),_0x48bf7d[_0x88f0('0x9')],dials[_0x48bf7d[_0x88f0('0x9')]][_0x88f0('0x20')]));}}catch(_0x4fe041){utils[_0x88f0('0x16')](util[_0x88f0('0xc')](_0x88f0('0x1e'),_0x48bf7d[_0x88f0('0x9')]),_0x4fe041);}};exports['dialend']=function(_0x3715cb){try{if(!_[_0x88f0('0x1d')](dials[_0x3715cb[_0x88f0('0x9')]])){utils[_0x88f0('0xb')](util[_0x88f0('0xc')](_0x88f0('0x24'),_0x3715cb['uniqueid']),_0x3715cb);dials[_0x3715cb['uniqueid']]['dialstatus']=_0x3715cb['dialstatus'];if(_0x3715cb[_0x88f0('0x6')]==_0x88f0('0x25')){dials[_0x3715cb[_0x88f0('0x9')]]=_['assign'](dials[_0x3715cb[_0x88f0('0x9')]],_0x3715cb);dials[_0x3715cb[_0x88f0('0x9')]][_0x88f0('0x26')]=utils[_0x88f0('0x21')]();dials[_0x3715cb[_0x88f0('0x9')]][_0x88f0('0x27')]=_0x88f0('0x28');utils[_0x88f0('0xd')](util['format'](_0x88f0('0x29'),_0x3715cb['uniqueid'],_0x3715cb['dialstatus'],dials[_0x3715cb[_0x88f0('0x9')]][_0x88f0('0x26')]));}else{utils['info'](util[_0x88f0('0xc')](_0x88f0('0x2a'),_0x3715cb[_0x88f0('0x9')],_0x3715cb[_0x88f0('0x6')]));}}}catch(_0x381179){utils['error'](util[_0x88f0('0xc')](_0x88f0('0x24'),_0x3715cb[_0x88f0('0x9')]),_0x381179);}};exports['hangup']=function(_0x145751){try{if(!_[_0x88f0('0x1d')](dials[_0x145751[_0x88f0('0x9')]])){utils[_0x88f0('0xb')](util['format'](_0x88f0('0x2b'),_0x145751[_0x88f0('0x9')]),_0x145751);utils[_0x88f0('0xd')](util[_0x88f0('0xc')](_0x88f0('0x2c'),_0x145751['uniqueid'],_0x145751[_0x88f0('0x4')],_0x145751['calleridname'],_0x145751[_0x88f0('0x2d')]));dials[_0x145751[_0x88f0('0x9')]]=_[_0x88f0('0x1f')](dials[_0x145751[_0x88f0('0x9')]],{'endtime':utils[_0x88f0('0x21')](),'lastevent':_0x88f0('0x2e')});dials[_0x145751[_0x88f0('0x9')]][_0x88f0('0x2f')]=utils['diffTime'](dials[_0x145751[_0x88f0('0x9')]]['endtime'],dials[_0x145751[_0x88f0('0x9')]]['starttime']);dials[_0x145751[_0x88f0('0x9')]]['holdtime']=utils[_0x88f0('0x30')](dials[_0x145751['uniqueid']][_0x88f0('0x26')]||dials[_0x145751[_0x88f0('0x9')]][_0x88f0('0x31')],dials[_0x145751['uniqueid']][_0x88f0('0x20')]);dials[_0x145751[_0x88f0('0x9')]]['billableseconds']=dials[_0x145751[_0x88f0('0x9')]]['answertime']?utils[_0x88f0('0x30')](dials[_0x145751[_0x88f0('0x9')]][_0x88f0('0x31')],dials[_0x145751['uniqueid']]['answertime']):0x0;writeDB(dials[_0x145751[_0x88f0('0x9')]]);}}catch(_0x37c4ff){utils[_0x88f0('0x16')](util['format'](_0x88f0('0x2b'),_0x145751['uniqueid']),_0x37c4ff);}};