Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Audio not supported in IronRDP client #636

Open
ahmad201494 opened this issue Jan 18, 2025 · 3 comments
Open

Audio not supported in IronRDP client #636

ahmad201494 opened this issue Jan 18, 2025 · 3 comments
Labels
A-virtual-channel Area: Static or dynamic virtual channel

Comments

@ahmad201494
Copy link

ahmad201494 commented Jan 18, 2025

I have successfully built IronRDP v0.7.3 and when running the ironrdp-client, the RDP session opens without audio support. The audio functionality does not seem to be working within the session. Could you please investigate and provide a solution or guidance on how to enable audio support in the RDP session?

Image

@CBenoit CBenoit added enhancement New feature or request help wanted Extra attention is needed A-virtual-channel Area: Static or dynamic virtual channel P-low Low priority and removed enhancement New feature or request help wanted Extra attention is needed P-low Low priority labels Jan 18, 2025
@CBenoit
Copy link
Member

CBenoit commented Jan 18, 2025

I initially thought maybe your platform was not supported, but audio is supposed to work for all the major platforms via the CPAL backend which should be enabled by default. Can you try to set the environment variable IRONRDP_LOG to debug and run again ironrdp-client?

Here is how you could do that in PowerShell:

$Env:IRONRDP_LOG = 'debug'
ironrdp-client <params>

Or, for bash:

IRONRDP_LOG=debug ironrdp-client <params>

Feel free to redirect the output into a file that you could upload here.

Also let us know which platform you are using, please.

Also cc'ing @elmarco because I believe he’s more familiar than myself on RDPSND and CPAL.

@ahmad201494
Copy link
Author

