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


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

Функция lineSetupTransfer инициирует передачу вызова, указанного параметром hCall . Он устанавливает консультационный звонок , lphConsultCall, по которому можно набрать сторону, которая может стать местом назначения передачи. Приложение получает привилегию владельца для параметра lphConsultCall .

Синтаксис

LONG lineSetupTransfer(
  HCALL                  hCall,
  LPHCALL                lphConsultCall,
  LPLINECALLPARAMS const lpCallParams
);

Параметры

hCall

Дескриптор вызова для передачи. Приложение должно быть владельцем вызова. Состояние вызова hCall должно быть подключено.

lphConsultCall

Указатель на дескриптор hCall . Затем в это расположение загружается дескриптор, определяющий временный звонок консультации. При настройке звонка для передачи автоматически выделяется консультационный звонок, который позволяет lineDial набирать адрес, связанный с новым местом передачи звонка. Исходная сторона может продолжить разговор по этому консультационному вызову до завершения передачи. Состояние вызова hConsultCall неприменимо.

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

lpCallParams

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

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

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

LINEERR_BEARERMODEUNAVAIL, LINEERR_INVALRATE, LINEERR_CALLUNAVAIL, LINEERR_NOMEM, LINEERR_INUSE, LINEERR_NOTOWNER, LINEERR_INVALADDRESSMODE, LINEERR_OPERATIONFAILED, LINEERR_INVALBEARERMODE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLHANDLE, LINEERR_RATEUNAVAIL, LINEERR_INVALCALLPARAMS, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALCALLSTATE, LINEERR_STRUCTURETOOSMALL, LINEERR_INVALLINESTATE, LINEERR_UNINITIALIZED, LINEERR_INVALMEDIAMODE, LINEERR_USERUSERINFOTOOBIG, LINEERR_ INVALPOINTER.

Комментарии

Функция lineSetupTransfer настраивает передачу вызова, указанного в hCall. На этапе настройки передачи устанавливается консультационный звонок, который позволяет приложению отправить адрес назначения (сторона, в которую необходимо передать) коммутатору, а звонок, который будет перенесен, остается на удержании. Этот новый звонок называется консультационным вызовом (hConsultCall) и может быть удален или иным образом манипулирован независимо от первоначального звонка.

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

Пока звонок консультации существует, исходный вызов обычно переходит в состояние onholdPendingTransfer . Приложение может переключаться между вызовом консультации и исходным вызовом с помощью lineSwapHold. Звонок на консультацию можно отменить, вызвав lineDrop . После удаления консультационного звонка исходный вызов обычно переходит обратно в подключенное состояние. Если состояние вызова исходного вызова — onholdPendingTransfer, для восстановления вызова можно использовать функцию lineUnhold . В этом случае состояние звонка консультации устанавливается в состояние бездействия.

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

Требования

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

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

LINECALLPARAMS

LINE_REPLY

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

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

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

lineBlindTransfer

lineCompleteTransfer

lineDial

lineDrop

lineMakeCall

lineSwapHold

lineUnhold