[FEATURE] Add CallStatusMessenger for interface-based devices - Mobile Control System Controller VideoCodecBase Refactor #1310
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR addresses the limitation where the Mobile Control System Controller required devices to inherit from
VideoCodecBaseto create codec-specific messengers, even when devices only needed basic call status functionality. This change enables devices that implement specific interfaces (likeIHasDialer) to work with the mobile control system without requiring fullVideoCodecBaseinheritance.Changes
New CallStatusMessenger
Created a new
CallStatusMessengerclass that:IHasDialerinterface instead of requiringVideoCodecBaseinheritanceIHasContentSharingfor devices that implement both interfacesActiveCallsproperty when availableUpdated MobileControlSystemController
Modified
SetupDefaultDeviceMessengers()to implement either/or logic:Benefits
VideoCodecBasedevices continue to work unchangedIHasDialerfor call status messagingVideoCodecBasefor basic call controlVideoCodecBaseMessengerorCallStatusMessengerTesting
Both
PepperDash.Essentials.MobileControl.MessengersandPepperDash.Essentials.MobileControlprojects build successfully with no breaking changes. The implementation maintains full backwards compatibility while enabling the requested interface-based functionality.Fixes #1309.
Warning
Firewall rules blocked me from connecting to one or more addresses
I tried to connect to the following addresses, but was blocked by firewall rules:
crl.entrust.netdotnet restore PepperDash.Essentials.4Series.sln(dns block)ocsp.entrust.netdotnet restore PepperDash.Essentials.4Series.sln(dns block)If you need me to access, download, or install something from one of these locations, you can either:
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.