TAPI and Incoming IP Calls


I’m trying to develop a Nav form so that in incoming calls, system find a contact by phone no. searching and show its contact card. It must create a call record too.

I’m searching in forum but people who had same problems, done it with old nav versions or using third party apps.

I was thinking to use tapi3.dll lib because I have an app. in VB that works fine. I can answer incoming calls just pressing a button. It works with system lines, like IP line, modem line, etc… that user preoviously select.

This form must work in real time so I cannot use third app to write a log file and then, with Navision, read that file and process it.

I need to know how to handle tapi3.dll in C/SIDE Nav.

Codeunit 5053 only works with outgoing calls and it doesn’t use tapi3.dll so I can’t use it.

Any help would be appreciated.


Any suggest?


  1. Navision supports events fired by an automation server.
  2. The only TAPI related Automation Server I found so far is “TAPI3 Terminal Manager 1.0 Type Library” which provides the following classes:


These are most probably not what you are looking for so you would need to encapsulate the TAPI3.DLL within your own VB DLL which needs to be registered as COM object for COMINTEROP.

Then you can call the methods defined in the DLL just as you do from your own VB application.
It is a little bit more complicate when you need to receive events because you need to catch the event in your DLL and raise (fire) the event to Navision.

I have quite some examples in C# on how to do this but not one in VB.

You could surely find some in google

Thank you but really I need to catch incoming calls, so I need to catch that events. In C# or VB I found some examples in google, but I don’t know how to do in C/SIDE. I should have to initialize variables but types are differents in C/SIDE.

I tried to use automations servers. One of then is that you said and other one is a ocx powered by 3Com (my IP solution provider). There are too much methods on those ocxs but I don’t know if one of then could be used to catch events in C/SIDE. At this time I tried to catching them with same methods like C# and VB but never occurs, so I suppose the only solution is to use 3rd. party program to get incoming calls.

I thought to call a Init() method in my aplication from Navision through automation server, to initialize variables. Then it inits a form which allows user to select IP line , and starts with getting incoming calls. I don’t know how to return events to Navision without closing my app because I suppose that while automation server runs, Navision can’t do anything until app close. Or using 2 Navs clients and one of then running with automation server, but it doesn’t work because I need to open customer card on incoming call :frowning:

Do you think it could be a good idea to logging incoming calls in a SQL table with my application and read it with Navision? Could does it work in real time?


Hello Mark,

Have you found a solution? I am working on the same problem at the moment.