eggnstone/eggnstone_amazon_chime

Where to put serverless app URL?

sultankh18 opened this issue · 7 comments

Hi, I've implemented Amazon Chime on native android using their Android SDK and demo application. In your demo code i can't figure out where to put the URL of the serverless app deployed on Cloud9. Also don't understand what the 4 URLs which you pass as parameters in the createMeetingSession method do.
A bit of help would be appreciated. Thank you.
Capture

I haven't used the serverless app yet. How do you create a session with it?

The mediaplacement URLs probably point to the servers that handle the audio and video streams.
All that data is what you get when you create a meeting and then an attendee.

When implementing the native android SDK for chime one of the prerequisites is to deploy the Amazon Javascript SDK provided by Amazon here [https://github.com/aws/amazon-chime-sdk-js] as a serverless application on a Cloud9 enviornment using your IAM user.
The URL is then put in the string resources of the native android demo application and used to create a meeting session.
How can you create a meeting session without using the serverless app?
Capture2
Capture3

Can you please give an example of the meeting data which we should put here (authentic data and not dummy values)
Capture
Capture4

The URLs are taken from real meetings except I replaced the actual IDs. Having them won't help you. Chime is a paid service so you need to be able to set up the meetings with the Chime Admin SDK which then gives you these details for the actual meeting.
Using the serverless app probably takes a different approach.
Again: how do you create a meeting session with the serverless app?

So once you deploy the Chime-JS SDK on your Cloud9 environment it also includes a demo web application to which you then get the URL of; something like this https://4oXXXXXXXX.execute-api.eu-central-1.amazonaws.com/Prod/
Then you use the URL in your native android app (code snippet provided below) to create a new URL by adding your desired 'Meeting ID' and 'Attendee name' like in the code below. This URL basically works as an API endpoint which you make a HTTP request to and use the JSON response to handle different aspects of your meeting. Calling the URL will start a new meeting with the provided meeting ID if the meeting doesn't exist yet.
If you want me to explain further how the response is used in the app kindly tell me to in your response. Will require a really long comment though 😬.

P.S. are you implying that this library does not allow the user to start a meeting but only join a meeting already created?

Capture5

What does the function joinMeeting return? Can you give an example?

P.S. are you implying that this library does not allow the user to start a meeting but only join a meeting already created?

Correct. The client SDK has no AWS credentials and therefore cannot create meetings that would cost you money, otherwise anyone using your app could create private meetings costing your money.
You therefore need a server app that creates meetings and attendees and then sends the details including the jointoken to the client so that the client then using this data can join.

Can we close this issue?