[ 
https://issues.apache.org/jira/browse/GUACAMOLE-1413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17408137#comment-17408137
 ] 

Juergen Kuri edited comment on GUACAMOLE-1413 at 9/1/21, 12:22 PM:
-------------------------------------------------------------------

Hello [~vnick],

alright understood, thank you for that hint. No matter for what protocol, VNC 
or RDP, the feature applies also for RDP, as you pointed out. The question is 
if the RDP server configuration for audio channel number selection also has a 
value other than 1 or 2 or mono or stereo, allowing to set it by the RDP-client 
(Guacamole). If so, I would prefer to rollout such a GPO to the Windows systems 
running a RDP-server. But if I look into Microsoft's [policy settings 
spreadsheet|https://download.microsoft.com/download/8/F/B/8FBD2E85-8852-45EC-8465-92756EBD9365/Windows10andWindowsServer2016PolicySettings.xlsx]
 for Windows 10 and 2016 for example, the template file 
{{terminalserver-server.adm}} doesn't have such a parameter for the selection 
of the number of audio channels. "_If the RDP server uses a different value, 
the Guacamole audio stream will simply be reset appropriately._", from where do 
you have this information?

 According to that spreadsheet the registry key
 * {{HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal 
Services!AllowedAudioQualityMode}}

is of interest which might be have an impact on audio network bandwidth 
utilisation. To have a parameter with that three values {{High|Medium|Dynamic}} 
for individual RDP sessions respectively connections might be of interest:
{quote}This policy setting allows you to limit the audio playback quality for a 
Remote Desktop Services session. Limiting the quality of audio playback can 
improve connection performance, particularly over slow links. If you enable 
this policy setting, you must select one of the following: High, Medium, or 
Dynamic. If you select High, the audio will be sent without any compression and 
with minimum latency. This requires a large amount of bandwidth. If you select 
Medium, the audio will be sent with some compression and with minimum latency 
as determined by the codec that is being used. If you select Dynamic, the audio 
will be sent with a level of compression that is determined by the bandwidth of 
the remote connection. The audio playback quality that you specify on the 
remote computer by using this policy setting is the maximum quality that can be 
used for a Remote Desktop Services session, regardless of the audio playback 
quality configured on the client computer. For example, if the audio playback 
quality configured on the client computer is higher than the audio playback 
quality configured on the remote computer, the lower level of audio playback 
quality will be used. Audio playback quality can be configured on the client 
computer by using the audio quality mode setting in a Remote Desktop Protocol 
(.rdp) file. By default, audio playback quality is set to Dynamic. If you 
disable or do not configure this policy setting, audio playback quality will be 
set to Dynamic.
{quote}


was (Author: jkuri):
Hello [~vnick],

alright understood, thank you for that hint. No matter for what protocol, VNC 
or RDP, the feature applies also for RDP, as you pointed out. The question is 
if the RDP server configuration for audio channel number selection also has a 
value other than 1 or 2 or mono or stereo, allowing to set it by the RDP-client 
(Guacamole). If so, I would prefer to rollout such a GPO to the Windows systems 
running a RDP-server. But if I look into Microsoft's [policy settings 
spreadsheet|https://download.microsoft.com/download/8/F/B/8FBD2E85-8852-45EC-8465-92756EBD9365/Windows10andWindowsServer2016PolicySettings.xlsx]
 for Windows 10 and 2016 for example, the template file 
{{terminalserver-server.adm}} doesn't have such a parameter for the selection 
of the number of audio channels.
 According to that spreadsheet the registry key
 * {{HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal 
Services!AllowedAudioQualityMode}}

