CompDocs on-line

Инвестиции WebMoney

 
CompDocs
Вебмастеру
Программисту
Пользователю
Геймеру
Мабила
Новости
Отдохни
Беседка
Обои
Docs.com.ru

Web-мастеру:

PHP
ASP .NET
Perl
JavaScript
CSS
HTML
Раскрутка
Сервисы

Программисту:

DirectX
OpenGL
Pascal
Алгоритмы

Пользователю:

Windows
Linux
BIOS
Обои

Посетителю:

Форум
Юмор
Рассылки
Объявления
ФизМат
Тесты
Работа


Книги с доставкой

Общие вопросы, справочная литература (97)

Для начинающих (214)

Аппаратное обеспечение: компьютеры, периферия, оргтехника (54)

Базы данных. СУБД (65)

Интернет (85)

Компьютерная безопасность. Хакинг, крэкинг, фрикинг (29)

Компьютерные сети и протоколы (45)

Операционные системы (143)

Программное обеспечение (447)

Языки и среды программирования, технологии и т.п. (323)

Прочие издания (46)


 

Автор: Fess (TGL team)

Что такое TAPI, и с чем его едят?

INTRO.

Это самое-самое начало. Первая глава моей серии статей, посвященной такой на первый взгляд специфической теме, как телефония. Точнее программированию под Win32 с использованием TAPI (Telephony Application Programming Interface). Я, конечно, постараюсь соблюдать некоторую последовательность в изложении материала, но не отвечаю за неё, ибо мышление моё несколько анархично, идеи приходят совершенно спонтанно (влияние дZen). Сейчас у меня в голове нет никакого плана относительно статьи, я знаю только тему. Возможные листинги будут приводиться, скорее всего, на MASM32, может ещё на С++, посмотрим…. В необходимости написания подобного труда я часто убеждаюсь, встречая вопросы на «телефонную» тему в различных рассылках и на форумах. Обычно они звучат так: «Как связать два компьютера через телефонные линии в обход Интернета?» Естественно речь идет о программном уровне. Так вот у меня ни разу не получилось ответить на этот вопрос кратко, ибо сама тема не предполагает этого. Приходится вкратце описывать саму технологию, а затем посылать за детализацией к источникам типа MSDN; в общем, указывать, куда копать. А по собственному опыту я знаю, что найти в Сети толковые ресурсы на эту тему очень даже непросто. К примеру, я не обнаружил НИ ОДНОЙ полезной статьи по TAPI в Рунете. Хотя буржуйские сайты порадовали чуть больше... Эта работа – смесь альтруизма и авторского эго, попытка своими скромными силами восполнить информационный пробел. Короче.… Читай, и я покажу тебе, насколько глубока кроличья нора :)

Самое начало, или Обзор.

Так вот, TAPI включает в себя средства, позволяющие приложению под Windows более или менее безгеморройно взаимодействовать с телефонными линиями (а том числе ISDN). Этим сфера влияния TAPI не ограничивается, и есть ещё много-много вещей, таких как IP телефония и H.323 протокол, поддержку которых в своей проге было бы непросто реализовать без помощи Telephony API. О них речь пойдёт немного позже. Сначала рассмотрим некоторые особенности TAPI, и, возможно, некоторые компоненты TAPI, такие как TSPI, MSPI и сервер TAPI.

Существуют несколько различных версий TAPI. Например, TAPI 1.3 создавалась для 16-битных систем. Версия 1.4 была 32-битной и создавалась для Windows 95. Версии 2.х уже более продвинуты, но всё ещё базируются на TAPI/C, ну а в 3.х версиях возможности вообще огромные, да и основываются они на TAPI/COM. Существует даже специальная версия для Windows CE (TAPI 1.5). Подробная инфа о различиях версий, конечно же, есть в MSDN, другое дело, что не у всех есть сама MSDN. Поэтому я буду кое-где приводить информацию из MSDN, не указывая этого. Древние версии мы использовать не будем, но и последние пока трогать не станем, так как TAPI 3.0 требует наличия Windows 2000 или более поздней, а TAPI 3.1 требует Windows Server 2003 или Windows XP. Об этих версиях я расскажу позже.… А сейчас, как я и обещал, обзор.

