7836de5d3015908d86b459eb1283024d06c480ec
[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 _0x8051=['[%s][dials][varset]','isNil','variable','outboundrouteid','value','[%s][dials][dialbegin]','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','starttime','dialend','[%s][dials][dialend]','answertime','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','error','hangup','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','assign','complete','diffTime','endtime','holdtime','billableseconds','[%s][dials][hangup]','lodash','util','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','dialstring','calleridnum','dialstatus','request','CreateVoiceDialReport','newexten','debug','appdata','application','toLowerCase','set','startsWith','cdr(routeid)','split','varset'];(function(_0x485f72,_0x301f52){var _0x3f03fd=function(_0x1d6633){while(--_0x1d6633){_0x485f72['push'](_0x485f72['shift']());}};_0x3f03fd(++_0x301f52);}(_0x8051,0xdf));var _0x1805=function(_0x15bca9,_0x3f833b){_0x15bca9=_0x15bca9-0x0;var _0x848502=_0x8051[_0x15bca9];return _0x848502;};'use strict';var _=require(_0x1805('0x0'));var util=require(_0x1805('0x1'));var utils=require(_0x1805('0x2'));var dials={};function writeDB(_0x22caf2){utils[_0x1805('0x3')](util[_0x1805('0x4')](_0x1805('0x5'),_0x22caf2[_0x1805('0x6')],_0x22caf2['channel'],_0x22caf2[_0x1805('0x7')],_0x22caf2[_0x1805('0x8')],_0x22caf2['connectedlinenum'],_0x22caf2[_0x1805('0x9')]));utils[_0x1805('0xa')](_0x1805('0xb'),_0x22caf2);delete dials[_0x22caf2[_0x1805('0x6')]];}exports[_0x1805('0xc')]=function(_0x41d57b){try{utils[_0x1805('0xd')](util[_0x1805('0x4')]('[%s][dials][newexten]',_0x41d57b['uniqueid']),_0x41d57b);utils[_0x1805('0x3')](util[_0x1805('0x4')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x41d57b[_0x1805('0x6')],_0x41d57b['application'],_0x41d57b[_0x1805('0xe')]));if(_0x41d57b[_0x1805('0xf')][_0x1805('0x10')]()==_0x1805('0x11')&&_[_0x1805('0x12')](_0x41d57b[_0x1805('0xe')][_0x1805('0x10')](),_0x1805('0x13'))){var _0x10bb4a=_0x41d57b[_0x1805('0xe')][_0x1805('0x14')]('=');dials[_0x41d57b[_0x1805('0x6')]]={'routeId':_0x10bb4a[0x1]};}}catch(_0x1e0808){utils['error'](util[_0x1805('0x4')]('[%s][dials][newexten]',_0x41d57b[_0x1805('0x6')]),_0x1e0808);}};exports[_0x1805('0x15')]=function(_0x55ba13){try{utils[_0x1805('0xd')](util[_0x1805('0x4')](_0x1805('0x16'),_0x55ba13['uniqueid']),_0x55ba13);if(!_[_0x1805('0x17')](_0x55ba13[_0x1805('0x18')][_0x1805('0x19')])){utils[_0x1805('0x3')](util[_0x1805('0x4')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x55ba13[_0x1805('0x6')],_0x55ba13['value']));dials[_0x55ba13[_0x1805('0x6')]]={'routeId':_0x55ba13[_0x1805('0x1a')]};}}catch(_0x2c0ce3){utils['error'](util[_0x1805('0x4')](_0x1805('0x16'),_0x55ba13[_0x1805('0x6')]),_0x2c0ce3);}};exports['dialbegin']=function(_0x203df8){try{if(!_[_0x1805('0x17')](dials[_0x203df8['uniqueid']])){utils[_0x1805('0xd')](util[_0x1805('0x4')](_0x1805('0x1b'),_0x203df8[_0x1805('0x6')]),_0x203df8);dials[_0x203df8[_0x1805('0x6')]]=_['assign'](dials[_0x203df8[_0x1805('0x6')]],_0x203df8);dials[_0x203df8[_0x1805('0x6')]]['starttime']=utils[_0x1805('0x1c')]();dials[_0x203df8['uniqueid']][_0x1805('0x1d')]=_0x1805('0x1e');utils[_0x1805('0x3')](util[_0x1805('0x4')](_0x1805('0x1f'),_0x203df8[_0x1805('0x6')],dials[_0x203df8[_0x1805('0x6')]][_0x1805('0x20')]));}}catch(_0x467e91){utils['error'](util['format'](_0x1805('0x1b'),_0x203df8[_0x1805('0x6')]),_0x467e91);}};exports[_0x1805('0x21')]=function(_0x4d8fe7){try{if(!_['isNil'](dials[_0x4d8fe7['uniqueid']])){utils[_0x1805('0xd')](util[_0x1805('0x4')](_0x1805('0x22'),_0x4d8fe7['uniqueid']),_0x4d8fe7);dials[_0x4d8fe7[_0x1805('0x6')]][_0x1805('0x9')]=_0x4d8fe7['dialstatus'];if(_0x4d8fe7[_0x1805('0x9')]=='ANSWER'){dials[_0x4d8fe7[_0x1805('0x6')]]=_['assign'](dials[_0x4d8fe7[_0x1805('0x6')]],_0x4d8fe7);dials[_0x4d8fe7[_0x1805('0x6')]][_0x1805('0x23')]=utils[_0x1805('0x1c')]();dials[_0x4d8fe7[_0x1805('0x6')]][_0x1805('0x1d')]='connect';utils['info'](util[_0x1805('0x4')](_0x1805('0x24'),_0x4d8fe7[_0x1805('0x6')],_0x4d8fe7['dialstatus'],dials[_0x4d8fe7[_0x1805('0x6')]][_0x1805('0x23')]));}else{utils[_0x1805('0x3')](util[_0x1805('0x4')](_0x1805('0x25'),_0x4d8fe7[_0x1805('0x6')],_0x4d8fe7['dialstatus']));}}}catch(_0x219747){utils[_0x1805('0x26')](util[_0x1805('0x4')](_0x1805('0x22'),_0x4d8fe7[_0x1805('0x6')]),_0x219747);}};exports[_0x1805('0x27')]=function(_0x46e9c7){try{if(!_[_0x1805('0x17')](dials[_0x46e9c7['uniqueid']])){utils[_0x1805('0xd')](util[_0x1805('0x4')]('[%s][dials][hangup]',_0x46e9c7['uniqueid']),_0x46e9c7);utils['info'](util[_0x1805('0x4')](_0x1805('0x28'),_0x46e9c7[_0x1805('0x6')],_0x46e9c7['calleridnum'],_0x46e9c7[_0x1805('0x29')],_0x46e9c7['cause-txt']));dials[_0x46e9c7[_0x1805('0x6')]]=_[_0x1805('0x2a')](dials[_0x46e9c7[_0x1805('0x6')]],{'endtime':utils[_0x1805('0x1c')](),'lastevent':_0x1805('0x2b')});dials[_0x46e9c7[_0x1805('0x6')]]['duration']=utils[_0x1805('0x2c')](dials[_0x46e9c7['uniqueid']][_0x1805('0x2d')],dials[_0x46e9c7['uniqueid']][_0x1805('0x20')]);dials[_0x46e9c7['uniqueid']][_0x1805('0x2e')]=utils[_0x1805('0x2c')](dials[_0x46e9c7[_0x1805('0x6')]][_0x1805('0x23')]||dials[_0x46e9c7[_0x1805('0x6')]][_0x1805('0x2d')],dials[_0x46e9c7['uniqueid']]['starttime']);dials[_0x46e9c7[_0x1805('0x6')]][_0x1805('0x2f')]=dials[_0x46e9c7[_0x1805('0x6')]][_0x1805('0x23')]?utils['diffTime'](dials[_0x46e9c7[_0x1805('0x6')]]['endtime'],dials[_0x46e9c7['uniqueid']]['answertime']):0x0;writeDB(dials[_0x46e9c7[_0x1805('0x6')]]);}}catch(_0x39ab95){utils[_0x1805('0x26')](util[_0x1805('0x4')](_0x1805('0x30'),_0x46e9c7['uniqueid']),_0x39ab95);}};