Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.
Avoid panics caused by deleting the VAS uplink stream before all buffers emptied (Known Issue)
Premature deletion of a VoIP Audio Service (VAS) uplink stream (CVoIPAudioUplinkStream) instance may cause a panic.
After calling CVoIPAudioUplinkStream::Stop(), a VAS client should still be prepared to receive MVoIPUplinkObserver::EmptyBuffer() callbacks as VAS ensures that all recorded (and buffered) data is delivered.
Deleting the uplink stream immediately after calling Stop() causes a VoIPUplinkThreadMmfDevSoundProxy 1 panic.
A VAS client should proceed to delete the uplink stream only after receiving a MVoIPUplinkObserver::Event() callback with either KUplinkClosed or KUplinkError as an event type.
Additionally, after calling CVoIPAudioUplinkStream::Stop(), a client should not longer call CVoIPAudioUplinkStream::BufferEmptied() in response to MVoIPUplinkObserver::EmptyBuffer() callbacks.
The VoIPTestApp example application takes care of this by maintaining uplink/downlink state variables and only calling BufferEmptied() if the uplink is in 'streaming' state.