Built motion from commit 9d0783e6.|2.6.13
[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 _0x5616=['%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','nda','text','channelData','CustomAction','CustomActionData','AudioFromTts','Data','audiofile','bluebird','dialogflow','https','md5','path','querystring','request-promise','randomstring','google-tts-api','url','parse','util','./aws','./sestek','../../../config/logger','agi','protocol','https:','host','WHAT_EVER','statusCode','error','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','finish','info','finish\x20download\x20file','close','unlink','pipe','end','get','data','error\x20convert','finish\x20to\x20convert','start','resolve','generate','.wav','base64','then','chmodSync','777','split','googleCloudTTS','https://texttospeech.googleapis.com/v1/','?key=','ssml','input','voice','audioConfig','MP3','POST','tmp','writeFile','googleCloudTTS\x20path','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','utf8','application/x-www-form-urlencoded','stringify','jQ1olc','null','generic','text\x20length\x20limit\x20reached','\x22\x20might\x20not\x20exist','parse\x20response\x20failed:\x0a','.mp3','writeFileSync','goggleTTS\x20path','googleASR','uri','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','[%s]\x20%s:%s','name','message','textRequest','source','result','actionIncomplete','fulfillment','speech','score','code','endConversation','metadata','isFallbackIntent','SessionsClient','detectIntent','length','Dialogflow\x20V2\x20response:','queryResult','action','allRequiredParamsPresent','diagnosticInfo','fields','end_conversation','boolValue','fulfillmentText','intent','displayName','isFallback','languageCode','responseId','intentDetectionConfidence','tildeASR','asr','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','awsPolly','awsLex','lex','ispeechTTS','format'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x5616,0x19e));var _0x6561=function(_0x2b58f8,_0x14f865){_0x2b58f8=_0x2b58f8-0x0;var _0x2af05b=_0x5616[_0x2b58f8];return _0x2af05b;};'use strict';var apiai=require('apiai-promise');var BPromise=require(_0x6561('0x0'));var dialogflow=require(_0x6561('0x1'));var fs=require('fs');var http=require('http');var https=require(_0x6561('0x2'));var md5=require(_0x6561('0x3'));var path=require(_0x6561('0x4'));var querystring=require(_0x6561('0x5'));var rp=require(_0x6561('0x6'));var rs=require(_0x6561('0x7'));var sox=require('sox');var tts=require(_0x6561('0x8'));var urlParse=require(_0x6561('0x9'))[_0x6561('0xa')];var util=require(_0x6561('0xb'));var aws=require(_0x6561('0xc'));var google=require('./google');var sestek=require(_0x6561('0xd'));var tilde=require('./tilde');var logger=require(_0x6561('0xe'))(_0x6561('0xf'));var ISPEECH_API='https://api.ispeech.org/api/rest';function downloadFile(_0x477981,_0x586170){return new BPromise(function(_0x11a4db,_0x116a47){var _0x40f57f=urlParse(_0x477981);var _0x13a89c=_0x40f57f[_0x6561('0x10')]===_0x6561('0x11')?https:http;var _0x4296c9={'host':_0x40f57f[_0x6561('0x12')],'path':_0x40f57f[_0x6561('0x4')],'headers':{'user-agent':_0x6561('0x13')}};_0x13a89c['get'](_0x4296c9,function(_0xd78eee){if(_0xd78eee[_0x6561('0x14')]!==0xc8){logger[_0x6561('0x15')](_0x6561('0x16')+_0x477981+_0x6561('0x17')+_0xd78eee[_0x6561('0x14')]+'\x20('+_0xd78eee[_0x6561('0x18')]+')');_0x116a47(new Error(_0x6561('0x16')+_0x477981+_0x6561('0x17')+_0xd78eee[_0x6561('0x14')]+'\x20('+_0xd78eee['statusMessage']+')'));return;}var _0x454b69=fs['createWriteStream'](_0x586170);_0x454b69['on'](_0x6561('0x19'),function(){logger[_0x6561('0x1a')](_0x6561('0x1b'));_0x454b69[_0x6561('0x1c')](_0x11a4db);});_0x454b69['on'](_0x6561('0x15'),function(_0x29687e){fs[_0x6561('0x1d')](_0x586170);logger[_0x6561('0x15')]('download\x20error',_0x29687e);_0x116a47(_0x29687e);});_0xd78eee[_0x6561('0x1e')](_0x454b69);})['on'](_0x6561('0x15'),function(_0x14b12a){logger[_0x6561('0x15')](_0x14b12a);_0x116a47(_0x14b12a);})[_0x6561('0x1f')]();});}function uploadFile(_0x1e0428){return new BPromise(function(_0x6a757a,_0xfcef9d){var _0x243d82=urlParse(_0x1e0428);var _0x2135b0=_0x243d82[_0x6561('0x10')]===_0x6561('0x11')?https:http;var _0x8c4db9={'host':_0x243d82['host'],'path':_0x243d82['path'],'headers':{'user-agent':'WHAT_EVER'}};_0x2135b0[_0x6561('0x20')](_0x8c4db9,function(_0x4dbbff){if(_0x4dbbff[_0x6561('0x14')]!==0xc8){_0xfcef9d(new Error('request\x20to\x20'+_0x1e0428+_0x6561('0x17')+_0x4dbbff[_0x6561('0x14')]+'\x20('+_0x4dbbff[_0x6561('0x18')]+')'));return;}var _0x885362='';_0x4dbbff['on'](_0x6561('0x21'),function(_0x3a41c0){_0x885362+=_0x3a41c0;});_0x4dbbff['on'](_0x6561('0x1f'),function(){_0x6a757a(_0x885362);});})['on'](_0x6561('0x15'),function(_0x321363){_0xfcef9d(_0x321363);})[_0x6561('0x1f')]();});}function convertFile(_0x2d6dc7,_0x975180){return new BPromise(function(_0x52e111,_0x58ea22){var _0x35636b=sox['transcode'](_0x2d6dc7,_0x975180,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x35636b['on'](_0x6561('0x15'),function(_0x4f6511){logger[_0x6561('0x15')](_0x6561('0x22'),_0x4f6511);_0x58ea22(_0x4f6511);});_0x35636b['on'](_0x6561('0x1f'),function(){logger[_0x6561('0x1a')](_0x6561('0x23'));_0x52e111();});_0x35636b[_0x6561('0x24')]();});}function base64Decode(_0x16cdb2,_0x422b02){var _0x11ab55=path[_0x6561('0x25')](__dirname,'tmp',rs[_0x6561('0x26')](0x4)+_0x6561('0x27'));fs['writeFileSync'](_0x11ab55,_0x16cdb2,_0x6561('0x28'));return convertFile(_0x11ab55,_0x422b02)[_0x6561('0x29')](function(){try{fs[_0x6561('0x1d')](_0x11ab55);fs[_0x6561('0x2a')](_0x422b02,_0x6561('0x2b'));}catch(_0x39edd6){logger[_0x6561('0x15')](_0x39edd6);}return _0x422b02[_0x6561('0x2c')]('.')[0x0];});}function base64Encode(_0x1c40b7){var _0x3dbd48=fs['readFileSync'](_0x1c40b7);return new Buffer(_0x3dbd48)['toString'](_0x6561('0x28'));}exports[_0x6561('0x2d')]=function(_0x40cdc8,_0x45814f,_0x55d9ff,_0xa4a45,_0x2eed76,_0x20f74a){var _0x7523b4,_0x1021cf;var _0x791e5c=_0x6561('0x2e');var _0x41f70e=_0x6561('0x2f')+_0x40cdc8;var _0x4dceb0={};if(_0x45814f===_0x6561('0x30')){_0x4dceb0[_0x6561('0x31')]={'ssml':_0x55d9ff};}else{_0x4dceb0[_0x6561('0x31')]={'text':_0x55d9ff};};_0x4dceb0[_0x6561('0x32')]={'languageCode':_0xa4a45,'ssmlGender':_0x2eed76};_0x4dceb0[_0x6561('0x33')]={'audioEncoding':_0x6561('0x34'),'sampleRateHertz':0x1f40};var _0x46b608={'url':_0x791e5c+'text:synthesize'+_0x41f70e,'method':_0x6561('0x35'),'json':!![],'body':_0x4dceb0};return rp(_0x46b608)[_0x6561('0x29')](function(_0x1404d3){return new BPromise(function(_0x4ebab9,_0x2d7776){_0x7523b4=path['resolve'](__dirname,_0x6561('0x36'),rs[_0x6561('0x26')](0x4)+'.mp3');var _0x747505=Buffer['from'](_0x1404d3['audioContent'],'base64');return fs[_0x6561('0x37')](_0x7523b4,_0x747505,function(_0x4f7020){_0x2d7776(_0x4f7020);},function(_0x4fb021){fs[_0x6561('0x2a')](_0x7523b4,_0x6561('0x2b'));_0x4ebab9(_0x4fb021);});});})[_0x6561('0x29')](function(_0x3a54ae){_0x1021cf=path[_0x6561('0x25')](__dirname,_0x6561('0x36'),rs[_0x6561('0x26')](0x4)+'.wav');return convertFile(_0x7523b4,_0x1021cf);})[_0x6561('0x29')](function(){try{fs[_0x6561('0x1d')](_0x7523b4);fs[_0x6561('0x2a')](_0x1021cf,_0x6561('0x2b'));}catch(_0x45cf02){logger[_0x6561('0x15')](_0x45cf02);}logger[_0x6561('0x1a')](_0x6561('0x38'),_0x1021cf['split']('.')[0x0]);return _0x1021cf[_0x6561('0x2c')]('.')[0x0];});};exports[_0x6561('0x39')]=function(_0x246c9c,_0x2d05ad){var _0x3bd31e=_0x6561('0x3a');var _0x56d37a,_0x580f16;var _0x1f445b;var _0x5a434c={'encoding':_0x6561('0x3b'),'method':_0x6561('0x35'),'timeout':0x2710,'url':_0x3bd31e,'headers':{'Content-Type':_0x6561('0x3c')},'body':'f.req='+encodeURIComponent(JSON[_0x6561('0x3d')]([[[_0x6561('0x3e'),JSON[_0x6561('0x3d')]([_0x246c9c,_0x2d05ad||'en',![],_0x6561('0x3f')]),null,_0x6561('0x40')]]]))};return rp(_0x5a434c)[_0x6561('0x29')](function(_0x5a47ac){try{_0x1f445b=eval(_0x5a47ac['slice'](0x5))[0x0][0x2];}catch(_0x5f4f80){throw new Error('parse\x20response\x20failed:\x0a'+_0x5a47ac[_0x6561('0x21')]);}if(!_0x1f445b){if(_0x246c9c['length']>0xc8){throw new Error(_0x6561('0x41'));}else{throw new Error('lang\x20\x22'+_0x2d05ad+_0x6561('0x42'));}}try{_0x1f445b=eval(_0x1f445b)[0x0];}catch(_0x496333){throw new Error(_0x6561('0x43')+res[_0x6561('0x21')]);}const _0x4a9e09=_0x1f445b;_0x56d37a=path['resolve'](__dirname,_0x6561('0x36'),rs['generate'](0x4)+_0x6561('0x44'));fs[_0x6561('0x45')](_0x56d37a,_0x1f445b,{'encoding':_0x6561('0x28')});_0x580f16=path[_0x6561('0x25')](__dirname,_0x6561('0x36'),rs['generate'](0x4)+_0x6561('0x27'));return convertFile(_0x56d37a,_0x580f16);})[_0x6561('0x29')](function(){try{fs[_0x6561('0x1d')](_0x56d37a);fs[_0x6561('0x2a')](_0x580f16,'777');}catch(_0x27fe4d){logger['error'](_0x27fe4d);}logger[_0x6561('0x1a')](_0x6561('0x46'),_0x580f16[_0x6561('0x2c')]('.')[0x0]);return _0x580f16[_0x6561('0x2c')]('.')[0x0];});};exports[_0x6561('0x47')]=function(_0x11e905,_0x5db027,_0x3ea8ef){return google['asr'](_0x11e905,_0x5db027,_0x3ea8ef)[_0x6561('0x29')](function(_0x11e47d){logger['info'](_0x11e47d[_0x6561('0x48')]);return rp(_0x11e47d);})['then'](function(_0x149b90){var _0x32e24b='';var _0x3a59d4=0x0;try{fs[_0x6561('0x1d')](_0x11e905);}catch(_0x388e21){logger[_0x6561('0x15')](_0x388e21);}if(_0x149b90&&_0x149b90[_0x6561('0x49')]){_0x32e24b=_0x149b90[_0x6561('0x49')][_0x6561('0x4a')](function(_0x43a4a4){return _0x43a4a4&&_0x43a4a4[_0x6561('0x4b')][0x0]&&_0x43a4a4[_0x6561('0x4b')][0x0][_0x6561('0x4c')]?_0x43a4a4[_0x6561('0x4b')][0x0][_0x6561('0x4c')]:'';})[_0x6561('0x4d')]('\x0a');_0x3a59d4=_0x149b90[_0x6561('0x49')][_0x6561('0x4a')](function(_0x215beb){return _0x215beb&&_0x215beb['alternatives'][0x0]&&_0x215beb[_0x6561('0x4b')][0x0][_0x6561('0x4e')]?_0x215beb[_0x6561('0x4b')][0x0][_0x6561('0x4e')]:0x0;})[_0x6561('0x4d')]('\x0a');}logger[_0x6561('0x1a')](_0x6561('0x4f'),_0x32e24b);logger[_0x6561('0x1a')](_0x6561('0x50'),_0x3a59d4);return{'transcript':_0x32e24b,'confidence':_0x3a59d4};})['catch'](function(_0x3684e1){logger['error'](_0x6561('0x51'),_0x3684e1[_0x6561('0x14')],_0x3684e1[_0x6561('0x52')],_0x3684e1[_0x6561('0x53')]);});};exports['googleDialogflow']=function(_0x31a4ec,_0x24476f,_0x275af3,_0x7893a6){var _0x217b73=apiai(_0x24476f,{'language':_0x7893a6||'en'});return _0x217b73[_0x6561('0x54')](_0x275af3,{'sessionId':md5(_0x31a4ec)})[_0x6561('0x29')](function(_0xed1b60){logger['info'](JSON['stringify'](_0xed1b60));return{'source':_0xed1b60['result'][_0x6561('0x55')],'resolvedQuery':_0xed1b60[_0x6561('0x56')]['resolvedQuery'],'action':_0xed1b60[_0x6561('0x56')]['action'],'actionIncomplete':_0xed1b60['result'][_0x6561('0x57')],'speech':_0xed1b60[_0x6561('0x56')][_0x6561('0x58')][_0x6561('0x59')],'score':_0xed1b60[_0x6561('0x56')][_0x6561('0x5a')],'statusCode':_0xed1b60['status'][_0x6561('0x5b')],'endConversation':_0xed1b60[_0x6561('0x56')]['metadata'][_0x6561('0x5c')]||![],'isFallbackIntent':_0xed1b60[_0x6561('0x56')][_0x6561('0x5d')][_0x6561('0x5e')]};});};exports['googleDialogflowV2']=function(_0x37648f,_0x676e44,_0x57c9a6,_0x2e161c,_0x504e36,_0x1eef8b){var _0x41c614=_0x2e161c['replace'](/\\n/g,'\x0a');var _0x36f93d={'credentials':{'private_key':_0x41c614,'client_email':_0x57c9a6}};var _0x296f7f=new dialogflow[(_0x6561('0x5f'))](_0x36f93d);var _0x5e5170=_0x296f7f['sessionPath'](_0x676e44,md5(_0x37648f));var _0x20a24b={'session':_0x5e5170,'queryInput':{'text':{'text':_0x504e36,'languageCode':_0x1eef8b}}};return _0x296f7f[_0x6561('0x60')](_0x20a24b)[_0x6561('0x29')](function(_0x11047e){if(_0x11047e&&_0x11047e[_0x6561('0x61')]){logger[_0x6561('0x1a')](_0x6561('0x62'),JSON[_0x6561('0x3d')](_0x11047e));var _0x487bb8=_0x11047e[0x0];if(_0x487bb8){var _0x44908e={'action':_0x487bb8[_0x6561('0x63')][_0x6561('0x64')],'allRequiredParamsPresent':_0x487bb8[_0x6561('0x63')][_0x6561('0x65')],'endConversation':_0x487bb8[_0x6561('0x63')][_0x6561('0x66')]&&_0x487bb8['queryResult'][_0x6561('0x66')][_0x6561('0x67')]?_0x487bb8[_0x6561('0x63')]['diagnosticInfo'][_0x6561('0x67')][_0x6561('0x68')][_0x6561('0x69')]:![],'fulfillmentText':_0x487bb8[_0x6561('0x63')][_0x6561('0x6a')],'intentName':_0x487bb8['queryResult'][_0x6561('0x6b')][_0x6561('0x52')],'intentDisplayName':_0x487bb8[_0x6561('0x63')]['intent'][_0x6561('0x6c')],'isFallbackIntent':_0x487bb8[_0x6561('0x63')][_0x6561('0x6b')][_0x6561('0x6d')],'languageCode':_0x487bb8[_0x6561('0x63')][_0x6561('0x6e')],'queryText':_0x487bb8['queryResult']['queryText'],'responseId':_0x487bb8[_0x6561('0x6f')],'score':_0x487bb8[_0x6561('0x63')][_0x6561('0x70')],'speech':_0x487bb8[_0x6561('0x63')][_0x6561('0x6a')],'providerResponse':JSON[_0x6561('0x3d')](_0x11047e)};return _0x44908e;}}});};exports[_0x6561('0x71')]=function(_0xfdf824,_0x30e2a1,_0x17de17,_0x417bbd){return tilde[_0x6561('0x72')](_0xfdf824,_0x30e2a1,_0x17de17,_0x417bbd)['then'](function(_0x5dc704){try{fs[_0x6561('0x1d')](_0xfdf824);}catch(_0x215799){logger['error'](_0x215799);}logger[_0x6561('0x1a')](_0x6561('0x73'),_0x5dc704[_0x6561('0x4c')]);logger[_0x6561('0x1a')](_0x6561('0x74'),_0x5dc704[_0x6561('0x4e')]);return _0x5dc704;});};exports[_0x6561('0x75')]=function(_0x1ec355,_0x22b23b,_0xa05949,_0x2c68fc,_0x323b60,_0x52bd9d){var _0x4c48a9=path[_0x6561('0x25')](__dirname,_0x6561('0x36'),rs[_0x6561('0x26')](0x4)+'.mp3');var _0x412b10;return aws['polly'](_0x1ec355,_0x22b23b,_0xa05949,_0x2c68fc,_0x323b60,_0x52bd9d,_0x4c48a9)[_0x6561('0x29')](function(){_0x412b10=path[_0x6561('0x25')](__dirname,_0x6561('0x36'),rs[_0x6561('0x26')](0x4)+'.wav');return convertFile(_0x4c48a9,_0x412b10);})['then'](function(){try{fs[_0x6561('0x1d')](_0x4c48a9);fs[_0x6561('0x2a')](_0x412b10,'777');}catch(_0x5c88e2){logger[_0x6561('0x15')](_0x5c88e2);}return _0x412b10[_0x6561('0x2c')]('.')[0x0];});};exports[_0x6561('0x76')]=function(_0x3202c6,_0x10e198,_0x1b5440,_0x51e203,_0x3ca2e1,_0x6057ca){return aws[_0x6561('0x77')](_0x3202c6,_0x10e198,_0x1b5440,_0x51e203,_0x3ca2e1,_0x6057ca)[_0x6561('0x29')](function(_0x2911e2){logger[_0x6561('0x1a')](JSON[_0x6561('0x3d')](_0x2911e2));return _0x2911e2;});};exports[_0x6561('0x78')]=function(_0x81f1a7,_0x16f27e,_0xc29b7b,_0x39c3b4){var _0x3fb707=util[_0x6561('0x79')](_0x6561('0x7a'),ISPEECH_API,_0x81f1a7,encodeURIComponent(_0x16f27e),_0xc29b7b,_0x39c3b4);var _0x93f9e6=path[_0x6561('0x25')](__dirname,_0x6561('0x36'),rs['generate'](0x4)+_0x6561('0x44'));var _0x2bd7b6;return downloadFile(_0x3fb707,_0x93f9e6)[_0x6561('0x29')](function(){_0x2bd7b6=path['resolve'](__dirname,_0x6561('0x36'),rs[_0x6561('0x26')](0x4)+_0x6561('0x27'));return convertFile(_0x93f9e6,_0x2bd7b6);})[_0x6561('0x29')](function(){try{fs['unlink'](_0x93f9e6);fs[_0x6561('0x2a')](_0x2bd7b6,'777');}catch(_0x29be7a){logger[_0x6561('0x15')](_0x29be7a);}return _0x2bd7b6[_0x6561('0x2c')]('.')[0x0];});};exports[_0x6561('0x7b')]=function(_0x5ad0d1,_0x5bc4ea,_0x20476f,_0xf8448b){var _0x1981c1=util[_0x6561('0x79')](_0x6561('0x7c'),ISPEECH_API,_0x5bc4ea,_0x20476f,base64Encode(_0x5ad0d1),_0xf8448b?util[_0x6561('0x79')](_0x6561('0x7d'),encodeURIComponent(_0xf8448b)):'freeform=3');return uploadFile(_0x1981c1)[_0x6561('0x29')](function(_0x37dfc0){return querystring['parse'](_0x37dfc0);});};exports['sestekNDA']=function(_0x324b6b,_0x146d4f){return sestek[_0x6561('0x7e')](_0x324b6b,_0x146d4f)['then'](function(_0x37962e){logger[_0x6561('0x1a')](JSON[_0x6561('0x3d')](_0x37962e));var _0x3c27a5={'speech':_0x37962e[_0x6561('0x7f')],'action':_0x37962e['channelData']?_0x37962e[_0x6561('0x80')][_0x6561('0x81')]:undefined,'actiondata':_0x37962e['channelData']?_0x37962e[_0x6561('0x80')][_0x6561('0x82')]:undefined};if(_0x37962e['channelData']&&_0x37962e[_0x6561('0x80')][_0x6561('0x83')]){return base64Decode(_0x37962e[_0x6561('0x80')][_0x6561('0x83')][_0x6561('0x84')],path[_0x6561('0x25')](__dirname,_0x6561('0x36'),rs[_0x6561('0x26')](0x4)+'.wav'))['then'](function(_0x512879){_0x3c27a5[_0x6561('0x85')]=_0x512879;return _0x3c27a5;});}return _0x3c27a5;});};exports['dirName']=function(){return __dirname;};