Video Call Service

Standalone WebRTC signaling & TURN — test console

Create a Test Room

Checking server...

Open each link in a separate browser tab (or different browsers) to test the video call.

API Usage

Use this service from any app (PHP, Python, Node, etc.) — just like Zoom's API.

POST /api/rooms Authorization: Bearer <API_KEY> Content-Type: application/json { "room_id": "consult-123", // optional, auto-generated if omitted "participants": [ { "role": "specialist", "name": "Dr. Popescu" }, { "role": "patient", "name": "Ion Ionescu" } ], "metadata": { "booking_id": 456 } // optional, attached to tokens } // Response: { "room_id": "consult-123", "participants": [ { "role": "specialist", "name": "Dr. Popescu", "token": "eyJ...", "join_url": "http://..." }, { "role": "patient", "name": "Ion Ionescu", "token": "eyJ...", "join_url": "http://..." } ] }
POST /api/tokens Authorization: Bearer <API_KEY> Content-Type: application/json { "room_id": "consult-123", "role": "specialist", "name": "Dr. Popescu" }
// Replace generateMeetingLink() — same pattern as Zoom API function generateMeetingLink($specialist, $patient) { $ch = curl_init('http://45.84.138.64/api/rooms'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json', 'Authorization: Bearer YOUR_API_KEY' ]); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([ 'participants' => [ ['role'=>'specialist', 'name'=>$specialist], ['role'=>'patient', 'name'=>$patient], ] ])); $res = json_decode(curl_exec($ch), true); curl_close($ch); return $res; // has join_url for each participant }