Customize of zoom android sdk issues

Description
Hello, I’m doing so customize of zoom android sdk for the app and there are some needs.

  1. Is it possible to know the duration of current meeting when a new user came into a meeting?Like, A and B are having a meeting and it last 10 mins, suddenly C join in the meeting, can zoom android sdk provide some api that C can know the meeting has already last 10 mins?

  2. Its it possible to know that the current meeting has 40 mins limits? I notice that for free user If the meeting have more than 3 people, there will be a 40 mins limit and the pro user have no such limit. So it possible to know this info from the android sdk after a user join into the meeting? I want to inform user in advance.

  3. Does the zoom have some kind of time out mechanism when a user disconnect for quite a while? And can the sdk tell if the user still in a particular meeting? Let’s say user A is having a meeting but suddenly somehow app crash, when the user restarts the app, can the zoom sdk tell us that user A have been inside a meeting that not finish yet? So that then can guide user to rejoin the meeting. And if he leave meeting because of timeout, or the meeting is already over, We’ll not guide the user.

  4. I notice that when user is having a meeting, whenever someone come and leave, the sdk will notify by the user id. Is this id can be considered not the user’s identity and it’s something like id only use in the meeting? I tested and found that say user A join a meeting and got his id 123, and then A left, then A join again, then I got his id 456. And sometimes it keep 123. So this is a little bit confused, can give more information about this?

  5. Why the email field in the user info can be some random string? Our company have bought the business license and there are some account under the “main account?” and I tested and found out that when I try to get the user info from these accounts, the email field will return some random string, but these account surely have proper email address. And I test my free personal account and I can get XXX@gmail.com. For those accounts under the main account I’m sure they all have the proper email address like XXX@XX.com. So how does these happen? Can I restore the “random string” to the original account by some method?

  6. Our company had bought the zoom’s service and there’s some account (with devices?) can create meeting in the meeting room. For those meeting create by devices, first time we try to join with joinMeeting api with JoinMeetingParams but fail and we think it’s because for JoinMeetingParams it lack of authenticate info. So we try to call startMeetingWithParams with StartMeetingParams(it need to pass the token and zak) to join a device host meeting and it work! However, later we found that the StartMeetingParams cannot pass the password, only JoinMeetingParams can, so when the device host meeting needs the password, both way fail. For JoinMeetingParams we lack of authenticate info, for StartMeetingParams we lack of password, so how to solve this?

Sorry to ask many questions at a time, but I’m really need your help.
Look forward to the reply, thanks in advance.

Which version?
latest

To Reproduce(If applicable)
None

Screenshots
None

Smartphone (please complete the following information):
None

Additional context
None

BTW I post the same post 3 days ago, and It be comes hidden, it it appear again please help to delete the duplicated post thanks.

->
Our automated spam filter, Akismet, has temporarily hidden your post in Customize of zoom android sdk issues for review.

A staff member will review your post soon, and it should appear shortly.

Hi John Doe,

Thanks for the post. I will work with the engineers regarding your questions and get back to you asap.

Thanks!

Thanks, finally have a response.
Hope to solve these problems soon, I’ve been stuck here for quite a while and it’s really frustrated.

Hi John_Doe,

Thanks for the reply. Regarding your questions:

  1. Is it possible to know the duration of current meeting when a new user came into a meeting?Like, A and B are having a meeting and it last 10 mins, suddenly C join in the meeting, can zoom android sdk provide some api that C can know the meeting has already last 10 mins?

Our Android SDK does not have the API for the scenario you are describing. You may use Zoom API to retrieve participant information:https://marketplace.zoom.us/docs/api-reference/zoom-api/reports/reportmeetingparticipants

  1. Its it possible to know that the current meeting has 40 mins limits? I notice that for free user If the meeting have more than 3 people, there will be a 40 mins limit and the pro user have no such limit. So it possible to know this info from the android sdk after a user join into the meeting? I want to inform user in advance.

Our SDK has handled this for you. When the 40 mins limit is approaching, there will be an alert saying that the meeting is approaching 40 mins. So you don’t need to take care of this part.

  1. Does the zoom have some kind of time out mechanism when a user disconnect for quite a while? And can the sdk tell if the user still in a particular meeting? Let’s say user A is having a meeting but suddenly somehow app crash, when the user restarts the app, can the zoom sdk tell us that user A have been inside a meeting that not finish yet? So that then can guide user to rejoin the meeting. And if he leave meeting because of timeout, or the meeting is already over, We’ll not guide the user.