Прелесть TAPI состоит в том, что кодеру, при написании программы, вовсе не обязательно вдаваться во все тонкости взаимоотношений между различными коммуникационными девайсами, делать оптимизации под различные модемы и типы АТС. Для того чтобы «поиметь» :) доступ к TAPI приложение загружает TAPI DLL. TAPI DLL в свою очередь тесно взаимодействует с сервером TAPI (TAPISRV). При совершении какой-либо операции TAPI, TAPI DLL подтверждает её и пересылает TAPISRV. Сервер TAPI определяет доступные коммуникационные ресурсы и обращается к TSP (Telephony Service Providers) через специальный интерфейс - Telephony Service Provider Interface (TSPI). А уже TSP более тонко работает с девайсами и обеспечивает управление ими. Таким образом, конечный пользователь TAPI лишь самым косвенным образом касается низкоуровневого взаимодействия с устройствами, ибо система сама всё за него делает. Программист, использующий TAPI, должен обладать лишь основными знаниями в области телефонии (например, знаниями различий в форматах адресации, типов девайсов [линии, терминалы, каналы и т.п.]).


Вот такую вот симпатичную схемку я обнаружил в одной Мелкомягкой доке по теме… да оттуда и выдрал с особой наглостью. Здесь более или менее наглядно изображено то, что, в сущности, составляет TAPI, да ещё и схема TAPI 3.0 добавлена. Только очень уж обобщённо, ну да не беда.

Каждая функция TAPI относится к какому-либо уровню. Уровень функции показывает, насколько тесно приложение, вызывающе функцию взаимодействует с TAPI. Всего существует четыре уровня обслуживания.

Первый - основной уровень (Basic Telephony). Здесь находятся базовые TAPI-функции, позволяющие инициализировать TAPI, определить версию оного, установить связь и сделать ещё много-много чего, о чем я и собираюсь в дальнейшем вести повествование. Функции этого уровня работают с POTS линиями [POTS (Plain Old Telephone Service) – базовый телефонный сервис, основанный на стандартных одноканальных (single-line) телефонах и телефонных линиях – прим. авт.].

Следующий уровень – вспомогательный (Supplementary Telephony). Он включает в себя основной уровень и вдобавок содержит множество функций для поддержки современных коммуникационных технологий, таких как PBX (это типа такая частная телефонная сеть, которая функционирует, не затрагивая глобальной телефонной сети, хотя и имеет доступ к ней – прим. авт.), передачи, паркинг, конференции и т.д. и.т.п.

Далее идёт расширенный уровень (Extended Telephony). Он, понятно, включает в себя вспомогательный уровень. Но также позволяет расширить возможности программы за счет более тесного взаимодействия с SP (Service Provider). То есть в ход идут уже расширения, характерные для определённого девайса, используется более тонкая настройка.

Для тех, кому на фиг не нужны все навороты TAPI, существуют ещё несколько функций, относящихся к Assisted Telephony. Это несколько функций для установки голосовой связи. Они лишь косвенно относятся к сути TAPI, поэтому я их рассматривать не буду. К тому же я не разу не видел, чтобы какое-либо приложение, работающее с TAPI, использовало эти функции. Ими в основном пользуются программы, интеграция которых в телефонные сети ОЧЕНЬ ограничена. Использование TAPI, как такового инкапсулировано и сведено к нулю.

Пожалуй, на этом можно поставить точку. Я, конечно, говорю лишь об обзоре. Более подробно эти и многие-многие другие темы я постараюсь осветить в следующих своих статьях, которые будут нерегулярно появляться на tgl.h12.ru. А пока всё.

Adios!
Fess (TGL team).

Комментарии к статье
Ваше имя:

Комментарий:

Copyright © 2003-2004 Путяк Владислав.
Использование материалов журнала разрешается только с указанием ссылки на первоисточники и сайт журнала - http://docs.com.ru