Главная
 
Ghost Studio Воскресенье, 05.05.2024, 23:21:45



Приветствую Вас Гость | RSS
Главная
Меню сайта

Категории каталога
Разное [36]
Всякая всячина)))
Программирование графики [3]
Учебник по OpenGL [6]
Программирование под Windows [8]

Наш опрос
Нужен ли сайту новый дизайн?
Всего ответов: 62

Главная » Статьи » Программирование под Windows

Что такое TAPI, и с чем его едят?
Это самое-самое начало. Первая глава моей серии статей, посвященной такой на первый взгляд специфической теме, как телефония. Точнее программированию под 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, да ещё и схема 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, как такового инкапсулировано и сведено к нулю.



Категория: Программирование под Windows | Добавил: Buba (22.06.2007) | Автор: Fess (TGL team)
Просмотров: 2827 | Комментарии: 1 | Рейтинг: 0.0/0 |

Всего комментариев: 1
1 Xolida  
0
Yo, that's what's up trtyufhllu.

Имя *:
Email *:
Код *:
Форма входа

Поиск

Друзья сайта

Статистика


Copyright MyCorp © 2024