8cb7fef00d0111e6e2ebe2a4b910768232d1ac39
[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 _0x6c2b=['complete','duration','endtime','holdtime','diffTime','billableseconds','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','dialstring','calleridnum','connectedlinenum','dialstatus','request','newexten','debug','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','startsWith','cdr(routeid)','split','error','[%s][dials][varset]','isNil','variable','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','[%s][dials][dialbegin]','assign','starttime','now','lastevent','dialend','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','[%s][dials][dialend]','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt'];(function(_0xbb091,_0x3fe7ee){var _0x467a04=function(_0x3a978d){while(--_0x3a978d){_0xbb091['push'](_0xbb091['shift']());}};_0x467a04(++_0x3fe7ee);}(_0x6c2b,0x120));var _0xb6c2=function(_0x2e9187,_0x3763f6){_0x2e9187=_0x2e9187-0x0;var _0x1fc3a8=_0x6c2b[_0x2e9187];return _0x1fc3a8;};'use strict';var _=require('lodash');var util=require('util');var utils=require(_0xb6c2('0x0'));var dials={};function writeDB(_0x423d73){utils[_0xb6c2('0x1')](util[_0xb6c2('0x2')](_0xb6c2('0x3'),_0x423d73[_0xb6c2('0x4')],_0x423d73[_0xb6c2('0x5')],_0x423d73[_0xb6c2('0x6')],_0x423d73[_0xb6c2('0x7')],_0x423d73[_0xb6c2('0x8')],_0x423d73[_0xb6c2('0x9')]));utils[_0xb6c2('0xa')]('CreateVoiceDialReport',_0x423d73);delete dials[_0x423d73[_0xb6c2('0x4')]];}exports[_0xb6c2('0xb')]=function(_0x403f9b){try{utils[_0xb6c2('0xc')](util[_0xb6c2('0x2')](_0xb6c2('0xd'),_0x403f9b[_0xb6c2('0x4')]),_0x403f9b);utils[_0xb6c2('0x1')](util['format'](_0xb6c2('0xe'),_0x403f9b[_0xb6c2('0x4')],_0x403f9b[_0xb6c2('0xf')],_0x403f9b[_0xb6c2('0x10')]));if(_0x403f9b[_0xb6c2('0xf')][_0xb6c2('0x11')]()=='set'&&_[_0xb6c2('0x12')](_0x403f9b[_0xb6c2('0x10')][_0xb6c2('0x11')](),_0xb6c2('0x13'))){var _0x41e167=_0x403f9b[_0xb6c2('0x10')][_0xb6c2('0x14')]('=');dials[_0x403f9b['uniqueid']]={'routeId':_0x41e167[0x1]};}}catch(_0x38e982){utils[_0xb6c2('0x15')](util[_0xb6c2('0x2')](_0xb6c2('0xd'),_0x403f9b[_0xb6c2('0x4')]),_0x38e982);}};exports['varset']=function(_0x5a7bd9){try{utils[_0xb6c2('0xc')](util[_0xb6c2('0x2')](_0xb6c2('0x16'),_0x5a7bd9[_0xb6c2('0x4')]),_0x5a7bd9);if(!_[_0xb6c2('0x17')](_0x5a7bd9[_0xb6c2('0x18')]['outboundrouteid'])){utils['info'](util[_0xb6c2('0x2')](_0xb6c2('0x19'),_0x5a7bd9[_0xb6c2('0x4')],_0x5a7bd9['value']));dials[_0x5a7bd9['uniqueid']]={'routeId':_0x5a7bd9['value']};}}catch(_0x58eab8){utils[_0xb6c2('0x15')](util['format'](_0xb6c2('0x16'),_0x5a7bd9[_0xb6c2('0x4')]),_0x58eab8);}};exports['dialbegin']=function(_0x4bf1ea){try{if(!_[_0xb6c2('0x17')](dials[_0x4bf1ea['uniqueid']])){utils[_0xb6c2('0xc')](util[_0xb6c2('0x2')](_0xb6c2('0x1a'),_0x4bf1ea[_0xb6c2('0x4')]),_0x4bf1ea);dials[_0x4bf1ea[_0xb6c2('0x4')]]=_[_0xb6c2('0x1b')](dials[_0x4bf1ea[_0xb6c2('0x4')]],_0x4bf1ea);dials[_0x4bf1ea['uniqueid']][_0xb6c2('0x1c')]=utils[_0xb6c2('0x1d')]();dials[_0x4bf1ea[_0xb6c2('0x4')]][_0xb6c2('0x1e')]='called';utils['info'](util[_0xb6c2('0x2')]('[%s][dials][hangup]\x20starttime:%s\x20lastevent:called',_0x4bf1ea['uniqueid'],dials[_0x4bf1ea[_0xb6c2('0x4')]][_0xb6c2('0x1c')]));}}catch(_0x4c6123){utils[_0xb6c2('0x15')](util[_0xb6c2('0x2')](_0xb6c2('0x1a'),_0x4bf1ea['uniqueid']),_0x4c6123);}};exports[_0xb6c2('0x1f')]=function(_0x1fd4f2){try{if(!_['isNil'](dials[_0x1fd4f2[_0xb6c2('0x4')]])){utils[_0xb6c2('0xc')](util[_0xb6c2('0x2')]('[%s][dials][dialend]',_0x1fd4f2[_0xb6c2('0x4')]),_0x1fd4f2);dials[_0x1fd4f2[_0xb6c2('0x4')]][_0xb6c2('0x9')]=_0x1fd4f2[_0xb6c2('0x9')];if(_0x1fd4f2[_0xb6c2('0x9')]=='ANSWER'){dials[_0x1fd4f2[_0xb6c2('0x4')]]=_[_0xb6c2('0x1b')](dials[_0x1fd4f2[_0xb6c2('0x4')]],_0x1fd4f2);dials[_0x1fd4f2[_0xb6c2('0x4')]][_0xb6c2('0x20')]=utils['now']();dials[_0x1fd4f2['uniqueid']][_0xb6c2('0x1e')]=_0xb6c2('0x21');utils[_0xb6c2('0x1')](util[_0xb6c2('0x2')](_0xb6c2('0x22'),_0x1fd4f2[_0xb6c2('0x4')],_0x1fd4f2[_0xb6c2('0x9')],dials[_0x1fd4f2[_0xb6c2('0x4')]]['answertime']));}else{utils[_0xb6c2('0x1')](util[_0xb6c2('0x2')](_0xb6c2('0x23'),_0x1fd4f2['uniqueid'],_0x1fd4f2[_0xb6c2('0x9')]));}}}catch(_0x434883){utils[_0xb6c2('0x15')](util[_0xb6c2('0x2')](_0xb6c2('0x24'),_0x1fd4f2['uniqueid']),_0x434883);}};exports['hangup']=function(_0x420627){try{if(!_[_0xb6c2('0x17')](dials[_0x420627['uniqueid']])){utils[_0xb6c2('0xc')](util[_0xb6c2('0x2')](_0xb6c2('0x25'),_0x420627[_0xb6c2('0x4')]),_0x420627);utils[_0xb6c2('0x1')](util[_0xb6c2('0x2')](_0xb6c2('0x26'),_0x420627[_0xb6c2('0x4')],_0x420627['calleridnum'],_0x420627[_0xb6c2('0x27')],_0x420627[_0xb6c2('0x28')]));dials[_0x420627[_0xb6c2('0x4')]]=_['assign'](dials[_0x420627[_0xb6c2('0x4')]],{'endtime':utils['now'](),'lastevent':_0xb6c2('0x29')});dials[_0x420627['uniqueid']][_0xb6c2('0x2a')]=utils['diffTime'](dials[_0x420627['uniqueid']][_0xb6c2('0x2b')],dials[_0x420627['uniqueid']][_0xb6c2('0x1c')]);dials[_0x420627[_0xb6c2('0x4')]][_0xb6c2('0x2c')]=utils[_0xb6c2('0x2d')](dials[_0x420627['uniqueid']][_0xb6c2('0x20')]||dials[_0x420627[_0xb6c2('0x4')]]['endtime'],dials[_0x420627['uniqueid']]['starttime']);dials[_0x420627[_0xb6c2('0x4')]][_0xb6c2('0x2e')]=dials[_0x420627[_0xb6c2('0x4')]]['answertime']?utils[_0xb6c2('0x2d')](dials[_0x420627[_0xb6c2('0x4')]][_0xb6c2('0x2b')],dials[_0x420627[_0xb6c2('0x4')]]['answertime']):0x0;writeDB(dials[_0x420627[_0xb6c2('0x4')]]);}}catch(_0x15ff91){utils[_0xb6c2('0x15')](util['format']('[%s][dials][hangup]',_0x420627[_0xb6c2('0x4')]),_0x15ff91);}};