LINE_NEWCALL сообщение
Сообщение TSPI LINE_NEWCALL отправляется в функцию обратного вызова LINEEVENT всякий раз, когда новый вызов, не инициированный TAPI, поступает в строку, открытую в TAPI. Это должно быть первое сообщение, отправленное в связи с этим вызовом. TAPI записывает непрозрачный дескриптор htCall в расположение, переданное поставщиком услуг в виде dwParam2. Это дает поставщику услуг значение htCall , которое будет использоваться в последующих сообщениях.
Параметры
-
htLine
-
Непрозрачный объект TAPI дескриптор для линейного устройства.
-
htCall
-
Не используется.
-
dwMsg
-
Значение LINE_NEWCALL.
-
dwParam1
-
Непрозрачный дескриптор поставщика услуг для вызова типа HDRVCALL. TAPI передает это значение в качестве параметра hdCall для идентификации вызова в последующих процедурах, которые он вызывает для работы с вызовом.
-
dwParam2
-
Указатель типа LPHTAPICALL, указывающий на HTAPICALL. TAPI записывает непрозрачный дескриптор TAPI для вызова в указанное расположение. Поставщик услуг должен сохранить это значение и передать его в качестве параметра htCall , чтобы определить вызов в последующих событиях, которые он сообщает для вызова.
Этот параметр также может получить значение NULL (см. следующий раздел о примечаниях).
-
dwParam3
-
Не используется.
Комментарии
Поставщик услуг должен отправить сообщение LINE_CALLSTATE в качестве следующего сообщения для этого вызова. Событие LINE_NEWCALL необычно тем, что оно также передает значение обратно поставщику услуг.
Эта функция сообщает о любых новых вызовах, которые исходят от поставщика услуг (входящие, исходящие, инициированные на телефоне и т. д.), для которых TAPI и поставщик услуг еще не обменялись непрозрачными дескрипторами. Дескрипторы обмениваются, чтобы TAPI и поставщик услуг могли впоследствии отправлять запросы и сообщать о событиях, связанных с вызовом. Так как эти новые вызовы не обязательно являются входящими, изначально они могут находиться в любом состоянии, а не в состоянии предложения . Если поставщик услуг запускается и обнаруживает, что один или несколько вызовов уже активны в строке, он сообщает о них TAPI с помощью LINE_NEWCALL сообщений, за которыми следуют LINE_CALLSTATE сообщения, указывающие на текущее состояние. О новом исходящем вызове, инициированном на телефоне пользователем, будет сообщено LINE_NEWCALL сообщение, а исходное сообщение LINE_CALLSTATE будет означать, что звонок находится в состоянии DIALTONE (а затем продолжается оттуда).
Если поставщик услуг передает большое количество вызовов в TAPI за очень короткое время (в течение одного и того же цикла прерывания), TAPI может отставать в обработке этих вызовов. В этом случае TAPI сообщает поставщику услуг о том, что нужно подождать некоторое время перед отправкой дополнительных вызовов. Он сообщает об этом, записывая значение NULL вместо допустимого HTAPICALL в расположение, на которое указывает параметр dwParam2LINE_NEWCALL. Это означает, что попытка обработать новый дескриптор вызова не была успешной, скорее всего, из-за временной невозможности выделить память. Поставщик услуг может ответить путем отмены вызова или повторной отправки сообщения LINE_NEWCALL после задержки планирования (в течение которого поставщик услуг должен предоставить обработчику разрешение TAPI обрабатывать другие ожидающие действия). В любом случае дальнейшие сообщения о новом вызове не могут быть переданы в TAPI до успешного обмена дескрипторами. Когда расположение, на которое указывает dwParam2 , получает значение, отличное от NULL , поставщик услуг знает, что это значение является допустимым дескриптором HTAPICALL для вызова.
На уровне TAPI нет соответствующего сообщения. Это сообщение используется на уровне TSPI, чтобы однозначно и однозначно ввести новый входящий вызов TAPI и получить непрозрачный идентификатор TAPI для вызова.
Требования
Требование | Значение |
---|---|
Версия TAPI |
Требуется TAPI 2.0 или более поздней версии |
Заголовок |
|