• Contact  

rtmp session control

Session Control for RTMP, WebRTC Streams

VideoWhisper streaming serverside for Wowza Streamin Engine can also monitor 3rd party clients, other than VideoWhisper web applications, like Open Broadcaster Software (OBS), Wirecast, Flash Media Live Encoder (FMLE), iOS/Android Wowza GoCoder app for rtmp live broadcasting.
Can also monitor WebRTC sessions on Wowza server (broadcasters and viewers): WebRTC must be enabled on Wowza server configured with SSL certificate.

Why is this needed? If a broadcaster connects directly with an external encoder application or browser WebRTC, the website scripts can be notified about this to show his channel as LIVE. Also to retrieve live snapshots of current stream and show on site. Also web scripts can communicate back to rtmp server to disconnect a client when necessary (when setting broadcasting, watching limitations).
This functionality is not required for VideoWhisper web based Flash apps as these include communication with web server in addition to streaming server. 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 RTMP Full Mode License for 3rd Party Hosts

This type of functionality for 3rd party applications, is not covered by standard VideoWhisper license levels.
Standard licenses are for VideoWhisper application.
RTMP side license is for functionality designed for 3rd party applications.

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

Purchase VideoWhisper RTMP Full Mode License for 299USD/lifetime

Rent VideoWhisper RTMP Full Mode 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.


  • 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
  1. Make sure you have Wowza Streaming Engine / Media Server installed, running and accessible.
    Check by entering http://your-server-ip:1935/ in your browser.
  2. Download and install latest VideoWhisper RTMP Side .
  3. License session control functionality.
  4. Configure RTMP side for session control.
Configuring Wowza Application.xml


  • 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 RTMP server is licensed to run in full mode.
    • 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!