I tried Kurento some time back and was in some other non-webRTC project after that. I am getting back into it. I had tried the Kurento JS API and it appeared to work fine at that time. Recently I was going through the FAQ and came across this:
======================== START OF FAQ ==============================
Can I use Kurento from other server-side platforms other than Java (e. g... PHP, Python, Perl, Ruby, C#, etc.)?
Short answer: not yet. Long answer: you can access only part of what Kurento provides. Explanation: Kurento Media Server (KMS) is where the core multimedia capabilities reside. KMS has been written in C/C++ and exposes a Thrift interface which can be consumed from any language with Thrift support (click here to get a list). Hence, KMS capabilities (i.e. media sending, receiving, processing, storing, etc. ) can be accessed from most common languages, including the ones specified in the question above. Nevertheless, the creation of a multimedia application requires more than just raw media features. For example, you may need a signaling mechanism for negotiating how, when and what media to exchange, you may need specific logic to be executed before/during/after the media exchange (e. g... authentication, resource allocation, resource releasing, etc.) All these advancec capabiilties have been implemented as part of the Kurento Media Framework (KMF) and currently can only be consumed from Java EE environments. The creation of and equivalent to the KMF APIs in other programming languages is possible with some effort, but it is not in our current mid-tem roadmap.
======================== END OF FAQ ==============================
The FAQ statements appear to contradict the Kurento manual. I did not see anything in the manual itself which supports the above FAQ. Or did I miss something?
Question:
That Q from the FAQ is a bit outdated. The project stopped using thrift more than two years ago! Currently, the media server offers a websocket connection that can be used to control the KMS. The signaling protocol is a JSON-RPC-based protocol. This implies that whatever language you are using, if you can connect to a websocket and push some strings through it, you'll be able to control the media server.
Nevertheless, for convenience and commodity, the project offers implementations of this protocol in Java and JavaScript so you can create different application: JavaScript browser client, Java server app or Node.js server app. There are examples of these applications in the official github repository.
There are implementations in other languages, but they are not maintained by the Kurento team.