is of interest which might be have an impact on audio network bandwidth 
utilisation. To have a parameter with that three values {{High|Medium|Dynamic}} 
for individual RDP sessions respectively connections might be of interest:
{quote}This policy setting allows you to limit the audio playback quality for a 
Remote Desktop Services session. Limiting the quality of audio playback can 
improve connection performance, particularly over slow links. If you enable 
this policy setting, you must select one of the following: High, Medium, or 
Dynamic. If you select High, the audio will be sent without any compression and 
with minimum latency. This requires a large amount of bandwidth. If you select 
Medium, the audio will be sent with some compression and with minimum latency 
as determined by the codec that is being used. If you select Dynamic, the audio 
will be sent with a level of compression that is determined by the bandwidth of 
the remote connection. The audio playback quality that you specify on the 
remote computer by using this policy setting is the maximum quality that can be 
used for a Remote Desktop Services session, regardless of the audio playback 
quality configured on the client computer. For example, if the audio playback 
quality configured on the client computer is higher than the audio playback 
quality configured on the remote computer, the lower level of audio playback 
quality will be used. Audio playback quality can be configured on the client 
computer by using the audio quality mode setting in a Remote Desktop Protocol 
(.rdp) file. By default, audio playback quality is set to Dynamic. If you 
disable or do not configure this policy setting, audio playback quality will be 
set to Dynamic.
{quote}

> RDP Session Parameter for the Number of Audio Channels to be transmitted
> ------------------------------------------------------------------------
>
>                 Key: GUACAMOLE-1413
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-1413
>             Project: Guacamole
>          Issue Type: New Feature
>          Components: guacamole, guacd
>            Reporter: Juergen Kuri
>            Priority: Major
>
> h3. Context
> We want to use the Guacamole RDP proxy server with full audio support using
>  # audio input redirection, rule {{enable-audio-input=true}}
>  # audio output redirection, rule {{disable-audio=false}}
> In the source code, header file {{src/pulse/pulse/pulse.h,}} we see the 
> following constants for the Pulse Audio library for PCM modulator 
> parametrisation of the RDP server:
> {code:c}
> /**
>  * Rate of audio to stream, in Hz.
>  */
> #define GUAC_PULSE_AUDIO_RATE 44100
>  
> /**
>  * The number of channels to stream.
>  */
> #define GUAC_PULSE_AUDIO_CHANNELS 2
>  
> /**
>  * The number of bits per sample.
>  */
> #define GUAC_PULSE_AUDIO_BPS 16
> {code}
> h4. Problem
> Parameter of interest:
>  * {{GUAC_PULSE_AUDIO_CHANNELS 2}}
> For remote users with an internet connection with low network bandwidth, it 
> might be useful to have sessions with just *_one_* audio channel, mono 
> instead of stereo expecting utilising just half of the network bandwidth for 
> the part of audio blob transmission.
> Is this assumption correct, transmitting just one audio channel would half 
> the network bandwidth utilisation for audio blobs?
> h3. Feature
> Add another rule parameter for an individual RDP server session or connection 
> respectively
>  * for database table {{guacamole_connection_parameter}}
> which allows us to parametrise the number of simultaneous audio channels to 
> be transmitted *_in both redirections_*, audio in- and output.
> Possible parameter names might be:
>  * {{disable-audio-stereo}}, default {{false}}
>  * {{enable-audio-mono}}, default {{false}}
>  * {{audio-channels}}, \{1|2}, default {{2}}
> If this is not feasible or difficult to implement for some reasons, add a 
> corresponding parameter to daemon configuration file
>  * {{guacd.conf}}
>  * or {{guacamole.properties}}
> affecting all RDP sessions in the same way.
> h3. Also of Interest
> The parameter {{GUAC_PULSE_AUDIO_RATE}} would also help to reduce network 
> bandwidth if we reduce the sampling rate of the PCM modulator. If full 
> audible audio bandwidth is not needed cause we  just transmit speech for 
> example, the sampling rate can be reduced as we know it for telephone lines 
> (audio bandwidth 300 Hz to 3400 Hz). This however is more complex, a low-pass 
> or an anti-aliasing filter must be programmatically implemented avoiding 
> audio signal aliasing. Topics like  Nyquist–Shannon sampling theorem, 
> Discrete Fourier Transformation DTFT and audio signal aliasing must be 
> studied for deeper understanding before implementation.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to