lineForward 함수(tapi.h)

lineForward 함수는 지정된 전달 지침에 따라 지정된 줄의 지정된 주소로 향하는 호출을 전달합니다. 원래 주소(dwAddressID)를 전달하면 해당 주소에 대해 지정된 수신 호출이 스위치에 의해 다른 번호로 편향됩니다. 이 함수는 전방 및 방해 금지 기능의 조합을 제공합니다. 이 함수는 현재 적용 중인 전달을 취소할 수도 있습니다.

구문

LONG lineForward(
  HLINE                   hLine,
  DWORD                   bAllAddresses,
  DWORD                   dwAddressID,
  LPLINEFORWARDLIST const lpForwardList,
  DWORD                   dwNumRingsNoAnswer,
  LPHCALL                 lphConsultCall,
  LPLINECALLPARAMS const  lpCallParams
);

매개 변수

hLine

줄 디바이스에 대한 핸들입니다.

bAllAddresses

줄의 모든 원래 주소 또는 지정된 주소만 전달할지 여부를 지정합니다. TRUE이면 줄의 모든 주소가 전달되고 dwAddressID는 무시됩니다. FALSE이면 dwAddressID로 지정된 주소만 전달됩니다.

dwAddressID

들어오는 호출을 전달해야 하는 지정된 줄의 주소입니다. bAllAddressesTRUE이면 이 매개 변수는 무시됩니다.

주소 식별자는 주소와 영구적으로 연결됩니다. 식별자는 운영 체제 업그레이드에서 일정하게 유지됩니다.

lpForwardList

LINEFORWARDLIST 형식의 특정 전달 지침을 설명하는 고정 크기 데이터 구조에 대한 포인터입니다.

dwNumRingsNoAnswer

통화가 "응답 없음"으로 간주되기 전의 링 수입니다. dwNumRingsNoAnswer 가 범위를 벗어나면 실제 값이 허용 범위에서 가장 가까운 값으로 설정됩니다.

lphConsultCall

HCALL 위치에 대한 포인터입니다. 일부 전화 통신 환경에서 이 위치는 전달되는 당사자와 상담하는 데 사용되는 상담 통화에 대한 핸들과 함께 로드되며 애플리케이션은 이 호출의 초기 단독 소유자가 됩니다. 이 포인터는 착신 전환에 상담 전화가 필요하지 않은 환경에서도 유효해야 합니다. 이 핸들은 상담 호출이 생성되지 않은 경우 NULL 로 설정됩니다.

lpCallParams

LINECALLPARAMS 형식의 구조체에 대한 포인터입니다. lineForward가 전달 대상에 대한 호출을 설정해야 하는 경우가 아니면 이 포인터는 무시됩니다(lphConsultCall이 반환되며 이 경우 lpCallParams는 선택 사항임). NULL인 경우 기본 호출 매개 변수가 사용됩니다. 그렇지 않으면 지정된 호출 매개 변수가 hConsultCall을 설정하는 데 사용됩니다.

반환 값

함수가 비동기적으로 완료된 경우 양수 요청 식별자를 반환하거나 오류가 발생할 경우 음수 오류 번호를 반환합니다. 함수가 성공하면 해당 LINE_REPLY 메시지의 dwParam2 매개 변수가 0이거나 오류가 발생하면 음수 오류 번호입니다. 가능한 반환 값은 다음과 같습니다.

LINEERR_INVALLINEHANDLE, LINEERR_NOMEM, LINEERR_INVALADDRESSID, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALADDRESS, LINEERR_OPERATIONFAILED, LINEERR_INVALCOUNTRYCODE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALPOINTER, LINEERR_STRUCTURETOOSMALL, LINEERR_INVALPARAM, LINEERR_UNINITIALIZED.

설명

전달이 성공하면 서비스 공급자가 요청을 수락했음만 나타내며 전달은 스위치에서 설정되지 않습니다. LINE_ADDRESSSTATE(전달) 메시지는 스위치에서 설정된 전달에 대한 확인을 제공합니다.

주소 전달은 이 함수가 다시 호출될 때까지 계속 적용됩니다. 가장 최근의 전달 목록은 이전 전달 목록을 대체합니다. NULL 포인터를 lpForwardList로 지정하여 전달을 취소할 수 있습니다. 전달 목록의 항목에 대해 NULL 대상 주소를 지정하는 경우 작업은 방해 금지 역할을 합니다.

주소의 상태 전달은 외부적으로 영향을 받을 수도 있습니다( 예: 스위치의 관리 작업 또는 다른 스테이션의 사용자). 서비스 공급자가 이 상태 변경을 인식하지 못할 수 있으며 스위치에 알려진 전달 상태와 동기화를 유지하지 못할 수 있습니다.

서비스 공급자가 주소의 전달 상태를 "확실히" 알 수 없으므로(즉, 알 수 없는 방식으로 전달되었거나 전달되지 않았을 수 있음) lineForward 는 새 전달 지침을 설정하지 않는 한 성공합니다. 즉, 전달이 적용되지 않는 한 번에 모든 전달이 취소되는 요청이 성공합니다. 이는 이전 전달 지침 집합만 변경할 수 있는 "unforwarding"이 없기 때문입니다.

이 작업의 성공 또는 실패는 이전 전달 지침 집합에 따라 달라지지 않으며 다른 전달 지침을 설정할 때도 마찬가지입니다. 공급자는 새 전달 지침을 설정하기 전에 "모든 것을 취소"해야 합니다. 아날로그 전화 통신 환경에서 시간이 걸릴 수 있으므로 공급자는 현재 전달을 새 전달과 비교하고 스위치에 대한 지침만 실행하여 최종 상태로 전환할 수 있습니다(변경되지 않은 전달은 영향을 받지 않음).

LINEFORWARDLISTdwNumEntries가 0으로 설정된 경우 lineForward를 호출하면 NULLlpForwardList 매개 변수를 제공하는 것과 동일한 효과가 있습니다. 현재 적용 중인 모든 전달을 취소합니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 tapi.h
라이브러리 Tapi32.lib
DLL Tapi32.dll

추가 정보

앞으로 개요

LINECALLPARAMS

LINEFORWARDLIST

LINE_ADDRESSSTATE

LINE_REPLY

보조 회선 서비스 함수

TAPI 2.2 참조 개요