[FEATURE] Create "Lite" Version of Codec for Navigator-only scenarios #67
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.
This PR implements a lightweight Cisco codec implementation specifically designed for Navigator-only scenarios, addressing the need for a more efficient solution when full codec features are not required.
Problem
The current
CiscoCodecimplementation extendsVideoCodecBaseand implements 20+ interfaces, providing comprehensive video conferencing functionality. However, for Navigator-only scenarios, this creates unnecessary overhead:Solution
This implementation introduces a clean interface-based approach that allows both full and lite codec implementations to coexist:
New Components
ICiscoCodecBase Interface
CiscoCodecNavigatorLite Class
EssentialsDevicefor proper framework integrationFactory Integration
{ "type": "ciscoRoomOSNavigatorLite", "properties": { "control": { "method": "ssh", "tcpSshProperties": { "address": "10.1.1.100", "port": 22, "username": "admin" } } } }Key Benefits
🚀 Performance: Reduced memory footprint and faster initialization for Navigator-only scenarios
🔧 Compatibility: Existing
CiscoCodecnow implementsICiscoCodecBaseensuring zero breaking changes⚡ Efficiency: Direct command sending eliminates unnecessary queuing overhead
🎯 Purpose-built: Optimized specifically for Navigator WebView control and mobile integration
What's Supported
✅ Navigator WebView control
✅ Mobile Control integration
✅ UI Extensions support
✅ Basic connectivity monitoring
✅ NavigatorLockoutHandler compatibility
What's Not Included
❌ Call management features
❌ Camera control (SpeakerTrack, PresenterTrack)
❌ Directory/phonebook integration
❌ Booking/scheduling features
❌ Advanced codec status monitoring
Migration Path
Existing installations can easily adopt the lite implementation by changing the device type from
"ciscoRoomOS"to"ciscoRoomOSNavigatorLite"in their configuration. The interface-based design ensures thatNavigatorControllerand related components work seamlessly with both implementations.Testing
Fixes #66.
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 build --verbosity minimal(dns block)ocsp.entrust.netdotnet build --verbosity minimal(dns block)If you need me to access, download, or install something from one of these locations, you can either:
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.