Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Why I can hear only one (calling) side using TAPI and H.323?

Why I can hear only one (calling) side using TAPI and H.323?

Scheduled Pinned Locked Moved C / C++ / MFC
helpquestionannouncementlearning
1 Posts 1 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G Offline
    G Offline
    GAJERA
    wrote on last edited by
    #1

    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; Answer(pEvent); } 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(pTe

    1 Reply Last reply
    0
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • World
    • Users
    • Groups