e3559260de44b0c81b122be68df32577766c4b03
[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 _0xb129=['[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','dialstring','calleridnum','connectedlinenum','dialstatus','CreateVoiceDialReport','debug','format','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','appdata','application','toLowerCase','startsWith','cdr(routeid)','error','varset','[%s][dials][varset]','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','[%s][dials][dialbegin]','now','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialend]','ANSWER','assign','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','complete','duration','endtime','starttime','holdtime','diffTime','billableseconds','lodash','util','info'];(function(_0x1a609e,_0x557698){var _0x20b986=function(_0x496414){while(--_0x496414){_0x1a609e['push'](_0x1a609e['shift']());}};_0x20b986(++_0x557698);}(_0xb129,0x8d));var _0x9b12=function(_0x5ed7a0,_0x552559){_0x5ed7a0=_0x5ed7a0-0x0;var _0x4d69e6=_0xb129[_0x5ed7a0];return _0x4d69e6;};'use strict';var _=require(_0x9b12('0x0'));var util=require(_0x9b12('0x1'));var utils=require('./utils');var dials={};function writeDB(_0x3da6a9){utils[_0x9b12('0x2')](util['format'](_0x9b12('0x3'),_0x3da6a9[_0x9b12('0x4')],_0x3da6a9[_0x9b12('0x5')],_0x3da6a9[_0x9b12('0x6')],_0x3da6a9[_0x9b12('0x7')],_0x3da6a9[_0x9b12('0x8')],_0x3da6a9[_0x9b12('0x9')]));utils['request'](_0x9b12('0xa'),_0x3da6a9);delete dials[_0x3da6a9['uniqueid']];}exports['newexten']=function(_0x3b02c3){try{utils[_0x9b12('0xb')](util[_0x9b12('0xc')](_0x9b12('0xd'),_0x3b02c3['uniqueid']),_0x3b02c3);utils['info'](util['format'](_0x9b12('0xe'),_0x3b02c3[_0x9b12('0x4')],_0x3b02c3['application'],_0x3b02c3[_0x9b12('0xf')]));if(_0x3b02c3[_0x9b12('0x10')][_0x9b12('0x11')]()=='set'&&_[_0x9b12('0x12')](_0x3b02c3['appdata']['toLowerCase'](),_0x9b12('0x13'))){var _0x1f89d8=_0x3b02c3['appdata']['split']('=');dials[_0x3b02c3[_0x9b12('0x4')]]={'routeId':_0x1f89d8[0x1]};}}catch(_0xeaf816){utils[_0x9b12('0x14')](util[_0x9b12('0xc')](_0x9b12('0xd'),_0x3b02c3['uniqueid']),_0xeaf816);}};exports[_0x9b12('0x15')]=function(_0x4c96f8){try{utils[_0x9b12('0xb')](util['format'](_0x9b12('0x16'),_0x4c96f8[_0x9b12('0x4')]),_0x4c96f8);if(!_[_0x9b12('0x17')](_0x4c96f8[_0x9b12('0x18')][_0x9b12('0x19')])){utils[_0x9b12('0x2')](util[_0x9b12('0xc')](_0x9b12('0x1a'),_0x4c96f8[_0x9b12('0x4')],_0x4c96f8[_0x9b12('0x1b')]));dials[_0x4c96f8[_0x9b12('0x4')]]={'routeId':_0x4c96f8[_0x9b12('0x1b')]};}}catch(_0x1b968e){utils[_0x9b12('0x14')](util[_0x9b12('0xc')]('[%s][dials][varset]',_0x4c96f8[_0x9b12('0x4')]),_0x1b968e);}};exports['dialbegin']=function(_0x28d846){try{if(!_[_0x9b12('0x17')](dials[_0x28d846['uniqueid']])){utils[_0x9b12('0xb')](util[_0x9b12('0xc')](_0x9b12('0x1c'),_0x28d846[_0x9b12('0x4')]),_0x28d846);dials[_0x28d846[_0x9b12('0x4')]]=_['assign'](dials[_0x28d846[_0x9b12('0x4')]],_0x28d846);dials[_0x28d846[_0x9b12('0x4')]]['starttime']=utils[_0x9b12('0x1d')]();dials[_0x28d846[_0x9b12('0x4')]]['lastevent']='called';utils['info'](util[_0x9b12('0xc')](_0x9b12('0x1e'),_0x28d846[_0x9b12('0x4')],dials[_0x28d846['uniqueid']]['starttime']));}}catch(_0x285fd7){utils[_0x9b12('0x14')](util[_0x9b12('0xc')](_0x9b12('0x1c'),_0x28d846[_0x9b12('0x4')]),_0x285fd7);}};exports['dialend']=function(_0x4209b6){try{if(!_['isNil'](dials[_0x4209b6['uniqueid']])){utils[_0x9b12('0xb')](util[_0x9b12('0xc')](_0x9b12('0x1f'),_0x4209b6[_0x9b12('0x4')]),_0x4209b6);dials[_0x4209b6[_0x9b12('0x4')]][_0x9b12('0x9')]=_0x4209b6[_0x9b12('0x9')];if(_0x4209b6[_0x9b12('0x9')]==_0x9b12('0x20')){dials[_0x4209b6[_0x9b12('0x4')]]=_[_0x9b12('0x21')](dials[_0x4209b6[_0x9b12('0x4')]],_0x4209b6);dials[_0x4209b6['uniqueid']][_0x9b12('0x22')]=utils['now']();dials[_0x4209b6[_0x9b12('0x4')]][_0x9b12('0x23')]=_0x9b12('0x24');utils[_0x9b12('0x2')](util['format'](_0x9b12('0x25'),_0x4209b6[_0x9b12('0x4')],_0x4209b6['dialstatus'],dials[_0x4209b6[_0x9b12('0x4')]][_0x9b12('0x22')]));}else{utils[_0x9b12('0x2')](util[_0x9b12('0xc')](_0x9b12('0x26'),_0x4209b6[_0x9b12('0x4')],_0x4209b6[_0x9b12('0x9')]));}}}catch(_0x57edf3){utils[_0x9b12('0x14')](util[_0x9b12('0xc')]('[%s][dials][dialend]',_0x4209b6['uniqueid']),_0x57edf3);}};exports['hangup']=function(_0x849e62){try{if(!_[_0x9b12('0x17')](dials[_0x849e62['uniqueid']])){utils[_0x9b12('0xb')](util[_0x9b12('0xc')](_0x9b12('0x27'),_0x849e62[_0x9b12('0x4')]),_0x849e62);utils[_0x9b12('0x2')](util[_0x9b12('0xc')](_0x9b12('0x28'),_0x849e62[_0x9b12('0x4')],_0x849e62['calleridnum'],_0x849e62['calleridname'],_0x849e62['cause-txt']));dials[_0x849e62[_0x9b12('0x4')]]=_['assign'](dials[_0x849e62[_0x9b12('0x4')]],{'endtime':utils[_0x9b12('0x1d')](),'lastevent':_0x9b12('0x29')});dials[_0x849e62['uniqueid']][_0x9b12('0x2a')]=utils['diffTime'](dials[_0x849e62[_0x9b12('0x4')]][_0x9b12('0x2b')],dials[_0x849e62['uniqueid']][_0x9b12('0x2c')]);dials[_0x849e62[_0x9b12('0x4')]][_0x9b12('0x2d')]=utils[_0x9b12('0x2e')](dials[_0x849e62[_0x9b12('0x4')]]['answertime']||dials[_0x849e62[_0x9b12('0x4')]][_0x9b12('0x2b')],dials[_0x849e62[_0x9b12('0x4')]][_0x9b12('0x2c')]);dials[_0x849e62[_0x9b12('0x4')]][_0x9b12('0x2f')]=dials[_0x849e62['uniqueid']]['answertime']?utils['diffTime'](dials[_0x849e62['uniqueid']][_0x9b12('0x2b')],dials[_0x849e62['uniqueid']][_0x9b12('0x22')]):0x0;writeDB(dials[_0x849e62[_0x9b12('0x4')]]);}}catch(_0x40d63b){utils[_0x9b12('0x14')](util[_0x9b12('0xc')]('[%s][dials][hangup]',_0x849e62[_0x9b12('0x4')]),_0x40d63b);}};