Electronic Sports

Broadcast TV Manager







Index of this file

  1. Introduction
  2. General use
  3. Modules
  4. TV Auto Dispatch Feature
  5. Features summary
  6. Understanding Passwords in BTV
  7. BTV and XML
  8. Data Exporting with BTV
  9. BTV Links
  10. Licence
  11. Contacts and Links


Introduction

What is Electronic Sports Broadcast TV Manager ? It's a win32 software designed to manage a great number of HLTV, GTV, WolfTV etc, the easiest way possible. "Manage" involve connecting the TV to eachother, monitor that every TV is up and operationnal, visually see "who is connected on who", Number of spectators on the TV etc.

Who should use this software ? This software was designed to be used by LAN administrators. If you are just a player wanting to join or watch some matches, BTV is not the appropriate tool.

Layout, layers and objects

"Layout" refers as zones and groups only implemented in order to let you order and sort your TV and Servers. They have no impact on anything on theses except for 1 thing : the connection across different zones.

Layers are a way to put severall group on the same level. Groups or Zones of the same layer value will be displayed stacked on the same column. Groups or Zones with differents layers will be displayed next to each other on different column.

Objects refers genericaly as every game instances : HL servers with or without mods, HLTV, Q3 servers, GTV etc etc. Theses objects are treated internally the same way except for specific treatment. There are some objects that you can drag, some others that u don't.

General use

To connect a TV to another object, simply drag the TV and drop on the desired target. If the target has a password (password for servers, proxypassword for HLTV), BTV manager will set the serverpassword of the TV dragged before sending to "connect" order (as long as the password stored in Broadcast TV Manager is correct).

A dotted line will appear between the two objects connected until the TV finish its connection to its target. Once connected, a bold line will replace the dotted line. (GTV rarely show dotted lines as they just add a new room)

Sometimes when the stream is broken somewhere on the chain, all TV seems to be disconnected, so only dotted lines will be displayed. As soon as the whole chain is up again, the bold lines will come back with no user action needed.

Connection across different zones / Forwarded port support

When you connect a TV to an object that is outside its own zone, the TV will use the EXTERNAL address to connect. If no external address was provided, BTV Manager will use the internal one.

This feature is to be used to export TV from LAN to the Internet while LAN has NAT (masqerading) to access to Internet.

Simple Example

Suppose you have the following settings:


  • A LAN with local addresses like 10.20.30.0/24
  • An internet connection whose public IP is 212.40.40.40
  • Some HL servers 10.20.30.x
  • One local HLTV 10.20.30.100:27020
  • One public HLTV (outside the lan) 213.45.46.47:27045
  • Your network administrator configured a port-forward from 212.40.40.40:27030 to 10.20.30.100:2720 (UDP)
  1. Create a LAN Zone
  2. Create a "Server" group Layer 1 and add your servers in it
  3. Create a "HLTV" group Layer 2
  4. Add your local HLTV to the "HLTV" group
  5. Create an Internet Zone
  6. Create a "Public HLTV" group
  7. Add your public HLTV to the "Public HLTV" group
  8. Make sure everything is up
  9. Drag&drop your local HLTV to one of your HL Server. This action will perform a "connect" to the server address.
  10. Now drag&drop your Public HLTV to the local one. BECAUSE THEY ARE NOT IN THE SAME ZONE, the Public HLTV will perform a "connect 212.40.40.40:27030" instead of "connect 10.20.30.100:27020". Thus, if your network is well configured, your public HLTV will soon show a bold line to your local HLTV.

  11. Now tell your friends that you are a HLTV expert.

Modules

Modules are extra features added to the overall TV network management. Modules have to be activated because they usually need some extra external stuff to work.

AutoWeb Module

Requirement : FTP server (login, password etc)

The AutoWeb module is used to export information from inner data of BTV Manager to a website, providing usefull information to players that want to connect to TVs to view some matches.

The AutoWeb module, once configured and activated, collect information on Objects that have their "Export to web" checkbox checked. The AutoWeb module will not reveal the entire network with IP and port to the public. Only the one that you checked as "Export to Web".

