Skip to content

Releases: feelautom/SipLine.Plugin.Sdk

SDK v1.2.2 - Do Not Disturb Control API

18 Feb 19:46

Choose a tag to compare

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 automaticallyChecklist

- 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

16 Feb 20:21

Choose a tag to compare

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

16 Feb 05:49

Choose a tag to compare

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.
  • 🔍 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.
  • 🖱️ UI Injection (Context Menus):
    • Plugins can now inject custom actions into right-click menus for Call History and
      Contacts.
  • 🔊 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

14 Feb 13:13
ff81d03

Choose a tag to compare

Merge pull request #1 from feelautom/feat/ci-publish

CI: Add automated publishing workflow and fix versioning