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


Функция linePickup (tapi.h)

Функция linePickup получает оповещение о вызове по указанному целевому адресу и возвращает дескриптор вызова для выбранного вызова. При вызове с значением NULL для параметра lpszDestAddress выполняется групповой сбор. Если устройство требуется, lpszGroupID указывает идентификатор группы, к которой принадлежит станция оповещений.

Синтаксис

LONG linePickup(
  HLINE   hLine,
  DWORD   dwAddressID,
  LPHCALL lphCall,
  LPCSTR  lpszDestAddress,
  LPCSTR  lpszGroupID
);

Параметры

hLine

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

dwAddressID

Адрес в hLine , по которому должен быть получен отвоз. Идентификатор адреса постоянно связан с адресом; идентификатор остается неизменным при обновлении операционной системы.

lphCall

Указатель на расположение памяти, где возвращается дескриптор выбранного вызова. Приложение является первоначальным единственным владельцем вызова.

lpszDestAddress

Указатель на буфер символов, завершающийся нулевым значением, который содержит адрес, вызов которого должен быть выбран. Адрес имеет стандартный формат набираемого адреса.

lpszGroupID

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

Параметр lpszGroupID можно указать сам с помощью указателя NULL для lpszDestAddress. Кроме того, в дополнение к lpszDestAddress можно указать lpszGroupID, если это требуется для устройства.

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

Возвращает положительный идентификатор запроса, если функция выполняется асинхронно, или отрицательный номер ошибки при возникновении ошибки. Параметр dwParam2 соответствующего сообщения LINE_REPLY равен нулю, если функция завершается успешно, или отрицательным номером ошибки при возникновении ошибки. Возможные возвращаемые значения:

LINEERR_INVALADDRESS, LINEERR_NOMEM, LINEERR_INVALADDRESSID, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALGROUPID, LINEERR_OPERATIONFAILED, LINEERR_INVALLINEHANDLE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALPOINTER LINEERR_UNINITIALIZED.

Комментарии

После успешного вызова приложение получает уведомление LINE_CALLSTATE сообщение об изменении состояния звонка. Структура LINECALLINFO предоставляет сведения о вызове, который был выбран. В нем указана причина вызова в качестве пикапа. Эта структура доступна с помощью lineGetCallInfo.

Если LINEADDRCAPFLAGS_PICKUPCALLWAIT имеет значение TRUE, функция linePickup может использоваться для приема звонка, для которого пользователь распознал сигнал ожидания вызова, но поставщик не может выполнить обнаружение. Это дает пользователю механизм ответа на ожидающий вызов, даже если поставщик услуг не смог обнаружить сигнал ожидания вызова. Параметры указателя lpszDestAddress и lpszGroupID должны иметь значение NULL , чтобы принимать вызов ожидания вызова. Функция linePickup создает новый дескриптор вызова для ожидающего вызова и передает этот дескриптор пользователю. Параметр dwAddressID чаще всего равен нулю (особенно в однострочных жилых случаях).

После того как linePickup был использован для приема второго вызова, lineSwapHold можно использовать для переключения между ними. Функцию lineDrop можно использовать для удаления одного из них (и переключения на другой) и т. д. Если пользователь хочет отказаться от текущего звонка и принять второй вызов, ему следует вызвать lineDrop при получении звукового сигнала ожидания вызова, дождаться звонка второго вызова, а затем вызвать lineAnswer для нового дескриптора вызова. Флаг LINEADDRFEATURE_PICKUP в элементе dwAddressFeatures в LINEADDRESSSTATUS указывает, когда на самом деле возможна отправка.

Требования

Требование Значение
Целевая платформа Windows
Header tapi.h
Библиотека Tapi32.lib
DLL Tapi32.dll

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

LINEADDRESSSTATUS

LINECALLINFO

LINE_CALLSTATE

LINE_REPLY

Общие сведения о пикапе

Дополнительные функции линейной службы

Обзор справочника по TAPI 2.2

lineAnswer

lineDrop

lineGetCallInfo

lineSwapHold