接收呼叫
下面的代码示例演示如何处理新的呼叫通知,例如查找或创建适当的终端来呈现媒体。 此示例是应用程序为处理事件而必须实现的 switch 语句的一部分。 代码本身可以包含在 ITTAPIEventNotification::Event 的实现中,或者 Event 方法可能会向包含 开关的工作线程发布消息。
在使用此代码示例之前,必须执行 初始化 TAPI、 选择地址和 注册事件中的操作。
此外,必须在检索 ITBasicCallControl 和 ITAddress 接口指针后执行选择终端中所示的操作。
注意
此示例没有适用于生产代码的错误检查和发布。
// pEvent is an IDispatch pointer for the ITCallNotificationEvent interface of the
// call object created by TAPI, and is passed into the event handler by TAPI.
case TE_CALLNOTIFICATION:
{
// Get the ITCallNotification interface.
ITCallNotificationEvent * pNotify;
hr = pEvent->QueryInterface(
IID_ITCallNotificationEvent,
(void **)&pNotify
);
// If ( hr != S_OK ) process the error here.
// Get the ITCallInfo interface.
ITCallInfo * pCallInfo;
hr = pNotify->get_Call( &pCallInfo);
// If ( hr != S_OK ) process the error here.
// Get the ITBasicCallControl interface.
ITBasicCallControl * pBasicCall;
hr = pCallInfo->QueryInterface(
IID_ITBasicCallControl,
(void**)&pBasicCall
);
// If ( hr != S_OK ) process the error here.
// Get the ITAddress interface.
ITAddress * pAddress;
hr = pCallInfo->get_Address( &pAddress );
// If ( hr != S_OK ) process the error here.
// Create the required terminals for this call.
{
// See the Select a Terminal code example.
}
// Complete incoming call processing.
hr = pBasicCall->Answer();
// If ( hr != S_OK ) process the error here.
}
相关主题