Функция lineSetTerminal (tapi.h)
Функция lineSetTerminal позволяет приложению указать, какие сведения о терминале, связанные с указанной линией, адресом или вызовом, должны быть перенаправлены. Функцию lineSetTerminal можно использовать во время выполнения вызовов в строке, чтобы приложение по мере необходимости направляло эти события на разные устройства.
Синтаксис
LONG lineSetTerminal(
HLINE hLine,
DWORD dwAddressID,
HCALL hCall,
DWORD dwSelect,
DWORD dwTerminalModes,
DWORD dwTerminalID,
DWORD bEnable
);
Параметры
hLine
Обработка на устройстве с открытой линией.
dwAddressID
Адрес на данном устройстве с открытой линией. Идентификатор адреса постоянно связан с адресом; идентификатор остается неизменным при обновлении операционной системы.
hCall
Дескриптор вызова. Состояние вызова hCall может быть любым, если dwSelect имеет значение CALL.
dwSelect
Запрашивается ли параметр терминала для строки, адреса или только указанного вызова. Если указана строка или адрес, события либо применяются к строке или адресу, либо служат начальным параметром по умолчанию для всех новых вызовов в строке или адресе. Этот параметр использует одну из констант LINECALLSELECT_.
dwTerminalModes
Класс низкоуровневых событий для перенаправления в данный терминал. Этот параметр использует одну или несколько констант LINETERMMODE_.
dwTerminalID
Идентификатор устройства терминала, на котором должны быть перенаправлены заданные события. Идентификаторы терминалов — это небольшие целые числа в диапазоне от нуля до единицы меньше , чем dwNumTerminals, где dwNumTerminals и режимы терминала, которые может обрабатывать каждый терминал, возвращаются lineGetDevCaps.
Эти идентификаторы терминала не имеют отношения к другим идентификаторам устройств и определяются поставщиком услуг с помощью возможностей устройства.
bEnable
Если задано значение TRUE, dwTerminalID является допустимым, а указанные классы событий направляются в этот терминал или из нее. Если значение FALSE, эти события не перенаправляются на устройство терминала или с идентификатором, равным dwTerminalID.
Возвращаемое значение
Возвращает положительный идентификатор запроса, если функция выполняется асинхронно, или отрицательный номер ошибки при возникновении ошибки. Параметр dwParam2 соответствующего сообщения LINE_REPLY равен нулю при успешном выполнении функции или отрицательным номером ошибки при возникновении ошибки. Возможные возвращаемые значения:
LINEERR_INVALADDRESSID, LINEERR_NOMEM, LINEERR_INVALCALLHANDLE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLSELECT, LINEERR_OPERATIONFAILED, LINEERR_INVALLINEHANDLE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALTERMINALID, LINEERR_UNINITIALIZED LINEERR_INVALTERMINALMODE.
Комментарии
Приложение может использовать эту функцию для маршрутизации определенных классов низкоуровневых событий строки на указанное устройство терминала или для подавления маршрутизации этих событий. Например, голос можно перенаправлять на звуковое устройство ввода-вывода (гарнитура), лампы и события отображения — на локальное телефонное устройство, а события кнопок и события звонка — полностью подавляться.
Эту функцию можно вызвать в любое время, даже если вызов активен на данном устройстве. Это позволяет пользователю переключиться с локального набора телефонов на другое звуковое устройство ввода-вывода. Эту функцию можно вызывать несколько раз, чтобы перенаправить одни и те же события на несколько терминалов одновременно. Чтобы перенаправить события в другой терминал, приложение должно сначала отключить маршрутизацию к существующему терминалу, а затем перенаправить события в новый терминал.
Назначения идентификаторов терминала выполняются поставщиком услуг строки. Возможности устройства указывают только идентификаторы терминала, доступные поставщику услуг. Поставщики услуг, которые не поддерживают этот тип маршрутизации событий, указывают, что у них нет устройств терминала (dwNumTerminals в LINEDEVCAPS будет равно нулю).
Вызов lineSetTerminal для строки или адреса влияет на все существующие вызовы в этой строке или адресе, но не влияет на вызовы по другим адресам. Он также задает значение по умолчанию для будущих вызовов по этой строке или адресу. Строка или адрес, в которых одновременно активны несколько подключенных вызовов, могут иметь разные маршруты для каждого вызова.
Отключение маршрутизации событий низкого уровня в терминал, если эти события в данный момент не направляются в этот терминал или из этого терминала, не обязательно приводит к ошибке, пока функция завершается успешно (указанные события не направляются в этот терминал или из этого терминала).
TAPI направляет тональные сигналы и сообщения о ходе вызова в то же расположение, что и функция lineSetTerminal для "media". Например, если звуковые сигналы идут на телефон, то также будут сигналы занятости (аналоговые) или Q.931, указывающие на занято (цифровое).
Требования
Целевая платформа | Windows |
Header | tapi.h |
Библиотека | Tapi32.lib |
DLL | Tapi32.dll |