The module will create an HTML file with all public TV and display IPs, ports, detected clans on it, available slots and so on. The module displays also some interesting stats about overall TV capacity and bandwith used.

AdminBot Module

Requirement : HLTV Only. The HL servers need to have the Adminbot-MX pluggin

AdminBot is NOT AdminMod !

The Adminbot-MX pluggin, created by Syam is a tool that automate a CS match. It can talk to the player, restart the map if necessary, report the score on a database etc. Please see the URL in the contact section for more information.

The Adminbot module can detect (on a server) if the players are on warmup or in real match. Furthermore, Adminbot can provide the real team names.

Features:

GTV network auto-detection module

Requirement : GTV Only

This module will scan every GTV of your layout and try to find if there is some other GTV connected that you don't currently have in your layout. If it finds some of theses, the module will create the GTV in the provided zone and immediately begin to monitor it. Few seconds later this new GTV will be scanned too, to discover if there some other GTV connected. This process will re-iterate forever, discovering the entire GTV network.

In optional properties of this module, you have the opportunity to set the new GTV as "Export to Web", thus publishing the whole network IP, which could be interesting

The module uses groups to sort the GTV. The rule is : for a "parent" GTV in a level n group, the "child" GTVs connected on the parent will be store on a level n+1 group. The module will try to re-use groups in the provided zone. If it needs more groups it will create them automaticaly. Note that afterwards, you can change a GTV's group, like any other object here. I recommand creating a virgin zone to separate the GTV you control from the one that you don't.

TV Auto Dispatch Feature

Requirement : Adminbot

Introduction

This feature is restricted to HLTV only for now but will soon expand on all TV.

