Built motion from commit (unavailable).|2.5.31
[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 _0xab2a=['WHAT_EVER','get','\x20failed,\x20status\x20code\x20=\x20','statusCode','statusMessage','createWriteStream','finish','info','finish\x20download\x20file','error','unlink','download\x20error','pipe','end','transcode','wav','error\x20convert','finish\x20to\x20convert','start','resolve','tmp','generate','.wav','base64','then','chmodSync','split','readFileSync','toString','googleCloudTTS','https://texttospeech.googleapis.com/v1/','?key=','input','voice','audioConfig','MP3','text:synthesize','POST','.mp3','from','writeFile','777','googleCloudTTS\x20path','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','utf8','application/x-www-form-urlencoded','f.req=','stringify','null','generic','parse\x20response\x20failed:\x0a','data','length','text\x20length\x20limit\x20reached','lang\x20\x22','\x22\x20might\x20not\x20exist','writeFileSync','goggleTTS\x20path','googleASR','uri','results','map','alternatives','transcript','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','message','googleDialogflow','textRequest','result','source','resolvedQuery','speech','status','code','metadata','endConversation','isFallbackIntent','googleDialogflowV2','sessionPath','Dialogflow\x20V2\x20response:','queryResult','action','allRequiredParamsPresent','diagnosticInfo','fields','fulfillmentText','intent','name','isFallback','languageCode','intentDetectionConfidence','tildeASR','asr','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','awsPolly','awsLex','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','model=%s','freeform=3','sestekNDA','nda','text','CustomAction','channelData','CustomActionData','Data','audiofile','dirName','apiai-promise','dialogflow','https','md5','path','querystring','request-promise','randomstring','sox','google-tts-api','url','parse','./aws','./google','./sestek','./tilde','../../../config/logger','agi','protocol','https:','host'];(function(_0x241c5d,_0x3ed23f){var _0x77650b=function(_0x4d212a){while(--_0x4d212a){_0x241c5d['push'](_0x241c5d['shift']());}};_0x77650b(++_0x3ed23f);}(_0xab2a,0x74));var _0xaab2=function(_0x4c0774,_0x172138){_0x4c0774=_0x4c0774-0x0;var _0x4c3590=_0xab2a[_0x4c0774];return _0x4c3590;};'use strict';var apiai=require(_0xaab2('0x0'));var BPromise=require('bluebird');var dialogflow=require(_0xaab2('0x1'));var fs=require('fs');var http=require('http');var https=require(_0xaab2('0x2'));var md5=require(_0xaab2('0x3'));var path=require(_0xaab2('0x4'));var querystring=require(_0xaab2('0x5'));var rp=require(_0xaab2('0x6'));var rs=require(_0xaab2('0x7'));var sox=require(_0xaab2('0x8'));var tts=require(_0xaab2('0x9'));var urlParse=require(_0xaab2('0xa'))[_0xaab2('0xb')];var util=require('util');var aws=require(_0xaab2('0xc'));var google=require(_0xaab2('0xd'));var sestek=require(_0xaab2('0xe'));var tilde=require(_0xaab2('0xf'));var logger=require(_0xaab2('0x10'))(_0xaab2('0x11'));var ISPEECH_API='https://api.ispeech.org/api/rest';function downloadFile(_0x2d7c9b,_0x5cc935){return new BPromise(function(_0x2e92f4,_0x53e7fa){var _0x298ccf=urlParse(_0x2d7c9b);var _0x5947aa=_0x298ccf[_0xaab2('0x12')]===_0xaab2('0x13')?https:http;var _0x37f3c6={'host':_0x298ccf[_0xaab2('0x14')],'path':_0x298ccf[_0xaab2('0x4')],'headers':{'user-agent':_0xaab2('0x15')}};_0x5947aa[_0xaab2('0x16')](_0x37f3c6,function(_0x4230a2){if(_0x4230a2['statusCode']!==0xc8){logger['error']('request\x20to\x20'+_0x2d7c9b+_0xaab2('0x17')+_0x4230a2[_0xaab2('0x18')]+'\x20('+_0x4230a2[_0xaab2('0x19')]+')');_0x53e7fa(new Error('request\x20to\x20'+_0x2d7c9b+_0xaab2('0x17')+_0x4230a2[_0xaab2('0x18')]+'\x20('+_0x4230a2[_0xaab2('0x19')]+')'));return;}var _0x3670d0=fs[_0xaab2('0x1a')](_0x5cc935);_0x3670d0['on'](_0xaab2('0x1b'),function(){logger[_0xaab2('0x1c')](_0xaab2('0x1d'));_0x3670d0['close'](_0x2e92f4);});_0x3670d0['on'](_0xaab2('0x1e'),function(_0x2b2b40){fs[_0xaab2('0x1f')](_0x5cc935);logger[_0xaab2('0x1e')](_0xaab2('0x20'),_0x2b2b40);_0x53e7fa(_0x2b2b40);});_0x4230a2[_0xaab2('0x21')](_0x3670d0);})['on'](_0xaab2('0x1e'),function(_0x28a1dd){logger[_0xaab2('0x1e')](_0x28a1dd);_0x53e7fa(_0x28a1dd);})[_0xaab2('0x22')]();});}function uploadFile(_0x27d4eb){return new BPromise(function(_0x5d4878,_0x547829){var _0x528809=urlParse(_0x27d4eb);var _0x2524a2=_0x528809[_0xaab2('0x12')]===_0xaab2('0x13')?https:http;var _0x23d7f8={'host':_0x528809['host'],'path':_0x528809[_0xaab2('0x4')],'headers':{'user-agent':_0xaab2('0x15')}};_0x2524a2[_0xaab2('0x16')](_0x23d7f8,function(_0x6e5945){if(_0x6e5945[_0xaab2('0x18')]!==0xc8){_0x547829(new Error('request\x20to\x20'+_0x27d4eb+_0xaab2('0x17')+_0x6e5945['statusCode']+'\x20('+_0x6e5945['statusMessage']+')'));return;}var _0x54172b='';_0x6e5945['on']('data',function(_0x7b262c){_0x54172b+=_0x7b262c;});_0x6e5945['on'](_0xaab2('0x22'),function(){_0x5d4878(_0x54172b);});})['on']('error',function(_0x30cb2f){_0x547829(_0x30cb2f);})[_0xaab2('0x22')]();});}function convertFile(_0x5c9d28,_0x5d4a2f){return new BPromise(function(_0x546982,_0x51b8a7){var _0xe0f7e8=sox[_0xaab2('0x23')](_0x5c9d28,_0x5d4a2f,{'sampleRate':0x1f40,'format':_0xaab2('0x24'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0xe0f7e8['on'](_0xaab2('0x1e'),function(_0x3daf4f){logger['error'](_0xaab2('0x25'),_0x3daf4f);_0x51b8a7(_0x3daf4f);});_0xe0f7e8['on'](_0xaab2('0x22'),function(){logger['info'](_0xaab2('0x26'));_0x546982();});_0xe0f7e8[_0xaab2('0x27')]();});}function base64Decode(_0x15ad71,_0x4536cb){var _0x267260=path[_0xaab2('0x28')](__dirname,_0xaab2('0x29'),rs[_0xaab2('0x2a')](0x4)+_0xaab2('0x2b'));fs['writeFileSync'](_0x267260,_0x15ad71,_0xaab2('0x2c'));return convertFile(_0x267260,_0x4536cb)[_0xaab2('0x2d')](function(){try{fs['unlink'](_0x267260);fs[_0xaab2('0x2e')](_0x4536cb,'777');}catch(_0x8c2384){logger[_0xaab2('0x1e')](_0x8c2384);}return _0x4536cb[_0xaab2('0x2f')]('.')[0x0];});}function base64Encode(_0x5ddd95){var _0x2fd0f5=fs[_0xaab2('0x30')](_0x5ddd95);return new Buffer(_0x2fd0f5)[_0xaab2('0x31')](_0xaab2('0x2c'));}exports[_0xaab2('0x32')]=function(_0x51294d,_0xc95555,_0x34e99a,_0x2dbc31,_0x16e99b,_0x283b8f){var _0xb375e5,_0x41f997;var _0x29ca35=_0xaab2('0x33');var _0x4a40a2=_0xaab2('0x34')+_0x51294d;var _0x59a2d2={};if(_0xc95555==='ssml'){_0x59a2d2[_0xaab2('0x35')]={'ssml':_0x34e99a};}else{_0x59a2d2['input']={'text':_0x34e99a};};_0x59a2d2[_0xaab2('0x36')]={'languageCode':_0x2dbc31,'ssmlGender':_0x16e99b};_0x59a2d2[_0xaab2('0x37')]={'audioEncoding':_0xaab2('0x38'),'sampleRateHertz':0x1f40};var _0x30a982={'url':_0x29ca35+_0xaab2('0x39')+_0x4a40a2,'method':_0xaab2('0x3a'),'json':!![],'body':_0x59a2d2};return rp(_0x30a982)[_0xaab2('0x2d')](function(_0x5bdcf2){return new BPromise(function(_0x47542d,_0x1b5251){_0xb375e5=path[_0xaab2('0x28')](__dirname,_0xaab2('0x29'),rs[_0xaab2('0x2a')](0x4)+_0xaab2('0x3b'));var _0x25ce06=Buffer[_0xaab2('0x3c')](_0x5bdcf2['audioContent'],'base64');return fs[_0xaab2('0x3d')](_0xb375e5,_0x25ce06,function(_0x31385c){_0x1b5251(_0x31385c);},function(_0x845227){fs[_0xaab2('0x2e')](_0xb375e5,_0xaab2('0x3e'));_0x47542d(_0x845227);});});})['then'](function(_0x390e69){_0x41f997=path[_0xaab2('0x28')](__dirname,_0xaab2('0x29'),rs[_0xaab2('0x2a')](0x4)+_0xaab2('0x2b'));return convertFile(_0xb375e5,_0x41f997);})[_0xaab2('0x2d')](function(){try{fs['unlink'](_0xb375e5);fs['chmodSync'](_0x41f997,_0xaab2('0x3e'));}catch(_0x3426dc){logger['error'](_0x3426dc);}logger[_0xaab2('0x1c')](_0xaab2('0x3f'),_0x41f997[_0xaab2('0x2f')]('.')[0x0]);return _0x41f997[_0xaab2('0x2f')]('.')[0x0];});};exports['googleTTS']=function(_0x462eca,_0x473ca8){var _0x1832ad=_0xaab2('0x40');var _0x92d3f,_0x3a3d0c;var _0x27edd0;var _0x4a8368={'encoding':_0xaab2('0x41'),'method':'POST','timeout':0x2710,'url':_0x1832ad,'headers':{'Content-Type':_0xaab2('0x42')},'body':_0xaab2('0x43')+encodeURIComponent(JSON['stringify']([[['jQ1olc',JSON[_0xaab2('0x44')]([_0x462eca,_0x473ca8||'en',![],_0xaab2('0x45')]),null,_0xaab2('0x46')]]]))};return rp(_0x4a8368)[_0xaab2('0x2d')](function(_0x1b835d){try{_0x27edd0=eval(_0x1b835d['slice'](0x5))[0x0][0x2];}catch(_0x40d493){throw new Error(_0xaab2('0x47')+_0x1b835d[_0xaab2('0x48')]);}if(!_0x27edd0){if(_0x462eca[_0xaab2('0x49')]>0xc8){throw new Error(_0xaab2('0x4a'));}else{throw new Error(_0xaab2('0x4b')+_0x473ca8+_0xaab2('0x4c'));}}try{_0x27edd0=eval(_0x27edd0)[0x0];}catch(_0x5e4ce9){throw new Error(_0xaab2('0x47')+res[_0xaab2('0x48')]);}const _0x435c16=_0x27edd0;_0x92d3f=path['resolve'](__dirname,'tmp',rs[_0xaab2('0x2a')](0x4)+'.mp3');fs[_0xaab2('0x4d')](_0x92d3f,_0x27edd0,{'encoding':_0xaab2('0x2c')});_0x3a3d0c=path[_0xaab2('0x28')](__dirname,'tmp',rs[_0xaab2('0x2a')](0x4)+_0xaab2('0x2b'));return convertFile(_0x92d3f,_0x3a3d0c);})[_0xaab2('0x2d')](function(){try{fs[_0xaab2('0x1f')](_0x92d3f);fs[_0xaab2('0x2e')](_0x3a3d0c,_0xaab2('0x3e'));}catch(_0x4d9d59){logger['error'](_0x4d9d59);}logger['info'](_0xaab2('0x4e'),_0x3a3d0c[_0xaab2('0x2f')]('.')[0x0]);return _0x3a3d0c[_0xaab2('0x2f')]('.')[0x0];});};exports[_0xaab2('0x4f')]=function(_0x5a9c19,_0x446b3b,_0x2901c){return google['asr'](_0x5a9c19,_0x446b3b,_0x2901c)[_0xaab2('0x2d')](function(_0x235e48){logger[_0xaab2('0x1c')](_0x235e48[_0xaab2('0x50')]);return rp(_0x235e48);})[_0xaab2('0x2d')](function(_0x1cf60c){var _0x1d3e7d='';var _0x172cc6=0x0;try{fs[_0xaab2('0x1f')](_0x5a9c19);}catch(_0x4dd9ad){logger[_0xaab2('0x1e')](_0x4dd9ad);}if(_0x1cf60c&&_0x1cf60c[_0xaab2('0x51')]){_0x1d3e7d=_0x1cf60c[_0xaab2('0x51')][_0xaab2('0x52')](function(_0x565aee){return _0x565aee&&_0x565aee[_0xaab2('0x53')][0x0]&&_0x565aee[_0xaab2('0x53')][0x0][_0xaab2('0x54')]?_0x565aee[_0xaab2('0x53')][0x0][_0xaab2('0x54')]:'';})['join']('\x0a');_0x172cc6=_0x1cf60c['results'][_0xaab2('0x52')](function(_0x2f9477){return _0x2f9477&&_0x2f9477[_0xaab2('0x53')][0x0]&&_0x2f9477['alternatives'][0x0][_0xaab2('0x55')]?_0x2f9477[_0xaab2('0x53')][0x0][_0xaab2('0x55')]:0x0;})['join']('\x0a');}logger['info'](_0xaab2('0x56'),_0x1d3e7d);logger[_0xaab2('0x1c')](_0xaab2('0x57'),_0x172cc6);return{'transcript':_0x1d3e7d,'confidence':_0x172cc6};})[_0xaab2('0x58')](function(_0x161e1e){logger['error']('[%s]\x20%s:%s',_0x161e1e[_0xaab2('0x18')],_0x161e1e['name'],_0x161e1e[_0xaab2('0x59')]);});};exports[_0xaab2('0x5a')]=function(_0x3d6d5b,_0x87d010,_0x108d00,_0x88b0d1){var _0x13cc69=apiai(_0x87d010,{'language':_0x88b0d1||'en'});return _0x13cc69[_0xaab2('0x5b')](_0x108d00,{'sessionId':md5(_0x3d6d5b)})[_0xaab2('0x2d')](function(_0x49d205){logger[_0xaab2('0x1c')](JSON[_0xaab2('0x44')](_0x49d205));return{'source':_0x49d205[_0xaab2('0x5c')][_0xaab2('0x5d')],'resolvedQuery':_0x49d205[_0xaab2('0x5c')][_0xaab2('0x5e')],'action':_0x49d205[_0xaab2('0x5c')]['action'],'actionIncomplete':_0x49d205['result']['actionIncomplete'],'speech':_0x49d205[_0xaab2('0x5c')]['fulfillment'][_0xaab2('0x5f')],'score':_0x49d205[_0xaab2('0x5c')]['score'],'statusCode':_0x49d205[_0xaab2('0x60')][_0xaab2('0x61')],'endConversation':_0x49d205['result'][_0xaab2('0x62')][_0xaab2('0x63')]||![],'isFallbackIntent':_0x49d205[_0xaab2('0x5c')][_0xaab2('0x62')][_0xaab2('0x64')]};});};exports[_0xaab2('0x65')]=function(_0x1361bb,_0x108944,_0x4fa506,_0xd9377f,_0x1aff9b,_0x5163ee){var _0x495aa7=_0xd9377f['replace'](/\\n/g,'\x0a');var _0x602ff9={'credentials':{'private_key':_0x495aa7,'client_email':_0x4fa506}};var _0x1fcfa9=new dialogflow['SessionsClient'](_0x602ff9);var _0x479a2a=_0x1fcfa9[_0xaab2('0x66')](_0x108944,md5(_0x1361bb));var _0x18a438={'session':_0x479a2a,'queryInput':{'text':{'text':_0x1aff9b,'languageCode':_0x5163ee}}};return _0x1fcfa9['detectIntent'](_0x18a438)['then'](function(_0x4a8240){if(_0x4a8240&&_0x4a8240[_0xaab2('0x49')]){logger['info'](_0xaab2('0x67'),JSON['stringify'](_0x4a8240));var _0x19a2f3=_0x4a8240[0x0];if(_0x19a2f3){var _0x4229c3={'action':_0x19a2f3[_0xaab2('0x68')][_0xaab2('0x69')],'allRequiredParamsPresent':_0x19a2f3[_0xaab2('0x68')][_0xaab2('0x6a')],'endConversation':_0x19a2f3[_0xaab2('0x68')]['diagnosticInfo']&&_0x19a2f3[_0xaab2('0x68')][_0xaab2('0x6b')][_0xaab2('0x6c')]?_0x19a2f3['queryResult']['diagnosticInfo']['fields']['end_conversation']['boolValue']:![],'fulfillmentText':_0x19a2f3[_0xaab2('0x68')][_0xaab2('0x6d')],'intentName':_0x19a2f3[_0xaab2('0x68')][_0xaab2('0x6e')][_0xaab2('0x6f')],'intentDisplayName':_0x19a2f3[_0xaab2('0x68')][_0xaab2('0x6e')]['displayName'],'isFallbackIntent':_0x19a2f3[_0xaab2('0x68')][_0xaab2('0x6e')][_0xaab2('0x70')],'languageCode':_0x19a2f3[_0xaab2('0x68')][_0xaab2('0x71')],'queryText':_0x19a2f3['queryResult']['queryText'],'responseId':_0x19a2f3['responseId'],'score':_0x19a2f3[_0xaab2('0x68')][_0xaab2('0x72')],'speech':_0x19a2f3['queryResult'][_0xaab2('0x6d')],'providerResponse':JSON['stringify'](_0x4a8240)};return _0x4229c3;}}});};exports[_0xaab2('0x73')]=function(_0x4e6044,_0x46d5e0,_0x244ec8,_0x715248){return tilde[_0xaab2('0x74')](_0x4e6044,_0x46d5e0,_0x244ec8,_0x715248)[_0xaab2('0x2d')](function(_0x445219){try{fs['unlink'](_0x4e6044);}catch(_0x45497d){logger[_0xaab2('0x1e')](_0x45497d);}logger['info'](_0xaab2('0x75'),_0x445219[_0xaab2('0x54')]);logger['info'](_0xaab2('0x76'),_0x445219[_0xaab2('0x55')]);return _0x445219;});};exports[_0xaab2('0x77')]=function(_0x3d03d7,_0x49354c,_0x2e401a,_0xc47884,_0x3b26a9,_0x1d0306){var _0x11571d=path['resolve'](__dirname,_0xaab2('0x29'),rs['generate'](0x4)+_0xaab2('0x3b'));var _0xdbb2ee;return aws['polly'](_0x3d03d7,_0x49354c,_0x2e401a,_0xc47884,_0x3b26a9,_0x1d0306,_0x11571d)[_0xaab2('0x2d')](function(){_0xdbb2ee=path['resolve'](__dirname,_0xaab2('0x29'),rs[_0xaab2('0x2a')](0x4)+'.wav');return convertFile(_0x11571d,_0xdbb2ee);})[_0xaab2('0x2d')](function(){try{fs[_0xaab2('0x1f')](_0x11571d);fs['chmodSync'](_0xdbb2ee,'777');}catch(_0x459005){logger[_0xaab2('0x1e')](_0x459005);}return _0xdbb2ee[_0xaab2('0x2f')]('.')[0x0];});};exports[_0xaab2('0x78')]=function(_0x25392f,_0x148bcb,_0x54d4b4,_0x43443d,_0xf39ab9,_0x5d33d7){return aws[_0xaab2('0x79')](_0x25392f,_0x148bcb,_0x54d4b4,_0x43443d,_0xf39ab9,_0x5d33d7)[_0xaab2('0x2d')](function(_0x6f7105){logger[_0xaab2('0x1c')](JSON[_0xaab2('0x44')](_0x6f7105));return _0x6f7105;});};exports[_0xaab2('0x7a')]=function(_0x4fc7d1,_0x2b90c6,_0xd42ca8,_0x230f7c){var _0x400cca=util[_0xaab2('0x7b')](_0xaab2('0x7c'),ISPEECH_API,_0x4fc7d1,encodeURIComponent(_0x2b90c6),_0xd42ca8,_0x230f7c);var _0x391365=path[_0xaab2('0x28')](__dirname,'tmp',rs[_0xaab2('0x2a')](0x4)+_0xaab2('0x3b'));var _0x40aa10;return downloadFile(_0x400cca,_0x391365)['then'](function(){_0x40aa10=path[_0xaab2('0x28')](__dirname,_0xaab2('0x29'),rs[_0xaab2('0x2a')](0x4)+_0xaab2('0x2b'));return convertFile(_0x391365,_0x40aa10);})[_0xaab2('0x2d')](function(){try{fs['unlink'](_0x391365);fs[_0xaab2('0x2e')](_0x40aa10,_0xaab2('0x3e'));}catch(_0x33dac5){logger[_0xaab2('0x1e')](_0x33dac5);}return _0x40aa10[_0xaab2('0x2f')]('.')[0x0];});};exports['ispeechASR']=function(_0x948b3b,_0x395718,_0x52e28e,_0x469c96){var _0x51880a=util[_0xaab2('0x7b')](_0xaab2('0x7d'),ISPEECH_API,_0x395718,_0x52e28e,base64Encode(_0x948b3b),_0x469c96?util[_0xaab2('0x7b')](_0xaab2('0x7e'),encodeURIComponent(_0x469c96)):_0xaab2('0x7f'));return uploadFile(_0x51880a)[_0xaab2('0x2d')](function(_0x32cf9c){return querystring[_0xaab2('0xb')](_0x32cf9c);});};exports[_0xaab2('0x80')]=function(_0x5cf862,_0x331405){return sestek[_0xaab2('0x81')](_0x5cf862,_0x331405)[_0xaab2('0x2d')](function(_0x5f23df){logger[_0xaab2('0x1c')](JSON['stringify'](_0x5f23df));var _0x245e80={'speech':_0x5f23df[_0xaab2('0x82')],'action':_0x5f23df['channelData']?_0x5f23df['channelData'][_0xaab2('0x83')]:undefined,'actiondata':_0x5f23df['channelData']?_0x5f23df[_0xaab2('0x84')][_0xaab2('0x85')]:undefined};if(_0x5f23df[_0xaab2('0x84')]&&_0x5f23df['channelData']['AudioFromTts']){return base64Decode(_0x5f23df[_0xaab2('0x84')]['AudioFromTts'][_0xaab2('0x86')],path['resolve'](__dirname,_0xaab2('0x29'),rs[_0xaab2('0x2a')](0x4)+_0xaab2('0x2b')))[_0xaab2('0x2d')](function(_0x184d0e){_0x245e80[_0xaab2('0x87')]=_0x184d0e;return _0x245e80;});}return _0x245e80;});};exports[_0xaab2('0x88')]=function(){return __dirname;};