In the first chapter of this section you learned the general outline of the TAPI model including the use and meaning of two devices defined within the TAPI model:
You also discovered the relative advantages and disadvantages of the four main types of TAPI hardware configurations:
Finally, you learned how to identify the four main types of telephone service used to transmit voice and data signals:
In Chapter 23 you learned how the TAPI service model is implemented as a set of API calls. You learned there are four levels of TAPI services:
You also learned that the TAPI function set defines two different devices to handle telephony services:
Finally, you reviewed the API calls, data structures, and Windows messages defined for each level of TAPI service.
In this chapter you learned how to build a simple TAPI dialer application in C using the Basic Telephony level of service. This application was used to highlight the basic operations required to build TAPI applications (in any language).
You learned how to perform line initialization, locate a usable outbound line, and open the line in preparation for dialing. You also learned how to place an outbound call and use the TAPI line callback function to monitor call progress. Finally, you learned how to close safely down a line after the call has been completed.
You learned the following key steps to placing outbound calls using Basic TAPI services:
You also learned how to write a callback function to handle messages sent while the TAPI services are in action.
Chapter 25 showed you the differences between the three types of hardware options and how they rate in offering support for TAPI services on pc workstations.
You also got a quick review of modems and modem drivers. You learned that Win95 and WinNT rely on the UniModem or UniModemV modem drivers to communicate between the telephony hardware and your program. You also learned that, no matter what hardware you purchase, you will need a TAPI-compliant TSPI (Telephony Service Provider Interface) that matches the hardware you purchased. Hardware vendors can recognize the UniModem or UniModemV drivers, or ship their own TSPI drivers with their hardware.
In this chapter you learned the properties, methods, and events of the TAPILINE control that ships on the CD-ROM that accompanies this book. You also learned how to use this control to gain access to TAPI services from within Visual Basic programs.
You learned how to perform the following TAPI service requests:
You also learned how to monitor call progress using TAPI messages and the lineGetCallInfo and lineGetAddress methods. Finally, you learned how to call the four TAPI dialog boxes to gain access to configuration dialogs to customize your TAPI interface.
In Chapter 27 you learned that the TAPI system keeps track of vital information in the TELEPHON.INI file on the workstation. You learned there are four main sections in the TELEPHON.INI file:
You learned the different predefined media modes that can be handled by registered TAPI applications in the [HandOffPriorities] section. You also learned the dialing codes that are used in the [Cards] section to tell TAPI how to place requested calls.
Finally, you built a small Visual Basic application that allowed you to gain direct access to the various TAPI line dialog boxes that can affect the TELEPHON.INI file.
In Chapter 28 you learned how to use the TAPILINE control to create a Visual Basic application that can monitor a telephone line for incoming calls and allow users to answer those calls. In the process, you learned about the six steps needed to handle inbound calls using TAPI services:
You also learned the importance of the LINE_CALLSTATE message sent by TAPI whenever a new call appears on the line and when an active call becomes idle (the other party hangs up). You learned how to write code in the TapiCallBack event of the TAPILINE control to watch for and respond to LINE_CALLSTATE messages.
Finally, you learned the importance of getting the call handle from the LINECALLSTATE_OFFERING message and placing this value into the HandleToCall property of the TAPILINE control. This must be done before you can invoke the LineAnswer method to accept the incoming call.
In this chapter you learned how to use the Assisted TAPI function (tapiRequestMakeCall) to build outbound voice-phone solutions in both Excel and Visual Basic 4.0. You developed tools that allow you to add phone dialing to any VBA-compatible application. You created a complete online phone book that can log all outbound calls into a Microsoft JET database that can be read, analyzed, and reported by other Windows programs.
You learned about the two API functions you can use to complete Assisted TAPI calls:
You learned how to use these API calls to build a simple dialing routine in an Excel worksheet, and you used Visual Basic 4.0 to create an online telephone book that allows you to edit a phone list and place and track outbound calls.
In Chapter 30 you applied all the information you have learned in the TAPI section to create a complete telephone in software. This "virtual phone" can be installed on any workstation that has TAPI services installed and at least a voice-data modem. If the workstation has a speaker phone, you do not even need a telephone handset on your desk.
You created the Visual Basic TapiFone project that used the TAPILINE control and contained code for handling both inbound and outbound calls. You also gave users access to the various TAPI dialog boxes and allowed them to maintain a set of configuration values for TAPIFONE in the Windows registry. TapiFone is also able to write and store call notes on each outbound call made through TapiFone.
Finally, in Chapter 31, you tested two third-party tools for developing TAPI solutions for Windows using Visual Basic 4.0. You learned how the Stylus Visual Voice Controls work with Visual Basic to provide a complete TAPI-compliant telephony solution.
You learned the Stylus Visual Voice kit contains eight basic Visual Voice components. Three of these components are controls:
There are also five support applications that you can use to build and manage your TAPI applications:
You also learned how to use the VBVoice controls to create interactive telephony applications to handle all sorts of personal and commercial needs. The VBVoice system is made up of 21 different OCX controls. These controls represent all the major actions that can occur during a telephony session. You place these controls on your Visual Basic form and set their properties at design time. You then link them together in a call flow diagram that visually defines your program.
Finally, you got a quick tour of the Microsoft Phone system. This is a stand alone product that combines MAPI, SAPI, and TAPI services in a single package. With Microsoft Phone, you can create custom answering messages, have Microsoft Phone forward your messages to Microsoft Exchange, and have Microsoft Exchange read your text message back to you using the Speech API (SAPI).
The material covered here is just the tip of the iceberg for Windows telephony services. As the TAPI interface becomes more common, hardware prices will fall to levels that are affordable to almost anyone who purchases a pc. In the near future, the integration of e-mail, telephony, and speech services (such as Microsoft Phone) will become the norm instead of a unique occurrence.
As telephones become easier to program and operate from within pc workstations, it is quite possible that the telephone handset that adorns almost every desktop today will disappear. In its place will be a single workstation that can answer and place voice calls, transfer data between locations by way of e-mail and direct links, even read messages aloud to you both in the office and while you are away.
The next round of innovations will be the ability to switch between voice and data on the same line automatically. Some hardware is already available to handle such chores. In the not too distant future, users will be able to transfer voice and data at the same time over a single line-without switching modes at all.
In order to achieve the next level of telephony services, local loop service will need to improve to allow reliable data transfers at rates above 28.8Kbps. New data compression and correction technologies can help, but only to a point. The promised installation of high-speed ISDN lines that stretch from the local switch stations all the way to the home will do the most for improving the quality and capabilities of computerized telephony services in the future.