Built motion from commit 3061e47c.|2.6.31
[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 _0x817a=['set','cdr(routeid)','split','varset','isNil','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','error','[%s][dials][varset]','dialbegin','assign','starttime','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialbegin]','dialend','[%s][dials][dialend]','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','calleridnum','calleridname','cause-txt','complete','duration','diffTime','endtime','billableseconds','lodash','util','./utils','info','format','uniqueid','channel','dialstring','connectedlinenum','dialstatus','request','CreateVoiceDialReport','newexten','debug','[%s][dials][newexten]','application','appdata','toLowerCase'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x817a,0x153));var _0xa817=function(_0x4fac39,_0x544630){_0x4fac39=_0x4fac39-0x0;var _0xa0151f=_0x817a[_0x4fac39];return _0xa0151f;};'use strict';var _=require(_0xa817('0x0'));var util=require(_0xa817('0x1'));var utils=require(_0xa817('0x2'));var dials={};function writeDB(_0x4b4025){utils[_0xa817('0x3')](util[_0xa817('0x4')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x4b4025[_0xa817('0x5')],_0x4b4025[_0xa817('0x6')],_0x4b4025[_0xa817('0x7')],_0x4b4025['calleridnum'],_0x4b4025[_0xa817('0x8')],_0x4b4025[_0xa817('0x9')]));utils[_0xa817('0xa')](_0xa817('0xb'),_0x4b4025);delete dials[_0x4b4025[_0xa817('0x5')]];}exports[_0xa817('0xc')]=function(_0x46106b){try{utils[_0xa817('0xd')](util[_0xa817('0x4')](_0xa817('0xe'),_0x46106b[_0xa817('0x5')]),_0x46106b);utils[_0xa817('0x3')](util[_0xa817('0x4')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x46106b[_0xa817('0x5')],_0x46106b[_0xa817('0xf')],_0x46106b[_0xa817('0x10')]));if(_0x46106b['application'][_0xa817('0x11')]()==_0xa817('0x12')&&_['startsWith'](_0x46106b[_0xa817('0x10')][_0xa817('0x11')](),_0xa817('0x13'))){var _0x3ef9ca=_0x46106b[_0xa817('0x10')][_0xa817('0x14')]('=');dials[_0x46106b[_0xa817('0x5')]]={'routeId':_0x3ef9ca[0x1]};}}catch(_0x5ddacd){utils['error'](util[_0xa817('0x4')](_0xa817('0xe'),_0x46106b[_0xa817('0x5')]),_0x5ddacd);}};exports[_0xa817('0x15')]=function(_0x201d18){try{utils['debug'](util['format']('[%s][dials][varset]',_0x201d18[_0xa817('0x5')]),_0x201d18);if(!_[_0xa817('0x16')](_0x201d18['variable'][_0xa817('0x17')])){utils['info'](util[_0xa817('0x4')](_0xa817('0x18'),_0x201d18[_0xa817('0x5')],_0x201d18[_0xa817('0x19')]));dials[_0x201d18[_0xa817('0x5')]]={'routeId':_0x201d18[_0xa817('0x19')]};}}catch(_0xc4fdb0){utils[_0xa817('0x1a')](util['format'](_0xa817('0x1b'),_0x201d18[_0xa817('0x5')]),_0xc4fdb0);}};exports[_0xa817('0x1c')]=function(_0x4f7827){try{if(!_[_0xa817('0x16')](dials[_0x4f7827[_0xa817('0x5')]])){utils[_0xa817('0xd')](util[_0xa817('0x4')]('[%s][dials][dialbegin]',_0x4f7827[_0xa817('0x5')]),_0x4f7827);dials[_0x4f7827[_0xa817('0x5')]]=_[_0xa817('0x1d')](dials[_0x4f7827['uniqueid']],_0x4f7827);dials[_0x4f7827[_0xa817('0x5')]][_0xa817('0x1e')]=utils[_0xa817('0x1f')]();dials[_0x4f7827[_0xa817('0x5')]][_0xa817('0x20')]=_0xa817('0x21');utils[_0xa817('0x3')](util[_0xa817('0x4')](_0xa817('0x22'),_0x4f7827['uniqueid'],dials[_0x4f7827[_0xa817('0x5')]][_0xa817('0x1e')]));}}catch(_0x3da8bf){utils['error'](util[_0xa817('0x4')](_0xa817('0x23'),_0x4f7827[_0xa817('0x5')]),_0x3da8bf);}};exports[_0xa817('0x24')]=function(_0xc5d47){try{if(!_[_0xa817('0x16')](dials[_0xc5d47[_0xa817('0x5')]])){utils[_0xa817('0xd')](util['format'](_0xa817('0x25'),_0xc5d47['uniqueid']),_0xc5d47);dials[_0xc5d47['uniqueid']][_0xa817('0x9')]=_0xc5d47['dialstatus'];if(_0xc5d47[_0xa817('0x9')]=='ANSWER'){dials[_0xc5d47['uniqueid']]=_['assign'](dials[_0xc5d47['uniqueid']],_0xc5d47);dials[_0xc5d47[_0xa817('0x5')]][_0xa817('0x26')]=utils[_0xa817('0x1f')]();dials[_0xc5d47[_0xa817('0x5')]][_0xa817('0x20')]=_0xa817('0x27');utils[_0xa817('0x3')](util[_0xa817('0x4')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0xc5d47[_0xa817('0x5')],_0xc5d47[_0xa817('0x9')],dials[_0xc5d47['uniqueid']][_0xa817('0x26')]));}else{utils[_0xa817('0x3')](util[_0xa817('0x4')](_0xa817('0x28'),_0xc5d47[_0xa817('0x5')],_0xc5d47[_0xa817('0x9')]));}}}catch(_0x3980f6){utils[_0xa817('0x1a')](util['format'](_0xa817('0x25'),_0xc5d47[_0xa817('0x5')]),_0x3980f6);}};exports[_0xa817('0x29')]=function(_0x47c121){try{if(!_[_0xa817('0x16')](dials[_0x47c121[_0xa817('0x5')]])){utils[_0xa817('0xd')](util[_0xa817('0x4')](_0xa817('0x2a'),_0x47c121[_0xa817('0x5')]),_0x47c121);utils[_0xa817('0x3')](util[_0xa817('0x4')]('[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s',_0x47c121[_0xa817('0x5')],_0x47c121[_0xa817('0x2b')],_0x47c121[_0xa817('0x2c')],_0x47c121[_0xa817('0x2d')]));dials[_0x47c121[_0xa817('0x5')]]=_[_0xa817('0x1d')](dials[_0x47c121['uniqueid']],{'endtime':utils['now'](),'lastevent':_0xa817('0x2e')});dials[_0x47c121['uniqueid']][_0xa817('0x2f')]=utils[_0xa817('0x30')](dials[_0x47c121['uniqueid']][_0xa817('0x31')],dials[_0x47c121[_0xa817('0x5')]][_0xa817('0x1e')]);dials[_0x47c121[_0xa817('0x5')]]['holdtime']=utils[_0xa817('0x30')](dials[_0x47c121['uniqueid']][_0xa817('0x26')]||dials[_0x47c121[_0xa817('0x5')]]['endtime'],dials[_0x47c121[_0xa817('0x5')]][_0xa817('0x1e')]);dials[_0x47c121[_0xa817('0x5')]][_0xa817('0x32')]=dials[_0x47c121[_0xa817('0x5')]][_0xa817('0x26')]?utils[_0xa817('0x30')](dials[_0x47c121[_0xa817('0x5')]][_0xa817('0x31')],dials[_0x47c121[_0xa817('0x5')]][_0xa817('0x26')]):0x0;writeDB(dials[_0x47c121[_0xa817('0x5')]]);}}catch(_0x3e3d1b){utils[_0xa817('0x1a')](util[_0xa817('0x4')](_0xa817('0x2a'),_0x47c121[_0xa817('0x5')]),_0x3e3d1b);}};