I would like to make QoE measurements in the Jitsi application. Let me put you in situation:
1.- We have deployed the Jitsi application on Android and we can use the Jitsi service to meet (using meet.jit.si )
2- Once we have Jitsi on Android (where we can see logcat), we are looking for a way to be able to measure some points such as Content Stall, Round Trip Time, Cut Off or Resolution.
We have seen that in some react libraries (for example, jitsi-meet/react/features/connection-stats/components/ConnectionStatsTable.js) we can get some parameters that give us information about the status of the meeting but, when building the application using Android Studio we have modules that do not allow us to access this kind of libraries.
It would be possible that you could help us to obtain those measurement points, or at least, to know where to find some necessary parameters for it. If you need more information do not hesitate to contact me.
Thanks in advance,
The Android app is built with React Native, so you need to modify the JS code to get access to that if you need it elsewhere.
First of all, thanks for your answer. I just want to see these paremeters in the logcat to analize them after run the application. Sorry if i wasnt clear but what I want to know is where can I localize these kind of parameters. I was looking in to react-native libraries but I couldn’t find any parameter that could help me to obtain these kind of KPIs. Do you know where can I find them?
Thanks in advance
I see. The are not available at all times, if you look in the component then you’ll see that you need to subscribe to them. You could add a component that is mounter at all times and does that. As for logging. You could just use
console.log, that will end up in logcat too.
Thanks again saghul. What do you mean with subscribe? are there any options to get periodical information in the logcat? It’ll be nice. What I’m looking is what code’s part I can use to get this kind of info. How to get it is really easy using log function.
If you look at the code of the component that renders them, it subscribes to an emitter to get that data.
No, this doesn’t exist, you’d need to build it yourself.
Sorry for being inexperienced in android projects. What I can see in the built Jitsi project is something like the first screen I post bellow. Are you refering with component to each react-native-COMPONENT? I’ve checked all of these but didnt find anything related to KPIs/parameters I commented you.
Is it possible that these parameters are inside module? For example, created in the class itself. In this case, is it possible to pointer one of them?
Perfect, no problem for that.
Thanks again saghul.
For all intents and purposes this is not an Android project but a React Native one. You can check how to communicate with the native side in features/mobile/external-api
Thanks for the aclaration. I saw that listener is used to communicate with the native in some libraries. For example, BaseReactView has some methods to call externalAPIEvents and Listener methods but all of them are deprecated.I dont know if there’s another way to communicate with the app. Clarify that what I want to find is just to get some parameters periodically (e.g. Resolution).
Find bellow a screenshot where I found the methods I commented you.
I found too another library that uses the Listener. JitsiMeetView.java (it extends from BaseReactView) has a method called OngoingConferenceTracker that uses Listener via:
OngoingConferenceTracker.OngoingConferenceListener. OngoingConferenceTracker.getInstance().addListener(this); OngoingConferenceTracker.getInstance().removeListener(this);
At this point, I dont know what I’ve to do to give periodically parameters. I’m thinking about create new component and suscribe it to give app information but I don’t know how to do it (create and subscribe).
Please, can you help me? Thanks!
You can check the SET_AUDIO_MUTED event as an example.