4645cb27c335128f4005dc77b782834f584d2ad8
[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 _0x6376=['holdtime','lodash','util','./utils','info','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','dialstring','calleridnum','connectedlinenum','dialstatus','request','debug','format','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','split','error','[%s][dials][newexten]','[%s][dials][varset]','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','[%s][dials][dialbegin]','assign','starttime','now','lastevent','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','ANSWER','connect','answertime','[%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'];(function(_0x43de22,_0x1eced6){var _0x4b15ee=function(_0x6e36da){while(--_0x6e36da){_0x43de22['push'](_0x43de22['shift']());}};_0x4b15ee(++_0x1eced6);}(_0x6376,0x151));var _0x6637=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6376[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x6637('0x0'));var util=require(_0x6637('0x1'));var utils=require(_0x6637('0x2'));var dials={};function writeDB(_0x22eb2e){utils[_0x6637('0x3')](util['format'](_0x6637('0x4'),_0x22eb2e[_0x6637('0x5')],_0x22eb2e[_0x6637('0x6')],_0x22eb2e[_0x6637('0x7')],_0x22eb2e[_0x6637('0x8')],_0x22eb2e[_0x6637('0x9')],_0x22eb2e[_0x6637('0xa')]));utils[_0x6637('0xb')]('CreateVoiceDialReport',_0x22eb2e);delete dials[_0x22eb2e[_0x6637('0x5')]];}exports['newexten']=function(_0x465653){try{utils[_0x6637('0xc')](util[_0x6637('0xd')]('[%s][dials][newexten]',_0x465653[_0x6637('0x5')]),_0x465653);utils[_0x6637('0x3')](util[_0x6637('0xd')](_0x6637('0xe'),_0x465653[_0x6637('0x5')],_0x465653[_0x6637('0xf')],_0x465653[_0x6637('0x10')]));if(_0x465653['application'][_0x6637('0x11')]()==_0x6637('0x12')&&_['startsWith'](_0x465653[_0x6637('0x10')]['toLowerCase'](),'cdr(routeid)')){var _0x37f9ee=_0x465653['appdata'][_0x6637('0x13')]('=');dials[_0x465653[_0x6637('0x5')]]={'routeId':_0x37f9ee[0x1]};}}catch(_0x3ee9ed){utils[_0x6637('0x14')](util[_0x6637('0xd')](_0x6637('0x15'),_0x465653[_0x6637('0x5')]),_0x3ee9ed);}};exports['varset']=function(_0x5a4f37){try{utils[_0x6637('0xc')](util[_0x6637('0xd')](_0x6637('0x16'),_0x5a4f37[_0x6637('0x5')]),_0x5a4f37);if(!_[_0x6637('0x17')](_0x5a4f37[_0x6637('0x18')][_0x6637('0x19')])){utils[_0x6637('0x3')](util[_0x6637('0xd')](_0x6637('0x1a'),_0x5a4f37[_0x6637('0x5')],_0x5a4f37['value']));dials[_0x5a4f37['uniqueid']]={'routeId':_0x5a4f37[_0x6637('0x1b')]};}}catch(_0x4f78e3){utils[_0x6637('0x14')](util[_0x6637('0xd')](_0x6637('0x16'),_0x5a4f37['uniqueid']),_0x4f78e3);}};exports[_0x6637('0x1c')]=function(_0x27443d){try{if(!_[_0x6637('0x17')](dials[_0x27443d['uniqueid']])){utils[_0x6637('0xc')](util[_0x6637('0xd')](_0x6637('0x1d'),_0x27443d[_0x6637('0x5')]),_0x27443d);dials[_0x27443d[_0x6637('0x5')]]=_[_0x6637('0x1e')](dials[_0x27443d[_0x6637('0x5')]],_0x27443d);dials[_0x27443d[_0x6637('0x5')]][_0x6637('0x1f')]=utils[_0x6637('0x20')]();dials[_0x27443d[_0x6637('0x5')]][_0x6637('0x21')]='called';utils['info'](util[_0x6637('0xd')](_0x6637('0x22'),_0x27443d[_0x6637('0x5')],dials[_0x27443d[_0x6637('0x5')]]['starttime']));}}catch(_0xd6e05c){utils[_0x6637('0x14')](util['format'](_0x6637('0x1d'),_0x27443d[_0x6637('0x5')]),_0xd6e05c);}};exports['dialend']=function(_0x381a79){try{if(!_[_0x6637('0x17')](dials[_0x381a79[_0x6637('0x5')]])){utils[_0x6637('0xc')](util['format']('[%s][dials][dialend]',_0x381a79[_0x6637('0x5')]),_0x381a79);dials[_0x381a79[_0x6637('0x5')]][_0x6637('0xa')]=_0x381a79[_0x6637('0xa')];if(_0x381a79['dialstatus']==_0x6637('0x23')){dials[_0x381a79[_0x6637('0x5')]]=_['assign'](dials[_0x381a79[_0x6637('0x5')]],_0x381a79);dials[_0x381a79[_0x6637('0x5')]]['answertime']=utils[_0x6637('0x20')]();dials[_0x381a79[_0x6637('0x5')]][_0x6637('0x21')]=_0x6637('0x24');utils['info'](util[_0x6637('0xd')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x381a79['uniqueid'],_0x381a79[_0x6637('0xa')],dials[_0x381a79[_0x6637('0x5')]][_0x6637('0x25')]));}else{utils[_0x6637('0x3')](util[_0x6637('0xd')](_0x6637('0x26'),_0x381a79[_0x6637('0x5')],_0x381a79[_0x6637('0xa')]));}}}catch(_0x5a08d2){utils[_0x6637('0x14')](util['format']('[%s][dials][dialend]',_0x381a79[_0x6637('0x5')]),_0x5a08d2);}};exports['hangup']=function(_0x3c564e){try{if(!_[_0x6637('0x17')](dials[_0x3c564e[_0x6637('0x5')]])){utils[_0x6637('0xc')](util[_0x6637('0xd')](_0x6637('0x27'),_0x3c564e['uniqueid']),_0x3c564e);utils[_0x6637('0x3')](util[_0x6637('0xd')](_0x6637('0x28'),_0x3c564e[_0x6637('0x5')],_0x3c564e[_0x6637('0x8')],_0x3c564e[_0x6637('0x29')],_0x3c564e[_0x6637('0x2a')]));dials[_0x3c564e[_0x6637('0x5')]]=_[_0x6637('0x1e')](dials[_0x3c564e[_0x6637('0x5')]],{'endtime':utils[_0x6637('0x20')](),'lastevent':_0x6637('0x2b')});dials[_0x3c564e['uniqueid']][_0x6637('0x2c')]=utils[_0x6637('0x2d')](dials[_0x3c564e[_0x6637('0x5')]][_0x6637('0x2e')],dials[_0x3c564e[_0x6637('0x5')]][_0x6637('0x1f')]);dials[_0x3c564e[_0x6637('0x5')]][_0x6637('0x2f')]=utils[_0x6637('0x2d')](dials[_0x3c564e[_0x6637('0x5')]][_0x6637('0x25')]||dials[_0x3c564e[_0x6637('0x5')]][_0x6637('0x2e')],dials[_0x3c564e[_0x6637('0x5')]][_0x6637('0x1f')]);dials[_0x3c564e[_0x6637('0x5')]]['billableseconds']=dials[_0x3c564e['uniqueid']][_0x6637('0x25')]?utils[_0x6637('0x2d')](dials[_0x3c564e['uniqueid']][_0x6637('0x2e')],dials[_0x3c564e[_0x6637('0x5')]][_0x6637('0x25')]):0x0;writeDB(dials[_0x3c564e[_0x6637('0x5')]]);}}catch(_0x1b3392){utils[_0x6637('0x14')](util[_0x6637('0xd')](_0x6637('0x27'),_0x3c564e[_0x6637('0x5')]),_0x1b3392);}};