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


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

Функция TSPI_lineConditionalMediaDetection вызывается TAPI всякий раз, когда клиентское приложение использует LINEMAPPER в качестве dwDeviceID в вызове функции lineOpen , чтобы запросить сканирование строк, чтобы найти тот, который поддерживает нужные типы мультимедиа и параметры вызова. TAPI сканирует на основе объединения требуемого типа мультимедиа и других типов носителей, которые в настоящее время отслеживаются на линии, чтобы предоставить поставщику услуг возможность указать, не может ли он одновременно отслеживать все запрошенные типы мультимедиа. Если поставщик услуг может отслеживать указанный набор типов мультимедиа и поддерживать возможности, указанные в lpCallParams, он отвечает с указанием успешного выполнения. Режимы активного мониторинга мультимедиа для линии остаются без изменений.

Синтаксис

LONG TSPIAPI TSPI_lineConditionalMediaDetection(
  HDRVLINE               hdLine,
  DWORD                  dwMediaModes,
  LPLINECALLPARAMS const lpCallParams
);

Параметры

hdLine

Дескриптор поставщика услуг к строке, в которой должны быть заданы возможности мониторинга мультимедиа и параметров.

dwMediaModes

Типы мультимедиа, которые в настоящее время представляют интерес для вызывающего приложения. Этот параметр использует одну из констант LINEMEDIAMODE_.

lpCallParams

Указатель на структуру типа LINECALLPARAMS. В ней описываются параметры вызова, которые устройство линии должно быть в состоянии предоставить. Ниже приведены только соответствующие поля lpCallParams для целей этого теста:

dwBearerMode

dwMinRate

dwMaxRate

dwMediaMode

dwCallParamFlags

dwAddressMode

Если параметр dwAddressMode LINEADDRESSMODE_ADDRESSID, допустимы любые адреса в строке. Если параметр dwAddressMode LINEADDRESSMODE_DIALABLEADDR, указывающий, что выполняется поиск определенного исходного адреса (номера телефона) или является расширением для конкретного поставщика, то dwOrigAddressSize/Offset и часть переменной, на которую они ссылаются, также относятся. Если dwAddressMode является расширением для конкретного поставщика, дополнительные сведения могут содержаться в поле dwDeviceSpecific изменяющегося размера. Все остальные поля не имеют отношения к функции.

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

Возвращает ноль, если функция выполнена успешно, или номер ошибки при возникновении ошибки. Возможные возвращаемые значения:

LINEERR_INVALLINEHANDLE, LINEERR_OPERATIONFAILED, LINEERR_NODRIVER, LINEERR_RESOURCEUNAVAIL, LINEERR_NOMEM, LINEERR_INVALMEDIAMODE LINEERR_OPERATIONUNAVAIL.

Комментарии

Функция TAPI lineOpen , указывающая идентификатор устройства LINEMAPPER, обычно приводит к вызову этой процедуры для нескольких устройств линии для поиска подходящей линии, возможно, также открытия еще неоткрытых строк. Результат успешного выполнения указывает, что строка подходит для требований вызывающего приложения.

Примечание Режимы мониторинга мультимедиа, необходимые на уровне TSPI, представляют собой объединение режимов мониторинга, необходимых для нескольких приложений на уровне TAPI. Как следствие, чаще всего флаги нескольких типов мультимедиа устанавливаются одновременно на этом уровне. Поставщик услуг должен проверить, может ли он поддерживать по крайней мере указанный набор, независимо от того, какие режимы действуют в настоящее время. TAPI гарантирует, что параметр dwMediaModes имеет по крайней мере один бит и что зарезервированные биты не заданы. Поставщик услуг несет ответственность за выполнение любых дальнейших проверок допустимости для типов носителей, таких как проверка того, поддерживаются ли какие-либо типы носителей поставщиком услуг.
 
Функция TSPI_lineConditionalMediaDetection проверяет биты, заданные в элементе dwCallParamFlags структуры LINECALLPARAMS , и обрабатывает следующие случаи:

Функция TSPI_lineConditionalMediaDetection возвращает успешное выполнение, если передача одинаковых значений битов в TSPI_lineMakeCall функция также вернет успешное выполнение.

Если заданы биты SECURE, ORIGOFFHOOK и DESTOFFHOOK, а параметр dwAddressMode равен LINEADDRESSMODE_ADDRESSID, функция возвращает успешное выполнение, если она может успешно выполняться по одному или нескольким адресам в строке.

Если заданы биты SECURE, ORIGOFFHOOK и DESTOFFHOOK и параметр dwAddressMode LINEADDRESSMODE_DIALABLEADDR, функция возвращает успешное выполнение, если она может быть успешной по адресу, определенному параметром dwOrigAddress .

Поставщик услуг возвращает ошибку (например, LINEERR_RESOURCEUNAVAIL), если во время вызова этой функции невозможно выполнить новый вызов на указанном устройстве строки (если он будет возвращать LINEERR_CALLUNAVAIL или LINEERR_RESOURCEUNAVAIL должен TSPI_lineMakeCall вызываться сразу после открытия строки).

Непосредственно соответствующей функции на уровне TAPI нет. Эта процедура соответствует тесту, подразумеваемому для каждой отдельной строки процедурой lineOpen при вызове с идентификатором устройства LINEMAPPER.

Требования

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

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

LINECALLPARAMS

константы LINEMEDIAMODE_

TSPI_lineMakeCall