d2e0e063b262855988faf2b12bd7a0d3857d85c1
[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 _0x7bc4=['[%s][dials][dialbegin]','assign','starttime','now','lastevent','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','[%s][dials][dialend]','ANSWER','answertime','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','calleridname','cause-txt','complete','duration','diffTime','endtime','billableseconds','lodash','util','./utils','format','uniqueid','channel','dialstring','calleridnum','connectedlinenum','dialstatus','request','CreateVoiceDialReport','debug','info','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','split','error','[%s][dials][newexten]','[%s][dials][varset]','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','isNil'];(function(_0x45c46a,_0x4cc49e){var _0x3aa60f=function(_0x7180fd){while(--_0x7180fd){_0x45c46a['push'](_0x45c46a['shift']());}};_0x3aa60f(++_0x4cc49e);}(_0x7bc4,0x1b6));var _0x47bc=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7bc4[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x47bc('0x0'));var util=require(_0x47bc('0x1'));var utils=require(_0x47bc('0x2'));var dials={};function writeDB(_0x353397){utils['info'](util[_0x47bc('0x3')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x353397[_0x47bc('0x4')],_0x353397[_0x47bc('0x5')],_0x353397[_0x47bc('0x6')],_0x353397[_0x47bc('0x7')],_0x353397[_0x47bc('0x8')],_0x353397[_0x47bc('0x9')]));utils[_0x47bc('0xa')](_0x47bc('0xb'),_0x353397);delete dials[_0x353397[_0x47bc('0x4')]];}exports['newexten']=function(_0x34b4e3){try{utils[_0x47bc('0xc')](util[_0x47bc('0x3')]('[%s][dials][newexten]',_0x34b4e3[_0x47bc('0x4')]),_0x34b4e3);utils[_0x47bc('0xd')](util['format'](_0x47bc('0xe'),_0x34b4e3[_0x47bc('0x4')],_0x34b4e3[_0x47bc('0xf')],_0x34b4e3[_0x47bc('0x10')]));if(_0x34b4e3[_0x47bc('0xf')][_0x47bc('0x11')]()==_0x47bc('0x12')&&_[_0x47bc('0x13')](_0x34b4e3['appdata'][_0x47bc('0x11')](),'cdr(routeid)')){var _0x42d225=_0x34b4e3[_0x47bc('0x10')][_0x47bc('0x14')]('=');dials[_0x34b4e3[_0x47bc('0x4')]]={'routeId':_0x42d225[0x1]};}}catch(_0x379d94){utils[_0x47bc('0x15')](util[_0x47bc('0x3')](_0x47bc('0x16'),_0x34b4e3[_0x47bc('0x4')]),_0x379d94);}};exports['varset']=function(_0xb83f22){try{utils[_0x47bc('0xc')](util[_0x47bc('0x3')](_0x47bc('0x17'),_0xb83f22[_0x47bc('0x4')]),_0xb83f22);if(!_['isNil'](_0xb83f22[_0x47bc('0x18')][_0x47bc('0x19')])){utils[_0x47bc('0xd')](util['format'](_0x47bc('0x1a'),_0xb83f22[_0x47bc('0x4')],_0xb83f22[_0x47bc('0x1b')]));dials[_0xb83f22[_0x47bc('0x4')]]={'routeId':_0xb83f22[_0x47bc('0x1b')]};}}catch(_0x53b592){utils['error'](util[_0x47bc('0x3')]('[%s][dials][varset]',_0xb83f22['uniqueid']),_0x53b592);}};exports[_0x47bc('0x1c')]=function(_0x2cfa90){try{if(!_[_0x47bc('0x1d')](dials[_0x2cfa90[_0x47bc('0x4')]])){utils['debug'](util[_0x47bc('0x3')](_0x47bc('0x1e'),_0x2cfa90['uniqueid']),_0x2cfa90);dials[_0x2cfa90[_0x47bc('0x4')]]=_[_0x47bc('0x1f')](dials[_0x2cfa90[_0x47bc('0x4')]],_0x2cfa90);dials[_0x2cfa90['uniqueid']][_0x47bc('0x20')]=utils[_0x47bc('0x21')]();dials[_0x2cfa90[_0x47bc('0x4')]][_0x47bc('0x22')]='called';utils[_0x47bc('0xd')](util['format'](_0x47bc('0x23'),_0x2cfa90[_0x47bc('0x4')],dials[_0x2cfa90[_0x47bc('0x4')]]['starttime']));}}catch(_0x303254){utils['error'](util[_0x47bc('0x3')]('[%s][dials][dialbegin]',_0x2cfa90[_0x47bc('0x4')]),_0x303254);}};exports[_0x47bc('0x24')]=function(_0x223c8d){try{if(!_[_0x47bc('0x1d')](dials[_0x223c8d['uniqueid']])){utils['debug'](util[_0x47bc('0x3')](_0x47bc('0x25'),_0x223c8d[_0x47bc('0x4')]),_0x223c8d);dials[_0x223c8d[_0x47bc('0x4')]][_0x47bc('0x9')]=_0x223c8d[_0x47bc('0x9')];if(_0x223c8d[_0x47bc('0x9')]==_0x47bc('0x26')){dials[_0x223c8d['uniqueid']]=_[_0x47bc('0x1f')](dials[_0x223c8d[_0x47bc('0x4')]],_0x223c8d);dials[_0x223c8d[_0x47bc('0x4')]][_0x47bc('0x27')]=utils[_0x47bc('0x21')]();dials[_0x223c8d['uniqueid']][_0x47bc('0x22')]=_0x47bc('0x28');utils['info'](util[_0x47bc('0x3')](_0x47bc('0x29'),_0x223c8d[_0x47bc('0x4')],_0x223c8d[_0x47bc('0x9')],dials[_0x223c8d[_0x47bc('0x4')]][_0x47bc('0x27')]));}else{utils[_0x47bc('0xd')](util[_0x47bc('0x3')](_0x47bc('0x2a'),_0x223c8d[_0x47bc('0x4')],_0x223c8d[_0x47bc('0x9')]));}}}catch(_0x4b7b5d){utils[_0x47bc('0x15')](util['format']('[%s][dials][dialend]',_0x223c8d[_0x47bc('0x4')]),_0x4b7b5d);}};exports['hangup']=function(_0x4ec09d){try{if(!_['isNil'](dials[_0x4ec09d[_0x47bc('0x4')]])){utils[_0x47bc('0xc')](util['format'](_0x47bc('0x2b'),_0x4ec09d[_0x47bc('0x4')]),_0x4ec09d);utils[_0x47bc('0xd')](util[_0x47bc('0x3')](_0x47bc('0x2c'),_0x4ec09d[_0x47bc('0x4')],_0x4ec09d[_0x47bc('0x7')],_0x4ec09d[_0x47bc('0x2d')],_0x4ec09d[_0x47bc('0x2e')]));dials[_0x4ec09d[_0x47bc('0x4')]]=_[_0x47bc('0x1f')](dials[_0x4ec09d[_0x47bc('0x4')]],{'endtime':utils['now'](),'lastevent':_0x47bc('0x2f')});dials[_0x4ec09d['uniqueid']][_0x47bc('0x30')]=utils[_0x47bc('0x31')](dials[_0x4ec09d[_0x47bc('0x4')]][_0x47bc('0x32')],dials[_0x4ec09d[_0x47bc('0x4')]][_0x47bc('0x20')]);dials[_0x4ec09d[_0x47bc('0x4')]]['holdtime']=utils[_0x47bc('0x31')](dials[_0x4ec09d[_0x47bc('0x4')]]['answertime']||dials[_0x4ec09d['uniqueid']][_0x47bc('0x32')],dials[_0x4ec09d['uniqueid']][_0x47bc('0x20')]);dials[_0x4ec09d[_0x47bc('0x4')]][_0x47bc('0x33')]=dials[_0x4ec09d['uniqueid']][_0x47bc('0x27')]?utils[_0x47bc('0x31')](dials[_0x4ec09d['uniqueid']]['endtime'],dials[_0x4ec09d[_0x47bc('0x4')]][_0x47bc('0x27')]):0x0;writeDB(dials[_0x4ec09d['uniqueid']]);}}catch(_0x377e62){utils[_0x47bc('0x15')](util[_0x47bc('0x3')]('[%s][dials][hangup]',_0x4ec09d[_0x47bc('0x4')]),_0x377e62);}};