When an SDK app suddenly crashed or being closed by the user in an unexpected way, the user will show in the participant’s list for a few more seconds until the server. Our server has the mechanism to detect whether a user is active or not, so you don’t need to handle this part as well. Once the user restarts the app, then you can join the same meeting again. For a Zoom meeting, there is no “finished” concept, as long as the host has not ended the meeting/or the min limit has not been reached, then any user can join the meeting again to continue the conversation.

  1. I notice that when user is having a meeting, whenever someone come and leave, the sdk will notify by the user id. Is this id can be considered not the user’s identity and it’s something like id only use in the meeting? I tested and found that say user A join a meeting and got his id 123, and then A left, then A join again, then I got his id 456. And sometimes it keep 123. So this is a little bit confused, can give more information about this?

The User ID you are mentioning are the in-meeting participant ID, it is not the UUID of a specific user. The user ID here is randomly assigned in each meeting(so it could be different in different meetings) and can be used to pass to SDK interface to perform operations for a user.

  1. Why the email field in the user info can be some random string? Our company have bought the business license and there are some account under the “main account?” and I tested and found out that when I try to get the user info from these accounts, the email field will return some random string, but these account surely have proper email address. And I test my free personal account and I can get XXX@gmail.com. For those accounts under the main account I’m sure they all have the proper email address like XXX@XX.com. So how does these happen? Can I restore the “random string” to the original account by some method?

Could you provide more information on this one? The description sounds unexpected. What is the SDK version are you using? Are you able to reproduce this with our demo app? Could you provide the steps to reproduce this?

  1. Our company had bought the zoom’s service and there’s some account (with devices?) can create meeting in the meeting room. For those meeting create by devices, first time we try to join with joinMeeting api with JoinMeetingParams but fail and we think it’s because for JoinMeetingParams it lack of authenticate info. So we try to call startMeetingWithParams with StartMeetingParams(it need to pass the token and zak) to join a device host meeting and it work! However, later we found that the StartMeetingParams cannot pass the password, only JoinMeetingParams can, so when the device host meeting needs the password, both way fail. For JoinMeetingParams we lack of authenticate info, for StartMeetingParams we lack of password, so how to solve this?

Are you trying to use Android SDK app to join the meetings created by Zoom Room? The StartMeeting is designed for the host to start meeting thus it is not ideal to ask the host for the meeting password. What kind of errors are you getting when trying to join the meeting?

Hope this helps. Thanks!

Hi Carson_Chen,

Thank you so much for your reply and it really helps.

And there’s some thing might need to further discuss.

2.When 40 mins limit approaching, what will zoom alert user? By dialog? Toast? Is there any ways to customize this part? Our PM might have their own plan. Will zoom sdk give us some callback or something?

3.I understand the no “finished” concept now, thanks. So when the user restart the app, how can we get the info of whether the meeting is ended(maybe by 40 mins limit or everyone leave the meeting)? I notice there’s a Api https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting can check the meeting status, can we use this to decide whether the meeting is ended?

5.For this case I check with our server and found out that this is the userId indeed. We have migrate the sdk to our app and there’s large part handle by server so I think it cannot be reproduce on demo app. But I can explain the as the flowing:
In our app, we start a meeting with by the following code:
zoomSdk.meetingService.startMeetingWithParams(context,StartMeetingParamsWithoutLogin().apply {
userId = serverReturnUserId
zoomToken = serverReturnZoomToken
zoomAccessToken = serverReturnZoomAccessToken
userType = MeetingService.USER_TYPE_API_USER
displayName = myDisplayName
})
The first three params are retrieve by our server.
And when sdk callback the status is inMeeting, we call Log.d(TAG, “my email:” + zoomSdk.inMeetingService.myUserInfo?.email) and it will return some “random string” -> my email:7iOdbzqbT7Wm9F5-SLYHPA(we later found that it’s the userId), for these account the email should be lirui@seafroup.com. Is is expected? Although it’s kinda weird to put it in email field but it’s ok now, we can ask the server to parse userId to email. So this can be consider solved. Thanks anyway.

