External Api for mobile application

Hi,
Do we have external api for mobile application as we have for web platform to enable or disable multiple options.
Thank you

There is mobile SDK you can use: https://github.com/jitsi/jitsi-meet/blob/master/doc/mobile.md

@damencho thanks for your response but In Jitsi Meet External API we have so many event that we can make use of like ones below

  • avatarChanged
  • incomingMessage
  • outgoingMessage
  • displayNameChange
  • participantJoined
  • participantKickedOut
  • participantLeft
  • videoConferenceJoined
  • videoConferenceLeft
  • videoAvailabilityChanged
  • videoMuteStatusChanged
  • readyToClose
  • suspendDetected

can you guide me how to listen these events in android and ios through sdk. As i go through your link i came to know getListener() function but how to listen all those above events though JitsiMeetViewListener .

And one more thing where can i find all the feature flag list in JitsiMeetConferenceOptions() ?

Those events are not yet available through the SDK.

@saghul @damencho can you guide what should i do ? Are you planning to add these events ? When can we expect the updated SDK? Till then what should i do now if i want to access those events . My application scope need to have those events.

I’m afraid the answer to all those questions is “we don’t know”.

what should I do till then ? Any suggestions or ideas ?

I have kind of the same question, I need to query the call status between 2 users from rocketchat server (to implement status “Call busy”, “Call missed” )

Are there any available API or I need to implement myself?

I’m sorry, the only answer I have is “wait”. Most of those events (the ones that apply to mobile too) will be implemented, it’s a matter of scheduling.

Jitsi doesn’t do any scheduling, I assume RocketChat is generating URLs and sending them to each participant, so you’ll need to keep the state and implement this yourself.

1 Like

@saghul can you give me an expected time line ? I really need those features and out team’s stuck at this

Sorry, I can’t. I’ll see if I can schedule some of this work in our next sprint ( a week from now).

@saghul can you please tell me what features are you planning for immediate future releases (within a month’s releases)?

Sorry I cannot share that.

@saghul Is there any other way to decide how should I proceed further, because I really really need to features and me, my team are stuck and project is at stake. What do you suggest?

Hi @Charles_Smith,

Would you be able to produce the code yourselves and contribute it back to Jitsi, with some guidance? My schedule is pretty tight, and I’m taking some days off this week, so I can’t really work on this myself.

I can, however, guide you (or someone in your team) through what needs to be done. The work involves a bit of JavaScript, Objective-C and Java.

of course. How soon can we start ? and where to start ?

Hi @saghul,
I’m waiting for your response on this.

Sorry for the delay. I happen to be off these days, with not much time.

Let’s get started!

The way sending events from JS to Native works as follows:

  • A redux action gets dispatched in JS
  • The mobile “External API” module picks it up and calls native function with the event and data
  • On the native side, the action name is transofrmed to the event name as follows: CONFERENCE_TERMINATED -> onConferenceTerminated
  • The delegate / listener method with that name is found and called

Let’s follow all that with CONFERENCE_TERMINATED as an example.

Here is the external API feature: https://github.com/jitsi/jitsi-meet/tree/6ecd150f75f59eb62a6fce38cf90b764494d02c4/react/features/mobile/external-api

The meat is in the middleware: https://github.com/jitsi/jitsi-meet/blob/6ecd150f75f59eb62a6fce38cf90b764494d02c4/react/features/mobile/external-api/middleware.js

First we need to import the action type, which is really a string: https://github.com/jitsi/jitsi-meet/blob/6ecd150f75f59eb62a6fce38cf90b764494d02c4/react/features/mobile/external-api/middleware.js#L6

(the action in this case if CONFERENCE_LEFT, but we emit a CONFERENCE_TERMINATED one for reasons that are not important for understanding how this works or adding more events)

Then if you follow the code you’ll see that it ends up calling a sendEvent function: https://github.com/jitsi/jitsi-meet/blob/6ecd150f75f59eb62a6fce38cf90b764494d02c4/react/features/mobile/external-api/functions.js#L18 the parameters should be self-explanatory.

The native module is implemented for iOS here: https://github.com/jitsi/jitsi-meet/blob/6ecd150f75f59eb62a6fce38cf90b764494d02c4/ios/sdk/src/ExternalAPI.m and Android here: https://github.com/jitsi/jitsi-meet/blob/6ecd150f75f59eb62a6fce38cf90b764494d02c4/android/sdk/src/main/java/org/jitsi/meet/sdk/ExternalAPIModule.java You don’t need to change anything there, but it may give you a better view on how this works internally.

Then you need to add a method to the delegate on iOS: https://github.com/jitsi/jitsi-meet/blob/6ecd150f75f59eb62a6fce38cf90b764494d02c4/ios/sdk/src/JitsiMeetViewDelegate.h Note that we follow each platform’s usual naming conventions so CONFERENCE_TERMINATED becomes conferenceTerminated, and if you add say PARTICIPANT_JOINED, then it will become participantJoined.

On Android you need to add a new method to this interface: https://github.com/jitsi/jitsi-meet/blob/6ecd150f75f59eb62a6fce38cf90b764494d02c4/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetViewListener.java

Hope that hepls, let me know if you have any questions.

Cheers,

@saghul, thanks for the response. I’ll get started soon.