3ba68529faafcad14ad76801bc76a679927c79fd
[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 _0x4efb=['[%s][dials][hangup]','lodash','util','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','dialstring','connectedlinenum','dialstatus','CreateVoiceDialReport','[%s][dials][newexten]','application','toLowerCase','startsWith','appdata','cdr(routeid)','split','error','varset','isNil','variable','outboundrouteid','value','[%s][dials][varset]','dialbegin','debug','[%s][dials][dialbegin]','assign','starttime','now','lastevent','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','[%s][dials][dialend]','ANSWER','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','hangup','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','complete','duration','diffTime','endtime'];(function(_0x3ab9ee,_0x4a74b8){var _0x82ee88=function(_0x6ccc7e){while(--_0x6ccc7e){_0x3ab9ee['push'](_0x3ab9ee['shift']());}};_0x82ee88(++_0x4a74b8);}(_0x4efb,0xc1));var _0xb4ef=function(_0x560e31,_0x3e9a6d){_0x560e31=_0x560e31-0x0;var _0x233d39=_0x4efb[_0x560e31];return _0x233d39;};'use strict';var _=require(_0xb4ef('0x0'));var util=require(_0xb4ef('0x1'));var utils=require(_0xb4ef('0x2'));var dials={};function writeDB(_0x41a6bd){utils[_0xb4ef('0x3')](util[_0xb4ef('0x4')](_0xb4ef('0x5'),_0x41a6bd[_0xb4ef('0x6')],_0x41a6bd[_0xb4ef('0x7')],_0x41a6bd[_0xb4ef('0x8')],_0x41a6bd['calleridnum'],_0x41a6bd[_0xb4ef('0x9')],_0x41a6bd[_0xb4ef('0xa')]));utils['request'](_0xb4ef('0xb'),_0x41a6bd);delete dials[_0x41a6bd[_0xb4ef('0x6')]];}exports['newexten']=function(_0xa64eb5){try{utils['debug'](util[_0xb4ef('0x4')](_0xb4ef('0xc'),_0xa64eb5[_0xb4ef('0x6')]),_0xa64eb5);utils[_0xb4ef('0x3')](util['format']('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0xa64eb5['uniqueid'],_0xa64eb5[_0xb4ef('0xd')],_0xa64eb5['appdata']));if(_0xa64eb5[_0xb4ef('0xd')][_0xb4ef('0xe')]()=='set'&&_[_0xb4ef('0xf')](_0xa64eb5[_0xb4ef('0x10')][_0xb4ef('0xe')](),_0xb4ef('0x11'))){var _0xff86d1=_0xa64eb5[_0xb4ef('0x10')][_0xb4ef('0x12')]('=');dials[_0xa64eb5[_0xb4ef('0x6')]]={'routeId':_0xff86d1[0x1]};}}catch(_0x3676a5){utils[_0xb4ef('0x13')](util[_0xb4ef('0x4')](_0xb4ef('0xc'),_0xa64eb5['uniqueid']),_0x3676a5);}};exports[_0xb4ef('0x14')]=function(_0x2d4bbb){try{utils['debug'](util['format']('[%s][dials][varset]',_0x2d4bbb[_0xb4ef('0x6')]),_0x2d4bbb);if(!_[_0xb4ef('0x15')](_0x2d4bbb[_0xb4ef('0x16')][_0xb4ef('0x17')])){utils['info'](util[_0xb4ef('0x4')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x2d4bbb[_0xb4ef('0x6')],_0x2d4bbb[_0xb4ef('0x18')]));dials[_0x2d4bbb[_0xb4ef('0x6')]]={'routeId':_0x2d4bbb[_0xb4ef('0x18')]};}}catch(_0x30b260){utils[_0xb4ef('0x13')](util[_0xb4ef('0x4')](_0xb4ef('0x19'),_0x2d4bbb['uniqueid']),_0x30b260);}};exports[_0xb4ef('0x1a')]=function(_0x373c89){try{if(!_[_0xb4ef('0x15')](dials[_0x373c89[_0xb4ef('0x6')]])){utils[_0xb4ef('0x1b')](util[_0xb4ef('0x4')](_0xb4ef('0x1c'),_0x373c89[_0xb4ef('0x6')]),_0x373c89);dials[_0x373c89[_0xb4ef('0x6')]]=_[_0xb4ef('0x1d')](dials[_0x373c89['uniqueid']],_0x373c89);dials[_0x373c89['uniqueid']][_0xb4ef('0x1e')]=utils[_0xb4ef('0x1f')]();dials[_0x373c89[_0xb4ef('0x6')]][_0xb4ef('0x20')]='called';utils[_0xb4ef('0x3')](util['format'](_0xb4ef('0x21'),_0x373c89['uniqueid'],dials[_0x373c89[_0xb4ef('0x6')]][_0xb4ef('0x1e')]));}}catch(_0x19e5f2){utils['error'](util['format'](_0xb4ef('0x1c'),_0x373c89[_0xb4ef('0x6')]),_0x19e5f2);}};exports[_0xb4ef('0x22')]=function(_0x158440){try{if(!_['isNil'](dials[_0x158440[_0xb4ef('0x6')]])){utils[_0xb4ef('0x1b')](util[_0xb4ef('0x4')](_0xb4ef('0x23'),_0x158440[_0xb4ef('0x6')]),_0x158440);dials[_0x158440['uniqueid']][_0xb4ef('0xa')]=_0x158440[_0xb4ef('0xa')];if(_0x158440[_0xb4ef('0xa')]==_0xb4ef('0x24')){dials[_0x158440[_0xb4ef('0x6')]]=_[_0xb4ef('0x1d')](dials[_0x158440[_0xb4ef('0x6')]],_0x158440);dials[_0x158440[_0xb4ef('0x6')]][_0xb4ef('0x25')]=utils['now']();dials[_0x158440[_0xb4ef('0x6')]]['lastevent']=_0xb4ef('0x26');utils[_0xb4ef('0x3')](util[_0xb4ef('0x4')](_0xb4ef('0x27'),_0x158440[_0xb4ef('0x6')],_0x158440['dialstatus'],dials[_0x158440[_0xb4ef('0x6')]][_0xb4ef('0x25')]));}else{utils[_0xb4ef('0x3')](util[_0xb4ef('0x4')]('[%s][dials][dialend]\x20dialstatus:%s',_0x158440[_0xb4ef('0x6')],_0x158440[_0xb4ef('0xa')]));}}}catch(_0xd89cae){utils[_0xb4ef('0x13')](util[_0xb4ef('0x4')]('[%s][dials][dialend]',_0x158440[_0xb4ef('0x6')]),_0xd89cae);}};exports[_0xb4ef('0x28')]=function(_0x1578a5){try{if(!_[_0xb4ef('0x15')](dials[_0x1578a5[_0xb4ef('0x6')]])){utils[_0xb4ef('0x1b')](util[_0xb4ef('0x4')]('[%s][dials][hangup]',_0x1578a5[_0xb4ef('0x6')]),_0x1578a5);utils[_0xb4ef('0x3')](util[_0xb4ef('0x4')](_0xb4ef('0x29'),_0x1578a5[_0xb4ef('0x6')],_0x1578a5['calleridnum'],_0x1578a5[_0xb4ef('0x2a')],_0x1578a5['cause-txt']));dials[_0x1578a5[_0xb4ef('0x6')]]=_[_0xb4ef('0x1d')](dials[_0x1578a5[_0xb4ef('0x6')]],{'endtime':utils[_0xb4ef('0x1f')](),'lastevent':_0xb4ef('0x2b')});dials[_0x1578a5[_0xb4ef('0x6')]][_0xb4ef('0x2c')]=utils[_0xb4ef('0x2d')](dials[_0x1578a5[_0xb4ef('0x6')]][_0xb4ef('0x2e')],dials[_0x1578a5[_0xb4ef('0x6')]][_0xb4ef('0x1e')]);dials[_0x1578a5[_0xb4ef('0x6')]]['holdtime']=utils[_0xb4ef('0x2d')](dials[_0x1578a5['uniqueid']][_0xb4ef('0x25')]||dials[_0x1578a5[_0xb4ef('0x6')]][_0xb4ef('0x2e')],dials[_0x1578a5[_0xb4ef('0x6')]][_0xb4ef('0x1e')]);dials[_0x1578a5['uniqueid']]['billableseconds']=dials[_0x1578a5['uniqueid']]['answertime']?utils[_0xb4ef('0x2d')](dials[_0x1578a5['uniqueid']][_0xb4ef('0x2e')],dials[_0x1578a5[_0xb4ef('0x6')]][_0xb4ef('0x25')]):0x0;writeDB(dials[_0x1578a5[_0xb4ef('0x6')]]);}}catch(_0x40b425){utils['error'](util[_0xb4ef('0x4')](_0xb4ef('0x2f'),_0x1578a5[_0xb4ef('0x6')]),_0x40b425);}};