•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  • 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, Flash Media Live Encoder (FMLE), Snap Camera, iOS/Android Wowza GoCoder app for rtmp live broadcasting.

Why do you need functionality? 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.
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 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. Videochat / live 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 watching streams.


This functionality is not required for VideoWhisper web based Flash apps as these include communication with web server in addition to streaming server and functionality to upload snapshots. 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.

This solution is also required for some of the VideoWhisper mobile apps and can be implemented with the regular web apps to avoid high web server load because of requests done by each client to notify online status to web scripts. With this solution a single web request reports status for all rtmp connected clients. This is recommended for complex web frameworks that need considerable CPU and memory for each request (ex. WordPress).

Session control is also recommended for scaling projects that use the Flash based applications. Flash applications call web scripts as configured from parameters (around 1 minute for performers), in separate requests to update session status, send snapshots.
Configuring faster can cause big load on web server when there are many users, as each makes own requests. Dozens of users could generate hundreds of web requests per minute if configured more frequently. Session control on RTMP side makes more frequent requests to web server (each 10-15 seconds), but each request handles all sessions. So 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

This type of functionality for 3rd party applications, is not covered by standard VideoWhisper Web App License.
Server side license is for stream securing and control functionality that can also be used with other apps.

A special license is required for each streaming server server (per IP).

Purchase VideoWhisper Stream Session Control License for 299USD/lifetime

Rent VideoWhisper Stream Session Control License for 19USD/month

This type of license is NOT required when:

  • Using VideoWhisper Turnkey Managed Complete Hosting (shared or dedicated), as our servers are already licensed. Setup of rtmp side is managed by our staff.
  • Using only VideoWhisper web applications, as these have direct status calls to web scripts, unless project developers decide to use rtmp-web session control instead.

Terms:

  • A license is per server IP (dedicated server / VPS). Main host public IP must be specified (ping server part of rtmp address to identify it).
  • Server IP can be corrected (modified) 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.
  • License includes 1 free installation of videowhisper application if hosting requirements are met (compatible rtmp server installed, running and accessible).
  • VideoWhisper RTMP license does not include other types of services like licensing (for VideoWhisper applications,Wowza Streaming Engine, commercial 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 VideoWhisper RTMP Side 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. 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.
  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!