All Projects → EnableX → One-to-One-Video-Calling-Open-Source-PHP-Application

EnableX / One-to-One-Video-Calling-Open-Source-PHP-Application

Licence: other
This Sample PHP Application demonstrates the use of EnableX webRTC Platform Server APIs and JavaScript Toolkit to develop one to one real time communication (RTC) application. It allows developers to ramp up on app development by hosting on their own devices.

Programming Languages

PHP
23972 projects - #3 most used programming language
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to One-to-One-Video-Calling-Open-Source-PHP-Application

WebRTC-Python-Open-Source-Application-for-1-to-1-video-chat
This Sample Python Application demonstrates the use of EnableX Platform Server APIs and JavaScript Toolkit to develop basic one to one video chat application. It allows developers to ramp up on app development by hosting on their own devices.
Stars: ✭ 12 (-7.69%)
Mutual labels:  webrtc-demos, videochat, videocall, enablex, enablex-platform
Cuckoo
🎥 Cuckoo - A free anonymous video-calling web application built with WebRTC and React that provides peer-to-peer video and audio communication in a web browser with no plugins or extensions required.
Stars: ✭ 195 (+1400%)
Mutual labels:  webrtc-demos
Webrtc android
webrtc VideoCall VideoConference 视频通话 视频会议
Stars: ✭ 764 (+5776.92%)
Mutual labels:  webrtc-demos
Webrtc Data Channel Demo
WebRTC Data Channel demo
Stars: ✭ 116 (+792.31%)
Mutual labels:  webrtc-demos
Analysisavp
音视频学习,相关文件格式/协议分析。h264 nalu aac adts flv
Stars: ✭ 38 (+192.31%)
Mutual labels:  webrtc-demos
Mobilecameratemplate
A HTML5, JS, CSS Camera interface template. Feel free to use it in your next Computer Vision or AI project.
Stars: ✭ 145 (+1015.38%)
Mutual labels:  webrtc-demos
Detectrtc
DetectRTC is a tiny JavaScript library that can be used to detect WebRTC features e.g. system having speakers, microphone or webcam, screen capturing is supported, number of audio/video devices etc. https://www.webrtc-experiment.com/DetectRTC/
Stars: ✭ 509 (+3815.38%)
Mutual labels:  webrtc-demos
demo-rails-webrtc
A demo project shows how to use webrtc on rails
Stars: ✭ 28 (+115.38%)
Mutual labels:  webrtc-demos
Rtcmulticonnection
RTCMultiConnection is a WebRTC JavaScript library for peer-to-peer applications (screen sharing, audio/video conferencing, file sharing, media streaming etc.)
Stars: ✭ 2,187 (+16723.08%)
Mutual labels:  webrtc-demos
Webrtc Experiment
WebRTC, WebRTC and WebRTC. Everything here is all about WebRTC!!
Stars: ✭ 10,335 (+79400%)
Mutual labels:  webrtc-demos
Translator
Translator.js is a JavaScript library built top on Google Speech-Recognition & Translation API to transcript and translate voice and text. It supports many locales and brings globalization in WebRTC! https://www.webrtc-experiment.com/Translator/
Stars: ✭ 103 (+692.31%)
Mutual labels:  webrtc-demos
Webrtc Demo
webrtc 演示示例
Stars: ✭ 74 (+469.23%)
Mutual labels:  webrtc-demos
Workerman Webrtc
php webrtc demo based on workerman
Stars: ✭ 161 (+1138.46%)
Mutual labels:  webrtc-demos
Webrtc Text Chat Tutorial
WebRTC Chat Tutorial for Scaledrone Realtime Messaging Service
Stars: ✭ 24 (+84.62%)
Mutual labels:  webrtc-demos
Mediastreamrecorder
Cross browser audio/video/screen recording. It supports Chrome, Firefox, Opera and Microsoft Edge. It even works on Android browsers. It follows latest MediaRecorder API standards and provides similar APIs.
Stars: ✭ 2,381 (+18215.38%)
Mutual labels:  webrtc-demos
Webrtc
A reference gradle project that let you explore WebRTC Android in Android Studio.
Stars: ✭ 562 (+4223.08%)
Mutual labels:  webrtc-demos
Learning Webrtc
Codes and notes while learning webrtc
Stars: ✭ 98 (+653.85%)
Mutual labels:  webrtc-demos
Samples
WebRTC Web demos and samples
Stars: ✭ 11,318 (+86961.54%)
Mutual labels:  webrtc-demos
connectycube-flutter-call-kit
A Flutter plugin for displaying call screen when the app in the background or terminated.
Stars: ✭ 35 (+169.23%)
Mutual labels:  videochat
Webrtcchat
🔏 Pure Browser To Browser Chat (STUN & ICE Servers optional)
Stars: ✭ 230 (+1669.23%)
Mutual labels:  webrtc-demos

