de6c186111ee176824c8d4b1bcb6802146e54e1a
[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 _0x6f3c=['now','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','error','[%s][dials][dialbegin]','[%s][dials][dialend]','answertime','lastevent','hangup','[%s][dials][hangup]','calleridname','complete','duration','endtime','starttime','holdtime','diffTime','billableseconds','lodash','util','./utils','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','calleridnum','connectedlinenum','dialstatus','CreateVoiceDialReport','debug','[%s][dials][newexten]','info','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','split','varset','[%s][dials][varset]','isNil','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','assign'];(function(_0x1f38c5,_0x735642){var _0x1c58cb=function(_0xca3f94){while(--_0xca3f94){_0x1f38c5['push'](_0x1f38c5['shift']());}};_0x1c58cb(++_0x735642);}(_0x6f3c,0x1ca));var _0xc6f3=function(_0x46e516,_0x46d7ac){_0x46e516=_0x46e516-0x0;var _0x46e734=_0x6f3c[_0x46e516];return _0x46e734;};'use strict';var _=require(_0xc6f3('0x0'));var util=require(_0xc6f3('0x1'));var utils=require(_0xc6f3('0x2'));var dials={};function writeDB(_0xd62b6d){utils['info'](util[_0xc6f3('0x3')](_0xc6f3('0x4'),_0xd62b6d[_0xc6f3('0x5')],_0xd62b6d[_0xc6f3('0x6')],_0xd62b6d['dialstring'],_0xd62b6d[_0xc6f3('0x7')],_0xd62b6d[_0xc6f3('0x8')],_0xd62b6d[_0xc6f3('0x9')]));utils['request'](_0xc6f3('0xa'),_0xd62b6d);delete dials[_0xd62b6d[_0xc6f3('0x5')]];}exports['newexten']=function(_0x1dedb1){try{utils[_0xc6f3('0xb')](util[_0xc6f3('0x3')](_0xc6f3('0xc'),_0x1dedb1[_0xc6f3('0x5')]),_0x1dedb1);utils[_0xc6f3('0xd')](util[_0xc6f3('0x3')](_0xc6f3('0xe'),_0x1dedb1[_0xc6f3('0x5')],_0x1dedb1[_0xc6f3('0xf')],_0x1dedb1['appdata']));if(_0x1dedb1[_0xc6f3('0xf')]['toLowerCase']()=='set'&&_['startsWith'](_0x1dedb1[_0xc6f3('0x10')]['toLowerCase'](),'cdr(routeid)')){var _0x552b89=_0x1dedb1[_0xc6f3('0x10')][_0xc6f3('0x11')]('=');dials[_0x1dedb1['uniqueid']]={'routeId':_0x552b89[0x1]};}}catch(_0x546ce8){utils['error'](util[_0xc6f3('0x3')]('[%s][dials][newexten]',_0x1dedb1[_0xc6f3('0x5')]),_0x546ce8);}};exports[_0xc6f3('0x12')]=function(_0x3176ca){try{utils[_0xc6f3('0xb')](util['format'](_0xc6f3('0x13'),_0x3176ca['uniqueid']),_0x3176ca);if(!_[_0xc6f3('0x14')](_0x3176ca['variable'][_0xc6f3('0x15')])){utils[_0xc6f3('0xd')](util[_0xc6f3('0x3')](_0xc6f3('0x16'),_0x3176ca['uniqueid'],_0x3176ca[_0xc6f3('0x17')]));dials[_0x3176ca['uniqueid']]={'routeId':_0x3176ca[_0xc6f3('0x17')]};}}catch(_0x28ddbe){utils['error'](util['format']('[%s][dials][varset]',_0x3176ca['uniqueid']),_0x28ddbe);}};exports[_0xc6f3('0x18')]=function(_0x25b60b){try{if(!_[_0xc6f3('0x14')](dials[_0x25b60b[_0xc6f3('0x5')]])){utils[_0xc6f3('0xb')](util[_0xc6f3('0x3')]('[%s][dials][dialbegin]',_0x25b60b[_0xc6f3('0x5')]),_0x25b60b);dials[_0x25b60b[_0xc6f3('0x5')]]=_[_0xc6f3('0x19')](dials[_0x25b60b['uniqueid']],_0x25b60b);dials[_0x25b60b[_0xc6f3('0x5')]]['starttime']=utils[_0xc6f3('0x1a')]();dials[_0x25b60b[_0xc6f3('0x5')]]['lastevent']=_0xc6f3('0x1b');utils['info'](util[_0xc6f3('0x3')](_0xc6f3('0x1c'),_0x25b60b['uniqueid'],dials[_0x25b60b[_0xc6f3('0x5')]]['starttime']));}}catch(_0x1bb99f){utils[_0xc6f3('0x1d')](util[_0xc6f3('0x3')](_0xc6f3('0x1e'),_0x25b60b[_0xc6f3('0x5')]),_0x1bb99f);}};exports['dialend']=function(_0x54bb5b){try{if(!_[_0xc6f3('0x14')](dials[_0x54bb5b['uniqueid']])){utils['debug'](util[_0xc6f3('0x3')](_0xc6f3('0x1f'),_0x54bb5b[_0xc6f3('0x5')]),_0x54bb5b);dials[_0x54bb5b[_0xc6f3('0x5')]]['dialstatus']=_0x54bb5b[_0xc6f3('0x9')];if(_0x54bb5b[_0xc6f3('0x9')]=='ANSWER'){dials[_0x54bb5b['uniqueid']]=_[_0xc6f3('0x19')](dials[_0x54bb5b['uniqueid']],_0x54bb5b);dials[_0x54bb5b[_0xc6f3('0x5')]][_0xc6f3('0x20')]=utils[_0xc6f3('0x1a')]();dials[_0x54bb5b[_0xc6f3('0x5')]][_0xc6f3('0x21')]='connect';utils['info'](util[_0xc6f3('0x3')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x54bb5b['uniqueid'],_0x54bb5b['dialstatus'],dials[_0x54bb5b[_0xc6f3('0x5')]][_0xc6f3('0x20')]));}else{utils[_0xc6f3('0xd')](util[_0xc6f3('0x3')]('[%s][dials][dialend]\x20dialstatus:%s',_0x54bb5b[_0xc6f3('0x5')],_0x54bb5b[_0xc6f3('0x9')]));}}}catch(_0x23e29d){utils[_0xc6f3('0x1d')](util[_0xc6f3('0x3')](_0xc6f3('0x1f'),_0x54bb5b[_0xc6f3('0x5')]),_0x23e29d);}};exports[_0xc6f3('0x22')]=function(_0x3c3f59){try{if(!_[_0xc6f3('0x14')](dials[_0x3c3f59['uniqueid']])){utils[_0xc6f3('0xb')](util[_0xc6f3('0x3')](_0xc6f3('0x23'),_0x3c3f59[_0xc6f3('0x5')]),_0x3c3f59);utils[_0xc6f3('0xd')](util['format']('[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s',_0x3c3f59[_0xc6f3('0x5')],_0x3c3f59[_0xc6f3('0x7')],_0x3c3f59[_0xc6f3('0x24')],_0x3c3f59['cause-txt']));dials[_0x3c3f59['uniqueid']]=_[_0xc6f3('0x19')](dials[_0x3c3f59['uniqueid']],{'endtime':utils[_0xc6f3('0x1a')](),'lastevent':_0xc6f3('0x25')});dials[_0x3c3f59[_0xc6f3('0x5')]][_0xc6f3('0x26')]=utils['diffTime'](dials[_0x3c3f59[_0xc6f3('0x5')]][_0xc6f3('0x27')],dials[_0x3c3f59[_0xc6f3('0x5')]][_0xc6f3('0x28')]);dials[_0x3c3f59['uniqueid']][_0xc6f3('0x29')]=utils[_0xc6f3('0x2a')](dials[_0x3c3f59[_0xc6f3('0x5')]]['answertime']||dials[_0x3c3f59['uniqueid']][_0xc6f3('0x27')],dials[_0x3c3f59[_0xc6f3('0x5')]]['starttime']);dials[_0x3c3f59[_0xc6f3('0x5')]][_0xc6f3('0x2b')]=dials[_0x3c3f59['uniqueid']][_0xc6f3('0x20')]?utils[_0xc6f3('0x2a')](dials[_0x3c3f59[_0xc6f3('0x5')]][_0xc6f3('0x27')],dials[_0x3c3f59[_0xc6f3('0x5')]][_0xc6f3('0x20')]):0x0;writeDB(dials[_0x3c3f59[_0xc6f3('0x5')]]);}}catch(_0x3dca00){utils[_0xc6f3('0x1d')](util[_0xc6f3('0x3')](_0xc6f3('0x23'),_0x3c3f59[_0xc6f3('0x5')]),_0x3dca00);}};