Commit graph

4174 commits

Author SHA1 Message Date
Neil Dorin
a18f7800d1 fix: improve port forwarding logic and error handling in RoutingFeedback session 2026-06-23 15:33:46 -06:00
Neil Dorin
00c7128778 Merge remote-tracking branch 'origin/fix/mobile-static-asset-mime-types' into dev/v3-routing 2026-06-23 15:33:34 -06:00
equinoy
b7b4b56cec fix(mobile-control): serve correct MIME types for app static assets
Use query-stripped file path for extension detection
Add content types for svg, png, jpg/jpeg, gif, webp, and ico
Keep existing html/js/css/json handling unchanged
2026-06-23 15:32:16 -05:00
Neil Dorin
a1d168c4ed feat: add HTTP GET handler to RoutingFeedbackWebSocket for client certificate confirmation 2026-06-22 22:48:16 -06:00
Neil Dorin
b65f895e06 feat: implement Routing Feedback WebSocket service and associated request handlers 2026-06-22 21:30:47 -06:00
Neil Dorin
be545bbfa4 fix: format constructor for IDeviceInfoProviderMessenger for improved readability 2026-06-18 16:41:47 -06:00
Neil Dorin
846fd711c5 fix: update namespace for ICourtSession interface to correct location 2026-06-18 10:57:17 -06:00
Neil Dorin
1588cc4667 feat: add ICourtSession interface for court session management and recording control 2026-06-18 10:37:25 -06:00
Neil Dorin
747b595b59 feat: add actions to accept and reject calls in IHasDialerMessenger 2026-06-17 22:25:38 -06:00
Neil Dorin
cff46532be feat: update Dial method to limit active calls based on maxCalls 2026-06-16 18:42:14 -06:00
Neil Dorin
0098673a5e feat: enhance audio codec phonebook functionality and messaging integration 2026-06-16 16:14:07 -06:00
Neil Dorin
c8faa19835 Merge remote-tracking branch 'origin/dev/v3-routing' into dev/v3-routing 2026-06-16 08:58:01 -06:00
Neil Dorin
fb0afc8c41 feat: implement DeviceActionMessenger for executing device actions via JSON API 2026-06-16 08:57:31 -06:00
Erik Meyer
27b3d9cf58 feat: updates IAudioCodecPhonebook interface 2026-06-15 13:46:32 -04:00
Neil Dorin
4403e91b79 fix: correct UserInterfaces type and initialize TouchpanelWrapperApp in VersionData constructor 2026-06-12 11:17:11 -06:00
Neil Dorin
1b2f86eb43 feat: add UserInterfaces and TouchpanelWrapperApp properties to VersionData class 2026-06-12 10:53:04 -06:00
Neil Dorin
2dd99da67f feat: implement IAudioCodecPhonebookMessenger for phonebook messaging functionality 2026-06-11 16:55:03 -06:00
Neil Dorin
22f5558e39 feat: add IAudioCodecInfoMessenger for messaging bridge implementation 2026-06-11 16:44:41 -06:00
Neil Dorin
c306fd717e refactor: remove unused GetInterfaces method and streamline constructor initialization 2026-06-10 22:58:57 -06:00
anthony-lopez-pd
72c948e760 fix: disambiguate DirectorySelectRow (101) and feedback (104) descriptions
Both analog 101 (FromSIMPL select) and analog 104 (ToSIMPL feedback echo)
were described "Directory Select Row and Feedback", implying the feedback
was on 101. Clarified: 101 = "Directory Select Row"; 104 = "Directory
Selected Row FB".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 17:16:23 -04:00
anthony-lopez-pd
dff50ea544 fix: correct PhoneHookState (digital 72) feedback description
PhoneHookState (ToSIMPL) was labeled "Dial Phone" — a copy of the
DialPhone input description on the same join. Changed to "Phone hook
state FB" to accurately describe the feedback.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 16:58:30 -04:00
anthony-lopez-pd
4058040330 fix: remove dead DirectoryLineSelected join; fix SelfviewPositionFb description
DirectoryLineSelected (digital 101, FromSIMPL) had no handler anywhere in
VideoCodecBase.cs — directory selection is driven by analog 101
(DirectorySelectRow). DirectoryEntryIsContact (ToSIMPL) already documents
the output side of that join. Removed the dead inbound entry.