1-to-1 RTC: A Sample Web App using PHP with EnableX Web Toolkit

The Sample Web App demonstrates the use of APIs for EnableX platform to develop basic 1-to-1 RTC (Real Time Communication) Application. The main motivation behind this application is to demonstrate usage of APIs and allow developers to ramp up on app by hosting on their own devices instead of directly using servers.

RTC Applications hosted on EnableX platform run natively on supported set of web browsers without any additional plugin downloads.

This basic 1-to-1 Video Chat Application is developed using HTML, CSS, Bootstrap, JavaScript, jQuery, PHP and EnxRtc (The EnableX Web Toolkit).

The details of the supported set of web browsers can be found here: https://developer.enablex.io/video/browser-compatibility-of-enablex-video/

1. Important!

When developing a Client Application with EnxRtc.js make sure to include the updated EnxRtc.js polyfills from https://developer.enablex.io/video-api/client-api/web-toolkit/ for RTCPeerConnection and getUserMedia. Otherwise your application will not work in web browsers.

2. Trial

Sign up for a free trial https://portal.enablex.io/cpaas/trial-sign-up/ or try our multiparty video chat https://try.enablex.io/.

3. Installation

3.1 Pre-Requisites

3.1.1 App Id and App Key

  • Register with EnableX [https://portal.enablex.io/cpaas/trial-sign-up/]
  • Create your Application
  • Get your App ID and App Key
  • Clone this repository git clone https://github.com/EnableX/One-to-One-Video-Calling-Open-Source-PHP-Application.git --recursive

#f03c15 Please note --recursive option. Repo should be cloned recursively to download client app.

  • You can copy the app into any sub-directory of hosted website on Apache

3.1.2 SSL Certificates

The Application needs to run on https. So, you need to use a valid SSL certificate for your domain and point your application to use them.

However you may use self-signed Certificate to run this application locally. There are many Web Sites to get a Self-Signed Certificate generated for you, Google it. Few among them are:

Alternatively you can create your self-signed certificate as below

  sudo openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 10000 -nodes
  sudo mv server.crt /etc/ssl/certs/ssl.crt
  sudo mv server.key /etc/ssl/private/ssl.key

Enable mod ssl and turn on ssl server

  sudo a2enmod ssl
  sudo a2ensite default-ssl
  sudo service apache2 restart

3.1.3 Configure

  • Before you can run this application, configure the service by editing api/config.php file to use your app ID and app key
  define("API_URL",	"https://api.enablex.io/v1");
  define("APP_ID",	"YOUR_APP_ID");
  define("APP_KEY",	"YOUR_APP_KEY");
  • Configure your application base URL by editing config.js file
var baseUrl = 'Your Application Base URL';

3.2 Test video call

  • Open a browser and go to https://localhost:443/path-to-sample-app/client/. The browser should load the App.
  • Go to -> Advanced -> Proceed to localhost
  • Don't have a Room ID? Create One (it creates a new Room ID) and have it pre-filled
  • Store the Room ID for future use or share it
  • Enter a user Name (e.g. test0)
  • Select Join as Moderator
  • Sign In and allow access to camera and microphone when prompted to start your first webRTC call through EnableX
  • Open another browser tab and enter https://localhost:443/path-to-sample-app/client/
  • Enter the same Room ID previously created, add a different user Name (e.g. test1) and select Join as Participant and click Sign In
  • Now, you should see your own video in both the tabs!

3.3 Test screen share

  • Once video call started, click on 'Desktop' icon to start screen share.
  • Once screen share started, layout for the presenter remain same (side by side video). However screen which is shared by presentor, is displayed to the person on other side by hiding the previous layout (side by side video).
  • Click on 'Desktop' icon to again to stop screen share.

4 Server API

EnableX Server API is a Rest API service meant to be called from Partners' Application Server to provision video enabled meeting rooms. API Access is given to each Application through the assigned App ID and App Key. So, the App ID and App Key are to be used as Username and Password respectively to pass as HTTP Basic Authentication header to access Server API.

For this application, the following Server API calls are used:

To know more about Server API, go to: https://developer.enablex.io/video-api/server-api/

5 Client API

Client End Point Application uses Web Toolkit EnxRtc.js to communicate with EnableX Servers to initiate and manage RTC Communications.

To know more about Client API, go to: https://developer.enablex.io/video-api/client-api/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].