2025-01-19T10:27:26.978722Z DEBUG ThreadId(01) crates/ironrdp-client/src/main.rs:69: Start RDP thread
2025-01-19T10:27:26.978774Z DEBUG ThreadId(01) crates/ironrdp-client/src/main.rs:74: Run App
2025-01-19T10:27:27.010756Z  INFO ThreadId(14) connect_begin: crates/ironrdp-async/src/connector.rs:23: Begin connection procedure
2025-01-19T10:27:27.010782Z DEBUG ThreadId(14) connect_begin: crates/ironrdp-connector/src/connection.rs:228: Connection Initiation
2025-01-19T10:27:27.010803Z DEBUG ThreadId(14) connect_begin: crates/ironrdp-connector/src/connection.rs:264: Send ConnectionRequest { nego_data: Some(Cookie(Cookie("[email protected]"))), flags: RequestFlags(0x0), protocol: SecurityProtocol(SSL) }
2025-01-19T10:27:27.010860Z DEBUG ThreadId(14) connect_begin: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="ConnectionInitiationWaitResponse" hint=X224Hint
2025-01-19T10:27:27.011268Z  WARN ThreadId(01) winit::ActiveEventLoop::create_window: /home/test/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sctk-adwaita-0.10.1/src/buttons.rs:172: Ignoring unknown button type:      window_attributes=WindowAttributes { inner_size: None, min_inner_size: None, max_inner_size: None, position: None, resizable: true, enabled_buttons: WindowButtons(CLOSE | MINIMIZE | MAXIMIZE), title: "IronRDP", maximized: false, visible: true, transparent: false, blur: false, decorations: true, window_icon: None, preferred_theme: None, resize_increments: None, content_protected: false, window_level: Normal, active: true, cursor: Icon(Default), parent_window: None, fullscreen: None, platform_specific: PlatformSpecificWindowAttributes { name: None, activation_token: None, x11: X11WindowAttributes { visual_id: None, screen_id: None, base_size: None, override_redirect: false, x11_window_types: [Normal], embed_window: None } } }
2025-01-19T10:27:27.028718Z DEBUG ThreadId(14) connect_begin: crates/ironrdp-connector/src/connection.rs:281: Received Response { flags: ResponseFlags(EXTENDED_CLIENT_DATA_SUPPORTED | DYNVC_GFX_PROTOCOL_SUPPORTED | RDP_NEG_RSP_RESERVED | RESTRICTED_ADMIN_MODE_SUPPORTED | REDIRECTED_AUTHENTICATION_MODE_SUPPORTED), protocol: SecurityProtocol(SSL) }
2025-01-19T10:27:27.028744Z  INFO ThreadId(14) connect_begin: crates/ironrdp-connector/src/connection.rs:291: Server confirmed connection selected_protocol=SecurityProtocol(SSL) flags=ResponseFlags(EXTENDED_CLIENT_DATA_SUPPORTED | DYNVC_GFX_PROTOCOL_SUPPORTED | RDP_NEG_RSP_RESERVED | RESTRICTED_ADMIN_MODE_SUPPORTED | REDIRECTED_AUTHENTICATION_MODE_SUPPORTED)
2025-01-19T10:27:27.028756Z DEBUG ThreadId(14) crates/ironrdp-client/src/rdp.rs:136: TLS upgrade
2025-01-19T10:27:27.028813Z DEBUG ThreadId(14) /home/test/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustls-0.23.20/src/client/hs.rs:83: No cached session for IpAddress(V4(Ipv4Addr([192, 168, 230, 100])))    
2025-01-19T10:27:27.028935Z DEBUG ThreadId(14) /home/test/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustls-0.23.20/src/client/hs.rs:141: Not resuming any session    
2025-01-19T10:27:27.039905Z DEBUG ThreadId(14) /home/test/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustls-0.23.20/src/client/hs.rs:680: ALPN protocol is None    
2025-01-19T10:27:27.039952Z DEBUG ThreadId(14) /home/test/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustls-0.23.20/src/client/hs.rs:869: Using ciphersuite TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384    
2025-01-19T10:27:27.040059Z DEBUG ThreadId(14) /home/test/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustls-0.23.20/src/client/tls12.rs:461: ECDHE curve is EcParameters { curve_type: NamedCurve, named_group: secp384r1 }    
2025-01-19T10:27:27.040076Z DEBUG ThreadId(14) /home/test/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustls-0.23.20/src/client/tls12.rs:835: Server DNS name is IpAddress(V4(Ipv4Addr([192, 168, 230, 100])))    
2025-01-19T10:27:27.051542Z DEBUG ThreadId(14) mark_as_upgraded: crates/ironrdp-connector/src/connection.rs:316: CredSSP is disabled, skipping NLA
2025-01-19T10:27:27.051608Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:332: Basic Settings Exchange
2025-01-19T10:27:27.051700Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:339: Send ConnectInitial { conference_create_request: ConferenceCreateRequest { gcc_blocks: ClientGccBlocks { core: ClientCoreData { version: RdpVersion(524292), desktop_width: 1024, desktop_height: 768, color_depth: Bpp8, sec_access_sequence: Del, keyboard_layout: 0, client_build: 10, client_name: "arman-pc", keyboard_type: IbmEnhanced, keyboard_subtype: 0, keyboard_functional_keys_count: 12, ime_file_name: "", optional_data: ClientCoreOptionalData { post_beta2_color_depth: Some(Bpp8), client_product_id: Some(1), serial_number: Some(0), high_color_depth: Some(Bpp24), supported_color_depths: Some(SupportedColorDepths(BPP16 | BPP32)), early_capability_flags: Some(ClientEarlyCapabilityFlags(SUPPORT_ERR_INFO_PDU | WANT_32_BPP_SESSION | STRONG_ASYMMETRIC_KEYS | VALID_CONNECTION_TYPE | SUPPORT_SKIP_CHANNELJOIN)), dig_product_id: Some(""), connection_type: Some(Lan), server_selected_protocol: Some(SecurityProtocol(SSL)), desktop_physical_width: Some(0), desktop_physical_height: Some(0), desktop_orientation: Some(0), desktop_scale_factor: Some(0), device_scale_factor: Some(0) } }, security: ClientSecurityData { encryption_methods: EncryptionMethod(0x0), ext_encryption_methods: 0 }, network: Some(ClientNetworkData { channels: [ChannelDef { name: ChannelName { inner: [100, 114, 100, 121, 110, 118, 99, 0] }, options: ChannelOptions(COMPRESS_RDP) }, ChannelDef { name: ChannelName { inner: [114, 100, 112, 115, 110, 100, 0, 0] }, options: ChannelOptions(0x0) }, ChannelDef { name: ChannelName { inner: [114, 100, 112, 100, 114, 0, 0, 0] }, options: ChannelOptions(COMPRESS_RDP) }] }), cluster: None, monitor: None, message_channel: None, multi_transport_channel: None, monitor_extended: None } }, calling_domain_selector: [1], called_domain_selector: [1], upward_flag: true, target_parameters: DomainParameters { max_channel_ids: 34, max_user_ids: 2, max_token_ids: 0, num_priorities: 1, min_throughput: 0, max_height: 1, max_mcs_pdu_size: 65535, protocol_version: 2 }, min_parameters: DomainParameters { max_channel_ids: 1, max_user_ids: 1, max_token_ids: 1, num_priorities: 1, min_throughput: 0, max_height: 1, max_mcs_pdu_size: 1056, protocol_version: 2 }, max_parameters: DomainParameters { max_channel_ids: 65535, max_user_ids: 64535, max_token_ids: 65535, num_priorities: 1, min_throughput: 0, max_height: 1, max_mcs_pdu_size: 65535, protocol_version: 2 } }
2025-01-19T10:27:27.051918Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="BasicSettingsExchangeWaitResponse" hint=X224Hint
2025-01-19T10:27:27.058990Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:355: Received ConnectResponse { conference_create_response: ConferenceCreateResponse { user_id: 31219, gcc_blocks: ServerGccBlocks { core: ServerCoreData { version: RdpVersion(524302), optional_data: ServerCoreOptionalData { client_requested_protocols: Some(SecurityProtocol(SSL)), early_capability_flags: Some(ServerEarlyCapabilityFlags(EDGE_ACTIONS_SUPPORTED_V2)) } }, network: ServerNetworkData { channel_ids: [1004, 1005, 1006], io_channel: 1003 }, security: ServerSecurityData { encryption_method: EncryptionMethod(0x0), encryption_level: None, server_random: None, server_cert: [] }, message_channel: None, multi_transport_channel: None } }, called_connect_id: 0, domain_parameters: DomainParameters { max_channel_ids: 34, max_user_ids: 3, max_token_ids: 0, num_priorities: 1, min_throughput: 0, max_height: 1, max_mcs_pdu_size: 65528, protocol_version: 2 } }
2025-01-19T10:27:27.059036Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:378: static_channel_ids=[1004, 1005, 1006] io_channel_id=1003
2025-01-19T10:27:27.059050Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:415: Channel Connection
2025-01-19T10:27:27.059057Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/channel_connection.rs:110: Send ErectDomainPdu { sub_height: 0, sub_interval: 0 }
2025-01-19T10:27:27.059098Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:415: Channel Connection
2025-01-19T10:27:27.059107Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/channel_connection.rs:124: Send AttachUserRequest
2025-01-19T10:27:27.059118Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="ChannelConnection" hint=X224Hint
2025-01-19T10:27:27.128355Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:415: Channel Connection
2025-01-19T10:27:27.128389Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/channel_connection.rs:142: Received AttachUserConfirm { result: 0, initiator_id: 1008 } user_channel_id=1008
2025-01-19T10:27:27.128405Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:415: Channel Connection
2025-01-19T10:27:27.128412Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/channel_connection.rs:181: Send ChannelJoinRequest { initiator_id: 1008, channel_id: 1004 }
2025-01-19T10:27:27.128420Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/channel_connection.rs:181: Send ChannelJoinRequest { initiator_id: 1008, channel_id: 1005 }
2025-01-19T10:27:27.128429Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/channel_connection.rs:181: Send ChannelJoinRequest { initiator_id: 1008, channel_id: 1003 }
2025-01-19T10:27:27.128437Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/channel_connection.rs:181: Send ChannelJoinRequest { initiator_id: 1008, channel_id: 1008 }
2025-01-19T10:27:27.128445Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/channel_connection.rs:181: Send ChannelJoinRequest { initiator_id: 1008, channel_id: 1006 }
2025-01-19T10:27:27.128486Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="ChannelConnection" hint=X224Hint
2025-01-19T10:27:27.138526Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:415: Channel Connection
2025-01-19T10:27:27.138604Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/channel_connection.rs:206: Received ChannelJoinConfirm { result: 0, initiator_id: 1008, requested_channel_id: 1004, channel_id: 1004 }
2025-01-19T10:27:27.138633Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="ChannelConnection" hint=X224Hint
2025-01-19T10:27:27.138677Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:415: Channel Connection
2025-01-19T10:27:27.138692Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/channel_connection.rs:206: Received ChannelJoinConfirm { result: 0, initiator_id: 1008, requested_channel_id: 1005, channel_id: 1005 }
2025-01-19T10:27:27.138711Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="ChannelConnection" hint=X224Hint
2025-01-19T10:27:27.138728Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:415: Channel Connection
2025-01-19T10:27:27.138741Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/channel_connection.rs:206: Received ChannelJoinConfirm { result: 0, initiator_id: 1008, requested_channel_id: 1003, channel_id: 1003 }
2025-01-19T10:27:27.138760Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="ChannelConnection" hint=X224Hint
2025-01-19T10:27:27.138783Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:415: Channel Connection
2025-01-19T10:27:27.138796Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/channel_connection.rs:206: Received ChannelJoinConfirm { result: 0, initiator_id: 1008, requested_channel_id: 1008, channel_id: 1008 }
2025-01-19T10:27:27.138820Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="ChannelConnection" hint=X224Hint
2025-01-19T10:27:27.138841Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:415: Channel Connection
2025-01-19T10:27:27.138859Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/channel_connection.rs:206: Received ChannelJoinConfirm { result: 0, initiator_id: 1008, requested_channel_id: 1006, channel_id: 1006 }
2025-01-19T10:27:27.138881Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:448: Secure Settings Exchange
2025-01-19T10:27:27.138912Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:457: Send ClientInfoPdu { security_header: BasicSecurityHeader { flags: BasicSecurityHeaderFlags(INFO_PKT) }, client_info: ClientInfo { credentials: Credentials { username: "[email protected]", domain: None, .. }, code_page: 0, flags: ClientInfoFlags(MOUSE | DISABLE_CTRL_ALT_DEL | AUTOLOGON | UNICODE | MAXIMIZE_SHELL | LOGON_NOTIFY | ENABLE_WINDOWS_KEY | LOGON_ERRORS | MOUSE_HAS_WHEEL | NO_AUDIO_PLAYBACK | VIDEO_DISABLE), compression_type: K8, alternate_shell: "", work_dir: "", extra_info: ExtendedClientInfo { address_family: INet, address: "192.168.230.100", dir: "C:\\Windows\\System32\\mstscax.dll", optional_data: ExtendedClientOptionalInfo { timezone: Some(TimezoneInfo { bias: 0, standard_name: "", standard_date: OptionalSystemTime(None), standard_bias: 0, daylight_name: "", daylight_date: OptionalSystemTime(None), daylight_bias: 0 }), session_id: Some(0), performance_flags: Some(PerformanceFlags(DISABLE_FULLWINDOWDRAG | DISABLE_MENUANIMATIONS | ENABLE_FONT_SMOOTHING)), reconnect_cookie: None } } } }
2025-01-19T10:27:27.139073Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="LicensingExchange" hint=X224Hint
2025-01-19T10:27:27.173203Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:496: Licensing Exchange
2025-01-19T10:27:27.173519Z  INFO ThreadId(14) connect_finalize: crates/ironrdp-connector/src/license_exchange.rs:119: Send ClientNewLicenseRequest { license_header: LicenseHeader { security_header: BasicSecurityHeader { flags: BasicSecurityHeaderFlags(LICENSE_PKT) }, preamble_message_type: NewLicenseRequest, preamble_flags: PreambleFlags(0x0), preamble_version: V3, preamble_message_size: 352 }, client_random: [181, 64, 210, 80, 29, 133, 76, 171, 205, 177, 112, 121, 12, 103, 161, 233, 215, 61, 159, 29, 188, 14, 208, 220, 205, 92, 107, 91, 38, 114, 39, 129], encrypted_premaster_secret: [0, 0, 0, 0, 0, 0, 0, 0, 200, 162, 55, 121, 237, 9, 71, 182, 10, 92, 76, 249, 216, 27, 123, 161, 32, 144, 245, 153, 215, 174, 119, 128, 99, 219, 32, 157, 149, 11, 210, 122, 248, 9, 14, 14, 0, 139, 123, 194, 213, 128, 236, 42, 45, 198, 220, 199, 8, 50, 172, 120, 177, 129, 124, 89, 192, 199, 134, 194, 251, 201, 254, 83, 60, 171, 131, 204, 55, 49, 16, 26, 33, 27, 14, 83, 215, 133, 57, 245, 210, 252, 29, 111, 244, 186, 36, 90, 226, 176, 6, 38, 62, 239, 1, 101, 54, 190, 17, 7, 195, 238, 190, 17, 12, 89, 38, 241, 83, 50, 229, 86, 85, 83, 103, 187, 201, 2, 0, 192, 148, 25, 214, 107, 193, 229, 158, 204, 91, 167, 128, 234, 167, 102, 8, 49, 249, 115, 216, 100, 15, 98, 96, 190, 94, 216, 192, 141, 22, 152, 75, 11, 20, 188, 208, 98, 247, 56, 156, 28, 103, 152, 229, 109, 249, 199, 107, 148, 32, 229, 76, 172, 120, 92, 20, 120, 93, 142, 203, 4, 252, 43, 134, 75, 40, 236, 11, 194, 75, 126, 164, 4, 29, 23, 103, 219, 228, 156, 102, 99, 102, 120, 42, 103, 119, 167, 51, 99, 104, 155, 252, 58, 185, 219, 140, 147, 48, 178, 188, 10, 125, 141, 93, 67, 246, 31, 211, 204, 129, 152, 107, 147, 31, 225, 56, 141, 130, 163, 36, 40, 225, 64, 187, 111, 64, 134, 215, 96, 194, 92, 205, 43, 126, 167, 84, 7, 0, 0, 0, 0, 0, 0, 0, 0], client_username: "[email protected]", client_machine_name: "" }
2025-01-19T10:27:27.173629Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="LicensingExchange" hint=X224Hint
2025-01-19T10:27:27.186179Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection.rs:496: Licensing Exchange
2025-01-19T10:27:27.186226Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/license_exchange.rs:217: Received LicensingErrorMessage { license_header: LicenseHeader { security_header: BasicSecurityHeader { flags: BasicSecurityHeaderFlags(LICENSE_PKT) }, preamble_message_type: ErrorAlert, preamble_flags: PreambleFlags(0x0), preamble_version: V3, preamble_message_size: 16 }, error_code: StatusValidClient, state_transition: NoTransition, error_info: [] }
2025-01-19T10:27:27.186249Z  INFO ThreadId(14) connect_finalize: crates/ironrdp-connector/src/license_exchange.rs:218: Client licensing completed
2025-01-19T10:27:27.186266Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="CapabilitiesExchange" hint=X224Hint
2025-01-19T10:27:27.286431Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_activation.rs:98: Capabilities Exchange
2025-01-19T10:27:27.286580Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_activation.rs:103: Received ServerDemandActive(ServerDemandActive { pdu: DemandActive { source_descriptor: "RDP", capability_sets: [Share([234, 3, 0, 0]), General(General { major_platform_type: MajorPlatformType(0x01-WINDOWS), minor_platform_type: MinorPlatformType(0x03-WINDOWS_NT), protocol_version: 512, extra_flags: GeneralExtraFlags(FASTPATH_OUTPUT_SUPPORTED | NO_BITMAP_COMPRESSION_HDR | LONG_CREDENTIALS_SUPPORTED | AUTORECONNECT_SUPPORTED | ENC_SALTED_CHECKSUM), refresh_rect_support: true, suppress_output_support: true }), VirtualChannel(VirtualChannel { flags: VirtualChannelFlags(COMPRESSION_CLIENT_TO_SERVER_8K), chunk_size: Some(1600) }), ColorCache([6, 0, 0, 0]), Pointer(Pointer { color_pointer_cache_size: 25, pointer_cache_size: 25 }), LargePointer(LargePointer { flags: LargePointerSupportFlags(UP_TO_96X96_PIXELS | UP_TO_384X384_PIXELS) }), Font([1, 0, 0, 0]), Bitmap(Bitmap { pref_bits_per_pix: 16, desktop_width: 1024, desktop_height: 768, desktop_resize_flag: true, drawing_flags: BitmapDrawingFlags(ALLOW_DYNAMIC_COLOR_FIDELITY | ALLOW_COLOR_SUBSAMPLING | ALLOW_SKIP_ALPHA | UNUSED_FLAG) }), BitmapCodecs(BitmapCodecs([Codec { id: 0, property: NsCodec(NsCodec { is_dynamic_fidelity_allowed: true, is_subsampling_allowed: true, color_loss_level: 3 }) }, Codec { id: 0, property: RemoteFx(ServerContainer(4)) }, Codec { id: 0, property: Ignore }, Codec { id: 0, property: ImageRemoteFx(ServerContainer(4)) }])), Order(Order { order_flags: OrderFlags(NEGOTIATE_ORDER_SUPPORT | ZERO_BOUNDS_DELTAS_SUPPORT | COLOR_INDEX_SUPPORT | ORDER_FLAGS_EXTRA_FLAGS), order_support: [1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0], order_support_ex_flags: OrderSupportExFlags(CACHE_BITMAP_REV3_SUPPORT | ALTSEC_FRAME_MARKER_SUPPORT), desktop_save_size: 1000000, text_ansi_code_page: 0 }), BitmapCacheHostSupport([1, 0, 0, 0]), Input(Input { input_flags: InputFlags(SCANCODES | MOUSEX | UNICODE | FASTPATH_INPUT_2 | UNUSED_1 | TS_MOUSE_HWHEEL | TS_QOE_TIMESTAMPS), keyboard_layout: 0, keyboard_type: None, keyboard_subtype: 0, keyboard_function_key: 0, keyboard_ime_filename: "" }), Rail([255, 0, 0, 0]), WindowList([2, 0, 0, 0, 3, 12, 0]), MultiFragmentUpdate(MultifragmentUpdate { max_request_size: 608299 }), SurfaceCommands(SurfaceCommands { flags: CmdFlags(SET_SURFACE_BITS | FRAME_MARKER | STREAM_SURFACE_BITS) }), FrameAcknowledge(FrameAcknowledge { max_unacknowledged_frame_count: 0 })] } })
2025-01-19T10:27:27.286905Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_activation.rs:158: Send ClientConfirmActive(ClientConfirmActive { originator_id: 1002, pdu: DemandActive { source_descriptor: "IRONRDP", capability_sets: [MultiFragmentUpdate(MultifragmentUpdate { max_request_size: 608299 }), General(General { major_platform_type: MajorPlatformType(0x04-UNIX), minor_platform_type: MinorPlatformType(0x00-UNSPECIFIED), protocol_version: 512, extra_flags: GeneralExtraFlags(FASTPATH_OUTPUT_SUPPORTED | NO_BITMAP_COMPRESSION_HDR), refresh_rect_support: false, suppress_output_support: false }), Bitmap(Bitmap { pref_bits_per_pix: 32, desktop_width: 1024, desktop_height: 768, desktop_resize_flag: true, drawing_flags: BitmapDrawingFlags(ALLOW_SKIP_ALPHA) }), Order(Order { order_flags: OrderFlags(NEGOTIATE_ORDER_SUPPORT | ZERO_BOUNDS_DELTAS_SUPPORT), order_support: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], order_support_ex_flags: OrderSupportExFlags(0x0), desktop_save_size: 0, text_ansi_code_page: 0 }), BitmapCache(BitmapCache { caches: [CacheEntry { entries: 0, max_cell_size: 0 }, CacheEntry { entries: 0, max_cell_size: 0 }, CacheEntry { entries: 0, max_cell_size: 0 }] }), Input(Input { input_flags: InputFlags(SCANCODES | MOUSEX | FASTPATH_INPUT | UNICODE | FASTPATH_INPUT_2 | UNUSED_1 | MOUSE_RELATIVE | TS_MOUSE_HWHEEL | TS_QOE_TIMESTAMPS), keyboard_layout: 0, keyboard_type: Some(IbmEnhanced), keyboard_subtype: 0, keyboard_function_key: 12, keyboard_ime_filename: "" }), Pointer(Pointer { color_pointer_cache_size: 32, pointer_cache_size: 32 }), Brush(Brush { support_level: Default }), GlyphCache(GlyphCache { glyph_cache: [CacheDefinition { entries: 0, max_cell_size: 0 }, CacheDefinition { entries: 0, max_cell_size: 0 }, CacheDefinition { entries: 0, max_cell_size: 0 }, CacheDefinition { entries: 0, max_cell_size: 0 }, CacheDefinition { entries: 0, max_cell_size: 0 }, CacheDefinition { entries: 0, max_cell_size: 0 }, CacheDefinition { entries: 0, max_cell_size: 0 }, CacheDefinition { entries: 0, max_cell_size: 0 }, CacheDefinition { entries: 0, max_cell_size: 0 }, CacheDefinition { entries: 0, max_cell_size: 0 }], frag_cache: CacheDefinition { entries: 0, max_cell_size: 0 }, glyph_support_level: None }), OffscreenBitmapCache(OffscreenBitmapCache { is_supported: false, cache_size: 0, cache_entries: 0 }), VirtualChannel(VirtualChannel { flags: VirtualChannelFlags(0x0), chunk_size: Some(0) }), Sound(Sound { flags: SoundFlags(0x0) }), LargePointer(LargePointer { flags: LargePointerSupportFlags(UP_TO_96X96_PIXELS | UP_TO_384X384_PIXELS) }), SurfaceCommands(SurfaceCommands { flags: CmdFlags(SET_SURFACE_BITS | FRAME_MARKER | STREAM_SURFACE_BITS) }), BitmapCodecs(BitmapCodecs([Codec { id: 3, property: RemoteFx(ClientContainer(RfxClientCapsContainer { capture_flags: CaptureFlags(0x0), caps_data: RfxCaps(RfxCapset([RfxICap { flags: RfxICapFlags(0x0), entropy_bits: Rlgr3 }])) })) }])), FrameAcknowledge(FrameAcknowledge { max_unacknowledged_frame_count: 20 })] } })
2025-01-19T10:27:27.287336Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_activation.rs:184: Connection Finalization
2025-01-19T10:27:27.287420Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_finalization.rs:98: Send Synchronize(SynchronizePdu { target_user_id: 1008 })
2025-01-19T10:27:27.287502Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_activation.rs:184: Connection Finalization
2025-01-19T10:27:27.287543Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_finalization.rs:115: Send Control(ControlPdu { action: Cooperate, grant_id: 0, control_id: 0 })
2025-01-19T10:27:27.287611Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_activation.rs:184: Connection Finalization
2025-01-19T10:27:27.287680Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_finalization.rs:132: Send Control(ControlPdu { action: RequestControl, grant_id: 0, control_id: 0 })
2025-01-19T10:27:27.287743Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_activation.rs:184: Connection Finalization
2025-01-19T10:27:27.287780Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_finalization.rs:142: Send FontList(FontPdu { number: 0, total_number: 0, flags: SequenceFlags(FIRST | LAST), entry_size: 4 })
2025-01-19T10:27:27.287843Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="ConnectionFinalization" hint=X224Hint
2025-01-19T10:27:27.295622Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_activation.rs:184: Connection Finalization
2025-01-19T10:27:27.295786Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_finalization.rs:156: Received Synchronize(SynchronizePdu { target_user_id: 0 })
2025-01-19T10:27:27.295833Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_finalization.rs:160: Server Synchronize
2025-01-19T10:27:27.295876Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="ConnectionFinalization" hint=X224Hint
2025-01-19T10:27:27.295923Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_activation.rs:184: Connection Finalization
2025-01-19T10:27:27.295958Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_finalization.rs:156: Received Control(ControlPdu { action: Cooperate, grant_id: 0, control_id: 0 })
2025-01-19T10:27:27.295997Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_finalization.rs:167: Server Control (Cooperate)
2025-01-19T10:27:27.296036Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="ConnectionFinalization" hint=X224Hint
2025-01-19T10:27:27.302259Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_activation.rs:184: Connection Finalization
2025-01-19T10:27:27.302333Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_finalization.rs:156: Received Control(ControlPdu { action: GrantedControl, grant_id: 1008, control_id: 1002 })
2025-01-19T10:27:27.302361Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_finalization.rs:179: control_pdu.grant_id=1008 control_pdu.control_id=1002 user_channel_id=1008 SERVER_CHANNEL_ID=1002
2025-01-19T10:27:27.302393Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-async/src/framed.rs:261: Wait for PDU connector.state="ConnectionFinalization" hint=X224Hint
2025-01-19T10:27:27.302416Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_activation.rs:184: Connection Finalization
2025-01-19T10:27:27.302434Z DEBUG ThreadId(14) connect_finalize: crates/ironrdp-connector/src/connection_finalization.rs:156: Received FontMap(FontPdu { number: 0, total_number: 0, flags: SequenceFlags(FIRST | LAST), entry_size: 4 })
2025-01-19T10:27:27.302459Z  INFO ThreadId(14) connect_finalize: crates/ironrdp-async/src/connector.rs:83: Connected with success
2025-01-19T10:27:27.302491Z DEBUG ThreadId(14) crates/ironrdp-client/src/rdp.rs:161: connection_result=ConnectionResult { io_channel_id: 1003, user_channel_id: 1008, static_channels: StaticChannelSet { channels: {TypeId(0x8d606cc6901944cd6f7bf6a281f10fd7): StaticVirtualChannel { channel_processor: DrdynvcClient([Microsoft::Windows::RDS::DisplayControl]), chunk_processor: ChunkProcessor { chunked_pdu: [] } }, TypeId(0xc7b7a59b9568f04ecee4d94e608a7d55): StaticVirtualChannel { channel_processor: Rdpsnd { handler: RdpsndBackend { stream_handle: None, stream_ended: false, tx: None, format: None }, state: Start, server_format: None }, chunk_processor: ChunkProcessor { chunked_pdu: [] } }, TypeId(0xe92efa46c3f47b1659104b313aca0669): StaticVirtualChannel { channel_processor: Rdpdr { computer_name: "IronRDP", capabilities: Capabilities([CapabilityMessage { header: CapabilityHeader { cap_type: General, length: 44, version: 2 }, capability_data: General(GeneralCapabilitySet { os_type: 0, os_version: 0, protocol_major_version: 1, protocol_minor_version: 12, io_code_1: IoCode1(RDPDR_IRP_MJ_CREATE | RDPDR_IRP_MJ_CLEANUP | RDPDR_IRP_MJ_CLOSE | RDPDR_IRP_MJ_READ | RDPDR_IRP_MJ_WRITE | RDPDR_IRP_MJ_FLUSH_BUFFERS | RDPDR_IRP_MJ_SHUTDOWN | RDPDR_IRP_MJ_DEVICE_CONTROL | RDPDR_IRP_MJ_QUERY_VOLUME_INFORMATION | RDPDR_IRP_MJ_SET_VOLUME_INFORMATION | RDPDR_IRP_MJ_QUERY_INFORMATION | RDPDR_IRP_MJ_SET_INFORMATION | RDPDR_IRP_MJ_DIRECTORY_CONTROL | RDPDR_IRP_MJ_LOCK_CONTROL), io_code_2: 0, extended_pdu: ExtendedPdu(RDPDR_DEVICE_REMOVE_PDUS | RDPDR_CLIENT_DISPLAY_NAME_PDU), extra_flags_1: ExtraFlags1(0x0), extra_flags_2: 0, special_type_device_cap: 1 }) }, CapabilityMessage { header: CapabilityHeader { cap_type: Smartcard, length: 8, version: 1 }, capability_data: Smartcard }]), device_list: Devices([DeviceAnnounceHeader { device_type: Smartcard, device_id: 0, preferred_dos_name: PreferredDosName("SCARD"), device_data: [] }]), backend: NoopRdpdrBackend }, chunk_processor: ChunkProcessor { chunked_pdu: [] } }}, to_channel_id: {TypeId(0x8d606cc6901944cd6f7bf6a281f10fd7): 1004, TypeId(0xc7b7a59b9568f04ecee4d94e608a7d55): 1005, TypeId(0xe92efa46c3f47b1659104b313aca0669): 1006}, to_type_id: {1004: TypeId(0x8d606cc6901944cd6f7bf6a281f10fd7), 1005: TypeId(0xc7b7a59b9568f04ecee4d94e608a7d55), 1006: TypeId(0xe92efa46c3f47b1659104b313aca0669)} }, desktop_size: DesktopSize { width: 1024, height: 768 }, no_server_pointer: false, pointer_software_rendering: true, connection_activation: ConnectionActivationSequence { state: Finalized { io_channel_id: 1003, user_channel_id: 1008, desktop_size: DesktopSize { width: 1024, height: 768 }, no_server_pointer: false, pointer_software_rendering: true }, config: Config { desktop_size: DesktopSize { width: 1024, height: 768 }, desktop_scale_factor: 0, enable_tls: true, enable_credssp: false, credentials: UsernamePassword { username: "administrator", password: "test" }, domain: None, client_build: 10, client_name: "arman-pc", keyboard_type: IbmEnhanced, keyboard_subtype: 0, keyboard_functional_keys_count: 12, keyboard_layout: 0, ime_file_name: "", bitmap: None, dig_product_id: "", client_dir: "C:\\Windows\\System32\\mstscax.dll", platform: MajorPlatformType(0x04-UNIX), request_data: None, autologon: true, no_server_pointer: false, pointer_software_rendering: true, performance_flags: PerformanceFlags(DISABLE_FULLWINDOWDRAG | DISABLE_MENUANIMATIONS | ENABLE_FONT_SMOOTHING) } } }
2025-01-19T10:27:27.302942Z DEBUG ThreadId(14) crates/ironrdp-dvc/src/client.rs:102: Got DVC Capabilities Request PDU: V3 { header: Header { cb_id: FieldType(0), sp: FieldType(0), cmd: Capability }, charges: [13107, 4369, 2621, 1191] }
2025-01-19T10:27:27.303006Z DEBUG ThreadId(14) crates/ironrdp-dvc/src/client.rs:73: Send DVC Capabilities Response PDU: Capabilities(CapabilitiesResponsePdu { header: Header { cb_id: FieldType(0), sp: FieldType(0), cmd: Capability }, version: V1 })

@CBenoit
Copy link
Member

CBenoit commented Jan 20, 2025

I don’t see anything suspicious. Do you have more logs you could show us, after the connection sequence?

Can you check if the Windows Audio service is started on the target server?

Image

Also, can you confirm us which platform you are trying to run IronRDP on?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-virtual-channel Area: Static or dynamic virtual channel
Development

No branches or pull requests

2 participants