5

I want to build a mobile application where one of the participating users can broadcast audio and video to other participants and the session is recorded. I know it is possible to do this using a MCU and done a lot of research on Kurento specifically. Although I read a lot about kurento I am having trouble how I can implement a Kurento client on IOS and Android.

What steps should I be taking in order to implement a kurento client app?

For example can I use the implementations provided on http://www.webrtc.org/ ?

PU2014
  • 323
  • 5
  • 17
  • 1
    Are you planning on using a signalling server to hold the sessions and register new clients? The answer depends on this ;-) – igracia Mar 17 '15 at 17:36
  • @igracia Thanks for the reply. Yes I am planning to use a signalling server to hold the sessions and register new clients. Out of curiosity, what are the advantages/disadvantages of not using one? looking forward to your reply. – PU2014 Mar 18 '15 at 00:58
  • 2
    well, you can add authentication, authorisation and accounting, have a registry of users in order to establish communications between them (not only video, but also messaging)... As lulop says, it's as if it were a standard WWW application. It just depends on what kind of application you want to create, which in your case should definitely use a signalling server. – igracia Mar 20 '15 at 08:44

1 Answers1

12

Creating WebRTC applications is not much different to creating standard WWW applications. In general, a WebRTC application like the one you are describing needs to have 3 layers: the client layer, the application server layer and the media server layer.

For your specific needs, Kurento Media Server can provide you the media server layer (you will be able to record and to provide group communications through MCU and SFU models) However, Kurento Media Server does not provide you the other two layers.

When using Kurento Media Server at the media server layer, the application server layer gets simplified if you base it in Java or JavaScript technologies. This is due to the fact that Kurento provides Kurento Client APIs (the APIs controling KMS capabilities) for Java and JavaScript off the shelf. Hence, you can create your application logic as if it where a standard WWW application and the only difference is that instead of using an API for accessing a DD.BB. (as commonly happens in WWW applications) you will use the Kurento Client API for accessing the media server capabilities.

For the client side (and this goes directly to the point of your question), you can use any client technology compatible with WebRTC standards. This means Kurento Media Server is not assuming anything about the client platform other than its support for WebRTC standards. Hence, if your application works correctly on WWW browsers it should also work correctly on Smarphone native applications supporting WebRTC. You don't need support for the Kurento Client API on the client device. Kurento Client API needs only to be used at the application server layer.

Closing this discussion, in a practical perspective, your best option for creating a native smartphone client application for your service is to use one of the available WebRTC stacks out there. In particular, you can use the www.webrtc.org stack (the one of Google) or the www.openwebrtc.io stack (the one of Ericsson). You should compile them and complement them with the signaling capabilities you want for interoperating with your application server.

lulop
  • 917
  • 8
  • 7
  • would it be correct to say that the only reason to use the two choices suggested by you over Kurento is that they are thinner than Kurento and need to be run on a mobile platform? Does Kurento not function as a full webRTC stack too? It can even generate SDP for the Kurento endpoint? I have only read on these technologies so wanted to get some clarification myself for a similar project, before I get into downloading and trying. – Sunny Apr 17 '16 at 08:55