функция 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_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 |