ITAutomatedPhoneControl::SelectCall 메서드(tapi3if.h)
SelectCall 메서드는 pCall 매개 변수가 가리키는 Call 개체에 현재 휴대폰 개체를 선택합니다.
구문
HRESULT SelectCall(
[in] ITCallInfo *pCall,
[in] VARIANT_BOOL fSelectDefaultTerminals
);
매개 변수
[in] pCall
ITCallInfo 인터페이스에 대한 포인터입니다.
[in] fSelectDefaultTerminals
VARIANT_TRUE 경우 기본 터미널을 사용합니다. 자세한 내용은 아래 설명 부분을 참조하십시오.
반환 값
메서드가 성공하면 S_OK가 반환되고, 그렇지 않으면 오류 값이 반환됩니다.
설명
애플리케이션은 이 메서드가 성공을 반환하려면 통화와 전화 모두에 대한 소유자 권한이 있어야 합니다. 휴대폰이 소유자 권한으로 아직 열려 있지 않으면 이 방법이 실패합니다.
fSelectDefaultTerminals 매개 변수가 VARIANT_TRUE 설정된 경우 이 메서드는 휴대폰과 연결된 모든 기본 터미널을 검색하고 통화 시 해당 터미널을 선택하려고 시도합니다. 터미널 중 하나의 인스턴스화에 실패하거나 통화에서 터미널 중 하나를 선택하지 못하면 전체 SelectCall 메서드가 실패를 반환하고 전화에서 통화가 선택되지 않습니다. 애플리케이션에 필요한 동작이 아닌 경우 애플리케이션은 fSelectDefaultTerminals 매개 변수에 대한 VARIANT_FALSE 전달하고 터미널 선택을 개별적으로 처리해야 합니다.
이 메서드가 성공적으로 완료되면 전화 개체는 호출 개체(즉, ITCallInfo에서 AddRef 메서드를 호출)에 대한 참조를 유지합니다.
Windows XP의 경우 휴대폰에서 한 번에 하나의 통화만 선택할 수 있습니다. 이후 버전의 TAPI는 여러 통화 모양을 지원하는 휴대폰에서 사용할 여러 통화의 동시 선택을 지원할 수 있습니다.
(1) 애플리케이션이 ITAutomatedPhoneControl::UnselectCall을 호출하거나 (2) 전화 개체 자체가 ITAutomatedPhoneControl::UnselectCall을 호출할 수 있는 두 가지 방법으로 통화를 선택 취소할 수 있습니다. 이 경우에 대한 자세한 내용은 다음 목록을 참조하세요.
이 메서드가 성공적으로 완료되면 선택한 호출에서 다음 처리가 수행됩니다.
- 휴대폰이 켜지면 전화 개체는 ITBasicCallControl::D 이전화 상태가 아닌 현재 처리된 모든 통화에서 CS_DISCONNECTED 호출합니다.
- 선택한 통화가 CS_DISCONNECTED 통화 상태에 도달하면 전화 개체는 ITAutomatedPhoneControl::UnselectCall 메서드를 사용하여 통화를 자동으로 선택 취소합니다.
- 휴대폰이 닫히면 선택한 모든 통화가 해당 휴대폰에서 자동으로 선택 취소됩니다.
- 휴대폰이 꺼져 있거나 휴대폰이 꺼져 있을 때 통화가 선택되면 전화 개체는 현재 처리된 통화에서 ITBasicCallControl::Answer 를 호출합니다(CS_OFFERING 통화 상태인 경우).
- 전화 개체는 CS_INPROGRESS 통화 상태에서 통화가 선택되고 휴대폰이 꺼져 있거나 휴대폰에서 선택한 통화가 CS_INPROGRESS 통화 상태에 들어가고 휴대폰이 꺼져 있는 경우 ITAutomatedPhoneControl::StartTone(PT_RINGBACK, 0 )을 호출합니다.
- 전화 개체는 CS_CONNECTED 통화 상태에서 통화가 선택되거나 휴대폰에서 선택한 통화가 CS_CONNECTED 통화 상태가 되면 ITAutomatedPhoneControl::StopTone 을 자체 호출합니다.
- 전화 개체는 CS_OFFERING, CS_INPROGRESS 또는 CS_CONNECTED 통화 상태에서 통화가 선택되고 휴대폰이 onhook인 경우 ITAutomatedPhoneControl::StartRinger(0, 0 )를 호출합니다. 또한 휴대폰에서 선택한 통화가 CS_OFFERING, CS_INPROGRESS 또는 CS_CONNECTED 통화 상태에 들어가고 휴대폰이 온후크인 경우에도 발생합니다.
- 휴대폰이 onhook인 경우 전화 개체는 ITAutomatedPhoneControl::StopRinger 자체를 호출합니다.
- 휴대폰이 꺼져 있고 CS_DISCONNECTED 통화 상태 이벤트가 CEC_DISCONNECT_BUSY 같은 경우 전화 개체는 ITAutomatedPhoneControl::StartTone(PT_BUSY, 0 )을 호출합니다.
- 휴대폰이 offhook이고 CS_DISCONNECTED 통화 상태 이벤트가 CEC_DISCONNECT_NORMAL 같은 경우 전화 개체는 ITAutomatedPhoneControl::StopTone을 호출합니다.
- 휴대폰이 꺼져 있고 CS_DISCONNECTED 통화 상태 이벤트가 CEC_DISCONNECT_BUSY 원인이나 CEC_DISCONNECT_NORMAL 유발하지 않는 경우 전화 개체는 ITAutomatedPhoneControl::StartTone(PT_ERROR, 0 )을 호출합니다.
요구 사항
대상 플랫폼 | Windows |
헤더 | tapi3if.h(Tapi3.h 포함) |
라이브러리 | Uuid.lib |
DLL | Tapi3.dll |