Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Расширенные службы линий (или службы, относящиеся к устройству), включают все расширения, определенные поставщиком услуг, в API. API определяет механизм, позволяющий поставщикам услуг расширить TAPI с помощью расширений, относящихся к устройству. API определяет только механизм расширения и обеспечивает доступ к расширениям для конкретного устройства, но API не определяет их поведение. Поведение полностью определяется поставщиком услуг.
TAPI состоит из скалярных и битовых определений констант, структур данных, функций и сообщений. Процедуры определяются, что позволяет поставщику расширить большинство из них, как показано ниже.
Для расширяемых констант скалярных данных поставщик услуг может определять новые значения в указанном диапазоне. Так как большинство констант данных DWORD, обычно диапазон 0x00000000 через 0x7FFFFFFF зарезервирован для общих будущих расширений, а 0x80000000 через 0xFFFFFFFF доступны для расширений, относящихся к поставщику. Предполагается, что поставщик определит значения, которые являются естественными расширениями типов данных, определенных API.
Для расширяемых констант данных битового флага поставщик услуг может определить новые значения для указанных битов. Поскольку большинство констант флагов битов DWORDs, обычно определенное число нижних битов зарезервировано для распространенных расширений, а остальные верхние биты доступны для расширений, относящихся к поставщику. Общие битовые флаги назначаются из битового нуля; Расширения, относящиеся к поставщику, должны быть назначены с 31-разрядной версии. Это обеспечивает максимальную гибкость при назначении битовых позиций общим расширениям и расширениям конкретного поставщика. Ожидается, что поставщик определит новые значения, которые являются естественными расширениями битовых флагов, определенных API.
Расширяемые структуры данных имеют вариативное поле размера, зарезервированное для использования для конкретного устройства. Изменчивый размер, поставщик услуг решает объем информации и интерпретацию. Поставщик, определяющий поле для конкретного устройства, должно сделать эти естественные расширения исходной структуры данных, определенной API.
Две функции, lineDevSpecific и lineDevSpecificFeature, а также два связанных сообщения, LINE_DEVSPECIFIC и LINE_DEVSPECIFICFEATURE, предоставляют механизм расширения для конкретного поставщика. Функция lineDevSpecific и связанное LINE_DEVSPECIFIC сообщение позволяют приложению получать доступ к конкретной строке, адресу или вызову функций, недоступных в службах базовой или дополнительной телефонии. Профиль параметра функции lineDevSpecific является универсальным в том, что мало интерпретации параметров производится API. Интерпретация параметров определяется поставщиком услуг и должна быть понята приложением, использующим их. Параметры передаются через TAPI из приложения поставщику услуг. Приложение, использующее расширения для конкретного устройства, обычно не будет работать с другими поставщиками услуг; однако приложения, записанные в службы базовой и дополнительной телефонии, будут работать с расширенным поставщиком услуг.
Для удобства также предоставляется более специализированная функция escape-обхода. Он похож на lineDevSpecific, но размещает интерпретацию некоторых параметров. Эта более специализированная функция — это lineDevSpecificFeature, функция escape-уведомлений для конкретного устройства, позволяющая отправлять функции переключения в коммутатор. Сообщение LINE_DEVSPECIFICFEATURE — это сообщение для конкретного устройства, отправленное приложению в качестве указания функций, отправленных в переключатель. Эта функция и связанное сообщение позволяют приложению эмулировать кнопку на телефоне функции строки. Поскольку телефоны функций и значения их кнопок зависят от поставщика, вызов функций с помощью lineDevSpecificFeature также зависит от поставщика.
Как упоминалось ранее, центральный реестр для идентификаторов изготовителя отсутствует. Вместо этого предоставляется генератор уникальных идентификаторов (EXTIDGEN).