Функция lineAddToConference (tapi.h)
Функция lineAddToConference добавляет вызов, заданный параметром hConsultCall , в конференцию, указанную параметром hConfCall.
Синтаксис
LONG lineAddToConference(
HCALL hConfCall,
HCALL hConsultCall
);
Параметры
hConfCall
Дескриптор к конференции. Приложение должно быть владельцем этого вызова. Любой мониторинг (мультимедиа, тона, цифры) на конференции применяется только к hConfCall, а не к отдельным участвующим звонкам. Состояние вызова hConfCall должно быть onHoldPendingConference или onHold.
hConsultCall
Дескриптор звонка, добавляемого в конференцию. Приложение должно быть владельцем этого вызова. Этот вызов не может быть родителем другой конференции или участником какой-либо конференции. В зависимости от возможностей устройства, указанных в lineADDRESSCAPS, hConsultCall не обязательно был установлен с помощью lineSetupConference или linePrepareAddToConference. Состояние вызова hConsultCall должно быть подключено, onHold, proceeding или ringback. Многие УАТС позволяют добавлять звонки на конференции до фактического ответа.
Возвращаемое значение
Возвращает положительный идентификатор запроса, если функция выполняется асинхронно, или отрицательный номер ошибки при возникновении ошибки. Параметр dwParam2 соответствующего сообщения LINE_REPLY равен нулю, если функция завершается успешно, или отрицательным номером ошибки при возникновении ошибки. Возможные возвращаемые значения:
LINEERR_CONFERENCEFULL, LINEERR_NOTOWNER, LINEERR_INVALCONFCALLHANDLE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLHANDLE, LINEERR_OPERATIONFAILED, LINEERR_INVALCALLSTATE, LINEERR_RESOURCEUNAVAIL, LINEERR_NOMEM LINEERR_UNINITIALIZED.
Комментарии
Если возвращается LINEERR_INVALCALLHANDLE, указанный дескриптор вызова для добавленного вызова является недопустимым; hConsultCall является родителем другой конференции или уже участником конференции; hConsultCall не может быть добавлен по другим причинам (например, он должен быть установлен с помощью lineSetupConference или linePrepareAddToConference); или hConsultCall и hConfCall — это вызовы в разных открытых строках.
Дескриптор вызова добавленной стороны остается действительным после добавления звонка в конференцию. Его состояние обычно изменяется на конференцию, а состояние конференц-связи обычно становится подключенным. С помощью lineGetConfRelatedCalls можно получить список дескрипторов вызовов, которые являются частью той же конференции, что и указанный вызов. Указанный вызов является конференцией или вызовом участника в конференции. Для тех вызовов, для которых у приложения еще нет дескрипторов, создаются новые дескрипторы, и приложению предоставляется разрешение монитора для этих вызовов. Дескриптор отдельного звонка можно использовать позже, чтобы удалить эту сторону из конференции с помощью lineRemoveFromConference.
Если lineGetConfRelatedCalls вызывается сразу после lineAddToConference, он может не вернуть полный список связанных вызовов, так как TAPI ожидает получения LINE_CALLSTATE сообщения о том, что звонок поступил LINECALLSTATE_CONFERENCED, прежде чем считать вызов фактически частью конференции (то есть состояние конференции подтверждается поставщиком услуг). После того как приложение получит сообщение LINE_CALLSTATE, lineGetConfRelatedCalls возвращает полные сведения.
Конференц-связь устанавливается либо lineSetupConference , либо lineCompleteTransfer. Вызов, добавляемый к конференции, обычно устанавливается с помощью lineSetupConference или linePrepareAddToConference. Некоторые переключатели позволяют добавлять произвольные вызовы к конференции, и такой вызов можно настроить с помощью lineMakeCall и быть на (жестком) удержании. Приложение может проверить член dwAddrCapFlags структуры LINEADDRESSCAPS, чтобы определить разрешенные операции.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | tapi.h |
Библиотека | Tapi32.lib |
DLL | Tapi32.dll |