функция TSPI_lineCompleteTransfer (tspi.h)
Функция TSPI_lineCompleteTransfer завершает передачу указанного вызова стороне, подключенной к вызову консультации. Если параметр dwTransferMode LINETRANSFERMODE_CONFERENCE, исходный дескриптор вызова изменяется на конференцию. В противном случае поставщик услуг должен отправлять сообщения о состоянии вызова, изменяя вызовы на бездействующие.
Синтаксис
LONG TSPIAPI TSPI_lineCompleteTransfer(
DRV_REQUESTID dwRequestID,
HDRVCALL hdCall,
HDRVCALL hdConsultCall,
HTAPICALL htConfCall,
LPHDRVCALL lphdConfCall,
DWORD dwTransferMode
);
Параметры
dwRequestID
Идентификатор асинхронного запроса.
hdCall
Дескриптор поставщика услуг для передаваемого вызова. Состояние вызова hdCall может быть onHoldPendingTransfer.
hdConsultCall
Дескриптор вызова , представляющий соединение с местом назначения передачи. Состояние вызова hdConsultCall может быть подключенным, обратным, занятым или продолженным.
htConfCall
Этот параметр действителен, только если параметр dwTransferMode указан как LINETRANSFERMODE_CONFERENCE. Поставщик услуг должен сохранить значение этого параметра и использовать его во всех последующих вызовах процедуры LINEEVENT , сообщая о событиях при вызове. В противном случае этот параметр игнорируется.
lphdConfCall
Указатель на HDRVCALL , представляющий идентификатор поставщика услуг для вызова. Этот параметр действителен, только если параметр dwTransferMode указан как LINETRANSFERMODE_CONFERENCE. Поставщик услуг должен заполнить это расположение своим дескриптором для нового конференц-звонка, прежде чем возвращаться из этой функции.
dwTransferMode
Указывает способ разрешения инициированного запроса на передачу. Этот параметр использует одну из констант LINETRANSFERMODE_.
Возвращаемое значение
Возвращает dwRequestID или номер ошибки при возникновении ошибки. Фактический параметр lResult соответствующего ASYNC_COMPLETION равен нулю при успешном выполнении функции или номеру ошибки при возникновении ошибки. Возможные возвращаемые значения:
LINEERR_INVALCALLHANDLE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLSTATE, LINEERR_OPERATIONFAILED, LINEERR_NOMEM LINEERR_RESOURCEUNAVAIL.
Комментарии
Эта функция завершает передачу исходного вызова hdCall стороне, подключенной через hdConsultCall. Звонок на консультацию обычно набирается в ходе консультационного звонка, выделенного в рамках TSPI_lineSetupTransfer, но это может быть любой звонок, на который переключатель может передать hdCall.
Запрос на передачу можно разрешить либо как передачу, либо как трехсторонняя конференция. При разрешении как передача стороны, подключенные через hdCall и hdConsultCall , подключаются друг к другу, и hdCall и hdConsultCall переходят в состояние простоя.
При разрешении конференции все три стороны вступают в конференцию. Оба существующих дескриптора вызовов остаются действительными, но переходят в состояние конференции . Создается и возвращается дескриптор конференц-звонка, который переходит в подключенное состояние.
Кроме того, можно выполнить слепую передачу вызова с помощью TSPI_lineBlindTransfer.
Эта функция отличается от соответствующей функции TAPI тем, что она следует модели TSPI для начала времени существования вызова. TAPI и поставщик услуг обмениваются непрозрачными дескрипторами, представляющими вызов друг с другом. Кроме того, поставщик услуг может выполнять обратные вызовы для нового вызова, прежде чем он возвратится из этой процедуры. В любом случае поставщик услуг также должен считать возвращенный дескриптор "еще недействителен" до тех пор, пока соответствующее ASYNC_COMPLETION сообщение не сообщит об успешном выполнении . Иными словами, он не должен выдавать какое-либо сообщение LINEEVENT для нового вызова или включать его в число вызовов в сообщениях или структурах данных о состоянии для строки.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | tspi.h |