Built motion from commit 616d3211.|2.6.4
[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 _0x7896=['[%s][dials][hangup]','lodash','util','./utils','info','format','uniqueid','channel','calleridnum','dialstatus','request','CreateVoiceDialReport','debug','[%s][dials][newexten]','application','toLowerCase','appdata','cdr(routeid)','error','varset','[%s][dials][varset]','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','[%s][dials][dialbegin]','now','lastevent','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','starttime','assign','connect','answertime','[%s][dials][dialend]\x20dialstatus:%s','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','complete','endtime','holdtime','diffTime','billableseconds'];(function(_0x15b380,_0x1a3c5f){var _0x232c5c=function(_0x12f8e0){while(--_0x12f8e0){_0x15b380['push'](_0x15b380['shift']());}};_0x232c5c(++_0x1a3c5f);}(_0x7896,0x1af));var _0x6789=function(_0x4de2e3,_0x7c3e2a){_0x4de2e3=_0x4de2e3-0x0;var _0x5df1c7=_0x7896[_0x4de2e3];return _0x5df1c7;};'use strict';var _=require(_0x6789('0x0'));var util=require(_0x6789('0x1'));var utils=require(_0x6789('0x2'));var dials={};function writeDB(_0x31c7ca){utils[_0x6789('0x3')](util[_0x6789('0x4')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x31c7ca[_0x6789('0x5')],_0x31c7ca[_0x6789('0x6')],_0x31c7ca['dialstring'],_0x31c7ca[_0x6789('0x7')],_0x31c7ca['connectedlinenum'],_0x31c7ca[_0x6789('0x8')]));utils[_0x6789('0x9')](_0x6789('0xa'),_0x31c7ca);delete dials[_0x31c7ca['uniqueid']];}exports['newexten']=function(_0x4950c9){try{utils[_0x6789('0xb')](util[_0x6789('0x4')](_0x6789('0xc'),_0x4950c9[_0x6789('0x5')]),_0x4950c9);utils['info'](util[_0x6789('0x4')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x4950c9[_0x6789('0x5')],_0x4950c9[_0x6789('0xd')],_0x4950c9['appdata']));if(_0x4950c9[_0x6789('0xd')][_0x6789('0xe')]()=='set'&&_['startsWith'](_0x4950c9[_0x6789('0xf')][_0x6789('0xe')](),_0x6789('0x10'))){var _0x3b3824=_0x4950c9['appdata']['split']('=');dials[_0x4950c9[_0x6789('0x5')]]={'routeId':_0x3b3824[0x1]};}}catch(_0x33b72f){utils[_0x6789('0x11')](util[_0x6789('0x4')](_0x6789('0xc'),_0x4950c9[_0x6789('0x5')]),_0x33b72f);}};exports[_0x6789('0x12')]=function(_0x3e94ac){try{utils[_0x6789('0xb')](util['format'](_0x6789('0x13'),_0x3e94ac['uniqueid']),_0x3e94ac);if(!_[_0x6789('0x14')](_0x3e94ac[_0x6789('0x15')][_0x6789('0x16')])){utils[_0x6789('0x3')](util[_0x6789('0x4')](_0x6789('0x17'),_0x3e94ac[_0x6789('0x5')],_0x3e94ac[_0x6789('0x18')]));dials[_0x3e94ac[_0x6789('0x5')]]={'routeId':_0x3e94ac[_0x6789('0x18')]};}}catch(_0x37f1af){utils['error'](util[_0x6789('0x4')](_0x6789('0x13'),_0x3e94ac[_0x6789('0x5')]),_0x37f1af);}};exports[_0x6789('0x19')]=function(_0x57ae46){try{if(!_[_0x6789('0x14')](dials[_0x57ae46[_0x6789('0x5')]])){utils[_0x6789('0xb')](util[_0x6789('0x4')](_0x6789('0x1a'),_0x57ae46[_0x6789('0x5')]),_0x57ae46);dials[_0x57ae46[_0x6789('0x5')]]=_['assign'](dials[_0x57ae46['uniqueid']],_0x57ae46);dials[_0x57ae46[_0x6789('0x5')]]['starttime']=utils[_0x6789('0x1b')]();dials[_0x57ae46[_0x6789('0x5')]][_0x6789('0x1c')]='called';utils[_0x6789('0x3')](util[_0x6789('0x4')](_0x6789('0x1d'),_0x57ae46[_0x6789('0x5')],dials[_0x57ae46[_0x6789('0x5')]][_0x6789('0x1e')]));}}catch(_0x2f7c31){utils[_0x6789('0x11')](util[_0x6789('0x4')](_0x6789('0x1a'),_0x57ae46[_0x6789('0x5')]),_0x2f7c31);}};exports['dialend']=function(_0x817790){try{if(!_['isNil'](dials[_0x817790[_0x6789('0x5')]])){utils[_0x6789('0xb')](util[_0x6789('0x4')]('[%s][dials][dialend]',_0x817790['uniqueid']),_0x817790);dials[_0x817790[_0x6789('0x5')]][_0x6789('0x8')]=_0x817790['dialstatus'];if(_0x817790[_0x6789('0x8')]=='ANSWER'){dials[_0x817790['uniqueid']]=_[_0x6789('0x1f')](dials[_0x817790['uniqueid']],_0x817790);dials[_0x817790[_0x6789('0x5')]]['answertime']=utils['now']();dials[_0x817790[_0x6789('0x5')]][_0x6789('0x1c')]=_0x6789('0x20');utils['info'](util[_0x6789('0x4')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x817790[_0x6789('0x5')],_0x817790[_0x6789('0x8')],dials[_0x817790[_0x6789('0x5')]][_0x6789('0x21')]));}else{utils[_0x6789('0x3')](util[_0x6789('0x4')](_0x6789('0x22'),_0x817790[_0x6789('0x5')],_0x817790[_0x6789('0x8')]));}}}catch(_0x5eb1f3){utils[_0x6789('0x11')](util[_0x6789('0x4')]('[%s][dials][dialend]',_0x817790[_0x6789('0x5')]),_0x5eb1f3);}};exports['hangup']=function(_0x58a014){try{if(!_[_0x6789('0x14')](dials[_0x58a014[_0x6789('0x5')]])){utils[_0x6789('0xb')](util['format']('[%s][dials][hangup]',_0x58a014[_0x6789('0x5')]),_0x58a014);utils['info'](util['format'](_0x6789('0x23'),_0x58a014['uniqueid'],_0x58a014[_0x6789('0x7')],_0x58a014[_0x6789('0x24')],_0x58a014['cause-txt']));dials[_0x58a014[_0x6789('0x5')]]=_['assign'](dials[_0x58a014[_0x6789('0x5')]],{'endtime':utils[_0x6789('0x1b')](),'lastevent':_0x6789('0x25')});dials[_0x58a014[_0x6789('0x5')]]['duration']=utils['diffTime'](dials[_0x58a014['uniqueid']][_0x6789('0x26')],dials[_0x58a014['uniqueid']][_0x6789('0x1e')]);dials[_0x58a014[_0x6789('0x5')]][_0x6789('0x27')]=utils[_0x6789('0x28')](dials[_0x58a014[_0x6789('0x5')]][_0x6789('0x21')]||dials[_0x58a014[_0x6789('0x5')]]['endtime'],dials[_0x58a014[_0x6789('0x5')]]['starttime']);dials[_0x58a014[_0x6789('0x5')]][_0x6789('0x29')]=dials[_0x58a014[_0x6789('0x5')]][_0x6789('0x21')]?utils[_0x6789('0x28')](dials[_0x58a014['uniqueid']][_0x6789('0x26')],dials[_0x58a014[_0x6789('0x5')]][_0x6789('0x21')]):0x0;writeDB(dials[_0x58a014[_0x6789('0x5')]]);}}catch(_0x28fd8b){utils[_0x6789('0x11')](util[_0x6789('0x4')](_0x6789('0x2a'),_0x58a014[_0x6789('0x5')]),_0x28fd8b);}};