Getting Started with Daily Prebuilt: Live Demo Recording, Q&A follow up

Tasha
Tasha Community Manager, Dailynista admin
edited April 2023 in Discussion

ICYMI: Here's a recording of the live demo that took place on Nov 30:

Getting Started with Daily Prebuilt

There are a few questions that were asked during the demo that we will follow up on below.

If you have additional questions, post them in the comments!

«1

Comments

  • Tasha
    Tasha Community Manager, Dailynista admin
    edited November 2022

    We had a great question about enabling participant knocking, and we wanted to provide some additional guidance. So @jack created this video. If you have more questions about enabling knocking, please share in the comments.


  • Tasha
    Tasha Community Manager, Dailynista admin

    Another question was about our documentation for using Real-Time Media Player (RTMP) in video calls.

    Here is a link to Daily's RTMP documentation.

    If you are new to RTMP, this blog post by @kwindla is super helpful.

    Video live streaming: Notes on RTMP, HLS, and WebRTC

  • daily_joey
    daily_joey Moderator, Dailynista admin

    We had a question about how Daily charges for recording storage, since we list separate rates for recording creation and for recordings stored on our cloud servers.

    Daily charges per minute of recording storage, and the number of days it is stored. We also pro-rate storage charges if a recording is deleted. For example, the following instances would be charged the same amount:

    • a 20 minute recording stored for 5 days
    • a 5 minute recording stored for 20 days

    For recordings not stored on Daily's servers (i.e. locally saved recordings, or stored using your own S3 bucket) there are no additional storage charges.

  • Tasha
    Tasha Community Manager, Dailynista admin

    Another question that was asked during the demo was:

    I saw you have call insights - where is that?

    If you have a Daily account, you can go to your dashboard to view session details, metrics, and logs.

    This blog post walks you through the basics.:

    Introducing Dashboard Sessions, metrics, and logs

    If you have additional questions about this, post them in this thread and we'll follow up.

  • Thanks for the video (I missed the live stream).

    Three beginners' questions:

    1. How do I as the room owner actually enter my room? (I installed prebuilt on one of my webpages ... and now 'request to join' .... but I guess that is for external persons wanting to videocall me)?
    2. Can I leave a room "alive" during the day, so people who have the link to the page can 'knock' to start a video call?
    3. How can I identify who is knocking?

    Thank you very much

    Tom

  • kwindla
    kwindla Community Manager, Dailynista admin

    Hi,


    1. It sounds like you are using a room with the privacy property set to private. You will need to create a meeting token that allows you to access the room. Here's a link to our documentation about controlling access to Daily rooms using privacy settings and meeting tokens: https://docs.daily.co/guides/configurations-and-settings/controlling-who-joins-a-meeting
    2. Rooms are always "alive" until you delete them. But to know if someone is knocking you will need to be joined to the room session so you can hear the knocking sound.
    3. To identify who is knocking, you can set the person's user name in your client-side code or the person can enter their name in the knocking screen.


  • Thank you for your detailed reply, yes it is a private room .... but I am still at a loss:

    How do I as the room owner get into my room so I can listen to knocks? :)

    Thanks for your patience.

  • Lazer
    Lazer Dailynista

    Hey, @DevSpain . So if I understand correctly you are embedding Prebuilt in your web app, correct? Not using a Daily Prebuilt URL directly?

    If you are embedding the Daily iframe in your own application, you'll want the meeting owner to get an "owner" meeting token for the room as part of their user flow and then specify it in the join() call.

    This part of our meeting token guide covers ways to get a meeting token: https://docs.daily.co/guides/privacy-and-security/meeting-tokens#getting-a-daily-meeting-token

    Basically, there are two options (examples of both are in the guide above):

    In both cases, you should add the "owner" claim when retrieving the token so that this token allows entry into the room. If getting a token through the REST API, include the is_owner property set to true in the request. If self-signing a token, add a claim named o in your payload, set to true(the docs above elaborate more on this!)

    Token retrieval should be done on the server side. This could be either your own standalone server or something like an AWS Lambda function. This is because token retrieval uses your Daily API key, which should not be exposed to a client. I have some additional examples of the code for this but don't want to make this message any ramblier than it needs to be, so just let me know if you want me to send some over :)

    So when you have an owner token, that will be sent back to the client, and specified as part of your `join()` call. It'll look something like this:


    ```

    const prebuilt = DailyIframe.createFrame();

    prebuilt.join({

    token: "your-token", // <-- Your token here

    url: "your-room-url"

    })

    ```

    I hope that helps! Let me know if you have any other questions or would like me to send over some more code samples.

  • Hello patient helper,

    Sorry if I sounded confusing. I use the Daily Prebuilt. This is what the code looks on my webpage (this part works, but my owner issue is unsolved):

    <script>

    callFrame = window.DailyIframe.createFrame({

    showLeaveButton: true,

    iframeStyle: {

    position: 'fixed',

    top: '50',

    left: '0',

    width: '100%',

    height: '100%',

    },

    });

    callFrame.join({ url: 'https://mydomain.daily.co..... etc',

    showLeaveButton: true ,

    showFullscreenButton: true,

    });

    </script>

  • nienke
    nienke Moderator, Dailynista admin

    Hey DevSpain! So in the part where you do this:

    `callFrame.join({ url: 'https://mydomain.daily.co..... etc',`

    You'll want to add a token. Like so:

    callFrame.join({
     url: 'https://mydomain.daily.co/roomname',
     token: 'my-awesome-token'
    })
    

    Have you been able to generate a token already? If not, you can use this cURL command:

    curl -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR-DAILY-API-KEY-GOES-HERE" \ -XPOST -d \ '{"properties":{"room_name":"YOUR-ROOM-NAME-GOES-HERE", "is_owner":true}}' \ https://api.daily.co/v1/meeting-tokens
    

    That commend will return a response that looks like this:

    {"token":"your-token"}
    

    You can find your Daily API key in your dashboard, under "Developers". Let me know if it doesn't work out!