unispeech / unimrcp

Open source cross-platform implementation of MRCP protocol
http://www.unimrcp.org
Apache License 2.0
379 stars 167 forks source link

http-proxy and connect method does not supply port as part of connect method #256

Closed engdan77 closed 4 years ago

engdan77 commented 5 years ago

From what we can tell the http-proxy setup while use Google Speech Recognition does not seem to supply a destination port when setting up a "http tunnel" for the incoming HTTPS traffic between unimrcp and speech.googleapis.com that for some proxies works (perhaps could that they default to port 443) but there are those proxies that responds with an HTTP/1.1 400 Bad Request

Our current setup we use UniMRCP Server [1.6.0] APR [1.5.2]

And our configuration /opt/unimrcp/conf/umsgsr.xml as

<streaming-recognition interim-results="false" language="en-US" max-alternatives="1" http-proxy="http://xxxxxxx:8080" />

And while using verbose mode we can find that the request look like

D1029 12:14:45.447887312 34703 tcp_posix.cc:1077] DATA: xxxxx 'CONNECT speech.googleapis.com HTTP/1.0..Host: speech.googleapis.com..User-Agent: grpc-httpcli/0.0....'

And in comparison with samples seen are usually including :443 as a port in its setup e.g. CONNECT www.youtube.com:443 HTTP/1.1

Would like to see if its possible to adjust its behavior supplying :443 as part of the speech.googleapis.com:443 ?

achaloyan commented 4 years ago

This issue has been resolved with the release of GSR 1.15.0 which allows to specify the service URI, including the port number from configuration as follows.

<streaming-recognition interim-results="false" language="en-US" max-alternatives="1" http-proxy="http://xxxxxxx:8080" service-uri="speech.googleapis.com:443" />