Commit graph

766 commits

Author SHA1 Message Date
Neil Dorin
5e0a4c04ad feat: add missing using directive for System in IDtmfDecode interface 2026-07-23 08:54:53 -06:00
Neil Dorin
a782651e4d feat: enhance documentation for IDtmfDecode interface and DtmfReceivedEventArgs class 2026-07-23 08:49:11 -06:00
Neil Dorin
dac5325ecf feat: add IDtmfDecode interface and DtmfReceivedEventArgs class for DTMF digit handling 2026-07-23 08:47:57 -06:00
Neil Dorin
56208342c9 feat: implement deployment of mcUserApp zip files with cleanup and extraction 2026-07-22 15:36:15 -06:00
Neil Dorin
830e207ea7 fix: correct device key reference in LevelControl property 2026-07-22 11:43:50 -06:00
Neil Dorin
4252e9c8e6 feat: add thread safety to error timer management in StatusMonitorBase 2026-07-22 09:04:43 -06:00
Neil Dorin
42b358862f feat: add DisableEcho property to GenericSshClient and integrate with CommFactory 2026-07-21 15:16:54 -06:00
Neil Dorin
9656e3c408 feat: add audio input port to GenericSink for enhanced routing capabilities 2026-07-21 13:19:25 -06:00
Neil Dorin
f971a3adff feat: add IDspPresetsDirectRecall interface to define preset recall functionality 2026-07-21 11:21:22 -06:00
Neil Dorin
6852f47ce2 feat: add multiview layout support with new interface and state classes 2026-07-15 11:35:51 -06:00
Neil Dorin
f05a25c3e2 feat: update RoutingFeedbackManager to use ConcurrentDictionary for update timers to ensure thread safety 2026-07-14 21:47:52 -06:00
Neil Dorin
079f2beb8b feat: enhance routing graph handling for tile-sink children and add RoutingGraphHelpers utility class 2026-07-14 19:34:14 -06:00
Neil Dorin
7d1e0432cb feat: add IRoutingSinkWithLayouts interface to support layouts with multiple tile sinks 2026-07-13 12:26:57 -06:00
Neil Dorin
21995db550 feat: refactor FeedbackCollection and RoutingPortCollection to enforce unique keys and add AddRange method 2026-07-13 10:40:56 -06:00
Neil Dorin
dddb67317a
Merge pull request #1441 from PepperDash/feature/package-manifest-v3-routing-backport
Backport PR #1439: packageManifest CWS endpoint + v1/v2 config merge fix
2026-07-10 21:58:45 -06:00
Neil Dorin
3f8b97bff7 feat: add IHasDynamicMultiviewLayout interface and MultiviewParticipantSource class for dynamic layout support 2026-07-10 21:48:01 -06:00
jkdevito
4a366a5a51 fix: guard against empty Version in configured-but-not-loaded package passthrough
PopulatePackages' "configured but not currently loaded" pass-through could
still emit PackageVersion entries with a null/empty Version, reintroducing
the schema issue the loaded-reflection branch's own guard already prevents
(downstream parsers drop entries whose version isn't a string).
2026-07-10 13:03:28 -05:00
jkdevito
4631d3a537 refactor: replace client-reported UI app version tracking with disk-based check
Remove ConnectedClientVersionInfo and the per-client version dictionary in
MobileControlSystemController, which grew unbounded and depended on a UI
client connecting and self-reporting its APP_VERSION.

Add TouchpanelWrapperAppVersionChecker, which instead scans the deployed
mcUserApp files on disk for the configured versions.touchpanelWrapperApp
version string. This works without any client connected and doesn't
accumulate state. Wired into the mobileinfo console command output.
2026-07-10 12:25:43 -05:00
Neil Dorin
f0b546f97d feat: add custom logo URL feedback for light and dark backgrounds 2026-07-10 10:05:49 -06:00
jkdevito
2d8e42f566 style: use file-scoped namespace in GetPackageManifestRequestHandler
Matches the convention used by the other request handlers in this
folder (ReportVersionsRequestHandler.cs, AppDebugRequestHandler.cs,
etc). Addresses PR #1441 review comment.
2026-07-10 09:37:29 -05:00
jkdevito
f0025ce56c Backport PR #1439: packageManifest CWS endpoint + v1/v2 config merge fix
Backports PepperDash/Essentials#1439 (merged to main at 6ceddcf5) onto
dev/v3-routing (v3.0.0-dev-v3-routing.40):

- New GET /packageManifest CWS route reporting Essentials/plugin/touchpanel
  UI package version info (GetPackageManifestRequestHandler).
- EssentialsConfig.Versions now round-trips via [JsonProperty("versions")].
- ConfigReader now detects v1 vs v2 config by presence of system/template
  nodes (previously any versions node caused the v1->v2 merge to be
  skipped), and re-applies the versions node after merge since
  PortalConfigReader.MergeConfigs does not carry it forward.
- Mobile control: track and validate UI client app versions
  (ConnectedClientVersionInfo, MobileControlSystemController changes merged
  cleanly from the PR).
- Directory.Build.props: adds PackageId AssemblyMetadata item (kept this
  branch's 3.0.0-local version).

Conflict resolution notes:
- This branch had already introduced its own AppVersion type (Version +
  RepoUrl only) for TouchpanelWrapperApp/UserInterfaces. Replaced it with
  the PR's unified NugetVersion (adds PackageId/RepoUrl/Name, all
  NullValueHandling.Ignore) to match main's schema, since AppVersion had
  no other references in the codebase.
- ConfigReader.LoadConfig on this branch had already fixed a double
  Stream.ReadToEnd() bug (reading fileContents once); kept that fix and
  layered the PR's v1/v2 detection fix + versions-node preservation on
  top of it, plus this branch's null-ConfigObject-after-merge guard.
- EssentialsWebApi.SetupRoutes: inserted the new packageManifest route
  into this branch's existing (longer) route list, which already
  includes routing-specific endpoints not present on main.

Builds clean (dotnet build on the full solution, 0 errors).

Not pushed - pending local hardware/config testing before push.
2026-07-10 09:37:29 -05:00
Neil Dorin
73bc50ef0d feat: update IP address retrieval logic to handle invalid values 2026-07-09 11:51:53 -06:00
Neil Dorin
d5432e489d feat: add USB camera input ports for enhanced multi-camera routing support 2026-07-08 15:51:53 -06:00
Neil Dorin
94837a60cf feat: update debounce timer logic to handle multiple input ports for a single sink 2026-07-08 15:37:14 -06:00
Neil Dorin
4ab4ee1680 feat: update directory contact name from "Corporate Bridge" to "Overflow" 2026-07-08 14:41:04 -06:00
Neil Dorin
122881100a feat: enhance MockVC to support participant management and add HDMI output port 2026-07-08 14:39:50 -06:00
Neil Dorin
34c82588f0 feat: add additional HDMI output ports to MockVC for enhanced routing capabilities 2026-07-07 15:10:08 -06:00
Neil Dorin
7de2aa7c2e feat: update directory contacts and enhance directory messaging to include current root directory 2026-07-07 14:57:23 -06:00
Neil Dorin
f3f7755735 feat: refine messenger factory to prevent conflicting state shapes for IDialerCallStatus and ICodecCallControls 2026-07-02 17:21:06 -06:00
Neil Dorin
d771320fff feat: refactor DeviceJsonApi parameter conversion and add MockRoutingMidpoint with configuration properties 2026-07-02 15:43:07 -06:00
Neil Dorin
9f18275f81 feat: update RoutingFeedbackManager to map downstream sink input ports and optimize performance in route updates 2026-07-02 10:53:51 -06:00
Neil Dorin
fb4ba8ccfa feat: enhance routing functionality with additional parameters in RouteDescriptor and update RouteDescriptorCollection for change notifications 2026-07-01 17:14:32 -06:00
Neil Dorin
4bb2917b69 feat: add RouteDescriptorCollectionChanged event to notify changes in route descriptors 2026-06-30 17:00:26 -06:00
Neil Dorin
aae41b5947 feat: refactor messaging interfaces and remove subscription support from IMobileControlMessengerWithSubscriptions 2026-06-26 15:53:51 -06:00
Neil Dorin
b945ecb470 feat: add Dial method with password support and implement ICodecCallControlsMessenger for call control messaging 2026-06-25 20:30:48 -06:00
Neil Dorin
8748157362 feat: enhance IHasDirectoryMessenger with new actions and state messaging for directory management
feat: update MobileControlConfig to enable messenger subscriptions by default
fix: improve HandleBatchDeviceFullStatus to support granular device status requests and enhance error handling
2026-06-25 11:46:27 -06:00
Neil Dorin
77c78af74b feat: add VideoMuteFb property to Participant class for video mute feedback 2026-06-24 22:29:31 -06:00
Neil Dorin
f7c3ed4b8b feat: add mobile control messengers for participant audio and video mute functionality 2026-06-24 22:28:40 -06:00
Neil Dorin
f4fe8eff90 feat: enhance routing and messaging logic with improved source handling and batch processing capabilities 2026-06-24 20:10:52 -06:00
Neil Dorin
a732c5e08e feat: enhance WebSocket services with HTTP GET handler for certificate confirmation and increase timeout for port forwarding 2026-06-23 16:08:42 -06:00
Neil Dorin
a18f7800d1 fix: improve port forwarding logic and error handling in RoutingFeedback session 2026-06-23 15:33:46 -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