SelfviewPositionFb (serial 211) description "advance selfview position"
read like a command; updated to "Current selfview PIP position string FB"
to accurately reflect that it is a ToSIMPL feedback.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 16:20:58 -04:00
anthony-lopez-pd
f2f4662c8d fix: remove dead SelectLayout and AvailableLayoutsFb serial-142 joins
Both entries were forward-looking stubs: IHasCodecLayouts has no
string-based layout-select method, so neither join was ever wired in
LinkVideoCodecCameraLayoutsToApi. String-based layout selection is
Zoom-specific (eLayoutStyle enum) and lives on serial 215 in the EPI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 15:45:39 -04:00
anthony-lopez-pd
b2ddce2cc6 fix(videocodec): correct join-map direction labels in VideoCodecControllerJoinMap
Capability metadata only — no wiring/behavior change. Verified against the actual
LinkToApi wiring and a SIMPL EISC bridge signal dump:

- CameraPresetSelect (a121), FarEndPresetSelect (a122): ToSIMPL -> ToFromSIMPL
  (driven as input via SetUShortSigAction, also fed back)
- SelectedContactMethodCount (a102): FromSIMPL -> ToSIMPL ("Reports..." feedback)
- CurrentDialString (s1): ToSIMPL -> ToFromSIMPL (read as the dial input by ManualDial,
  echoed back as FB)
- Participant audio/video/pin toggles (d501/801/1101): ToSIMPL -> FromSIMPL (commands)

Makes the generated join-map docs accurate for every video-codec EPI.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 14:30:23 -04:00
Neil Dorin
041bb5c50e feat: Add null or empty check for AppUrl in SetAppUrl method 2026-06-08 16:57:34 -06:00
Neil Dorin
a27f604660 feat: Add IHasCameraMuteMessenger and IHasCameraPresetsMessenger for camera control messaging 2026-06-08 14:33:47 -06:00
anthony-lopez-pd
48e64a291f feat(videocodec): add IsCohost to Participant model
Participant exposed IsHost/IsMyself but no co-host role. Several SDKs
(e.g. the ZRC SDK behind epi-zoom-room) report a distinct cohost; add an
IsCohost flag so codecs can surface the Me/Host/Cohost role the mobile
control UI expects.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 16:02:23 -04:00
Neil Dorin
a90b5da61b feat: Extend IDspPresets interface to inherit from IKeyed 2026-06-04 17:24:45 -06:00
Neil Dorin
bb029221c0 feat: Add DevelopmentServerAddress property for direct communication and update URL handling in MobileControl classes 2026-06-03 17:00:43 -06:00
Neil Dorin
153922c3fe refactor: Remove commented-out Config properties from Device class and add spacing in EssentialsDevice class 2026-06-03 14:09:47 -06:00
Neil Dorin
a1617fbeb2 fix: Remove unnecessary message from NotImplementedException in DevicePropertiesConverter 2026-06-03 12:22:06 -06:00
anthony-lopez-pd
cd89cf1cc9 fix: Correct typo in LevelControlListItem class name 2026-06-02 09:55:27 -04:00
Neil Dorin
0244b0e585 feat: Add IBasicVolumeControlsMessenger and update MessengerFactoryRegistry for volume control integration 2026-05-27 19:04:32 -06:00
Neil Dorin
101d6c6e79 feat: Enhance token validation in MobileControlWebsocketServer to handle missing tokens 2026-05-20 13:30:42 -06:00
Neil Dorin
ec7db1b510 feat: Remove IRoutingSinkWithFeedbackMessenger class and its associated actions 2026-05-14 15:38:59 -06:00
Neil Dorin
f64b595fd7 feat: Refactor routing interfaces and feedback mechanisms
- Removed ITxRouting and ITxRoutingWithFeedback interfaces as they were redundant.
- Updated RouteDescriptor and RouteSwitchDescriptor to use new feedback interfaces.
- Modified RoutingFeedbackManager to utilize IRoutingSinkWithFeedback and IRoutingMidpointWithFeedback.
- Adjusted GenericAudioOut, BlueJeansPc, and other device classes to implement new feedback interfaces.
- Introduced new messenger classes for IRoutingSinkWithFeedback and IRoutingMidpointWithFeedback.
- Cleaned up unused messenger interfaces and consolidated routing logic.
- Updated MobileControlEssentialsRoomBridge to remove dependency on IHasCurrentSourceInfoChange.
2026-05-14 14:36:30 -06:00
Neil Dorin
b9dcec587d feat: Add new status actions for call history, codec cameras, room presets, content sharing, room event schedule, shutdown prompt, and tech password messengers 2026-05-13 17:00:23 -06:00
Neil Dorin
91aa0efa5f feat: Add new messengers for various device interfaces and remove VideoCodecBaseMessenger
- Implemented IHasMeetingInfoMessenger to handle meeting information updates.
- Created IHasReadyMessenger for devices indicating readiness status.
- Added IHasStandbyModeMessenger to manage standby mode actions.
- Introduced IPrivacyMessenger for privacy mode control.
- Developed IVideoCodecInfoMessenger to provide codec information.
- Removed the obsolete VideoCodecBaseMessenger class.
- Updated MessengerFactoryRegistry to register new messengers for IHasReady, IHasMeetingInfo, IHasStartMeeting, IHasStandbyMode, IPrivacy, and IVideoCodecInfo interfaces.

