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

Функция lineDial набирает указанный набираемый номер при указанном вызове.

Синтаксис

LONG lineDial(
  HCALL  hCall,
  LPCSTR lpszDestAddress,
  DWORD  dwCountryCode
);

Параметры

hCall

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

lpszDestAddress

Назначение для набора с использованием стандартного набираемого номера.

dwCountryCode

Код страны или региона назначения. Эта функция используется реализацией для выбора протоколов выполнения вызова для адреса назначения. Если указано значение 0, используется протокол выполнения вызова по умолчанию, определенный поставщиком услуг.

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

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

LINEERR_ADDRESSBLOCKED, LINEERR_INVALPOINTER, LINEERR_DIALBILLING, LINEERR_NOMEM, LINEERR_DIALDIALTONE, LINEERR_NOTOWNER, LINEERR_DIALPROMPT, LINEERR_OPERATIONFAILED, LINEERR_DIALQUIET, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLHANDLE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALCALLSTATE, LINEERR_UNINITIALIZED LINEERR_INVALCOUNTRYCODE.

Комментарии

Если возвращается LINEERR_INVALADDRESS, набор не выполнен. Если возвращается LINEERR_DIALBILLING, LINEERR_DIALQUIET, LINEERR_DIALDIALTONE или LINEERR_DIALPROMPT, ни одно из действий, выполняемых lineDial , не было выполнено. Например, ни один из доступных для набора адресов до набора символа-обидчика не был набран, состояние перехватчика не изменилось и т. д.

Функция lineDial используется для набора номера при существующем внешнем виде вызова. Например, после того, как звонок настроен для передачи или конференции, звонок консультации выделяется автоматически, и функция lineDial будет использоваться для набора этого консультационного звонка. Функцию lineDial можно вызывать несколько раз в ходе многоэтапного набора, если это позволяют возможности устройства линии. Кроме того, в одной строке набора, разделенной CRLF, можно указать несколько адресов. Поставщики услуг, обеспечивающие обратное мультиплексирование, могут устанавливать отдельные физические вызовы с каждым адресом и могут возвращать один дескриптор вызова в совокупности всех вызовов приложения. Все адреса будут использовать один и тот же код страны или региона.

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

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

Функция lineDial также может использоваться при частичном наборе номера. Чтобы инициировать вызов с помощью частичного набора номера, приложение вызывает lineMakeCall и задает частичную строку набора. Частичная строка набора — это любая строка набора, заканчивающаяся точкой с запятой. Вызов обычно переходит на LINECALLSTATE_DIALING после чего можно вызвать lineDial , чтобы указать больше строк набора, каждая из которых завершается точкой с запятой. Для завершения набора номера вызывается lineDial со строкой набора, которая не заканчивается точкой с запятой (например, пустой строкой). Этот метод позволяет приложениям выполнять интерактивный частичный набор номера с пользователем или включать более сложный набор, чем может быть способен TSP.

Если в lineMakeCall введена пустая строка назначения или пустая строка, заканчивающаяся точкой с запятой (";"), приложение переходит в LINE_CALLSTATE_DIALTONE. Функция lineDial может быть вызвана в этом состоянии для ввода одной строки набора или нескольких частичных строк набора, каждая из которых разделена точкой с запятой. Приложение переходит в состояние LINECALLSTATE_DIALING после ввода первой цифры.

Примечание Функция lineDial доступна только в том случае, если вызов находится в LINECALLSTATE_DIALING или LINE_CALLSTATE_DIALTONE. Если при подключении вызова требуется DTMF (LINECALLSTATE_CONNECTED), используйте lineGenerateDigits.
 

Требования

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

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

Справочник по базовым службам телефонии

Обзор набора номера

Коммутируемые адреса

LINE_CALLSTATE

LINE_REPLY

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

lineDrop

lineMakeCall