C# client for CISCO IP Phones, that using tapi3lib, doesn't work in win 10

667 Views Asked by At

Our company uses Cisco telephony. And we have a little program on user-s PC wrote by our partner. This program tracks incoming calls and for the call rises record in our CRM-System. This program uses tapi3 (it is COM-object from deep inside of windows). Unfortunately, it doesn't work on PC with Windows 10.

Search a lot for causes of this problem didn't give me even some a bit useful answers. And indeed, I am coming to the opinion, that this library by itself have some problems with working with it on Windows 10.

Well I tried a lot of things, before wrote this question. Tried to use other versions (later versions) of tapi driver for cisco (CiscoTSP). Tried to use other instances of tapi3. Tried to make this program work on other machines with win10. And now I have no result.

This small example demos the problem.

using System;
using System.Collections.Generic;
using TAPI3Lib;

namespace TestTAPI
{
    class Program
    {
        static void Main(string[] args)
        {
            var tapi = new TAPIClass();
            tapi.Initialize();

            List<String> names = new List<string>();

            foreach (dynamic address in (tapi.Addresses as ITCollection))
            {
                names.Add(address.AddressName);
            }
        }
    }
}

In result of execution I have empty List of Addresses, but it shouldn't be empty. At least I should be see standard tapi Addresses, but I didn't. Moreover I see in "Control Panel" -> "Telephone and modem", that I have more Addresses then only standards.

Really don't know what is going wrong. Maybe I miss some details?

Or may be I can change using tapi3 to something else to make that work.

1

There are 1 best solutions below

3
Kris Vanherck On

Assuming it works on an Win8 or Win8.1 (you did not specify). Have you checked your drivers config? If you save a config setting and then open the config page in "phone and modem" has it reset to default?

TAPI drivers default registry key for storing their config is here: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony

Some (not all) flavors/edition/versions of Windows 10 have removed the access rights to the registry key from the built-in system account that runs the telephony service. I don't know about Cisco specifically, but we have encountered several TAPI drivers from various manufactures that "save" their settings without giving an error, but in fact have not changed because of this issue.

Open your services.msc and check the Telephony (TapiSrv) service account, then check if it has access to the registry key.