Поделиться через


функция TSPI_lineSetTerminal (tspi.h)

Функция TSPI_lineSetTerminal позволяет TAPI указать сведения о терминале, связанные с указанной линией, адресом или вызовом. Эту операцию можно использовать во время выполнения вызовов в строке, чтобы разрешить перенаправление событий на разные устройства по мере необходимости.

Синтаксис

LONG TSPIAPI TSPI_lineSetTerminal(
  DRV_REQUESTID dwRequestID,
  HDRVLINE      hdLine,
  DWORD         dwAddressID,
  HDRVCALL      hdCall,
  DWORD         dwSelect,
  DWORD         dwTerminalModes,
  DWORD         dwTerminalID,
  DWORD         bEnable
);

Параметры

dwRequestID

Идентификатор асинхронного запроса.

hdLine

Дескриптор строки.

dwAddressID

Адрес на данном устройстве с открытой линией. Идентификатор адреса постоянно связан с адресом; идентификатор остается неизменным при обновлении операционной системы. TAPI не проверяет этот параметр при вызове этой функции.

hdCall

Дескриптор вызова. Состояние вызова может быть любым (если dwSelect — LINECALLSELECT_CALL).

dwSelect

Указывает, запрашивается ли параметр терминала для строки, адреса или только указанного вызова. Если указана строка или адрес, события либо применяются к строке или самому адресу, либо служат начальным параметром по умолчанию для всех новых вызовов в строке или адресе. Этот параметр использует одну из констант LINECALLSELECT_.

dwTerminalModes

Классы событий низкого уровня, направляемые в данный терминал. Используйте одну из констант LINETERMMODE_ для этого параметра.

dwTerminalID

Идентификатор устройства терминала, на котором должны быть перенаправлены заданные события. Идентификаторы терминала — это небольшие целые числа в диапазоне от 0 до dwNumTerminals минус один, где dwNumTerminals и режимы терминала, которые каждый терминал может обрабатывать, указываются поставщиком услуг в LINEDEVCAPS.

Примечание Эти идентификаторы терминала не имеют отношения к другим идентификаторам устройств и определяются поставщиком услуг с помощью возможностей устройства. TAPI не проверяет этот параметр при вызове этой функции.
 

bEnable

Если задано значение TRUE, то параметр dwTerminalID является допустимым , а указанные классы событий направляются в этот терминал или из этого терминала. Если значение РАВНО FALSE, эти события не направляются в dwTerminalID или из нее. TAPI не проверяет этот параметр при вызове этой функции.

Возвращаемое значение

Возвращает dwRequestID или номер ошибки при возникновении ошибки. Фактический параметр lResult соответствующего ASYNC_COMPLETION равен нулю, если функция выполнена успешно, или номер ошибки в случае возникновения ошибки. Возможные возвращаемые значения:

LINEERR_INVALLINEHANDLE, LINEERR_INVALTERMINALID, LINEERR_INVALADDRESSID, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALCALLHANDLE, LINEERR_NOMEM, LINEERR_INVALCALLSELECT, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALTERMINALMODE LINEERR_OPERATIONFAILED.

Комментарии

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

TAPI может использовать эту операцию для маршрутизации определенных классов событий низкоуровневой линии на указанное конечное устройство или для подавления маршрутизации этих событий. Например, голос можно направлять на отдельное звуковое устройство ввода-вывода (гарнитура), лампы и события отображения — на локальное телефонное устройство, а события кнопок и события звонка могут быть полностью подавлены.

Индикаторы хода вызова и (или) сообщения направляются в то же место, что и носитель. Например, если звуковые сигналы идут на телефон, то так же идут сигналы занятости (аналоговые) или сообщения Q.931, указывающие на занято (цифровой).

Поставщик услуг должен определить, являются ли сочетания dwSelect и dwTerminalModes допустимыми.

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

Эту функцию можно вызывать несколько раз, чтобы направить одни и те же события на несколько терминалов одновременно. Чтобы перенаправить события в другой терминал, TAPI рекомендует сначала отключить маршрутизацию к существующему терминалу, а затем направить события в новый терминал. Однако поставщик услуг должен сделать все возможное, чтобы удовлетворить запросы приложения в любой последовательности.

Назначения идентификаторов терминала выполняются поставщиком услуг, а LINEDEVCAPS указывает, какие идентификаторы терминалов доступны поставщику услуг. Поставщики услуг, которые не поддерживают маршрутизацию событий этого типа, указывают, что у них нет устройств терминала (для dwNumTerminals в LINEDEVCAPS задано значение 0).

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

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

Требования

Требование Значение
Целевая платформа Windows
Header tspi.h

См. также раздел

ASYNC_COMPLETION

Константы LINECALLSELECT_

Константы LINETERMMODE_