Введение

Microsoft Windows API
Интерфейс программирования приложений для телефонии (TAPI) — это API Microsoft Windows, обеспечивающий интеграцию компьютерной телефонии и позволяющий компьютерам под управлением Microsoft Windows использовать телефонные услуги. Различные версии TAPI доступны для разных версий Windows. TAPI позволяет приложениям управлять функциями телефонии между компьютером и телефонной сетью для передачи данных, факсов и голосовых вызовов. Он включает в себя базовые функции, такие как набор номера, ответ на вызов и завершение вызова. Также поддерживаются дополнительные функции, такие как удержание, переадресация, конференц-связь и перехват вызовов, используемые в PBX, ISDN и других телефонных системах. TAPI в основном используется для управления модемами или, в последнее время, для управления аппаратами бизнес-телефонных систем (PBX). При управлении аппаратом PBX драйвер предоставляется производителем телефонной системы. Некоторые производители предоставляют драйверы, позволяющие управлять несколькими аппаратами. Это традиционно называется "управление третьей стороной". Другие производители предоставляют драйверы, позволяющие управлять одним аппаратом. Это называется "управление первой стороной". Драйверы управления третьей стороной разработаны для обеспечения возможности приложений видеть и/или управлять несколькими линиями одновременно. Некоторые телефонные системы допускают только одно подключение управления третьей стороной одновременно. Драйверы управления первой стороной разработаны для обеспечения возможности приложений контролировать и/или управлять одной линией одновременно. Телефонные системы, как правило, допускают множество таких подключений одновременно. Модемные подключения по своей природе являются подключениями управления первой стороной. TAPI также может использоваться для управления голосовыми телефонными устройствами, включая голосовые модемы и специализированное оборудование, такое как платы Dialogic.

История

TAPI был представлен в 1993 году в результате совместной разработки Microsoft и Intel. Первой общедоступной версией TAPI была версия 1.3, выпущенная как обновление для Microsoft Windows 3.1. Драйверы версии 1.3 были исключительно 16-битными. Версия 1.3 больше не поддерживается, хотя некоторые CD-диски с библиотекой разработки MSDN все еще содержат файлы и обновления для нее. С выходом Microsoft Windows 95, TAPI был интегрирован в операционную систему. Первой версией TAPI для Windows 95 была версия 1.4, поддерживающая 32-битные приложения. Стандарт TAPI поддерживает как подключения от отдельных компьютеров, так и подключения по локальной сети, обслуживающие любое количество компьютеров. TAPI 2.0 был представлен вместе с Windows NT 4.0 и стал первой версией TAPI для платформы Windows NT, значительно расширив функциональность за счет поддержки ACD и специфических функций PBX. В 1997 году Microsoft выпустила версию TAPI 2.1, доступную в виде загружаемого обновления и ставшую первой версией, поддерживаемой как на платформах Microsoft Windows 95, так и на Windows NT/2000. TAPI 3.0 был выпущен в 1999 году вместе с Windows 2000. Эта версия обеспечила поддержку IP-телефонии (VoIP), предоставляя простые и универсальные методы для установления соединений между двумя (с использованием H.323) или более (с использованием IP-мультикаста) компьютерами, а также возможность доступа к любому медиапотоку (драйвер MSP), участвующему в соединении. Windows XP включала как TAPI 3.1, так и TAPI 2.2. TAPI 3.1 поддерживает Microsoft Component Object Model и предоставляет набор COM-объектов для разработчиков приложений. Эта версия использует файловые терминалы, позволяющие приложениям записывать потоковые данные в файл и воспроизводить их обратно в поток. Также был включен TSP (провайдер телефонных услуг) для USB-телефона, позволяющий приложению управлять USB-телефоном и использовать его в качестве потоковой конечной точки. TAPI 3.0 или TAPI 3.1 недоступны на операционных системах, предшествующих Windows 2000 и Windows XP соответственно. TSAPI (интерфейс программирования приложений для серверов телефонии) — аналогичный стандарт, разработанный Novell для серверов NetWare.

Формат телефонного адреса

TAPI использует канонический адресный формат Microsoft для телефонных номеров при совершении телефонных звонков. Он является производным от международной нотации E.123. Канонический адрес представляет собой текстовую строку следующего формата: +Country␣(AreaCode)␣SubscriberNumber | Subaddress ^ Name CRLF. Код зоны, подадрес и имя являются необязательными; последний может содержать добавочный номер для прямого входящего вызова и имя вызывающего абонента, как это используется в телекоммуникационных протоколах ISDN/E1/T1. Правила набора используются для преобразования канонического номера телефона в набираемую последовательность для модема, в зависимости от местоположения пользователя. Эти правила включают в себя наборы переменной длины для кода зоны, доступа к магистрали и международного префикса, а также доступа к центральной станции и номера телефонных/кредитных карт. Также существует обертка 2.x для NET. Другие разработчики предоставляют библиотеки для косвенной работы с АТС, поддерживающими TAPI. Часто упускаемой из виду причиной, по которой разработчик приложения может выбрать между TAPI 2.x и TAPI 3.x, является рекомендация производителя оборудования. Несмотря на то, что TAPI предоставляет абстрактную модель телефонных линий, поведение телефонных приложений по-прежнему сильно зависит от специфики базового оборудования. Устранение проблем с поведением обычно требует сотрудничества между поставщиками программного и аппаратного обеспечения. Поскольку существует практически однозначное соответствие между интерфейсом поставщика услуг TAPI (TSP) и интерфейсом TAPI 2.x, сотрудничество часто проще, если приложение разработано с использованием TAPI 2.x. Опыт работы с TAPI 3.x существенно различается у разных производителей оборудования.

Аппаратное обеспечение, соответствующее требованиям TAPI

В Windows поддержка TAPI была практически повсеместной в телефонном оборудовании, таком как голосовые модемы (внутренние и внешние) и компьютерные платы расширения, например, телефонные карты Dialogic. Единственным заметным исключением, не поддерживавшим TAPI изначально, был Avaya Communication Manager, который использовал исключительно интерфейс TSAPI для подключения. Многие АТС предоставляют модемные интерфейсы, соответствующие стандарту TAPI. К АТС, совместимым с TAPI, относятся Aastra (400/800), Aastra (MX ONE), Alcatel (OXO/OXE), Avaya (BCM, IP Office), Cisco (Call Manager), Ericsson LG (eMG80, iPECS, ipLDK), NEC Philips (iS3000, IPC100/500), NEC (SL1000, SV8100/9100), Nitsuko (DXE600/328), Panasonic (KX TDA/TDE/NCP, KX NS1000), Samsung (OfficeServ), Unify (3000/4000, Openscape Office), ShoreTel и ZyXEL (X6004/X2002). Для телефонных систем, у которых нет драйверов от производителей, часто доступны драйверы сторонних разработчиков.