Built motion from commit eddce310.|2.6.12
[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 _0x0b28=['[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','set','appdata','split','error','varset','[%s][dials][varset]','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','isNil','assign','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','starttime','[%s][dials][dialbegin]','[%s][dials][dialend]','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridnum','calleridname','cause-txt','diffTime','endtime','holdtime','lodash','util','./utils','info','format','uniqueid','channel','dialstring','connectedlinenum','dialstatus','request','CreateVoiceDialReport','newexten','debug','[%s][dials][newexten]'];(function(_0x979d28,_0x4811d9){var _0x208b30=function(_0x2e7b8d){while(--_0x2e7b8d){_0x979d28['push'](_0x979d28['shift']());}};_0x208b30(++_0x4811d9);}(_0x0b28,0xb1));var _0x80b2=function(_0x53afe9,_0x2c9f40){_0x53afe9=_0x53afe9-0x0;var _0x396396=_0x0b28[_0x53afe9];return _0x396396;};'use strict';var _=require(_0x80b2('0x0'));var util=require(_0x80b2('0x1'));var utils=require(_0x80b2('0x2'));var dials={};function writeDB(_0x93cff3){utils[_0x80b2('0x3')](util[_0x80b2('0x4')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x93cff3[_0x80b2('0x5')],_0x93cff3[_0x80b2('0x6')],_0x93cff3[_0x80b2('0x7')],_0x93cff3['calleridnum'],_0x93cff3[_0x80b2('0x8')],_0x93cff3[_0x80b2('0x9')]));utils[_0x80b2('0xa')](_0x80b2('0xb'),_0x93cff3);delete dials[_0x93cff3[_0x80b2('0x5')]];}exports[_0x80b2('0xc')]=function(_0x25a13c){try{utils[_0x80b2('0xd')](util[_0x80b2('0x4')](_0x80b2('0xe'),_0x25a13c[_0x80b2('0x5')]),_0x25a13c);utils['info'](util[_0x80b2('0x4')](_0x80b2('0xf'),_0x25a13c[_0x80b2('0x5')],_0x25a13c[_0x80b2('0x10')],_0x25a13c['appdata']));if(_0x25a13c[_0x80b2('0x10')]['toLowerCase']()==_0x80b2('0x11')&&_['startsWith'](_0x25a13c[_0x80b2('0x12')]['toLowerCase'](),'cdr(routeid)')){var _0x23929d=_0x25a13c['appdata'][_0x80b2('0x13')]('=');dials[_0x25a13c['uniqueid']]={'routeId':_0x23929d[0x1]};}}catch(_0x57cc1d){utils[_0x80b2('0x14')](util['format']('[%s][dials][newexten]',_0x25a13c[_0x80b2('0x5')]),_0x57cc1d);}};exports[_0x80b2('0x15')]=function(_0x48e6eb){try{utils['debug'](util['format'](_0x80b2('0x16'),_0x48e6eb[_0x80b2('0x5')]),_0x48e6eb);if(!_['isNil'](_0x48e6eb[_0x80b2('0x17')][_0x80b2('0x18')])){utils[_0x80b2('0x3')](util[_0x80b2('0x4')](_0x80b2('0x19'),_0x48e6eb[_0x80b2('0x5')],_0x48e6eb[_0x80b2('0x1a')]));dials[_0x48e6eb[_0x80b2('0x5')]]={'routeId':_0x48e6eb[_0x80b2('0x1a')]};}}catch(_0x59aa50){utils['error'](util[_0x80b2('0x4')](_0x80b2('0x16'),_0x48e6eb[_0x80b2('0x5')]),_0x59aa50);}};exports['dialbegin']=function(_0x26ec6a){try{if(!_[_0x80b2('0x1b')](dials[_0x26ec6a['uniqueid']])){utils[_0x80b2('0xd')](util['format']('[%s][dials][dialbegin]',_0x26ec6a[_0x80b2('0x5')]),_0x26ec6a);dials[_0x26ec6a['uniqueid']]=_[_0x80b2('0x1c')](dials[_0x26ec6a['uniqueid']],_0x26ec6a);dials[_0x26ec6a['uniqueid']]['starttime']=utils[_0x80b2('0x1d')]();dials[_0x26ec6a[_0x80b2('0x5')]][_0x80b2('0x1e')]=_0x80b2('0x1f');utils[_0x80b2('0x3')](util[_0x80b2('0x4')](_0x80b2('0x20'),_0x26ec6a['uniqueid'],dials[_0x26ec6a[_0x80b2('0x5')]][_0x80b2('0x21')]));}}catch(_0x580474){utils[_0x80b2('0x14')](util[_0x80b2('0x4')](_0x80b2('0x22'),_0x26ec6a['uniqueid']),_0x580474);}};exports['dialend']=function(_0x1be024){try{if(!_[_0x80b2('0x1b')](dials[_0x1be024[_0x80b2('0x5')]])){utils[_0x80b2('0xd')](util['format'](_0x80b2('0x23'),_0x1be024[_0x80b2('0x5')]),_0x1be024);dials[_0x1be024[_0x80b2('0x5')]][_0x80b2('0x9')]=_0x1be024[_0x80b2('0x9')];if(_0x1be024[_0x80b2('0x9')]=='ANSWER'){dials[_0x1be024[_0x80b2('0x5')]]=_[_0x80b2('0x1c')](dials[_0x1be024['uniqueid']],_0x1be024);dials[_0x1be024[_0x80b2('0x5')]][_0x80b2('0x24')]=utils['now']();dials[_0x1be024[_0x80b2('0x5')]][_0x80b2('0x1e')]=_0x80b2('0x25');utils[_0x80b2('0x3')](util[_0x80b2('0x4')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x1be024[_0x80b2('0x5')],_0x1be024[_0x80b2('0x9')],dials[_0x1be024[_0x80b2('0x5')]]['answertime']));}else{utils[_0x80b2('0x3')](util[_0x80b2('0x4')](_0x80b2('0x26'),_0x1be024[_0x80b2('0x5')],_0x1be024['dialstatus']));}}}catch(_0x281041){utils[_0x80b2('0x14')](util[_0x80b2('0x4')](_0x80b2('0x23'),_0x1be024['uniqueid']),_0x281041);}};exports[_0x80b2('0x27')]=function(_0x17c291){try{if(!_[_0x80b2('0x1b')](dials[_0x17c291[_0x80b2('0x5')]])){utils['debug'](util[_0x80b2('0x4')](_0x80b2('0x28'),_0x17c291['uniqueid']),_0x17c291);utils[_0x80b2('0x3')](util[_0x80b2('0x4')](_0x80b2('0x29'),_0x17c291[_0x80b2('0x5')],_0x17c291[_0x80b2('0x2a')],_0x17c291[_0x80b2('0x2b')],_0x17c291[_0x80b2('0x2c')]));dials[_0x17c291[_0x80b2('0x5')]]=_[_0x80b2('0x1c')](dials[_0x17c291[_0x80b2('0x5')]],{'endtime':utils['now'](),'lastevent':'complete'});dials[_0x17c291[_0x80b2('0x5')]]['duration']=utils[_0x80b2('0x2d')](dials[_0x17c291[_0x80b2('0x5')]][_0x80b2('0x2e')],dials[_0x17c291[_0x80b2('0x5')]]['starttime']);dials[_0x17c291['uniqueid']][_0x80b2('0x2f')]=utils['diffTime'](dials[_0x17c291[_0x80b2('0x5')]][_0x80b2('0x24')]||dials[_0x17c291[_0x80b2('0x5')]][_0x80b2('0x2e')],dials[_0x17c291[_0x80b2('0x5')]]['starttime']);dials[_0x17c291[_0x80b2('0x5')]]['billableseconds']=dials[_0x17c291[_0x80b2('0x5')]][_0x80b2('0x24')]?utils['diffTime'](dials[_0x17c291[_0x80b2('0x5')]][_0x80b2('0x2e')],dials[_0x17c291[_0x80b2('0x5')]][_0x80b2('0x24')]):0x0;writeDB(dials[_0x17c291['uniqueid']]);}}catch(_0x361f14){utils[_0x80b2('0x14')](util[_0x80b2('0x4')]('[%s][dials][hangup]',_0x17c291[_0x80b2('0x5')]),_0x361f14);}};