Releases: feelautom/SipLine.Plugin.Sdk
SDK v1.2.2 - Do Not Disturb Control API
This update exposes the Do Not Disturb (DND) state to the plugin layer, enabling
commercial plugins to build schedule-based availability systems, CRM presence sync,
or any workflow that requires controlling call rejection programmatically.
🆕 What's New
📵 DND Control API (IPluginSipService)
Plugins can now read, write, and observe the Do Not Disturb state.
New property:
bool IsDndEnabled { get; set; }
Read the current DND state or activate/deactivate it directly from your plugin.
New event:
event Action<bool>? OnDndChanged;
Subscribe to be notified whenever the DND state changes — whether triggered by the user
or by another plugin.
⚠️ Commercial only: Setting IsDndEnabled is restricted to Commercial-licensed
plugins. Community plugins have read-only access.
🛠️ Testing Library
MockSipService (SipLine.Plugin.Testing) now fully implements IsDndEnabled and
OnDndChanged, allowing you to simulate DND transitions in unit tests:
var mock = new MockPluginContext();
mock.SipService.IsDndEnabled = true;
// OnDndChanged fires automatically
✅ Checklist
- IPluginSipService extended with IsDndEnabled + OnDndChanged
- MockSipService updated for full testability
- Commercial plugin gate enforced in host adapter
- SipLine.Plugin.Dnd schedule plugin built on this API (available separately)Feat: SDK v1.2.1 - Async Interaction APIs, Enhanced Sidebar & Testing Robustness
This update refines the interaction model of the SipLine SDK by introducing asynchronous user feedback loops and improving the UI management of plugin-specific components. It focuses on
reliability and developer experience for complex workflow integrations.
🏗️ Key Improvements
💬 Async Dialog Service (User Feedback):
Plugins can now trigger native modal dialogs to request user confirmation before critical actions.
- New method: ShowDialogAsync(title, message, primary, secondary).
- Fully asynchronous implementation to prevent UI thread blocking.
📂 Smart Sidebar Management (UI Hook):
Enhanced PluginSidebarTab with direct ownership tracking.
- Added PluginId property to allow the host application to intelligently manage and identify custom plugin tabs.
- Improved focus handling for sidebar navigation.
🛠️ Technical Improvements & Fixes
- Testing Library: SipLine.Plugin.Testing updated with a full implementation of MockPluginContext.ShowDialogAsync. This enables unit testing of user-interaction logic without manual UI
intervention. - Dynamic Versioning: Refactored .csproj to use self-resolving path logic for sipline-sdk-version.txt. This ensures perfect version parity across both the development Monorepo and
standalone GitHub Exports. - Build Reliability: Fixed a major compilation regression in PluginContextFactory and MockPluginContext by completing missing interface members.
✅ Checklist
- All new async interfaces implemented in the SDK.
- MockPluginContext updated for end-to-end testing scenarios.
- Version synchronization verified between text files and NuGet metadata.
- UI Host adapters (PluginContext) verified for thread safety (Dispatcher aware).
- CI/CD compatibility confirmed for v1.2.1 packaging.
Feat: SDK v1.2.0 - Industrial Action APIs, Contact Sync & UI Hooks
This major update transforms the SipLine SDK from a "Read-Only" notification system into a
"Bidirectional" orchestration engine. It empowers plugins to take control of the host
application and integrate deeply into the user workflow.
🏗️ Key Industrial Features
- 📞 Call Control (Actuator): Plugins can now actively manage calls.
- New methods: HangupCallAsync, SetHoldAsync, TransferCallAsync.
- 👥 Contact Synchronization (Data Hook):
- Full CRUD support via IPluginContactService to sync external CRM data with
SipLine's local database.
- Full CRUD support via IPluginContactService to sync external CRM data with
- 🔍 Global Search Extension (Search Hook):
- IPluginSearchProvider allows plugins to provide real-time results in the global
search bar (e.g., live CRM lookup). - New "PLUGIN RESULTS" section in the UI.
- IPluginSearchProvider allows plugins to provide real-time results in the global
- 🖱️ UI Injection (Context Menus):
- Plugins can now inject custom actions into right-click menus for Call History and
Contacts.
- Plugins can now inject custom actions into right-click menus for Call History and
- 🔊 Hardware & Audio Control:
- Direct access to volume and microphone mute status via IPluginAudioService.
🛠️ Technical Improvements & Fixes
- Testing Library: SipLine.Plugin.Testing updated with full Mocks for all new services.
- Reliability: Added explicit folder exclusion in .csproj to prevent compilation
conflicts (CS0436) in CI environments. - Robustness: Implemented self-adapting version path resolution for both local Monorepo
and standalone Export builds.
✅ Checklist
- All new interfaces implemented in SDK.
- Host adapters (SipService, ContactService, AudioService) updated.
- Global Search & Context Menu UI hooks verified.
- Demo plugins (HelloWorld, Recordings, Template) upgraded to v1.2.0.
- CI/CD workflow verified for multi-project publishing.
Version 1.0.4
Merge pull request #1 from feelautom/feat/ci-publish CI: Add automated publishing workflow and fix versioning