M60 : Echo issues on Native iOS 10

616 views
Skip to first unread message

Raju sn

unread,
Aug 27, 2017, 10:40:18 AM8/27/17
to discuss-webrtc
Hi,

Experiencing echo issues when using iOS native code.
Following is the log taken on iPhone 6 & iPhone 6+

Can any one suggest if using the flags like googEchoCancellation help in handling echo cancellation issues on iOS ..
(OR) Any alternate mechanism ?

(webrtcvoiceengine.cc:1336): WebRtcVoiceMediaChannel::SetSendParameters: {codecs: [AudioCodec[111:opus:48000:0:2], AudioCodec[103:ISAC:16000:0:1], AudioCodec[9:G722:8000:0:1], AudioCodec[102:ILBC:8000:0:1], AudioCodec[0:PCMU:8000:0:1], AudioCodec[8:PCMA:8000:0:1], AudioCodec[105:CN:16000:0:1], AudioCodec[13:CN:8000:0:1], AudioCodec[126:telephone-event:8000:0:1]], extensions: [{uri: urn:ietf:params:rtp-hdrext:ssrc-audio-level, id: 1}], max_bandwidth_bps: -1, options: AudioOptions {}}
(webrtcvoiceengine.cc:1725): Recreate all the receive streams because the send codec has changed.
(webrtcvoiceengine.cc:2177): WebRtcVoiceMediaChannel::SetMaxSendBitrate.
(webrtcvoiceengine.cc:1508): Setting voice channel options: AudioOptions {}
(webrtcvoiceengine.cc:338): WebRtcVoiceEngine::ApplyOptions: AudioOptions {audio_jitter_buffer_max_packets: 50, audio_jitter_buffer_fast_accelerate: false, }
(webrtcvoiceengine.cc:354): Always disable AEC on iOS. Use built-in instead.
(webrtcvoiceengine.cc:380): Always disable NS on iOS. Use built-in instead.
(webrtcvoiceengine.cc:391): Always disable AGC on iOS. Use built-in instead.
(audio_device_impl.cc:1760): BuiltInAECIsAvailable
(audio_device_generic.cc:51): BuiltInAECIsAvailable: Not supported on this platform
(audio_device_impl.cc:1763): output: 0
(apm_helpers.cc:106): Echo control set to 0 with mode 0
(apm_helpers.cc:116): EC metrics set to 0
(audio_device_impl.cc:1776): BuiltInAGCIsAvailable
(audio_device_generic.cc:61): BuiltInAGCIsAvailable: Not supported on this platform
(audio_device_impl.cc:1779): output: 0
(audio_device_impl.cc:1071): SetAGC(0)
(apm_helpers.cc:67): Failed to set AGC mode in ADM: 0
(audio_device_impl.cc:1792): BuiltInNSIsAvailable
(audio_device_generic.cc:71): BuiltInNSIsAvailable: Not supported on this platform
(audio_device_impl.cc:1795): output: 0
(apm_helpers.cc:141): NS set to 0
(webrtcvoiceengine.cc:518): NetEq capacity is 50
(webrtcvoiceengine.cc:524): NetEq fast mode? 0
(webrtcvoiceengine.cc:531): Typing detection is enabled? 0
(webrtcvoiceengine.cc:542): Delay agnostic aec is enabled? 0
(webrtcvoiceengine.cc:551): Extended filter aec is enabled? 0
(webrtcvoiceengine.cc:560): Experimental ns is enabled? 0
(webrtcvoiceengine.cc:566): Intelligibility Enhancer is enabled? 0

Thanks,
Raju

Henrik Andreasson

unread,
Aug 28, 2017, 5:16:01 AM8/28/17
to discuss-webrtc
WebRTC always uses the built-in AEC on iOS devices but there is no API available to query for it. That's why use see the
"BuiltInAECIsAvailable: Not supported on this platform" above.

So, the logs shown are normal and expected. If your iOS device is causing echo, the reasons can e.g. be:
1) failing built-in AEC on the device (rare), or 2)  extreme signal from the remote end.

More detailed analysis of the exact signals (near-end and far-end) on the iOS device are needed to provide better answer.

Is the issue consistent; i.e., does the iOS device always cause echo?

What type of client is used on the remote side?

--

---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrtc+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/246b692f-0aac-4dc6-b81a-cccb4f9adfd3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raju sn

unread,
Aug 28, 2017, 9:23:17 AM8/28/17
to discuss-webrtc
Hi Henrik,

Thanks a lot for the inputs.

We have used 2 setups for checking a voice call between Party A and Party B.
1. iOS (iphone 6) -> iOS (iphone 6+)
2. iOS (iphone 5s) -> Android (Samsung S6 and other devices)

Our Android app is stable and production quality.

We are getting echo at Party B only. This is consistent.

So, it looks like echo is because of Party A source (Mike) side issue.

Big surprise is that, we never experience echo at Party A. 
Only difference at Party B is, we enabled Call-Kit and are handling ringtone.

One question ...
>>>>>> More detailed analysis of the exact signals (near-end and far-end) on the iOS device are needed to provide better answer
Can you please help me on how to take this information in iOS case ?

Also please suggest any way we can configure the voice source to suppress echo.

Thanks,
Raju
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.

Henrik Andreasson

unread,
Aug 28, 2017, 9:34:15 AM8/28/17
to discuss-webrtc
Please file an issue here. Are you saying that the CallKit side always causes echo irrespective of device?
I have no experience with CallKit. Let's discuss in the reported issue instead.

To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrtc+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/ce392cec-8566-4e9f-86de-d22da6bf5f6c%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages