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


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

Функция lineSetupConference настраивает конференц-вызов для добавления стороннего поставщика.

Синтаксис

LONG lineSetupConference(
  HCALL                  hCall,
  HLINE                  hLine,
  LPHCALL                lphConfCall,
  LPHCALL                lphConsultCall,
  DWORD                  dwNumParties,
  LPLINECALLPARAMS const lpCallParams
);

Параметры

hCall

Обработайте начальный вызов, определяющий первую сторону конференц-звонка. В некоторых средах (как описано в разделе Возможности устройства) должен существовать вызов для запуска конференц-связи, а приложение должно быть владельцем этого вызова. В других средах телефонии изначально не существует вызова, hCall необходимо оставить null, а hLine необходимо указать, чтобы определить линию, по которой будет инициирован конференц-звонок. Состояние вызова hCall должно быть подключено.

hLine

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

lphConfCall

Указатель на дескриптор HCALL. Затем в это расположение загружается дескриптор, определяющий только что созданный конференц-звонок. Приложение является первоначальным единственным владельцем этого вызова. Состояние вызова hConfCall неприменимо.

lphConsultCall

Указатель на дескриптор HCALL. При настройке вызова для добавления новой стороны автоматически выделяется новый временный звонок (консультационный звонок). Изначально приложение является единственным владельцем этого вызова.

dwNumParties

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

lpCallParams

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

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

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

LINEERR_BEARERMODEUNAVAIL, LINEERR_UNINITIALIZED, LINEERR_CALLUNAVAIL, LINEERR_INVALMEDIAMODE, LINEERR_CONFERENCEFULL, LINEERR_INVALPOINTER, LINEERR_INUSE, LINEERR_INVALRATE, LINEERR_INVALADDRESSMODE, LINEERR_NOMEM, LINEERR_INVALBEARERMODE, LINEERR_NOTOWNER, LINEERR_INVALCALLHANDLE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLSTATE, LINEERR_OPERATIONFAILED, LINEERR_INVALCALLPARAMS, LINEERR_RATEUNAVAIL, LINEERR_INVALLINEHANDLE, LINEERR_RESOURCEUNAVAIL, LINEERR_ INVALLINESTATE, LINEERR_STRUCTURETOOSMALL, LINEERR_USERUSERINFOTOOBIG.

Комментарии

Если возвращается LINEERR_INVALLINESTATE, строка в настоящее время не находится в состоянии, в котором может выполняться эта операция. Список допустимых на данный момент операций можно найти в элементе dwLineFeatures (типа LINEFEATURE) в структуре LINEDEVSTATUS . (Вызов lineGetLineDevStatus обновляет сведения в LINEDEVSTATUS.) Если возвращается LINEERR_INVALMEDIAMODE, проверка для поддерживаемых типов мультимедиа в строке элемента dwMediaModes в структуре LINEDEVCAPS.

Функция lineSetupConference предоставляет два способа создания нового конференц-звонка в зависимости от того, требуется ли обычный двухсторонние вызовы. При настройке конференц-связи из существующего двухстороннего звонка параметр hCall является допустимым дескриптором вызова, который изначально добавляется в конференцию с помощью запроса lineSetupConference ; HLine игнорируется. На коммутаторах, где настройка конференц-связи не начинается с существующего вызова, hCall должен иметь значение NULL , а hLine должен быть указан для определения устройства линии, на котором инициируется конференц-звонок. В любом случае для подключения к стороне, которая должна быть добавлена к вызову, выделяется звонок по консультации. Затем приложение может использовать lineDial для набора адреса другой стороны.

Конференц-звонок обычно переходит в состояние onHoldPendingConference , вызов консультаций — в состояние dialtone , а первоначальный (если он есть) в состояние конференц-связи .

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

Звонок на консультацию можно отменить, вызвав lineDrop . При удалении консультационного звонка существующий конференц-звонок обычно переходит обратно в подключенное состояние. Приложение должно отслеживать LINE_CALLSTATE сообщений, чтобы точно определить, что происходит с вызовами. Например, если конференц-звонок возвращается к обычному двухстороннему вызову, конференц-звонок становится бездействуемым, а исходный вызов участника может отменить изменения подключен.

Если приложение указывает дескриптор исходного вызова (hCall) в вызове функции lineUnhold , как конференц-звонок, так и вызов консультации обычно бездействует.

Требования

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

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

Обзор конференции

LINECALLPARAMS

LINEDEVCAPS

LINEDEVSTATUS

LINE_CALLSTATE

Функции дополнительных линейных служб

lineCompleteTransfer

lineDial

lineDrop

lineGetLineDevStatus

lineSwapHold

lineUnhold