•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  • Contact  
  •  

RTMP Session Control

Session Control for Streams (RTMP, WebRTC)

VideoWhisper Session Control module for Wowza SE, monitors and controls streaming sessions on server. Controls who can broadcast / view each stream and notifies web server efficiently about all live sessions (broadcasters and viewers).
- Includes all WebRTC sessions on Wowza SE (web broadcasters and viewers): WebRTC must be enabled on Wowza server configured with SSL certificate.
- Includes all RTMP sessions for VideoWhisper web applications and also 3rd party clients, like Open Broadcaster Software (OBS), Wirecast, iOS/Android Larix Broadcaster, Wowza GoCoder app for rtmp live broadcasting.

Why do you need functionality?

1) Mainly for securing access to you streaming server / account and also for specific features.
If a broadcaster connects directly with an external encoder application or web browser (WebRTC), the website scripts can be notified about this and authorize that stream.
Without the session control module, anybody can publish / play streams on your streaming server / account, streams don't show as live on web server and don't trigger features to extract live snapshots or transcode from web server.

2) For advanced features on web server like lists of online streams/performers, retrieving snapshots, recording streams and also controlling access and length of streaming sessions (in example for pay per minute or time limited memberships).
When notified about existing stream, web server can retrieve live snapshots from that stream and show on site. Also web scripts can communicate back to streaming server to disconnect a client when necessary (when setting broadcasting, watching limitations, if that user is not authorised to broadcast or view that stream).
Without the advanced functionality, live videochat/streaming works but access control, listings, external broadcasts and other advanced features implemented by streaming server side calls don't. Web server (your site) has no idea who's broadcasting or what or who's watching streams.

This functionality is not required for basic live streaming. When using other apps or direct methods like WebRTC to publish/playback streams (on streaming server), the web server needs to be notified about this to show updates on site. Stream securing and control functionality can also be implemented with other apps.

With this solution a single web request reports status for all connected streaming clients. This is recommended for complex web frameworks that need considerable CPU and memory for each request (ex. WordPress).

Session control on streaming side makes frequent requests to web server (each 10-15 seconds), but each request handles all sessions (compared to AJAX web requests where each client makes own requests). For Stream Session Control there's a fixed number of web requests (up to 6 per minute), independent of number of clients. This permits scaling to many users without big load on web server.

Live example of this functionality: BroadcastLiveVideo.com , PaidVideochat.com solutions.

Find on this page how to: license, install and configure.

VideoWhisper Session Control License for 3rd Party Hosts

A special license is required for each streaming server server (per IP). License can be rented flexibly with support (recommended) or purchased.

Rent VideoWhisper Stream Session Control License for 200$/license setup + 50$/month license rental & support & IP change [recommended]

Purchase VideoWhisper Stream Session Control License for 800$ lifetime license, only 1 year support & IP change

Stream Session Control license is NOT required when using VideoWhisper Turnkey Managed Complete Hosting or turnkey bundle plans, as VideoWhisper servers are already licensed and configured to meet all requirements.

Terms:

  • A license is per server IP (dedicated server / VPS). Main host public IP must be specified (ping server part of streaming / rtmp address to identify it).
  • Server IP can be corrected (changed) once for free, on request, within the first year after purchase and on each billing cycle for subscriptions. Extra changes can be processed for a standard installation/assistance fee. Changing server usually involves changing the IP.
  • License includes 1 installation of videowhisper application if hosting requirements are met (recent Wowza SE server installed, running and accessible). Also troubleshooting during subscription/support time.
  • VideoWhisper Stream Session Control license does not include licensing/installation/configuration of other software (for VideoWhisper web applications, Wowza Streaming Engine, FFmpeg, website scripts). These have to be ordered separately if needed for project.
  • Software is licensed for usage under certain terms, not sold. There is an End User License Agreement for the software distributed from this site.
  • Software source is not provided. Tweaks can be discussed and contracted.
  • Subscriptions (plans labeled as monthly, quarterly or other limited duration) are billed automatically until canceled. Subscriptions can be canceled anytime from the billing site where order was placed. If you wish to terminate a subscription, make sure you cancel it before billing date. After subscription cancellation service is terminated and can be reactivated anytime by ordering again.
  • Functionality is only available for Wowza Streaming Engine.