6.Yes we are trying to use Android SDK app to join the meeting created by Zoom Room I think so.
So if we use
zoomSdk.meetingService.joinMeetingWithParams(context, JoinMeetingParams().apply{
meetingNo = zoomRoomMeetingNo
displayName = myDisplayName
}
will recieved a onMeetingFail callback, errorCode and internalErrorCode are: 20 23
I check the doc that it’s “User needs to login if the user wants to join the webinar”
However it’s an api user we can only join with token.
If we use startMeetingWithParams and pass zoomToken and zoomAccessToken, we can join into the Zoom Room, so we use it instead.
And I didn’t find place to set password or lock the meeting in the Zoom Room Pad, so password problem can be ignore, for now?

And there’s some more issue.
7.Did the zoom sdk provide the “disable sound” feature? I mean enable or disable the audio track from the meeting room. It’s not mute my voice, it’s disable the voice from other people in the meeting. Did zoom sdk provide this feature? Or I have to mute the android system sound to achieve this goal?

8.When user join into or leave the meeting, it looks like it will have some ring-tone like “ding-ling”, can we disable that?

Thanks again for your reply, it really helps!

Hi John_Doe,

Thanks for the reply. Regarding your questions:

2.When 40 mins limit approaching, what will zoom alert user? By dialog? Toast? Is there any ways to customize this part? Our PM might have their own plan. Will zoom sdk give us some callback or something?

It will be a dialog, when there are 10 minutes left, it will show this:


When the 40 minutes limit has reached, it will show this:

This is part is not customizable. When the meeting reaches 40 minutes limit, the meeting will end, you can implement the onMeetingStatusChanged and get notifications when the meeting ends.

3.I understand the no “finished” concept now, thanks. So when the user restart the app, how can we get the info of whether the meeting is ended(maybe by 40 mins limit or everyone leave the meeting)? I notice there’s a Api https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting can check the meeting status, can we use this to decide whether the meeting is ended?

You can retrieve meeting status info from meetingService.getMeetingStatus(), and the available status is here:https://zoom.github.io/zoom-sdk-android/us/zoom/sdk/MeetingStatus.html. You can refer to the implementation in the demo app: https://github.com/zoom/zoom-sdk-android/blob/master/mobilertc-android-studio/example2/src/main/java/us/zoom/sdkexample2/MainActivity.java#L116

5.For this case I check with our server and found out that this is the userId indeed. We have migrate the sdk to our app and there’s large part handle by server so I think it cannot be reproduce on demo app. But I can explain the as the flowing:
In our app, we start a meeting with by the following code:
zoomSdk.meetingService.startMeetingWithParams(context,StartMeetingParamsWithoutLogin().apply {
userId = serverReturnUserId
zoomToken = serverReturnZoomToken
zoomAccessToken = serverReturnZoomAccessToken
userType = MeetingService.USER_TYPE_API_USER
displayName = myDisplayName
})
The first three params are retrieve by our server.
And when sdk callback the status is inMeeting, we call Log.d(TAG, “my email:” + zoomSdk.inMeetingService.myUserInfo?.email) and it will return some “random string” -> my email:7iOdbzqbT7Wm9F5-SLYHPA(we later found that it’s the userId), for these account the email should be lirui@seafroup.com. Is is expected? Although it’s kinda weird to put it in email field but it’s ok now, we can ask the server to parse userId to email. So this can be consider solved. Thanks anyway.

Thanks for the details. We will look into this.

6.Yes we are trying to use Android SDK app to join the meeting created by Zoom Room I think so.
So if we use
zoomSdk.meetingService.joinMeetingWithParams(context, JoinMeetingParams().apply{
meetingNo = zoomRoomMeetingNo
displayName = myDisplayName
}
will recieved a onMeetingFail callback, errorCode and internalErrorCode are: 20 23
I check the doc that it’s “User needs to login if the user wants to join the webinar”
However it’s an api user we can only join with token.
If we use startMeetingWithParams and pass zoomToken and zoomAccessToken, we can join into the Zoom Room, so we use it instead.
And I didn’t find place to set password or lock the meeting in the Zoom Room Pad, so password problem can be ignore, for now?

Even though the Zoom Client and Zoom Room can join the same meeting, but in fact, they are 2 separated products. Our Client SDK is for the Zoom Client and we have not tested the scenarios you are mentioning. For the error code you are mentioning, are you getting 20&23 or 2023?

And there’s some more issue.

7.Did the zoom sdk provide the “disable sound” feature? I mean enable or disable the audio track from the meeting room. It’s not mute my voice, it’s disable the voice from other people in the meeting. Did zoom sdk provide this feature? Or I have to mute the android system sound to achieve this goal?

Zoom Room is an individual product and our Client SDK does not have the ability to control Zoom Room. You might need to contact the Zoom Room team for further support on this.

8.When user join into or leave the meeting, it looks like it will have some ring-tone like “ding-ling”, can we disable that?

You could use https://zoom.github.io/zoom-sdk-android/us/zoom/sdk/InMeetingService.html#setPlayChimeOnOff-boolean- to disable this sound.

Hope this helps. Thanks!

Thank you so much, it helps a lot!

For 6. use android sdk to join Zoom Room, Sorry I didn’t explain clearly, we got errorCode=20, internalErrorCode=23 on onMeetingFail callback. So for now we use startMeeting api to join Zoom Room. It’s the only way for now as the api user. Hope that there might be a proper method in the future.

There’s no more problems for now.
Thank you so much!

Hi,

Thanks for the reply. We will continue investigate the scenario you are mentioning. Glad to hear that the problems are all clear at the moment.

Thanks!