A Typical WorkGroup Telephony Application

This diagram represents a typical WorkGroup Telephony application after a connection has been made from a server program to a remote client program.

The Client Machine is running a program that is capable of displaying caller information to a service agent in a popup screen.

The Server Machine is running a VBVoice-based automated voice response program, which has elected to send call information to the Client machine for display before transferring a call.

This application uses all three components of Workgroup Telephony: the AgentX control, the Remote control, and the Conversation object.

The sequence of events for creating this setup is as follows:

Call Enters the Remote Control

  1. The Server program, after answering a call and collecting the information required for display, passes the call to the Remote control.

  2. The Remote control creates a Conversation object (the Server Conversation) and orders it to connect to Client Machine.

  3. The Server Conversation creates a Conversation object on the Client Machine using DCOM (the Client Conversation).

  4. The Remote control sets up a dictionary of string-based keys and variant-based data on the Server Conversation and calls the Send method of the Server Conversation to transmit the values of the changed keys (in this case all of the keys) to the Client Conversation.

  5. The Client Conversation notifies the AgentX Control in the Client program of an incoming connection for AppID "Notify" via the Connected event.

  6. The AgentX control chooses to connect to the Client Conversation because the AppID matches with its own and AutoConnect is set to True.

Client Program is Notified of New Data

  1. The Client Conversation, now that it has a positive connection, fires a Changed event into the AgentX Control.

  2. The Client program, in response to the Changed event, gets the data from the Client Conversation and displays the information in a pop-up screen on the Client Machine.

This is a long list of activities, but most steps are performed automatically by the environment. The Server program, for example, must only set a few properties on the Remote control and has no direct knowledge of anything on the Client Machine, except that it must know the network name of the machine with which it wants to communicate.

On the other side of the application, the Client will normally only use the Changed event to get the data from the Client Conversation. The Client Machine does not know anything about Server Machine. Once the Conversations are established, it is also possible for the Client to transmit data back to the Server, for instance to change how the call is handled.