Co-authored-by: Copilot <copilot@github.com>
2026-05-08 12:10:56 -06:00
Neil Dorin
b41c30cdd0 feat: Add full status actions to IHasCodecSelfView and IHasDirectory messengers 2026-05-07 20:55:44 -06:00
Neil Dorin
ab4a243ffb feat: Add messengers for codec functionalities and directory management
- Implemented IHasCodecCamerasMessenger to handle camera selection and control actions.
- Created IHasCodecLayoutsMessenger for managing codec layouts.
- Developed IHasCodecSelfViewMessenger to manage self-view functionality.
- Added IHasDirectoryMessenger for directory operations including fetching and searching.
- Introduced IHasFarEndContentStatusMessenger to report far-end content status.
- Implemented IPasswordPromptMessenger for handling password prompts.
- Updated VideoCodecBaseMessenger to remove redundant directory and call history handling.
- Registered new messenger types in MessengerFactoryRegistry.
- Added necessary using directives in ControlSystem.cs for UC functionalities.

Co-authored-by: Copilot <copilot@github.com>
2026-05-07 20:51:14 -06:00
Neil Dorin
e19e69d5c0 refactor: Update solution configuration for Debug and Release builds across multiple platforms to ensure all tests run 2026-05-07 14:04:14 -06:00
Neil Dorin
bad08fa6db refactor: Extract portal URL display logic into a separate method for improved readability 2026-05-07 12:08:26 -06:00
Neil Dorin
9a385eef96 refactor: Rename LocalConfigPresent to LocalConfigPresentBanner and enhance debug logging in ControlSystem 2026-05-07 11:00:49 -06:00
Neil Dorin
ff1393b768 refactor: Simplify namespace declaration and formatting in IDisplayCurrentInput interface 2026-05-06 17:13:48 -06:00
Neil Dorin
f80aa95649 Refactor audio codec and display messaging interfaces
- Introduced IDialerCallStatus interface to streamline call status handling in audio codecs.
- Updated AudioCodecBase to implement IDialerCallStatus, providing a common structure for call status events.
- Added IDisplayCurrentInput interface for display devices to expose current input information.
- Created corresponding messenger classes for IDialerCallStatus and IDisplayCurrentInput to facilitate communication.
- Implemented CameraControlMessenger for camera devices to manage camera controls and presets.
- Added IWarmingCoolingMessenger for warming and cooling devices to handle status updates.
- Updated MessengerFactoryRegistry to register new messenger classes and ensure proper device messaging.
- Cleaned up CameraBase and removed unnecessary comments and whitespace in various files.

Co-authored-by: Copilot <copilot@github.com>
2026-05-06 17:13:02 -06:00
Neil Dorin
dfc1d2bb21 refactor: Rename DisplayBaseMessenger to IRoutingSinkWithSwitchingMessenger and update related references 2026-05-06 13:54:10 -06:00
Neil Dorin
bc70aa629c Enhance logging and mobile control functionality
- Added error log level change notification in Debug.cs.
- Updated appdebug command usage to include sink options and timeout parameters in Debug.cs.
- Implemented AddDefaultMessengersForDevice method in IMobileControl interface for better messenger registration.
- Modified EssentialsDevice to create mobile control messengers based on available interfaces.
- Introduced MessengerFactoryRegistry to streamline messenger creation for various device types.
- Refactored MobileControlSystemController to utilize the new messenger registration system and removed redundant setup methods.

Co-authored-by: Copilot <copilot@github.com>
2026-05-06 13:44:09 -06:00
Neil Dorin
b0525b0f97 Merge remote-tracking branch 'origin/dev/v3-testing' into dev/v3-testing 2026-05-01 14:44:52 -06:00
Neil Dorin
2e1bb8b286 feat: Enhance WebSocket URL generation to support dual-stack environments by using CSLAN IP if available 2026-05-01 14:44:07 -06:00
Andrew Welker
89a1b662b0 fix: return early if config devices are null, with an appropriate log message 2026-04-24 10:19:18 -05:00