Каково различие между TAPI и TSAPI

Переменная Foo::bufSize используется odr, потому что передача ее в функцию make_unique приводит к ее передаче путем пересылки ссылки, которая требует, чтобы у нее был адрес. (Обратите внимание, что написание (int)Foo::bufSize предотвратит его использование odr.)

Однако, поскольку компилятор может видеть определение make_unique и знает, что Bar принимает аргумент конструктора по значению, в некоторого уровня оптимизации, он может быть достаточно умен, чтобы исключить вызов к make_unique, просто вставляя значение 4096U в вызов к конструктору Bar, или может даже вообще исключить объект Bar в качестве инициализации barSize мертвый магазин. В таком случае ему не нужно выдавать ссылку на Foo::bufSize, и ошибка компоновщика не возникнет.

Компилятор и компоновщик не обязаны сообщать вам, что вы нарушили ODR, поскольку нарушения ODR делают вашу программу «неправильно сформированной, диагностика не требуется».

5
задан Big GH 8 May 2009 в 13:41
поделиться

2 ответа

TAPI - это телефонный API, разработанный Microsoft, TSAPI - это API телефонии, разработанный компанией, которая впоследствии стала Avaya (AT&T -> Lucent -> Avaya). Дизайн TAPI был ориентирован на управление вызовами первой стороны (например, телефоны), тогда как TSAPI был ориентирован на управление вызовами третьей стороны (например, УАТС и коммутаторы центрального офиса). У TAPI есть некоторая ограниченная поддержка обработки звука вызова, у TSAPI - нет. Я был бы очень удивлен, если бы вы смогли найти TAPI TSP для Avaya AES, и вы выиграли бы » Если вы это сделаете, то не получите его от Avaya.

Если все, что вас интересует, это события вызова, вы можете делать то же самое с обоими API, но код будет совершенно другим. Большинство компаний, у которых есть продукты, которые должны взаимодействовать как с Avaya AES, так и с Cisco Call Manager, создали общий интерфейс CTI для своего продукта, а затем написали модули кода (также известные как драйверы), которые переводят события вызовов TSAPI и TAPI в их общий формат событий. В вашем случае, в зависимости от вашей ОС, вы можете переместить свой код TAPI в отдельную DLL / общую библиотеку, а затем создать отдельную DLL / общую библиотеку, которая реализует те же функции, но использует TSAPI вместо TAPI.

К счастью, многие небольшие производители УАТС используют API-интерфейсы на основе TAPI или TSAPI для своих интерфейсов CTI, поэтому, если вам нужно подключиться к третьей УАТС,

19
ответ дан 18 December 2019 в 06:36
поделиться

Один - это просто «телефония», а другой - «услуги телефонии». Разница аналогична разнице между телефоном на вашем столе (TAPI) и УАТС в шкафу связи вашей компании (TSAPI), за исключением того, что, поскольку все это программное обеспечение, вы могли бы написать программу, используя TAPI для многое из того, что делает АТС. Но я думаю, вам будет проще с помощью TSAPI.

5
ответ дан 18 December 2019 в 06:36
поделиться