2.4.1.9 Making Calls
To make an outbound call, the TAPI DLL must have opened the line device. The standard way to make the call is then for the TSPI DLL to invoke TSPI_lineMakeCall specifying the line handle and a dialable destination address. The request first obtains a call appearance on an address on the line, waits for dialtone, and dials the specified address. If successful, the TAPI DLL's handle to the new call is stored by the Service Provider for subsequent event reports and the Service Provider's handle to the new call is returned. The TAPI DLL saves the Service Provider's handle for subsequent requests on the new call.
When making a new call, the TAPI DLL has the option of specifying the address on the line where it wants the call to originate. This can be done by specifying the address ID, or by using the corresponding directory number. The latter may be useful in configurations where it is more practical to identify the originating address by its directory number than by its address ID. If special call setup parameters are to be taken into consideration, then the TAPI DLL must supply additional information to TSPI_lineMakeCall. Call setup parameters are required when requesting a special bearer mode, a call's bandwidth, a call's expected media mode, user-to-user information (ISDN), secure the call, block sending of caller ID to the called party, automatically take the phone offhook at the originator and/or the called party, etc.
The TAPI DLL can also use TSPI_lineMakeCall just to only allocate a call appearance (or partially dial) and then explicitly perform (or complete) dialing by using TSPI_lineDial. When the number provided is incomplete, dialing the digits may be delayed by placing a ';' (semicolon) at the end of the number.
TSPI_lineMakeCall
Makes an outbound call and returns a call handle for the new call.
TSPI_lineDial
Dials (parts of one or more) dialable addresses. Use this operation in all situations where you need to send address information to the switch on an existing call; such as dialing the address of a party to transfer a call to, etc.
Once dialing is complete, call progress information is provided to the TAPI DLL via the LINE_CALLSTATE callback. This enables the TAPI DLL to track whether or not the call is reaching the called party.
The dialable number format allows multiple destination addresses to be supplied at once. This may be useful if the service provider provides some form of inverse multiplexing by setting up calls to each of the specified destinations and then managing the information stream as a single high-bandwidth media stream. The TAPI DLL perceives this as a single call, as it will only receive a single call handle representing the aggregate of all the individual phone calls. It is also possible to support inverse multiplexing at the application level. Then the app would set up a series of individual calls and synchronize their media streams.