A text, audio and video chat application built with webRTC and Ratchet (PHP WebSocket)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Amir fa3b57170a
Merge pull request #54 from amirsanni/dependabot/composer/guzzlehttp/psr7-1.8.5
3 years ago
css box-shadow 5 years ago
img Change image extension to lowercase 6 years ago
js add nl2br and fix auto-open chat bug 5 years ago
media Files Created 8 years ago
ws/bin Update websocket connection URL 5 years ago
.gitattributes 🍭 Added .gitattributes & .gitignore files 8 years ago
.gitignore Change vendor dir and remove it from git 5 years ago
README.md Update README.md 5 years ago
SECURITY.md Create SECURITY.md 4 years ago
Server.example.php Create sample Server.php file 6 years ago
comm.html add nl2br and fix auto-open chat bug 5 years ago
composer.json Change vendor dir and remove it from git 5 years ago
composer.lock Bump guzzlehttp/psr7 from 1.6.1 to 1.8.5 3 years ago
create-ratchet-as-a-service-with-daemon.txt Add files via upload 7 years ago
index.html .php extension removed 8 years ago
install-start-stop-daemon.txt Update install-start-stop-daemon.txt 6 years ago
ratchet_as_a_service.txt Added Guide on Creating Ratchet as a Service on CentOS7 8 years ago

README.md

Video Call App

A one-to-one text, audio and video chat application built with WebRTC and RatchetPHP.

Requirements

  • PHP >= 5.4
  • Composer

Features

  • Video call
  • Audio call
  • Recording
  • Text chat
  • Two participants only

If you require more than two participants, check out this and this.

Getting Started

To test this app on your local server:

  • Run composer install from the root directory to install dependencies.
  • Set your app root (base url) in /js/config.js.
  • Open /ws/bin/server.php and add your domain name and/or ip address to $allowed_origins array, then replace the localhost and PORT in $app = new Ratchet\App('localhost', PORT, '0.0.0.0'); with either your domain name or ip address and Port number respectively.
  • Set your web socket url in /js/config.js. Ensure the domain name and port matches what you set above. Use wss for secured connection.
  • Start Ratchet server by executing php ws/bin/server.php from your CLI.
  • Blam! Good to go. Open the app on two different devices to start chatting.
  • Works best on Chrome, Firefox and the latest versions of Opera desktop browser.
  • Xirsys' free STUN/TURN servers were used. If interested, you can get a free xirsys account, rename Server.example.php to Server.php and update it with your free credentials. Alternatively, you can use any STUN/TURN of your choice.

Note

To host this online, you'll need to set up a few things:

  • Create Ratchet as a service so it can run persistently on your server. Check the file create-ratchet-as-a-service-with-daemon.txt for the guide on how to do this on linux servers.

  • If on SSL, Ratchet won't work unless you make some changes on your server.

    • Enable mod_proxy.so

    • Enable mod_proxy_wstunnel.so

    • Open your apache SSL config file and add this: ProxyPass /wss-secured/ ws://WEB_SOCKET_DOMAIN:WEB_SOCKET_PORT/

      e.g. ProxyPass /wss-secured/ ws://www.abc.xyz:PORT/

      Note that you can substitute the wss-secured above with any path of your choice but you have to use the same path while connecting from the front-end as shown below.

    • Update your web socket url in /js/config.js:

      const wsUrl = 'wss://YOUR_WEB_SOCKET_DOMAIN/wss-secured';

  • Please note that most browsers will not allow access to media devices except the application is running on SSL or localhost (127.0.0.1).

Demo

You can test at https://1410inc.xyz/video-call-app.