Элементы устройства телефона
Телефонное устройство — это устройство, которое поддерживает класс телефонного устройства и включает в себя некоторые или все следующие элементы:
Перехватчик/преобразователь: это средство для ввода и вывода звука. Телефонное устройство может иметь несколько преобразователей, которые можно активировать и деактивировать (снять или поместить перехватчик) под управлением приложения или вручную.
Телефония определяет три типа перехватчиков устройств, общих для многих телефонных наборов:
Телефон: традиционная комбинация уха и рта, которую необходимо вручную снять с колыбели и провести против уха пользователя.
Громкой связи: позволяет пользователю совершать звонки без переключений. Громкой связи может быть внутренней или внешней по части телефонного устройства. Часть говорящего громкоговорителя позволяет использовать несколько прослушивателей.
Гарнитура: позволяет пользователю совершать звонки без переключений.Перехватчик должен быть отключен, чтобы разрешить отправку и/или получение звуковых данных соответствующим преобразователем.
Управление громкостью, контроль увеличения и выключения звука. Каждое устройство обработчика является сопряжением динамика и компонента микрофона. API обеспечивает управление громкостью и отключение компонентов динамиков, а также управление получением или отключением компонентов микрофона.
Звонок: средство для оповещения пользователей, как правило, через колокольчик. Телефонное устройство может звонить в различных режимах или шаблонах.
Отображение: механизм визуального представления сообщений пользователю. Дисплей телефона характеризуется количеством строк и столбцов.
Кнопки телефона: массив кнопок. Всякий раз, когда пользователь нажимает кнопку в наборе телефонов, API сообщает, что соответствующая кнопка была нажата. Идентификаторы кнопки и лампы идентифицируют пару кнопки и лампы. Конечно, можно иметь пары "кнопка-лампа" без кнопки или без лампы. Идентификаторы лампы кнопок — это целочисленные значения, которые варьируются от 0 до максимального числа кнопок-ламп, доступных на телефонном устройстве, минус один. Каждая кнопка принадлежит классу button. Классы включают кнопки внешнего вида вызова, кнопки функций, кнопки клавиатуры и локальные кнопки.
Лампы: массив ламп (например, светодиодов), которые можно контролировать по отдельности из API. Лампы можно зажигать в разных режимах, изменяя частоту включения и выключения. Идентификатор button-lamp идентифицирует лампу.
Области данных: области памяти на телефонном устройстве, из которых можно скачать код инструкции или данные. Скачанные сведения повлияют на поведение (или, другими словами, программу) телефонного устройства.
TAPI позволяет приложению отслеживать элементы телефонного устройства и управлять ими. Наиболее полезными элементами для приложения являются устройства hookswitch. Набор телефонов может выступать в качестве звукового устройства ввода-вывода (для компьютера) с контролем громкости, контроля и отключения звука, звонка (для оповещения пользователя), областей данных (для программирования телефона) и, возможно, дисплея, хотя дисплей компьютера является более способным. Автор приложений не рекомендуется напрямую контролировать или использовать телефонные лампы или кнопки телефона, так как возможности ламп и кнопок могут сильно различаться в разных наборах телефонов, а приложения могут быстро адаптироваться к конкретным наборам телефонов.
Не существует гарантированного основного набора служб, поддерживаемых всеми телефонными устройствами, как и для линейных устройств (службы базовой телефонии). Таким образом, прежде чем приложение сможет использовать телефонное устройство, оно должно сначала определить точные возможности телефонного устройства. Возможности телефонии зависят от конфигурации (клиент или сервер), телефонного оборудования и программного обеспечения поставщика услуг. Приложения не должны делать предположений о том, какие возможности телефонии доступны. Приложение определяет возможности устройства телефонного устройства, вызывая функцию phoneGetDevCaps . Возможности устройства телефона указывают, какие из этих элементов существуют для каждого телефонного устройства, присутствующего в системе, и каковы их возможности. Хотя эта абстракция сильно ориентирована на реальные телефонные наборы, она может обеспечить значимую реализацию (или ее подмножество) для других устройств. Возьмем в качестве примера отдельную гарнитуру, напрямую подключенную к компьютеру и контролируемую как телефонное устройство. Изменения в перехватчике могут быть вызваны обнаружением энергии голоса (offhook) или периодом тишины (перехватчик); звонок может эмулироваться путем создания звукового сигнала в гарнитуре; отображение можно эмулировать с помощью преобразования текста в речь.
Телефонное устройство не обязательно должно быть реализовано в аппаратном обеспечении, а может быть эмулировано в программном обеспечении с помощью графического командного интерфейса на основе мыши или клавиатуры, а также динамиков или звуковой системы компьютера. Таким "мягким телефоном" может быть приложение, использующее TAPI. Он также может быть поставщиком услуг, который может быть указан как телефонное устройство, доступное для других приложений через API, и поэтому ему назначается идентификатор телефонного устройства.
В зависимости от среды и конфигурации телефонные наборы могут быть общими устройствами между приложением и коммутатором. В API выполняется небольшая подготовка, при которой коммутатор может временно приостановить управление API телефонным устройством.