{"id":27657192,"url":"https://github.com/sendbird/sendbird-calls-sdk-unity","last_synced_at":"2025-10-18T02:41:31.333Z","repository":{"id":44422623,"uuid":"506845823","full_name":"sendbird/sendbird-calls-sdk-unity","owner":"sendbird","description":"A guide of Sendbird Calls SDK for Unity for an engaging voice and video call experience.","archived":false,"fork":false,"pushed_at":"2024-04-09T04:12:10.000Z","size":488,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-24T06:55:19.607Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sendbird.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-06-24T01:52:56.000Z","updated_at":"2023-10-24T02:03:09.000Z","dependencies_parsed_at":"2024-04-09T05:23:07.818Z","dependency_job_id":"a9010ddf-a214-4c05-bf7f-bb8c30471441","html_url":"https://github.com/sendbird/sendbird-calls-sdk-unity","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/sendbird/sendbird-calls-sdk-unity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-calls-sdk-unity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-calls-sdk-unity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-calls-sdk-unity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-calls-sdk-unity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sendbird","download_url":"https://codeload.github.com/sendbird/sendbird-calls-sdk-unity/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-calls-sdk-unity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272817211,"owners_count":24997950,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-24T06:55:18.456Z","updated_at":"2025-10-18T02:41:31.256Z","avatar_url":"https://github.com/sendbird.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sendbird Calls Unity SDK\n\n\u003cspan\u003e\n\u003cimg src=\"https://img.shields.io/badge/Unity-2019.4+-black?logo=unity\" alt=\"Unity 2019.4+\" \u003e\n\u003c/span\u003e\n\n\n## Table of contents\n\n1. [Introduction](#introduction)\n2. [Before getting started](#before-getting-started)\n3. [Getting started](#getting-started)\n4. [Making your first call](#making-your-first-call)\n5. [Samples](#samples)\n6. [Additional Notes](#additional-notes)\n7. [Appendix](#appendix)\n\n## Introduction\n\n**Sendbird Calls** is the latest addition to our product portfolio. It enables real-time calls between users within a Sendbird application. SDKs are provided for iOS, Android, Windows, and macOS. Using any one of these, developers can quickly integrate voice call functions into their own client apps, allowing users to web-based real-time voice group call on the Sendbird platform.\n\n\u003e If you need any help in resolving any issues or have questions, please visit [our community](https://community.sendbird.com)\n\n### How it works\n\nSendbird Calls SDK for Unity provides a framework for creating and joining voice group calls.\n\n### More about Sendbird Calls SDK for Unity\n\nFind out more about Sendbird Calls for Unity on [Calls SDK for Unity doc](SendbirdCallsUnityDocumentation.pdf) or [API References](https://sendbird.com/docs/calls/v1/unity/ref/index.html).\n\n\n## Before getting started\n\nThis section shows the prerequisites you need to check to use Sendbird Calls SDK for Unity.\n\n### Requirements\n\n- Unity 2019.4 or higher\n\n### SDK dependencies\n\n- [Unity WebRTC](https://docs.unity3d.com/Packages/com.unity.webrtc@2.4/manual/index.html), It is installed together with the Calls SDK installation.\n- [Newtonsoft Json](https://docs.unity3d.com/Packages/com.unity.nuget.newtonsoft-json@2.0/manual/index.html), It is installed together with the Calls SDK installation.\n\n### Supported Platforms\n\n\u003cspan\u003e\n\u003cimg src=\"https://img.shields.io/badge/iOS-black?logo=ios\" alt=\"ios\" \u003e\n\u003cimg src=\"https://img.shields.io/badge/Windows-black?logo=windows\" alt=\"windows\" \u003e\n\u003cimg src=\"https://img.shields.io/badge/macOS-black?logo=macos\" alt=\"macos\" \u003e\n\u003cimg src=\"https://img.shields.io/badge/Android-black?logo=android\" alt=\"android\" \u003e\n\u003c/span\u003e\n\n* Please note that there are unsupported platforms below.\n  * **Windows UWP** platform is not supported.\n  * Building for **iOS Simulator** is not supported.\n  * Building for **Android ARMv7** is not supported.\n  * **WebGL** platform is not supported.\n\n\n## Getting started\n\nThis section gives you information you need to get started with Sendbird Calls SDK for Unity.\n\n### Install Calls SDK\n\n1. Select Window/Package Manager in the menu bar.\n2. Click `+` button at the top left of the window, and select `Add package from git URL...`\n3. Input the string below to the input field.\u003cbr/\u003e\n`https://github.com/sendbird/sendbird-calls-unity.git`\n4. Click `Add` button, and will start install the package.\u003cbr\u003e\n   [See the Install documentation.](Documentation~/Install.md)\n\n## Making your first call\n\nFollow the step-by-step instructions below to authenticate and make your first call.\n\n### Step 1: Create a Sendbird application\n\n1. Login or Sign-up for an account on [Sendbird Dashboard](https://dashboard.sendbird.com/).\n2. Create or select a call-activated application on the dashboard.\n3. Keep your Sendbird application ID(`APP_ID`) in a safe place for future reference.\n\n### Step 2: Initialize the SendbirdCall instance in a client app\n\nTo integrate and run Sendbird Calls in your application, you need to initialize it first. Initialize the `SendbirdCall` instance by using the `APP_ID` of your Sendbird application, which can be found on the [Sendbird Dashboard](https://dashboard.sendbird.com/) after creating an application. If the instance is initialized with a different `APP_ID`, all existing call-related data in a client app will be cleared and the SendbirdCall instance will be initialized again with the new `APP_ID`.\n\n```csharp\n// Initialize SendbirdCall instance to use APIs in your app.\nSendbirdCall.Init(APP_ID);\n```\n\n### Step 3: Authenticate a user\n\nTo start a group call, authenticate a user to Sendbird server by using their user Id through the authenticate() method.\n```csharp\n // The USER_ID below should be unique to your Sendbird application.\nSbAuthenticateParams authenticateParams = new SbAuthenticateParams(USER_ID);\nSendbirdCall.Authenticate(authenticateParams, (user, error) =\u003e\n{\n    if( error == null ){/* The user has been authenticated successfully and is connected to Sendbird server. */}\n});\n```\n\n### Step 4: Create a room\n\nWhen creating your first room for a group call, you can create a room that supports up to 100 participants with audio. When the room is created, a `ROOM_ID` is generated.\n```csharp\nSbRoomParams roomParams = new SbRoomParams();\nSendbirdCall.CreateRoom(roomParams, (room, error) =\u003e\n{\n    if( error == null ){/* `room` is created with a unique identifier `room.RoomId`. */}\n});\n```\n\n### Step 5: Enter a room\n\nYou can now enter a room and start your first group call. When you enter a room, a participant is created with a unique participant Id to represent the user in the room.\n\nTo enter a room, you must acquire the room instance from Sendbird server with the room Id. To fetch the most up-to-date room instance from Sendbird server, use the SendbirdCall.FetchRoomById() method. Also, you can use the SendbirdCall.GetCachedRoomById() method that returns the most recently cached room instance from Sendbird Calls SDK.\n```csharp\nSendbirdCall.FetchRoomById(ROOM_ID, (room, error) =\u003e\n{\n    if( error == null ){/* `room` with the identifier `ROOM_ID` is fetched from Sendbird Server. */}\n});\n\nSbRoom room = SendbirdCall.GetCachedRoomById(ROOM_ID);\n// Returns the most recently cached room with the identifier `ROOM_ID` from the SDK.\n// If there is no such room with the given room Id, `null` is returned.\n```\n\nOnce the room is retrieved, call the SbRoom.Enter() method to enter the room.\n```csharp\nSbRoomEnterParams roomEnterParams = new SbRoomEnterParams();\nroom.Enter(roomEnterParams, (error) =\u003e\n{\n    if( error == null ){/* User has successfully entered `room`. */}\n});\n```\n\n## Samples\n1. If the SDK is not installed, you need to [install the SDK](#getting-started) first.\n2. To get these samples, Push the `Import into Project` button on Package Manager.\n3. Open `SampleVoiceGroupCalls.unity` scene.\u003cbr/\u003e\n   [See the Samples documentation.](Documentation~/Sample.md)\n\n## Additional Notes\n\n### Build on Android\nTo build the apk file for Android platform, you need to configure player settings below.\n* Choose **IL2CPP** for **Scripting backend** in Player Settings Window.\n* Set enable **ARM64** and Set disable **ARMv7** for **Target Architectures** setting in Player Settings Window.\n\n### Build on iOS and macOS\nIf building app for iOS and macOS, you need to add description for MicrophoneUsageDescription on PlayerSettings.(If not add description, build is failed.)\n\n[See the Additional Notes documentation.](Documentation~/AdditionalNotes.md)\n\n## Appendix\n\n### Call relay protocol\n\nSendbird Calls is based on WebRTC to enable real-time calls between users with P2P connections, but sometimes connectivity issues may occur for users due to network policies that won’t allow WebRTC communications through Firewalls and NATs (Network Address Translators). For this, Sendbird Calls uses two different types of protocols, **Session Traversal Utilities for NAT (STUN)** and **Traversal Using Relays around NAT (TURN)**. **STUN** and **TURN** are protocols that support establishing a connection between users.\n\n\u003e **Note**: See our [GitHub page](https://github.com/sendbird/guidelines-calls/tree/master/Recommendation%20on%20firewall%20configuration) to learn about the requirements and how to use the Calls SDKs behind a firewall.\n\n---\n\n#### How STUN and TURN works\n\nSession Traversal Utilities for NAT (STUN) is a protocol that helps hosts to discover the presence of a NAT and the IP address, which eventually makes the connection between two endpoints. Traversal Using Relays around NAT (TURN) is a protocol that serves as a relay extension for data between two parties.\n\nSendbird Calls first try to make a P2P connection directly using the Calls SDK. If a user is behind a NAT/Firewall, Calls will discover the host's public IP address as a location to establish connection using STUN. In most cases, STUN server is only used during the connection setup and once the session has been established, media will flow directly between two users. If the NAT/Firewall still won't allow the two users to connect directly, TURN server will be used to make a connection to relay the media data between two users. Most of the WebRTC traffic is connected with STUN.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsendbird%2Fsendbird-calls-sdk-unity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsendbird%2Fsendbird-calls-sdk-unity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsendbird%2Fsendbird-calls-sdk-unity/lists"}