[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Программирование под ОС / Разное /

Что такое 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, как такового инкапсулировано и сведено к нулю.




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Программирование под ОС / Разное /

Комментарии к небольшой серии статей о недокументированных возможностях MS-DOS
15-02-2010   

Описываемые возможности проникновения в DOS и недокументированное поведение функции 13h являются серьезной прорехой с точки зрения недопущения несанкционированных действий и в то же время лакомым кусочком для создателей вирусов... подробнее

Кол. просмотров: общее - 3118 сегодня - 0

Программирование портов ввода/вывода
17-01-2010   

Обычно ПК имеет как минимум 2 последовательных и 1 параллельный интерфейс. Они являются специальными устройствами и отображаются следующим образом... подробнее

Кол. просмотров: общее - 3236 сегодня - 0

Особенности языков программирования и файловый ввод-вывод
17-01-2010   

Поскольку часто именно файловый ввод-вывод является основной проблемой начинающих участников олимпиад, мы подготовили небольшую памятку, демонстрирующую реализацию ввода-вывода на различных языках программирования... подробнее

Кол. просмотров: общее - 3353 сегодня - 0

Prolog - Лабораторная работа, работа со списками 2.
14-12-2009   

Переписать из исходного целочисленного списка в результирующий, все положительные элементы кратные 5.... подробнее

Кол. просмотров: общее - 3191 сегодня - 0

Prolog - Вписать треугольник в окружность.
14-12-2009   
Кол. просмотров: общее - 3316 сегодня - 2



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects