Jeff Faull replied to Jeff Faull
05-Feb-10 09:50 AM

After another day of trial and error I think I'm closer however I'm still having problems. I select and can use one terminal for file playback with no problems.
_playbackTerminal = _activeCall.RequestTerminal(TTerminal.FilePlaybackTerminal, TAPIMEDIATYPES.AUDIO, TERMINAL_DIRECTION.TD_CAPTURE);
_playbackTerminal.MediaPlayList = new[] { IdleWav };
_activeCall.SelectTerminalOnCall(_playbackTerminal);
I also select the static terminal for the speakers.
_speakerTerminal = _selectedModem.GetDefaultStaticTerminal(TAPIMEDIATYPES.AUDIO, TERMINAL_DIRECTION.TD_RENDER);
foreach (var stream in _activeCall.Streams.Where(stream => stream.MediaType == TAPIMEDIATYPES.AUDIO).Where(stream => stream.Direction == TERMINAL_DIRECTION.TD_RENDER))
{
stream.SelectTerminal(_speakerTerminal);
}
I keep getting the CME_FAIL event with the following trace:
ITapiTrace Verbose: 0 : Processing TapiCallMediaEventArgs: Event=CME_STREAM_FAIL, Call=TCall: 0 CS_CONNECTED, Cause=CMC_UNKNOWN, Stream=TStream: Wave MSP Render Stream AUDIO TD_RENDER, Terminal=TTerminal Speakers (2- High Definition Au AUDIO TD_RENDER TS_INUSE, Err=JulMar.Tapi3.TapiException (0x80004005): The operation failed - E_FAIL
ITapiTrace Verbose: 0 : TAPIEVENT: 0x10 IDispatch=0x7838C88
ITapiTrace Verbose: 0 : Processing TapiCallMediaEventArgs: Event=CME_STREAM_FAIL, Call=TCall: 0 CS_CONNECTED, Cause=CMC_BAD_DEVICE, Stream=TStream: Wave MSP Render Stream AUDIO TD_RENDER, Terminal=TTerminal Speakers (2- High Definition Au AUDIO TD_RENDER TS_INUSE, Err=JulMar.Tapi3.TapiException (0x80040006): The device is already in use.
I'm assuming this has to do with a half-duplex issue but I'm at a loss for how to fix it.