Built motion from commit (unavailable).|2.5.4
[motion2.git] / server / services / agi / scripts / index.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 _0x5322=['https://texttospeech.googleapis.com/v1/','?key=','ssml','input','voice','writeFile','then','googleCloudTTS\x20path','googleTTS','.mp3','.wav','uri','results','map','alternatives','transcript','join','confidence','catch','[%s]\x20%s:%s','name','message','textRequest','stringify','result','source','action','actionIncomplete','fulfillment','speech','status','code','endConversation','metadata','isFallbackIntent','tildeASR','asr','Tilde\x20ASR\x20confidence','awsPolly','polly','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','model=%s','freeform=3','text','channelData','CustomAction','AudioFromTts','Data','dirName','path','http','https','url','parse','bluebird','randomstring','sox','util','querystring','google-tts-api','apiai-promise','./aws','./sestek','agi','https://api.ispeech.org/api/rest','protocol','https:','host','WHAT_EVER','get','statusCode','error','\x20failed,\x20status\x20code\x20=\x20','statusMessage','request\x20to\x20','finish','info','close','download\x20error','pipe','data','end','transcode','error\x20convert','finish\x20to\x20convert','start','resolve','tmp','generate','writeFileSync','base64','unlink','chmodSync','777','split','toString'];(function(_0x5455e5,_0x607c50){var _0x4d4427=function(_0x34b132){while(--_0x34b132){_0x5455e5['push'](_0x5455e5['shift']());}};_0x4d4427(++_0x607c50);}(_0x5322,0x1ca));var _0x2532=function(_0x3e7804,_0x121853){_0x3e7804=_0x3e7804-0x0;var _0x56efda=_0x5322[_0x3e7804];return _0x56efda;};'use strict';var fs=require('fs');var path=require(_0x2532('0x0'));var http=require(_0x2532('0x1'));var https=require(_0x2532('0x2'));var urlParse=require(_0x2532('0x3'))[_0x2532('0x4')];var BPromise=require(_0x2532('0x5'));var rs=require(_0x2532('0x6'));var sox=require(_0x2532('0x7'));var rp=require('request-promise');var util=require(_0x2532('0x8'));var querystring=require(_0x2532('0x9'));var tts=require(_0x2532('0xa'));var apiai=require(_0x2532('0xb'));var md5=require('md5');var google=require('./google');var aws=require(_0x2532('0xc'));var tilde=require('./tilde');var sestek=require(_0x2532('0xd'));var logger=require('../../../config/logger')(_0x2532('0xe'));var ISPEECH_API=_0x2532('0xf');function downloadFile(_0x3dc355,_0x5776ea){return new BPromise(function(_0x4ab59b,_0xe92d49){var _0x3549a1=urlParse(_0x3dc355);var _0x471175=_0x3549a1[_0x2532('0x10')]===_0x2532('0x11')?https:http;var _0x9a6c41={'host':_0x3549a1[_0x2532('0x12')],'path':_0x3549a1[_0x2532('0x0')],'headers':{'user-agent':_0x2532('0x13')}};_0x471175[_0x2532('0x14')](_0x9a6c41,function(_0x51d439){if(_0x51d439[_0x2532('0x15')]!==0xc8){logger[_0x2532('0x16')]('request\x20to\x20'+_0x3dc355+_0x2532('0x17')+_0x51d439['statusCode']+'\x20('+_0x51d439[_0x2532('0x18')]+')');_0xe92d49(new Error(_0x2532('0x19')+_0x3dc355+_0x2532('0x17')+_0x51d439[_0x2532('0x15')]+'\x20('+_0x51d439[_0x2532('0x18')]+')'));return;}var _0x7f35b0=fs['createWriteStream'](_0x5776ea);_0x7f35b0['on'](_0x2532('0x1a'),function(){logger[_0x2532('0x1b')]('finish\x20download\x20file');_0x7f35b0[_0x2532('0x1c')](_0x4ab59b);});_0x7f35b0['on'](_0x2532('0x16'),function(_0x44b80b){fs['unlink'](_0x5776ea);logger['error'](_0x2532('0x1d'),_0x44b80b);_0xe92d49(_0x44b80b);});_0x51d439[_0x2532('0x1e')](_0x7f35b0);})['on'](_0x2532('0x16'),function(_0x51ca45){logger['error'](_0x51ca45);_0xe92d49(_0x51ca45);})['end']();});}function uploadFile(_0x42c86e){return new BPromise(function(_0x4b3f3c,_0x316555){var _0x53f2b8=urlParse(_0x42c86e);var _0x20b42f=_0x53f2b8[_0x2532('0x10')]===_0x2532('0x11')?https:http;var _0x53f340={'host':_0x53f2b8[_0x2532('0x12')],'path':_0x53f2b8[_0x2532('0x0')],'headers':{'user-agent':'WHAT_EVER'}};_0x20b42f['get'](_0x53f340,function(_0x18bbb1){if(_0x18bbb1[_0x2532('0x15')]!==0xc8){_0x316555(new Error(_0x2532('0x19')+_0x42c86e+_0x2532('0x17')+_0x18bbb1[_0x2532('0x15')]+'\x20('+_0x18bbb1[_0x2532('0x18')]+')'));return;}var _0x3ed18c='';_0x18bbb1['on'](_0x2532('0x1f'),function(_0x465fb4){_0x3ed18c+=_0x465fb4;});_0x18bbb1['on'](_0x2532('0x20'),function(){_0x4b3f3c(_0x3ed18c);});})['on'](_0x2532('0x16'),function(_0xdc726a){_0x316555(_0xdc726a);})[_0x2532('0x20')]();});}function convertFile(_0x586259,_0x2475e8){return new BPromise(function(_0x176026,_0x2130fb){var _0x3d4ff3=sox[_0x2532('0x21')](_0x586259,_0x2475e8,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x3d4ff3['on']('error',function(_0x3968c6){logger['error'](_0x2532('0x22'),_0x3968c6);_0x2130fb(_0x3968c6);});_0x3d4ff3['on'](_0x2532('0x20'),function(){logger[_0x2532('0x1b')](_0x2532('0x23'));_0x176026();});_0x3d4ff3[_0x2532('0x24')]();});}function base64Decode(_0x5e0617,_0x5c4f99){var _0x2bbead=path[_0x2532('0x25')](__dirname,_0x2532('0x26'),rs[_0x2532('0x27')](0x4)+'.wav');fs[_0x2532('0x28')](_0x2bbead,_0x5e0617,_0x2532('0x29'));return convertFile(_0x2bbead,_0x5c4f99)['then'](function(){try{fs[_0x2532('0x2a')](_0x2bbead);fs[_0x2532('0x2b')](_0x5c4f99,_0x2532('0x2c'));}catch(_0x8b874){logger[_0x2532('0x16')](_0x8b874);}return _0x5c4f99[_0x2532('0x2d')]('.')[0x0];});}function base64Encode(_0x451f6e){var _0x154c07=fs['readFileSync'](_0x451f6e);return new Buffer(_0x154c07)[_0x2532('0x2e')](_0x2532('0x29'));}exports['googleCloudTTS']=function(_0x2bed34,_0xf677b0,_0x4f8f47,_0x49ede3,_0x53cdd3,_0x3debf6){var _0x1e26e5,_0x952c0e;var _0x5a2960=_0x2532('0x2f');var _0x356d02=_0x2532('0x30')+_0x2bed34;var _0x558c24={};if(_0xf677b0===_0x2532('0x31')){_0x558c24[_0x2532('0x32')]={'ssml':_0x4f8f47};}else{_0x558c24[_0x2532('0x32')]={'text':_0x4f8f47};};_0x558c24[_0x2532('0x33')]={'languageCode':_0x49ede3,'ssmlGender':_0x53cdd3};_0x558c24['audioConfig']={'audioEncoding':'MP3','sampleRateHertz':0x1f40};var _0x284f60={'url':_0x5a2960+'text:synthesize'+_0x356d02,'method':'POST','json':!![],'body':_0x558c24};return rp(_0x284f60)['then'](function(_0xfeea63){return new BPromise(function(_0x386ab2,_0x4786da){_0x1e26e5=path['resolve'](__dirname,'tmp',rs[_0x2532('0x27')](0x4)+'.mp3');var _0x4d79f0=Buffer['from'](_0xfeea63['audioContent'],'base64');return fs[_0x2532('0x34')](_0x1e26e5,_0x4d79f0,function(_0x8a5cfa){_0x4786da(_0x8a5cfa);},function(_0x595d54){fs[_0x2532('0x2b')](_0x1e26e5,_0x2532('0x2c'));_0x386ab2(_0x595d54);});});})['then'](function(_0x3b84ef){_0x952c0e=path['resolve'](__dirname,_0x2532('0x26'),rs[_0x2532('0x27')](0x4)+'.wav');return convertFile(_0x1e26e5,_0x952c0e);})[_0x2532('0x35')](function(){try{fs['unlink'](_0x1e26e5);fs[_0x2532('0x2b')](_0x952c0e,'777');}catch(_0x1c78c5){logger['error'](_0x1c78c5);}logger[_0x2532('0x1b')](_0x2532('0x36'),_0x952c0e[_0x2532('0x2d')]('.')[0x0]);return _0x952c0e[_0x2532('0x2d')]('.')[0x0];});};exports[_0x2532('0x37')]=function(_0x3704a5,_0x24046b){var _0x13319f,_0x3445bd;return tts(_0x3704a5,_0x24046b||'en',0x1)[_0x2532('0x35')](function(_0x91d8a7){logger[_0x2532('0x1b')](_0x91d8a7);_0x13319f=path[_0x2532('0x25')](__dirname,_0x2532('0x26'),rs[_0x2532('0x27')](0x4)+_0x2532('0x38'));return downloadFile(_0x91d8a7,_0x13319f);})[_0x2532('0x35')](function(){_0x3445bd=path[_0x2532('0x25')](__dirname,_0x2532('0x26'),rs[_0x2532('0x27')](0x4)+_0x2532('0x39'));return convertFile(_0x13319f,_0x3445bd);})[_0x2532('0x35')](function(){try{fs[_0x2532('0x2a')](_0x13319f);fs[_0x2532('0x2b')](_0x3445bd,_0x2532('0x2c'));}catch(_0x2747a5){logger[_0x2532('0x16')](_0x2747a5);}logger[_0x2532('0x1b')]('goggleTTS\x20path',_0x3445bd['split']('.')[0x0]);return _0x3445bd[_0x2532('0x2d')]('.')[0x0];});};exports['googleASR']=function(_0x49e3ba,_0x43b512,_0x17669b){return google['asr'](_0x49e3ba,_0x43b512,_0x17669b)[_0x2532('0x35')](function(_0x34b703){logger['info'](_0x34b703[_0x2532('0x3a')]);return rp(_0x34b703);})[_0x2532('0x35')](function(_0x917968){var _0x215422='';var _0x5a83b5=0x0;try{fs[_0x2532('0x2a')](_0x49e3ba);}catch(_0x495545){logger[_0x2532('0x16')](_0x495545);}if(_0x917968&&_0x917968['results']){_0x215422=_0x917968[_0x2532('0x3b')][_0x2532('0x3c')](function(_0x4e48fd){return _0x4e48fd&&_0x4e48fd[_0x2532('0x3d')][0x0]&&_0x4e48fd[_0x2532('0x3d')][0x0][_0x2532('0x3e')]?_0x4e48fd[_0x2532('0x3d')][0x0][_0x2532('0x3e')]:'';})[_0x2532('0x3f')]('\x0a');_0x5a83b5=_0x917968[_0x2532('0x3b')][_0x2532('0x3c')](function(_0x41cc91){return _0x41cc91&&_0x41cc91[_0x2532('0x3d')][0x0]&&_0x41cc91[_0x2532('0x3d')][0x0][_0x2532('0x40')]?_0x41cc91[_0x2532('0x3d')][0x0][_0x2532('0x40')]:0x0;})[_0x2532('0x3f')]('\x0a');}logger[_0x2532('0x1b')]('googleASR\x20transcription',_0x215422);logger[_0x2532('0x1b')]('googleASR\x20confidence',_0x5a83b5);return{'transcript':_0x215422,'confidence':_0x5a83b5};})[_0x2532('0x41')](function(_0x4b4fd3){logger[_0x2532('0x16')](_0x2532('0x42'),_0x4b4fd3[_0x2532('0x15')],_0x4b4fd3[_0x2532('0x43')],_0x4b4fd3[_0x2532('0x44')]);});};exports['googleDialogflow']=function(_0x5ab6e7,_0x1b37dc,_0x2415d3,_0x59b66d){var _0x5272be=apiai(_0x1b37dc,{'language':_0x59b66d||'en'});return _0x5272be[_0x2532('0x45')](_0x2415d3,{'sessionId':md5(_0x5ab6e7)})[_0x2532('0x35')](function(_0x1a649b){logger[_0x2532('0x1b')](JSON[_0x2532('0x46')](_0x1a649b));return{'source':_0x1a649b[_0x2532('0x47')][_0x2532('0x48')],'resolvedQuery':_0x1a649b[_0x2532('0x47')]['resolvedQuery'],'action':_0x1a649b['result'][_0x2532('0x49')],'actionIncomplete':_0x1a649b[_0x2532('0x47')][_0x2532('0x4a')],'speech':_0x1a649b[_0x2532('0x47')][_0x2532('0x4b')][_0x2532('0x4c')],'score':_0x1a649b['result']['score'],'statusCode':_0x1a649b[_0x2532('0x4d')][_0x2532('0x4e')],'endConversation':_0x1a649b[_0x2532('0x47')]['metadata'][_0x2532('0x4f')]||![],'isFallbackIntent':_0x1a649b['result'][_0x2532('0x50')][_0x2532('0x51')]};});};exports[_0x2532('0x52')]=function(_0x4bf031,_0x5c43d9,_0x133820,_0x4ad55e){return tilde[_0x2532('0x53')](_0x4bf031,_0x5c43d9,_0x133820,_0x4ad55e)[_0x2532('0x35')](function(_0x5536e5){try{fs[_0x2532('0x2a')](_0x4bf031);}catch(_0x52bc41){logger[_0x2532('0x16')](_0x52bc41);}logger[_0x2532('0x1b')]('Tilde\x20ASR\x20transcription',_0x5536e5[_0x2532('0x3e')]);logger[_0x2532('0x1b')](_0x2532('0x54'),_0x5536e5[_0x2532('0x40')]);return _0x5536e5;});};exports[_0x2532('0x55')]=function(_0x30e83a,_0x514c9a,_0x21c31a,_0x186108,_0x5b277c,_0x137bc3){var _0x134e0b=path[_0x2532('0x25')](__dirname,_0x2532('0x26'),rs[_0x2532('0x27')](0x4)+_0x2532('0x38'));var _0x3a962f;return aws[_0x2532('0x56')](_0x30e83a,_0x514c9a,_0x21c31a,_0x186108,_0x5b277c,_0x137bc3,_0x134e0b)[_0x2532('0x35')](function(){_0x3a962f=path[_0x2532('0x25')](__dirname,'tmp',rs[_0x2532('0x27')](0x4)+_0x2532('0x39'));return convertFile(_0x134e0b,_0x3a962f);})[_0x2532('0x35')](function(){try{fs[_0x2532('0x2a')](_0x134e0b);fs[_0x2532('0x2b')](_0x3a962f,'777');}catch(_0x135be6){logger[_0x2532('0x16')](_0x135be6);}return _0x3a962f[_0x2532('0x2d')]('.')[0x0];});};exports['awsLex']=function(_0xf51356,_0x17ac92,_0x289977,_0x4d4835,_0x43b6e0,_0x1bbe37){return aws[_0x2532('0x57')](_0xf51356,_0x17ac92,_0x289977,_0x4d4835,_0x43b6e0,_0x1bbe37)[_0x2532('0x35')](function(_0x59c882){logger[_0x2532('0x1b')](JSON[_0x2532('0x46')](_0x59c882));return _0x59c882;});};exports[_0x2532('0x58')]=function(_0x10fdd2,_0xc2a031,_0x2e885f,_0x4bc44a){var _0x2059ae=util[_0x2532('0x59')](_0x2532('0x5a'),ISPEECH_API,_0x10fdd2,encodeURIComponent(_0xc2a031),_0x2e885f,_0x4bc44a);var _0xf01e5d=path[_0x2532('0x25')](__dirname,_0x2532('0x26'),rs[_0x2532('0x27')](0x4)+_0x2532('0x38'));var _0x31f63d;return downloadFile(_0x2059ae,_0xf01e5d)['then'](function(){_0x31f63d=path['resolve'](__dirname,'tmp',rs[_0x2532('0x27')](0x4)+'.wav');return convertFile(_0xf01e5d,_0x31f63d);})[_0x2532('0x35')](function(){try{fs['unlink'](_0xf01e5d);fs['chmodSync'](_0x31f63d,'777');}catch(_0x60a738){logger[_0x2532('0x16')](_0x60a738);}return _0x31f63d['split']('.')[0x0];});};exports[_0x2532('0x5b')]=function(_0x19f1cc,_0x14aa63,_0x1f5cf7,_0x3b1a5e){var _0x408412=util[_0x2532('0x59')](_0x2532('0x5c'),ISPEECH_API,_0x14aa63,_0x1f5cf7,base64Encode(_0x19f1cc),_0x3b1a5e?util[_0x2532('0x59')](_0x2532('0x5d'),encodeURIComponent(_0x3b1a5e)):_0x2532('0x5e'));return uploadFile(_0x408412)[_0x2532('0x35')](function(_0x31577c){return querystring[_0x2532('0x4')](_0x31577c);});};exports['sestekNDA']=function(_0x158f02,_0x7a8775){return sestek['nda'](_0x158f02,_0x7a8775)[_0x2532('0x35')](function(_0x445f49){logger[_0x2532('0x1b')](JSON[_0x2532('0x46')](_0x445f49));var _0x4e85e2={'speech':_0x445f49[_0x2532('0x5f')],'action':_0x445f49[_0x2532('0x60')]?_0x445f49[_0x2532('0x60')][_0x2532('0x61')]:undefined,'actiondata':_0x445f49[_0x2532('0x60')]?_0x445f49['channelData']['CustomActionData']:undefined};if(_0x445f49[_0x2532('0x60')]&&_0x445f49['channelData'][_0x2532('0x62')]){return base64Decode(_0x445f49['channelData'][_0x2532('0x62')][_0x2532('0x63')],path[_0x2532('0x25')](__dirname,_0x2532('0x26'),rs[_0x2532('0x27')](0x4)+_0x2532('0x39')))[_0x2532('0x35')](function(_0x5448a1){_0x4e85e2['audiofile']=_0x5448a1;return _0x4e85e2;});}return _0x4e85e2;});};exports[_0x2532('0x64')]=function(){return __dirname;};