Talker Documentation

Onlive Technologies "Talker" (Microsoft) ActiveX and (Netscape) Plugin


Contents

Talker Build 1.156 Whats New

Talker Build 1.154 Whats New

Talker Build 1.153 Whats New

Talker Build 1.152 Whats New

Talker Build 1.151 Whats New

Talker Build 1.150 Whats New

Talker Builds Prior to 150


How to Embed the Talker into a web page

Talker may be embedded in either Netscape or Microsoft Internet Explorer 3.0. The UI in both appearance and function is identical. The way the Talker is embedded is very different due to the two browsers using competing technologies. The ActiveX talker may also be embedded in any OLE container application.

To embed the Talker inside of Microsoft IE you should use the OBJECT tag.

To embed the Talker inside of Netscape you should use the EMBED tag.

The Talker requires a suite of parameters in order to function correctly. When contained within a browser each has a machanism to pass these parameters. If you do not specify them, or you contain the Talker in a OLE application that does not support the paramater passing (currently any non-browser) the Talker will prompt the user for the details it needs. For a list and description of the parameters that are required see the PARAM tag.

A web page may have both EMBED and OBJECT tags and will therefore work for both IE30 and Netscape.


The Netscape EMBED HTML Tag

The Talker plugin is activated and displayed when a web page has the following embed syntax and has the plugin installed. The plugin installation requires that the file nptalker.dll is present in the plugins directory.

The name of the file is important, it must start with np and be a dll with the 8.3 file name format. The way that Netscape works out how to use this DLL when it sees a web page will be described shortly. Once this file is present the following syntax will invoke Talker.

<EMBED
WIDTH=200
HEIGHT=300
BORDER=0
SRC="http://talker.onlive.com/invoke.tlk"
param1
param2
...etc
>

One striking difference between the IE30 and Netscape syntax is that the parameters go inside the EMBED tag in Netscape and outside in IE30. The params are the same set and type as used in the IE30 syntax. There are no special tags for Netscape, and no IE30 tags that are not will work work identically in Netscape.

The important point to make at this stage ties together the NPTALKER.DLL described above and the SRC component of the EMBED tag. Between these two lies the heart of Netscapes plugin mechanism. The URI http://talker.onlive.com/invoke.tlk can be anything so long as it has the extension ".tlk" - this is very important. You can make the URI be a local file reference by creating an empty file called noop.tlk and refernece that in your HTML. The file can contain zero or more bytes, none of its contents is ever examined, it is simply a way for Netscape to associate the NPTALKER.DLL with the EMBED tag. On startup, Netscape looks at all the DLL's in its plugin directory that begin with "NP" (Netscape Plugin?), it reads the version information in these files and looks for the "FileExtents" field. This is setup to return ".tlk". Netscape now knows that any file that is fetched from a web server with the extension ".tlk" should be passed to an invocation of that DLL. There is also a MIME TYPE field in the version block that allows files with extensions other than tlk to be 'associated' with the Talker. This would require the server admin to set up a mime type for the file with application/x-tlk as its type. For simplicity, create an (empty) file called talker.tlk and reference this from the web page.

Let us return to the parameters. As mentioned above, the parameters are the same as for IE30, where they are placed, however, is not. An example will probably make things clear.

<EMBED
WIDTH=200
HEIGHT=300
BORDER=0
SRC="http://talker.onlive.com/invoke.tlk"

  Category="http://www.mtv.com/ToriAmos.htm"
  FriendlyName="Tori Amos on MTV"
  ServerName="server256.mtv.com"
  ServerPort=3061
  ConferenceDownloadSite="http://talker.onlive.com/talker/download.htm"
  HelpSite="http://talker.onlive.com/talker/help.htm"
  HomeSite="http://www.onlive.com"
  JoinText="Join: Tori Amos"
  LeaveText="Leave: Tori Amos"
  ParticipantCount="42"
  AutoClone="TRUE"

>

The OBJECT HTML Tag

The talker control is activated when a web page has the following OBJECT syntax.

<OBJECT
WIDTH=200
HEIGHT=300
BORDER=0
CLASSID="clsid:F05A3DA4-6479-11CF-8F4E-444553540000">

To have the control downloaded automatically you will need to add CODEBASE= to the above. If you don't do this the control may still be downloaded using the URL search path in the registry. This allows an intranet the ability to stop controls from being downloaded from anywhere except their own sites. For now with the default security in IE3.0 Beta 1 there will be a warning dialog that says that it cannot verify the authenticity of the control (although it has been certified with a test X.509 certificate). To disable this go to the View/Options panel and select the Security tab. Then click on the Programs button and choose "None".

The CODEBASE tag can accept as possible sources of the control a direct URL to the OCX, a URL to a CAB(inet) file (create these with the DIANTZ.exe in the INetSdk bin directry) or a network INF file. For more details of this see Article Safe Web Surfing with the Internet Download Service by Mary Kirkland, MSJ July 1996.

The specifications for the OBJECT tag can be found at "http://www.w3.org/pub/WWW/TR/WD-object.html"



The PARAM tags

To enable the Talker to talk to a server some options need to be configured. An example PARAM tag looks like this:

<PARAM NAME = "FriendlyName" VALUE = "MTV OnLine">
PARAM Tag Definition
"Category" (Mandatory) This is unique name by which the conference will be known to the name service. This will in the future be the URL of the hosting page.
"FriendlyName" (Defaults to "Conference") This is the name of the conference that is used in displays. The text on the button uses this if the join or leave text are set to empty string.
"ServerName" (Mandatory) This is the host name/ip of the server running the VDMS services.
"ServerPort" (Defaults to numeric 3060) This is the port number of the server running the VDMS services.
"ConferenceDownloadSite" (Defaults to "http://talker.onlive.com/talker/download.htm") This is web site from which the Conference Manager can be downloaded.
"HelpSite" (Defaults to "http://talker.onlive.com/talker/help.htm") This is web site that the Talker goes to when the user requests help.
"HomeSite" (Defaults to "http://www.onlive.com") This is not used for anything except in the help screen there is a button that takes the user to the OnLive home page.
"JoinText" (Defaults to "Join Conference") Whatever you put in here will be used on the button that is used to join and leave a conference. The button toggles between join and leave depending on the current state, this text works in conjunction with the "LeaveText" tag.
"LeaveText" (Defaults to "Leave Conference") Whatever you put in here will be used on the button that is used to join and leave a conference. The button toggles between join and leave depending on the current state, this text works in conjunction with the "JoinText" tag.
"ParticipantCount" (Defaults to "10") This is the maximum number of people in a single char group.
"AutoClone" (Defaults to "TRUE") Use either TRUE or FALSE (case unimportant) to direct the conference manager to create a new clone of the conference when the current one has reached the "ParticipantCount" number of people.

An Example

The example below is what a typical web page might use to support the Talker control. Note: for example purposes only I have shown the defaulted tags despite not changing their value away from the defaults listed above.

<OBJECT
WIDTH=200
HEIGHT=300
CLASSID="clsid:F05A3DA4-6479-11CF-8F4E-444553540000">

<param name="Category" value="http://www.mtv.com/ToriAmos.htm">
<param name="FriendlyName" value="Tori Amos on MTV">
<param name="ServerName" value="server256.mtv.com">
<param name="ServerPort" value=3061>
<param name="ConferenceDownloadSite" value="http://talker.onlive.com/talker/download.htm">
<param name="HelpSite" value="http://talker.onlive.com/talker/help.htm">
<param name="HomeSite" value="http://www.onlive.com">
<param name="JoinText" value="Join: Tori Amos">
<param name="LeaveText" value="Leave: Tori Amos">
<param name="ParticipantCount" value="42">
<param name="AutoClone" value="TRUE">

</OBJECT>

The Talker User Interface

The talker has a relatively simple interface. There are two states of the talker, the unjoined state, which is how the control is initially drawn and the joined state. In the unjoined state the user sees a status bar with a welcome message, a graphic logo, a signal meter marked with a red cross indicating that the microphone is off and two buttons. The status bar shows the welcome message and the initial (persistent) sound system mode - either FDX for full duplex or PTT for push-to-talk mode. To toggle these modes see below for keyboard controls. The two buttons are the main focus of events. The user can click the left most button with the question mark on it to see the help screen. In the help screen are several shortcut buttons which take the user away from the current web page to locations specified by the PARAM tags (see above). These web pages contain help details. The other button is to join a conference. The text displayed on the button is taken from the "JoinText" tag when unjoined and "LeaveText" tag when joined. When the user clicks here the following occurs.

The first stage of joining is to autoload and verify that the conference manager is running. If it is not able to load/run it Talker will display a dialog giving the user the ability to use their browser to download the required files. If this stage is sucessful then the talker joins the conference. The interface then changes to the joined state; the graphic logo is replaced by the list of conference participants. There will always be at least one person - that is - you. The user can right click on a participant and get a context sensitive menu of operations, including Ignore/unIngore, View users web page, About and Profile. The button now changes to a leave text message.

To speak to other once the user has joined a conference they have two possibilities, in full duplex (FDX) mode they will automatically have the microphone on (the signal meter reflects the voice level and the red cross is removed when the mic is on). In Push-To-Talk (PTT) mode the microphone defaults to off. To begin speaking the user should hold down the spacebar. When the user has finished talking the bar is released and the microphone is switched off again. See below for keyboard mappings.

When the user either changes web pages or leaves the conference the user disconnects from the server and is back to the unjoined state.

Talker Keyboard Keys

  • 'CONTROL' - Held down in PTT mode to speak

    Keyboard and Focus Visibility Proposal

    The current state of the focus handling and keyboard access is limited by both the plugin architecture (severly) and the OCX architecture. Although a windows hook will not allow the Talker to receive mouse or keyboard input if the application (Internet Explorer or Netscape) does not have the focus, it does mean that the user may be anywhere in the application and we still are able to catch these events. Using a windows hook will improve the apparent responsiveness because users are used to the idea of a single application having the input focus by looking at the applications caption bar. My proposal is that we drop the focus state visibility indicator that is present in build 141 and instead hook messages and rely on the applications focus state visibility indicator (ie the caption/title window). Obviously if we catch the CTRL key for mic on/off and other areas of the app already make use of CTRL then we are in difficulty. There are two options, either use a rarely used key (like F12) or allow both actions to occur, first our use of CTRL then pass it on down the chain of command to the application. This would take probably 2 days (16/hrs).

    Simulation Mode

    /***********************************************************
    *****
    *****	DAR: SIMULATION_MODE is a compile time preprocessor
    *****	that causes the talker OCX to simulate the joining
    *****	and leaving of users as well as who is speaking.
    *****
    *****	To use this mode, turn on this flag, then run against
    *****	the "CM /DebugAccman" mode of cm. There is an ini
    *****	file called tlkctrl.ini (checked in) that has two
    *****	sections, "participants" and "speakers". For debug
    *****	mode there are two participants other than oneself
    *****	with ID's 234 and 345. 
    *****
    *****	[participants]
    *****	234=1
    *****	345=1
    *****	[speakers]
    *****	234=1
    *****	345=1
    *****	
    *****	
    *****	Use values of 0 for off and 1 for on.
    *****	
    ***********************************************************/