The AutoDispatch feature is to be used when you want to always broadcast something on your HLTV. For example, let's imagine you are in a tournament with 6 servers and 3 HLTV relayed on Internet. The tournament is going well but you always have to keep an eye on your HLTV to make sure they are always connected to a server where a real match is occuring. People on internet don't care much about watching an empty server with no player on it or a bunch of noob doing FFA to warmup :(. What people want are real matches. AutoDispatch was made to feed theses fight-hungry people called "Spectators".

How does it work ?

Basicaly, the autodispatch works with groups. So put your HLTV in one group, then Activate the AutoDispatch function (right-click on a group). The configuration asks you a "target" group. The target group is the group where BTV will search for matches. If BTV finds a match in the target group, it will immediately search for an idle TV and connect this TV where it found the match. For every match found, BTV will try to connect a TV on it. Of course, once all TV are busy on a match, BTV can't do anything if an extra match starts (add more TV). When the match stops, BTV wait some time and then "release" this TV to watch another match if there is one not covered yet.

Note : Why waiting at the end of a match ? Well, remember that TV streams are delayed a bit (delay param for HLTV) so if BTV moves the TV away as soon as the match is over on the server, spectators will miss the last seconds of the match and will surely kick your ass/kill your familly/steal your GF. So BTV waits the number of seconds that you set in the Autodispatch settings. It is default to 30s, raise it if you put a longer delay for your TVs.

In the target group, you basicaly put servers, but you can put other HLTVs too, providing that theses HLTV are connected to a server. In this last case, BTV will automatically analyse the network and see if the HLTV in the target group are connected to a server that is playing a match. Look at theses examples (AutoDispatch groups have a Purple border):

Direct Auto-Dispatching on servers Indirect Auto-Dispatching with HLTV in the middle
Here, Target is "My Servers" Group Here target is "my demos TV" Group

Extra options

In the configuration panel, you can customize BTV behaviour concerning the remaining unused TV. Of course, it is only in the case where you have more TV than matchs at this point.There is 4 behaviours that you can choose:

  • Disconnect and wait in case another match starts elsewhere.This is the recommended setting. Basically, this will set one TV per match and keep all other disconnected. The advantage of that is that you keep TV ready in case a new match appear. The drawback is that maybe a lot of your TV will not broadcast anything. This settings works well with the beginning of tournament where a lot of matchs must be played.
 
  • Agregate in Target group. This settings will make BTV to connect every remaining TV on some matchs in the target group. BTV will try to load-balance the TV so that the TV are spread equaly on each match. Advantage: Your TVs have always something to show. Drawback: If a new match popup somewhere, BTV will take back some TV to put on the newly created match. Thus every spectator that were watching a match will be switched to another one without warning. This setting is good when a tournament is near the end and a lot of spectators wants to follow rouglhy the same match. Warning: Do not put this setting if the targets are servers directly!. Most servers are limitted in their number of HLTV that can connect on them (cvar for that is sv_proxies for HL servers). And it is not a good idea to connect and disconnect HLTV all the time during some important match. If your targets are servers, prefer the next option.
 
  • Agregate in Dispatch group. This settings is exactly the same that before, but instead of connecting the TV in the target group, BTV will connect the TV between each other in the original Dispatch group. Advantage: Same than before but Targets are not overloaded with many connections any more. Drawback: same than before and the fact that the link between TV are not very "visually" clear in BTV screen.
 
  • Connect to a specific object. Use this setting if you dont like your TV being disconnected. This will make BTV put every idle TV on a specific object (kinda waiting room).Advantage : The HLTV streams are never broken (sometimes the whole HLTV network is a bit confuse when the master source is disconnected). Drawback: uuhhh. dunno.

Visuals meanings

Status icons

Rcon Controled : You have full rcon control over your object
Monitoring : You do not have rcon control but you may access some public informations
Timeout : The object is not responding
Recording : The object is currently recording a demo
AutoRecord : The object is in Auto-Match-Record mode but the match is finished so it records few seconds more not to cut the end of match (due to HLTV delay)
AutoRecord : The object is in Auto-Match-Record mode but is currently not recording anything
Match detected : The server is detected as playing a real match
Match preparing : Match is scheduled but not started yet (or intercourse between sets)

Bar colors

Blue : Number of players for this stream. Full bar means server is full (for HLTV full bar means 14 players or more)
Green : Number of spectators. Full bar means TV has every spectator slot used
Red : Bandwidth. Logarithmic scale up to 1.5MBps

BTV Manager Features summary

  HLTV GTV WolfTV UTV
Drag&Drop connect add room (X)  
rcon control X X (X)  
Game Server monitor X X    
Game Server rcon X X    
Game Server match detectwith AdminBot-MX with OSP    
External address X X (X)  
AutoWeb Integration X X (X)  
Automatic password Server and HLTV Server and GTV    
Clan name autodetect X      
Demo start/stop/status X X    
Automatic match record with AdminBot-MX X    
Whole network detection  X    
Auto Dispatch X      
XML Data export X      
(X) = Experimental

Understanding Passwords in BTV

Before explaining how passwords works with BTV i must clarify one point.
BTV objects are kind of mirrors of the real HLTV, GTV etc programs. The properties of theses programs are continuously updated in real time to keep BTV synchronized with theses programs, but for technical reasons, there is some properties that cannot be extracted from the programs. Passwords are concerned.
The rule about password in BTV is that : All passwords in BTV are, unless specificaly explained, LOCAL TO BTV ! What does it means ? It means that Changing a password in a BTV object will never change that password on the real program. If you change the rcon password of an HLTV object in BTV, this will not change the real HLTV rcon password. This will change the local rcon password used to communicate with the real program. Therefore, if you enter a rcon password that is not equal to the rconpassword of the real HLTV, this simply won't work, u won't have rcon control on your object. Same for all other passwords. To prevent entering every password each time, there is some situation where BTV can ask to the program its password.

Object type Password Can BTV syncronize itself with this password ?
HL Server serverpassword Yes
(if rcon controled)
HLTV spectatorpassword don't need
proxypassword No
Q3 Server password Yes
(if rcon controled)
GTV password Yes
(if rcon controled)
gtv_adminPass don't need
gtv_cameraPass don't need

In BTV, passwords are used automaticaly whenever it is required. For example, when you connect an object to another object, BTV manager need to know the target object password. For example, if you connect an HLTV "A" to another HLTV "B", BTV need the proxypassword of "B". If you connect a GTV to a Quake3 server, BTV need the Quake3 password. Like i wrote just before, in some situation, BTV can "guess" this password automaticaly, but there is some case where BTV cannot guess this password even with rcon control. In this last case, you must manualy provide this password before connecting the objects together, otherwise connection will fail because of bad password (and usually console is pretty quiet about that unfortunately).

To be clear this is how you can correctly connect any object in a passworded environment.

From To Password variable used Required actions before Drag&Droping
HLTV HL server HLTV's "password" must be equal to server's "serverpassword"
  • If you have server's rcon, NOTHING, BTV can synchronize automaticaly with server's "serverpassword"
  • If you don't have server's rcon, use Right click on server then enter password
HLTV A HLTV B A's "password" must be equal to B's "proxypassword" Use right click on B and enter proxypassword
GTV Q3 Server when u use the "gtv_connect <target_ip> <password>" command the password argument must be equal to Q3 Server's "password"
  • If you have server's rcon, NOTHING, BTV can synchronize automaticaly with server's "password"
  • If you don't have server's rcon, use Right click on server then enter password
GTV A GTV B when u use the "gtv_connect <target_ip> <password>" command the password argument must be equal to B's "gtv_password"
  • If you have B's rcon, NOTHING, BTV can synchronize automaticaly with B's "gtv_password"
  • If you don't have B's rcon, use Right click on B then enter the gtv_password
HLTV GTV stop drinking

BTV and XML

Broadcast TV Manager has now a feature that enable to load a full layout (objects, groups, zones, modules options etc) from a XML document. the XML format used is quite obvious, just look at this example, this should give you enough information on how btv xml format works. BTV can load the xml from a file or directly from a URL.

Data Exporting with BTV

To address some system integration issue, Broadcast TV Manager can now export some information to external systems. This feature has been made for this kind of common situation: You are at a big LAN event, you are in charge of the HLTV stuff and some partners have connected their own HLTV slots to your network to broadcast the matchs that are occuring here in your LAN. The main problem for the HLTV provider is that he has no idea of whats going on on his own HLTV (name of the teams are the most common request from them). In order to provide some information to theses external partners, BTV can now export the match information for some selected HLTV.

How to use it ?

  1. First you must assign the objects you want to export to a stream number. Do that into the Property dialog window of each object by clicking into the apropriate checkbox. Or use the right-click menu on a group to assign all objects from that group.
  2. Once you have assigned your objects to a stream, open the Exports menu, select the approriate stream number to configure and select the method you want to use for that stream.

Export methods supported

So far there is 2 different methods to export a stream:
  1. XML sent with a POST : With that method, BTV will search for all objects that are assigned to that stream, build a XML document and will make a HTTP/POST call to the URL provided by adding the parameter xmlmsg= to the url. On the distant webserver that handle the POST request, the programmer can get the variable xmlmsg and process the XML. You can also configure BTV to add a reference to a XSL file, but BTV will not POST that XSL file.
  2. XML sent with FTP : With that method, BTV will search for all objects that are assigned to that stream, build a XML document and upload it to a ftp server using the credentials provided. You can also configure BTV to add a reference to a XSL file, but BTV will not upload that XSL file.

Mini FAQ

How many streams can BTV support ?

BTV can support up to 16 different streams. If more are needed, drop me a mail. All network operations are serialized in background thread so it should not disturb normal BTV behaviour.

What is the specification of the XML provided ?

There is a DTD file here. You have a typical example here and exacly the same example but with a reference to a basic XSL file.

Can i assign an object to severall stream ?

Yes.

Do you plan to add more export method in the future ?

Not really. The previous features "Export to web" and "Export to local file" will be converted into generic export method. Apart from that, if you need special export method, please let me know.

BTV Links

Broadcast TV Manager package provide an .reg file to register btv:// links just like this one. You have to customize the .reg file before running it. Once btv links are registered, any click on a btv link will open BTV, download the XML file targeted by the link and open it as a new document.

License

Broadcast TV Manager is Freeware, feel free to copy and distribute it as much as you want. If you do big LANs with it, take a screenshot and send it to me, I will add it to my collection :)

Contacts and Links

Author : Crimy@ifrance.com
Website : http://btvmanager.webhop.net

For HLTV see www.slipgate.de
For GTV see www.geeteevee.com
For Adminbot-MX see http://adminbot.nexen.org/index.php?&lang=EN
For OSP see www.orangesmoothie.org