Built motion from commit 9d1906d1.|2.5.40
[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 _0x3cd1=['connectedlinenum','dialstatus','request','CreateVoiceDialReport','newexten','debug','[%s][dials][newexten]','info','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase','set','appdata','varset','isNil','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','error','[%s][dials][varset]','dialbegin','[%s][dials][dialbegin]','starttime','lastevent','called','dialend','ANSWER','assign','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt','duration','diffTime','endtime','holdtime','lodash','util','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','dialstring'];(function(_0x3f30f9,_0x10fb56){var _0x2e8ef9=function(_0x2f9a2d){while(--_0x2f9a2d){_0x3f30f9['push'](_0x3f30f9['shift']());}};_0x2e8ef9(++_0x10fb56);}(_0x3cd1,0xb9));var _0x13cd=function(_0x4c0972,_0x115a79){_0x4c0972=_0x4c0972-0x0;var _0x37d513=_0x3cd1[_0x4c0972];return _0x37d513;};'use strict';var _=require(_0x13cd('0x0'));var util=require(_0x13cd('0x1'));var utils=require('./utils');var dials={};function writeDB(_0x12f21d){utils['info'](util[_0x13cd('0x2')](_0x13cd('0x3'),_0x12f21d[_0x13cd('0x4')],_0x12f21d[_0x13cd('0x5')],_0x12f21d[_0x13cd('0x6')],_0x12f21d['calleridnum'],_0x12f21d[_0x13cd('0x7')],_0x12f21d[_0x13cd('0x8')]));utils[_0x13cd('0x9')](_0x13cd('0xa'),_0x12f21d);delete dials[_0x12f21d[_0x13cd('0x4')]];}exports[_0x13cd('0xb')]=function(_0xca926a){try{utils[_0x13cd('0xc')](util[_0x13cd('0x2')](_0x13cd('0xd'),_0xca926a[_0x13cd('0x4')]),_0xca926a);utils[_0x13cd('0xe')](util[_0x13cd('0x2')](_0x13cd('0xf'),_0xca926a['uniqueid'],_0xca926a[_0x13cd('0x10')],_0xca926a['appdata']));if(_0xca926a[_0x13cd('0x10')][_0x13cd('0x11')]()==_0x13cd('0x12')&&_['startsWith'](_0xca926a[_0x13cd('0x13')][_0x13cd('0x11')](),'cdr(routeid)')){var _0x5f4cb7=_0xca926a['appdata']['split']('=');dials[_0xca926a[_0x13cd('0x4')]]={'routeId':_0x5f4cb7[0x1]};}}catch(_0x45b16d){utils['error'](util[_0x13cd('0x2')](_0x13cd('0xd'),_0xca926a[_0x13cd('0x4')]),_0x45b16d);}};exports[_0x13cd('0x14')]=function(_0x450eba){try{utils[_0x13cd('0xc')](util[_0x13cd('0x2')]('[%s][dials][varset]',_0x450eba['uniqueid']),_0x450eba);if(!_[_0x13cd('0x15')](_0x450eba['variable'][_0x13cd('0x16')])){utils[_0x13cd('0xe')](util['format'](_0x13cd('0x17'),_0x450eba[_0x13cd('0x4')],_0x450eba[_0x13cd('0x18')]));dials[_0x450eba[_0x13cd('0x4')]]={'routeId':_0x450eba[_0x13cd('0x18')]};}}catch(_0x49c4f7){utils[_0x13cd('0x19')](util[_0x13cd('0x2')](_0x13cd('0x1a'),_0x450eba[_0x13cd('0x4')]),_0x49c4f7);}};exports[_0x13cd('0x1b')]=function(_0x13b1a3){try{if(!_[_0x13cd('0x15')](dials[_0x13b1a3[_0x13cd('0x4')]])){utils[_0x13cd('0xc')](util[_0x13cd('0x2')](_0x13cd('0x1c'),_0x13b1a3[_0x13cd('0x4')]),_0x13b1a3);dials[_0x13b1a3[_0x13cd('0x4')]]=_['assign'](dials[_0x13b1a3[_0x13cd('0x4')]],_0x13b1a3);dials[_0x13b1a3[_0x13cd('0x4')]][_0x13cd('0x1d')]=utils['now']();dials[_0x13b1a3['uniqueid']][_0x13cd('0x1e')]=_0x13cd('0x1f');utils[_0x13cd('0xe')](util['format']('[%s][dials][hangup]\x20starttime:%s\x20lastevent:called',_0x13b1a3[_0x13cd('0x4')],dials[_0x13b1a3[_0x13cd('0x4')]][_0x13cd('0x1d')]));}}catch(_0x4c401a){utils[_0x13cd('0x19')](util['format'](_0x13cd('0x1c'),_0x13b1a3[_0x13cd('0x4')]),_0x4c401a);}};exports[_0x13cd('0x20')]=function(_0x11907d){try{if(!_[_0x13cd('0x15')](dials[_0x11907d[_0x13cd('0x4')]])){utils['debug'](util[_0x13cd('0x2')]('[%s][dials][dialend]',_0x11907d[_0x13cd('0x4')]),_0x11907d);dials[_0x11907d['uniqueid']][_0x13cd('0x8')]=_0x11907d[_0x13cd('0x8')];if(_0x11907d[_0x13cd('0x8')]==_0x13cd('0x21')){dials[_0x11907d[_0x13cd('0x4')]]=_[_0x13cd('0x22')](dials[_0x11907d['uniqueid']],_0x11907d);dials[_0x11907d['uniqueid']][_0x13cd('0x23')]=utils['now']();dials[_0x11907d[_0x13cd('0x4')]][_0x13cd('0x1e')]=_0x13cd('0x24');utils['info'](util[_0x13cd('0x2')](_0x13cd('0x25'),_0x11907d[_0x13cd('0x4')],_0x11907d[_0x13cd('0x8')],dials[_0x11907d[_0x13cd('0x4')]][_0x13cd('0x23')]));}else{utils['info'](util['format'](_0x13cd('0x26'),_0x11907d[_0x13cd('0x4')],_0x11907d[_0x13cd('0x8')]));}}}catch(_0x58e965){utils[_0x13cd('0x19')](util[_0x13cd('0x2')]('[%s][dials][dialend]',_0x11907d[_0x13cd('0x4')]),_0x58e965);}};exports[_0x13cd('0x27')]=function(_0x56576a){try{if(!_['isNil'](dials[_0x56576a['uniqueid']])){utils[_0x13cd('0xc')](util[_0x13cd('0x2')](_0x13cd('0x28'),_0x56576a[_0x13cd('0x4')]),_0x56576a);utils[_0x13cd('0xe')](util[_0x13cd('0x2')](_0x13cd('0x29'),_0x56576a['uniqueid'],_0x56576a['calleridnum'],_0x56576a[_0x13cd('0x2a')],_0x56576a[_0x13cd('0x2b')]));dials[_0x56576a['uniqueid']]=_[_0x13cd('0x22')](dials[_0x56576a[_0x13cd('0x4')]],{'endtime':utils['now'](),'lastevent':'complete'});dials[_0x56576a['uniqueid']][_0x13cd('0x2c')]=utils[_0x13cd('0x2d')](dials[_0x56576a[_0x13cd('0x4')]][_0x13cd('0x2e')],dials[_0x56576a[_0x13cd('0x4')]][_0x13cd('0x1d')]);dials[_0x56576a[_0x13cd('0x4')]][_0x13cd('0x2f')]=utils['diffTime'](dials[_0x56576a[_0x13cd('0x4')]][_0x13cd('0x23')]||dials[_0x56576a[_0x13cd('0x4')]]['endtime'],dials[_0x56576a['uniqueid']][_0x13cd('0x1d')]);dials[_0x56576a[_0x13cd('0x4')]]['billableseconds']=dials[_0x56576a[_0x13cd('0x4')]][_0x13cd('0x23')]?utils[_0x13cd('0x2d')](dials[_0x56576a[_0x13cd('0x4')]][_0x13cd('0x2e')],dials[_0x56576a[_0x13cd('0x4')]][_0x13cd('0x23')]):0x0;writeDB(dials[_0x56576a[_0x13cd('0x4')]]);}}catch(_0x3a15d9){utils[_0x13cd('0x19')](util['format'](_0x13cd('0x28'),_0x56576a[_0x13cd('0x4')]),_0x3a15d9);}};