Built motion from commit (unavailable).|2.5.28
[motion2.git] / server / services / agi / scripts / tilde / asr / lib / api.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 _0xb6ec=['crypto','agi','info','Tilde\x20URI','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','createHash','sha1','update','digest','hex','Open\x20Tilde\x20ASR\x20socket','unix','stringify','createReadStream','data','send','close','EOS','error','Tilde\x20ASR\x20send\x20error','parse','status','result','final','Tilde\x20ASR\x20hypoteses','hypotheses','likelihood','Success.','terminate','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Authentication\x20failed.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','Tilde\x20ASR\x20parse\x20error','Close\x20Tilde\x20ASR\x20socket','isNil','isObject','open','bluebird','lodash','moment'];(function(_0xb77dfe,_0x39c4c7){var _0x5e4f5d=function(_0x49f1){while(--_0x49f1){_0xb77dfe['push'](_0xb77dfe['shift']());}};_0x5e4f5d(++_0x39c4c7);}(_0xb6ec,0xca));var _0xcb6e=function(_0x434cd2,_0x552a11){_0x434cd2=_0x434cd2-0x0;var _0xe7e54d=_0xb6ec[_0x434cd2];return _0xe7e54d;};'use strict';var BPromise=require(_0xcb6e('0x0'));var _=require(_0xcb6e('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0xcb6e('0x2'));var crypto=require(_0xcb6e('0x3'));var logger=require('../../../../../../config/logger')(_0xcb6e('0x4'));module['exports']=function(_0x1985b5,_0x48e74a,_0x100359,_0x530a32){return new BPromise(function(_0x57b385,_0x507a50){logger[_0xcb6e('0x5')](_0xcb6e('0x6'),_0x530a32||_0xcb6e('0x7'));var _0x3f44dd=new WebSocket(_0x530a32||_0xcb6e('0x7'),{'perMessageDeflate':![]});var _0x54dfee='';var _0x2d833b='0';var _0x346770='1';var _0xbfac98=_0xcb6e('0x8');function _0x45bdfd(_0x3e578c){var _0x1ad726=crypto[_0xcb6e('0x9')](_0xcb6e('0xa'));_0x1ad726[_0xcb6e('0xb')](_0x3e578c);return _0x1ad726[_0xcb6e('0xc')](_0xcb6e('0xd'));}function _0x35604b(){try{logger['info'](_0xcb6e('0xe'));var _0xed8a2d=moment()[_0xcb6e('0xf')]();var _0x40c35a=_0x45bdfd(_0xed8a2d+_0x48e74a+_0x100359);_0x3f44dd['send'](JSON[_0xcb6e('0x10')]({'appID':_0x48e74a,'timestamp':_0xed8a2d,'appKey':_0x40c35a}));var _0x3f169b=fs[_0xcb6e('0x11')](_0x1985b5);_0x3f169b['on'](_0xcb6e('0x12'),function(_0x4c5e63){_0x3f44dd[_0xcb6e('0x13')](_0x4c5e63);});_0x3f169b['on'](_0xcb6e('0x14'),function(){_0x3f44dd[_0xcb6e('0x13')](_0xcb6e('0x15'));});}catch(_0x8b9673){logger[_0xcb6e('0x16')](_0xcb6e('0x17'),JSON[_0xcb6e('0x10')](_0x8b9673));_0x3f44dd['terminate']();}}function _0x294353(_0x2b42a9){try{if(_0x2b42a9){var _0x179d16=JSON[_0xcb6e('0x18')](_0x2b42a9);switch(_0x179d16[_0xcb6e('0x19')]){case 0x0:if(_0x179d16[_0xcb6e('0x1a')]){if(_0x179d16[_0xcb6e('0x1a')][_0xcb6e('0x1b')]){logger[_0xcb6e('0x5')](_0xcb6e('0x1c'),JSON[_0xcb6e('0x10')](_0x179d16[_0xcb6e('0x1a')][_0xcb6e('0x1d')]));_0x54dfee=_0x179d16['result'][_0xcb6e('0x1d')][0x0]['transcript'];_0x2d833b=_0x179d16[_0xcb6e('0x1a')][_0xcb6e('0x1d')][0x0][_0xcb6e('0x1e')];_0x346770='0';_0xbfac98=_0xcb6e('0x1f');_0x3f44dd[_0xcb6e('0x20')]();}}break;case 0x1:logger[_0xcb6e('0x5')](_0xcb6e('0x8'));_0x346770='1';_0xbfac98=_0xcb6e('0x8');break;case 0x2:logger[_0xcb6e('0x5')](_0xcb6e('0x21'));_0x346770='2';_0xbfac98=_0xcb6e('0x21');break;case 0x9:logger[_0xcb6e('0x5')]('Not\x20available.\x20Max\x20load\x20limit\x20reached.');_0x346770='9';_0xbfac98='Not\x20available.\x20Max\x20load\x20limit\x20reached.';break;case 0xa:logger[_0xcb6e('0x5')](_0xcb6e('0x22'));_0x346770='10';_0xbfac98=_0xcb6e('0x22');break;case 0xb:logger[_0xcb6e('0x5')](_0xcb6e('0x23'));_0x346770='11';_0xbfac98=_0xcb6e('0x23');}}}catch(_0x4e9146){logger[_0xcb6e('0x16')](_0xcb6e('0x24'),JSON[_0xcb6e('0x10')](_0x4e9146));_0x3f44dd['terminate']();}}function _0x12d356(){logger[_0xcb6e('0x5')](_0xcb6e('0x25'));_0x57b385({'transcript':_0x54dfee,'confidence':_0x2d833b,'status':_0x346770,'status_message':_0xbfac98});}function _0x371f5d(_0x313c5c){logger[_0xcb6e('0x16')]('Error\x20Tilde\x20ASR\x20socket');if(!_[_0xcb6e('0x26')](_0x313c5c)){logger['error'](_[_0xcb6e('0x27')](_0x313c5c)?JSON[_0xcb6e('0x10')](_0x313c5c):_0x313c5c);}}_0x3f44dd['on'](_0xcb6e('0x28'),_0x35604b);_0x3f44dd['on']('message',_0x294353);_0x3f44dd['on'](_0xcb6e('0x14'),_0x12d356);_0x3f44dd['on'](_0xcb6e('0x16'),_0x371f5d);});};