Author Message
DincerGUNES
Joined: Jul 10, 2018
Messages: 8
Offline
Dear Experts,
Our customer developed their own client via using Client SDK. And they are requesting for the end user to be able to control Voice volume while p2p video call is being made.(Customer want to increase max volume limited by client)
Could you advise how they can achieve this?
Our partner found the methods called "Setspeakergain, Setmicrophonegain and CSAudio?nterface.h" but could not use those. So if you can describe how they can use these methods (If not disabled by CSDK?) they can fix this issue.
Thanks
Best Regards
Nastya
Joined: Dec 20, 2016
Messages: 4
Offline
Hello DincerGUNES,
Your partner found the proper methods SetMicrophoneGain and SetSpeakerGain. You can get audio interface from the Media Services interface (Client.MediaServices.getAudioInterface) and use the methods above for this audio interface.
Mehodesign
Joined: Aug 18, 2017
Messages: 11
Offline
First of all thanks for your quick reply.

We tried to set microphone gain and speaker gain but both of audio devices returns false meaning gain value could not be changed. But we could see than output volume level of device was 100% using AVAudioSession. So we are pretty sure that audio output volume is at max value. When we try FaceTime video call, sound volume is twice stronger than our application.

We decided to make the same test using Avaya Equinox IOS Client. We realized that sound output issue is exactly the same. So it means regardless of application (ours or Avaya Equinox), issue is exactly the same. That leads us to conclude that, somehow SDK reduces sound volume may be while compressing or processing. We really need this issue solved as soon as possible.

If we need to provide more information just to make everything easier, we should stress that iPhone6 and iPhone 6Plus models are affected the most from this problem. They have one speaker instead of two which iPhone7 and later models have. So this may be a clue for weak sound output.

Thanks
Nastya
Joined: Dec 20, 2016
Messages: 4
Offline
Hello Mehodesign,
Thank you for details. I'll check with our experts the information regarding this problem and if it's csdk problem we'll try to fix it asap.
AlexeyNikitin
Joined: Aug 28, 2018
Messages: 3
Offline
SetMicrophoneGain and SetSpeakerGain GME API methods are stubbed in GME for iOS platform, that's why they always return false. Currently Equinox application use MPVolumeView iOS system API directly to control the volume.

I compared the audio volume between Equinox and FaceTime using iPhone 6 and also observe significant difference: actual audio volume in Equinox is quite lower than in FaceTime (I set 100% volume on device in both cases). The cause of low volume in Equinox is audio processing(AEC, AGC etc.) which applied in GME by default.

Compared call volume on P2P call between Equinox clients(OSX and iOS(iPhone 6)) with completely disabled audio processing(AEC, AGC, NS turned off for TX and RX) and FaceTime clients(OSX and iOS(iPhone 6)). Now on iPhone 6 I observe the same loud volume on Equinox and FaceTime.

I suppose that AGC audio processing option affects volume most of all. Also I see that AGC is not enabled in FaceTime(the system microphone volume level is not changed during FaceTime call, but Equinox automatically reduce microphone volume level).

GME audio processing options can be disabled via CSVoIPConfigurationAudio configuration interface provided in GME API:
CSVoIPConfigurationAudio* audioConfig = [[CSVoIPConfigurationAudio alloc] init];

//Disable AGC
audioConfig.transmitAutomaticGainControlMode = CSAutomaticGainControlModeOff;
audioConfig.receiveAutomaticGainControlMode = CSAutomaticGainControlModeOff;

//Disable AEC
audioConfig.echoCancellationMode = CSEchoCancelationModeOff;

//Disable NS
audioConfig.transmitNoiseSuppressionMode = CSNoiseSuppressionModeOff;
audioConfig.receiveNoiseSuppressionMode = CSNoiseSuppressionModeOff;


I recommend to start with AGC(Automatic gain control) disable, because it affects volume level most of all.
BulentK
Joined: Jul 13, 2018
Messages: 3
Offline
Hi,

We disabled the AGC,AEC and NS parameters. We tried also combination of these parameters to get good voice quality. Unfortunately we get voice with echo, if we disable one of the parameters listed above.
AlexeyNikitin
Joined: Aug 28, 2018
Messages: 3
Offline
Hi,

When you tried to disable audio processing and got echo, does audio volume increased?
BulentK
Joined: Jul 13, 2018
Messages: 3
Offline
Because of the echo, we could not decide. Actually there is a small changes on the volume, but it is not enough.
AlexeyNikitin
Joined: Aug 28, 2018
Messages: 3
Offline
You can try to switch GME audio processing options to use device built-in processing via CSVoIPConfigurationAudio configuration interface provided in GME API:

CSVoIPConfigurationAudio* audioConfig = [[CSVoIPConfigurationAudio alloc] init];
//Use built-in AGC
audioConfig.transmitAutomaticGainControlMode = CSAutomaticGainControlModeNative;

//Use built-in AEC
audioConfig.echoCancellationMode = CSEchoCancelationModeNative;

//Use built-in NS
audioConfig.transmitNoiseSuppressionMode = CSNoiseSuppressionModeNative;
Go to:   
Mobile view