TAPI done properly!

The TAPI interface also offers the option of carrying out a dialing process asynchronously (in the background). A new option has been added to the TAPI interface with regard to this functionality.

Introduction

The TAPI interface in conzept 16 makes it easy to add telephony functions to an existing application. The API offers commands for establishing connections as well as for monitoring lines to register incoming calls. In addition, the TAPI interface offers extended functions such as conference calls and call forwarding. For an introduction to the TAPI interface, I recommend that interested readers read the blog articles TAPI Ereignisse und TAPI Monitoring.

TapiDial

The TAPI interface offers the command TapiDial() for carrying out a dialing process. In addition to the telephone number to be dialed, an additional option can also be passed here. If this is not specified, the system waits for the connection with the call partner to be established. By specifying _TapiAsyncDial, however, the dialing process is only started. The command therefore returns while the connection is being established asynchronously. This enables the caller to monitor and react to events of the TAPI interface.

TapiLists

Events are monitored using the TapiListen() function. This results in the problem that events are triggered by the TapiDial() command, which in turn are also recorded by the monitoring via TapiListen(). The events are therefore triggered twice: once for the outgoing line (TapiDial()) and once for the monitored line (TapiListen()). As the call ID of the connection generated by TapiDial() is not known, no distinction can be made here as to which events relate to the outgoing or incoming line.

Tell me who you are…

The problem can be solved from the upcoming version 5.7.07 by an additional option for TapiDial(). By specifying _TapiReturnCallID, an asynchronous dialing process is started, as is already possible with _TapiAsyncDial. However, TapiDial() returns the call ID of the generated call if successful.

// Asynchronous dialing process with return of the call ID.
gCallID # TapiDial('123456',_TapiReturnCallID). 

As the call ID of the outgoing call is now known, the events in the EvtTapi can be filtered accordingly.

sub EvtTapi
(
  aEvt           : event;
  aTapiDevice    : handle;
  aCallID        : int;
  ...
)
: logic;
{
   if (gCallID > 0 and aCallID = gCallID)
   {
       // Event was triggered by asynchronous TapiDial.
      ...
   }
   else
   {
       // Monitoring event
      ...
   }

   ...
}

Klicken Sie hier, um die Nutzungsbedingungen für unseren Blog zu lesen.

Leave a Reply

Your email address will not be published. Required fields are marked *

Leave the field below empty!

Requests, questions or feedback are welcome:

Terms of use of the comment function in the blog

1. General information

Vectorsoft AG (‘Provider’) provides a public blog for Internet users (‘Users’) on the vectorsoft.de website. The public blog is intended for the exchange of information and ideas. Users who participate with contributions and comments undertake to comply with the blog terms of use and are responsible for the accuracy, appropriateness and freedom from legal infringements of their contributions. By using the comment function in our blog, you accept these terms of use.

2. Netiquette

We ask you to refrain from personal attacks and provocations based on other opinions. Please argue objectively and maintain a constructive discussion culture. Your comment should always be related to the topic in question in order to avoid digressions into other topics. Posting the same comment or several similar comments more than once is not permitted.

3. Prohibition of illegal content

By submitting your comment, you confirm that you are not violating any copyrights or other rights of third parties. Inciting, racist statements, instructions for criminal offences and their glorification, depictions of violence, pornographic content and statements that violate personal rights are prohibited.

4. No advertising

The use of the comment function is not permitted for commercial or party-political purposes. Advertising contributions of any kind will be deleted immediately.

5. Details of the name

When entering your name, pay attention to the principles mentioned above.

6. Source references

If you intend to publish quotes or contributions from third parties, please indicate the respective sources and explain how they relate to the blog post.

7. Violation of the terms of use

Posts that violate this policy will be deleted immediately. If you notice any violations yourself, please send us the link to the comment in question by e-mail to . We expressly point out that we will exclude individual users in the event of repeated or serious violations of these terms of use.

As of: Sept. 2024

Get your Trial Version now!

Test yeet free of charge

IHRE EVALUIERUNGSLIZENZ - JETZT ANFORDERN!

TESTEN SIE DIE CONZEPT 16 VOLLVERSION - UNVERBINDLICH und KOSTENFREI

Subscribe to our newsletter

[cleverreach_signup]
WordPress Cookie Notice by Real Cookie Banner