{"id":20364363,"url":"https://github.com/bandwidth/webrtc-sample-conference-node","last_synced_at":"2025-04-12T04:41:40.780Z","repository":{"id":42569139,"uuid":"237040408","full_name":"Bandwidth/webrtc-sample-conference-node","owner":"Bandwidth","description":"Conferencing sample app for Node.js using Bandwidth WebRTC","archived":false,"fork":false,"pushed_at":"2023-07-11T00:44:23.000Z","size":15820,"stargazers_count":3,"open_issues_count":7,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-26T00:11:36.845Z","etag":null,"topics":["edgeservices","example","webrtc"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bandwidth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null}},"created_at":"2020-01-29T17:19:20.000Z","updated_at":"2022-11-15T15:38:42.000Z","dependencies_parsed_at":"2024-11-15T01:15:05.928Z","dependency_job_id":null,"html_url":"https://github.com/Bandwidth/webrtc-sample-conference-node","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandwidth%2Fwebrtc-sample-conference-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandwidth%2Fwebrtc-sample-conference-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandwidth%2Fwebrtc-sample-conference-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandwidth%2Fwebrtc-sample-conference-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bandwidth","download_url":"https://codeload.github.com/Bandwidth/webrtc-sample-conference-node/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248519302,"owners_count":21117756,"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","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":["edgeservices","example","webrtc"],"created_at":"2024-11-15T00:11:24.876Z","updated_at":"2025-04-12T04:41:40.757Z","avatar_url":"https://github.com/Bandwidth.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Conferencing sample app for Node.js using Bandwidth WebRTC\n\nTo run this sample, you'll a Bandwidth phone number, Voice API credentials and WebRTC enabled for your account. Please check with your Bandwidth Account Manager to ensure you are provisioned for WebRTC.\n\nThis sample will need to be publicly accessible to the internet in order for Bandwidth API callbacks to work properly. Otherwise you'll need a tool like [ngrok](https://ngrok.com) to provide access from Bandwidth API callbacks to localhost.\n\n**Unless you are running on `localhost`, you will need to use HTTPS**. Most modern browsers require a secure context when accessing cameras and microphones.\n\nNote that this sample currently works best in Chrome.\n\n## Create a Bandwidth Voice API application\n\nFollow the steps in [How to Create a Voice API Application](https://support.bandwidth.com/hc/en-us/articles/360035060934-How-to-Create-a-Voice-API-Application-V2) to create your Voice API appliation.\n\nIn steps 7 and 8, make sure they are set to POST.\n\nIn step 9, for **Call initiated callback URL**, provide the publicly accessible URL of your sample app. You need to add `/callback/incoming` to the end of this URL in the Voice Application settings.\n\nYou do no need to set a callback user ID or password. \n\nCreate the application and make note of your _Application ID_.\n\n## Pull the source for this sample app\n\nThis git repo uses a submodule for the /frontend code, so when you clone this repo, please make sure you use the --recursive flag, like this, (from a bash terminal):\n```bash\n$ git clone --recursive https://github.com/Bandwidth/webrtc-sample-conference-node.git  \n```\n\nThen go into your new repo directory:\n```bash\n$ cd webrtc-sample-conference-node\n```\n\n## Configure your sample app\n\nCopy the default configuration file to make your own configuration file for the required environment variables:\n```bash\ncp .env.default .env\n```\n\nAdd your Bandwidth account settings to `.env`:\n\n* ACCOUNT\\_ID\n* BW_USERNAME\n* BW_PASSWORD\n\n* WEBRTC_HTTP_SERVER_URL (Customer API URL, which defaults to `https://api.webrtc.bandwidth.com/v1`. Optionally override if you want to use your personal stack instead, i.e. `https://sife6x5c6l.execute-api.us-east-1.amazonaws.com/v1`)\n* WEBRTC_DEVICE_URL (Device Websocket API URL, which defaults to `wss://device.webrtc.bandwidth.com`. Optionally override if you want to use your personal stack instead, i.e. `wss://t7b04iwatb.execute-api.us-east-1.amazonaws.com`)\n* CALLBACK\\_URL (the publicly accessible URL for your app, i.e. ngrok URL, with no trailing slash)\n\nAdd your Voice Application settings to `.env`:\n* VOICE\\_NUMBER (Bandwith phone number associated with the Voice Application in [E.164 format](https://www.bandwidth.com/glossary/e164/))\n\n## Install dependencies and build\n\n```bash\nnpm install\nnpm start\n```\n\n### Start a conference\nBrowse to [http://localhost:3000](http://localhost:3000) and start a conference.\n\n(Note: If you want to use a different port number, add a PORT={port number you want to use} to your .env file or otherwise as an environment variable.)\n\nYou should now be able to dial into your phone number, punch in your conference code, and be connected to your conference.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbandwidth%2Fwebrtc-sample-conference-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbandwidth%2Fwebrtc-sample-conference-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbandwidth%2Fwebrtc-sample-conference-node/lists"}