Installation and Setup of Stream Session Control
Requirements:
  1. License Stream Session Control functionality for your Wowza SE server. Send Wowza SE server IP in a ticketfor activating license. Without a license, module will not send status updates.
  2. Make sure you have latest Wowza Streaming Engine installed, running and accessible. Check by entering http://[your-server-ip]:1935/ in your browser.
  3. For HTML5 live streaming features, Wowza SE needs to be configured with SSL (StreamLock) and accessible by HTTPS. Test Wowza WebRTC samples for broadcast/playback to make sure configuration is correct. VideoWhisper solutions extend this functionality that needs to be configured and already working. Live streaming should already work, before activating advanced Stream Session Control features, as basic live streaming is not conditioned but required for the extra functionality. Configuring 3rd party streaming servers can be provided for extra, if current provider/administrator can't assist.
If you prefer VideoWhisper to install and configure Stream Session Control provide these details in a ticket:
  1. SSH root access credentials, to add latest library and restart Wowza SE service (that needs to be already installed, working and accessible).
  2. WP admin URL and credentials to retrieve web installation configuration, needed in Application.xml
  3. If basic live streaming (without session control) is not already functional in WP setup, include URL of Wowza WebRTC broadcast/playback samples and configuration to test with and extend.
To configure Stream Session Control yourself:
  1. Download and install latest VideoWhisper Module for Wowza SE. Restarting Wowza SE is required to load latest lib/videowhisper.jar library.
  2. Configure Application.xml properties for session control, to match web installation (for turnkey WP editions these settings can be copied from plugin settings, Server tab).
Configuring Wowza SE Application.xml for Custom Implementations
Stream Session Control can be used in own implementations to authorize streams (accept/reject streams) and also get updates and disconnect streams while these are live.

<Properties>
<Property>
<Name>acceptPlayers</Name>
<Value>true</Value>
</Property>
<Property>
<Name>webLogin</Name>
<Value></Value>
</Property>
<Property>
<Name>webKey</Name>
<Value>VideoWhisper</Value>
</Property>
<Property>
<Name>webLogout</Name>
<Value></Value>
</Property>
<Property>
<Name>webStatus</Name>
<Value></Value>
</Property>
</Properties>

  • acceptPlayers
    • Must be "true" to allow 3rd party applications to connect, without providing extra parameters as VideoWhisper applications do.
  • webLogin
    • URL will be called by rtmp side when a client connects. Will pass by GET session as "s" and rest of parameters received in rtmp address like.
      Ex: rtmp_login.php?s=$session&p[]=$username&p[]=$room&p[]=$key&p[]=$broadcaster&p[]=$broadcasterID&p=$clientIP
    • First and second parameters from rtmp address are used as session name and room name, by rtmp application, when external client connects.
      Ex: rtmp://server-ip-or-domain/videowhisper?$session&$room&$key&$broadcaster&$broadcasterid
    • Expects script output as a list of parameters (login, role, canKick) separated by & . Parameter login is required and must be 1 for connection to be accepted.
      Ex: login=1&role=1&canKick=1
  • webLogout
    • URL will be called when a client disconnects with session name as GET "s".
  • webStatus
    • This will only work when Stream Session Control feature in VideoWhisper module is licensed to run in full mode for that server IP.
    • URL will be called with "users", "rtpsessions" variables sent by POST containing sessions connected over RTMP (external app sessions and VideoWhisper web app users) and RTP (including WebRTC sessions).
      • "users" contains a PHP serialised array containing all connected users as sub arrays with keys:
        session, username, cam, mic, ip, runSeconds, rooms, role (1 for broadcaster, 0 for watcher), startTime, lastPing. For external apps multipe of these will not be defined.
      • "rtpsessions" ontains a PHP serialised array containing all connected RTP sessions (including WebRTC) as sub arrays with keys:
        sessionId, isWebRTC, ip, runSeconds, streamName, streamQuery (can pass parameters when publishing), streamPublish, streamPlay, TransferIn, TransferOut, TransferTotal
    • Expects script output as a list of parameters separated by &, containing parameter "controlUsers" and "controlSessions" as a PHP serialised arrays with keys session names / ids and value an array for each user with keys "disconnect" and optionally "room".
      Ex: controlUsers=<?php echo serialize(array("user1" => array("disconnect" => "You are disconnected!", room => "Lobby")) ?>

Live example of this functionality can be found in Broadcast Live Video & Paid Videochat turnkey site solutions.

For best performance, rtmp sever and web server (scripts) should be on same physical server.


Order Now!   Instant 100% web based video communications for your business. WELCOME TO THE NEXT LEVEL!