Hello
I am beginner in VOIP.I try to make simple calling and answering application.
Here i face this problem -I can hear only one side(calling).

Please check this following code.

//Calling-Ip Calling Function
gpAddress->CreateCall(bstr,LINEADDRESSTYPE_IPADDRESS,TAPIMEDIATYPE_AUDIO,&gpCall);
hr=SelectTerminalsOnCall(gpCall);
hr=gpCall->Connect(0);


//Answer -I add Answer method in event.
LRESULT CVOIPCallDlg::OnTAPIEvent(WPARAM wParam, LPARAM lParam)
{
CString csName;
switch(wParam)
{
case TE_CALLNOTIFICATION:
{
AddLog("call notification event has occured");
// Get the ITCallNotification interface.
IDispatch* pEvent=(IDispatch *)lParam;
<b>Answer(pEvent);</b>
}
break;
case TE_CALLSTATE:
ITCallStateEvent *a=(ITCallStateEvent *)lParam;
ITCallInfo *b;
if(a->get_Call(&b) != S_OK)
AddLog("get_Call()",hr);

CALL_STATE pCallState;

if(a->get_State(&pCallState)!= S_OK)
AddLog("get_State()",hr);

switch(pCallState)
{
case CS_INPROGRESS:
AddLog("dialing");
break;
case CS_CONNECTED:
AddLog("Connected");
break;
case CS_DISCONNECTED:
AddLog("Disconnected");
break;
case CS_OFFERING:
AddLog("A party wants to communicate with you!");
break;
case CS_IDLE:
AddLog("Call is created!");
break;
}
break;
}
pEvent->Release();
return 0;
}
LRESULT CVOIPCallDlg::Answer(IDispatch* pEvent)
{
HRESULT hr;
ITCallNotificationEvent * pNotify;
pEvent->QueryInterface( IID_ITCallNotificationEvent,(void **)&pNotify);
ITCallInfo * pCallInfo;
pNotify->get_Call(&pCallInfo);

ITBasicCallControl * pBasicCall;
hr = pCallInfo->QueryInterface(IID_ITBasicCallControl,(void**)&pBasicCall);

hr = pCallInfo->get_Address(&gpAddress);
ITStreamControl * pStreamControl;
pBasicCall->QueryInterface(IID_ITStreamControl,(void **) &pStreamControl);

IEnumStream * pEnumStreams;
ITStream * pStream;
hr = pStreamControl->EnumerateStreams(&pEnumStreams);
pEnumStreams->Next(1, &pStream, NULL);
long lMediaType;
TERMINAL_DIRECTION dir;
pStream->get_MediaType(&lMediaType);
hr = pStream->get_Direction( &dir );
ITTerminal * pTerminal;
ITTerminalSupport * pTerminalSupport;

gpAddress->QueryInterface(IID_ITTerminalSupport,(void **)&pTerminalSupport);

hr = pTerminalSupport->GetDefaultStaticTerminal(lMediaType,dir,&pTerminal);
hr = pStream->SelectTerminal(pTerminal);
hr = pBasicCall->Answer();
return hr;
}

Can you help me how it resolve.

Thanks
Mahendra