IBeam.Communications.Sms.Twilio 2.12.2

dotnet add package IBeam.Communications.Sms.Twilio --version 2.12.2
                    
NuGet\Install-Package IBeam.Communications.Sms.Twilio -Version 2.12.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="IBeam.Communications.Sms.Twilio" Version="2.12.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="IBeam.Communications.Sms.Twilio" Version="2.12.2" />
                    
Directory.Packages.props
<PackageReference Include="IBeam.Communications.Sms.Twilio" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add IBeam.Communications.Sms.Twilio --version 2.12.2
                    
#r "nuget: IBeam.Communications.Sms.Twilio, 2.12.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package IBeam.Communications.Sms.Twilio@2.12.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=IBeam.Communications.Sms.Twilio&version=2.12.2
                    
Install as a Cake Addin
#tool nuget:?package=IBeam.Communications.Sms.Twilio&version=2.12.2
                    
Install as a Cake Tool

IBeam.Communications.Sms.Twilio

IBeam.Communications.Sms.Twilio is reserved for a future Twilio-backed ISmsService provider. The current project is scaffolded only and does not yet contain a production SMS implementation.

When To Use This

Do not use this package for production SMS delivery yet.

Use this project when:

  • You are implementing the Twilio provider for IBeam.
  • You need a package placeholder to preserve naming and package structure.
  • You are reviewing provider boundaries before adding real Twilio delivery code.

For production SMS today, use IBeam.Communications.Sms.AzureCommunications or provide a custom ISmsService implementation.

Current Contents

Area Type(s) Purpose
Placeholder Class1 Empty scaffold type.
Package shell IBeam.Communications.Sms.Twilio.csproj Reserves the package name and target framework.

Intended Architecture Fit

When implemented, this package should follow the same IBeam communications provider pattern:

API <-- DTO/model object --> Service <-- Entity --> Repository

Expected boundaries:

  • Domain services call ISmsService.
  • This package implements Twilio SMS transport only.
  • Controllers do not call Twilio SDKs directly.
  • Repositories do not send SMS.
  • Business rules, permissions, and audit operation names stay in consuming services.

Intended Public Surface

A future complete implementation should likely include:

Area Expected Type(s) Purpose
SMS provider TwilioSmsService : ISmsService Sends SmsMessage through Twilio.
Provider options TwilioSmsOptions Holds account SID, auth token/API key, messaging service SID or from number.
DI registration AddIBeamTwilioSms(IConfiguration) Registers Twilio options and ISmsService.
Validation options/message validation Fails fast on missing credentials or sender configuration.
Error translation SmsProviderException, SmsConfigurationException Converts Twilio errors to IBeam exceptions.

Proposed Configuration

This configuration does not exist yet. It is a proposed shape for future implementation:

{
  "IBeam": {
    "Communications": {
      "Sms": {
        "FromPhoneNumber": "+16145551212",
        "Twilio": {
          "AccountSid": "<twilio-account-sid>",
          "AuthToken": "<secret>",
          "MessagingServiceSid": "<optional-messaging-service-sid>",
          "DefaultFromPhoneNumber": "+16145551212"
        }
      }
    }
  }
}

Proposed Usage

This API does not exist yet. It shows the expected provider pattern:

using IBeam.Communications.Abstractions;
using IBeam.Communications.Sms.Twilio;

builder.Services.AddIBeamCommunications(builder.Configuration);
builder.Services.AddIBeamTwilioSms(builder.Configuration);

Consuming services should continue to depend on ISmsService:

public sealed class ReminderSmsService
{
    private readonly ISmsService _sms;

    public ReminderSmsService(ISmsService sms)
    {
        _sms = sms;
    }

    public Task SendReminderAsync(string phoneNumber, CancellationToken ct = default)
    {
        var message = new SmsMessage { Body = "Reminder: your appointment is tomorrow." };
        message.To.Add(phoneNumber);

        return _sms.SendAsync(message, ct: ct);
    }
}

Service Operations, Auditing, And Permissions

When Twilio support is implemented, keep audit and permission boundaries in the consuming service method, not in the Twilio transport.

[IBeamOperation("appointments.reminder.send")]
public Task SendReminderAsync(Guid tenantId, Guid appointmentId, CancellationToken ct = default)
    => _operations.ExecuteAsync(
        this,
        token => SendReminderCoreAsync(tenantId, appointmentId, token),
        new ServiceOperationExecutionOptions
        {
            TenantId = tenantId,
            EntityId = appointmentId
        },
        ct);

Data Storage

This package currently creates no stores. A future Twilio provider should also avoid owning application storage.

Storage Item Created By This Package Notes
Azure Table Storage tables No No schema is owned by this package.
SMS outbox/history No Add a consuming-service repository if durable retry/history is required.
Twilio delivery records No Twilio owns provider-side records.

Extension Points

Extension Point Interface Why Replace It
SMS delivery ISmsService Implement Twilio or replace with another provider.
Provider options future TwilioSmsOptions Configure credentials and sender behavior.
Retry/outbox consuming service/repository Add durable retry and status tracking outside the provider.

Package Relationships

Package Relationship
IBeam.Communications Owns ISmsService, SmsMessage, SmsOptions, validation, and exceptions.
IBeam.Communications.Sms.Twilio Reserved Twilio SMS provider package.
IBeam.Communications.Sms.AzureCommunications Current implemented ACS SMS provider.

Extended Examples And Agent Guidance

Agents implementing this package should first replace the placeholder with a real ISmsService implementation, add options validation, add DI registration, and add provider tests.

Troubleshooting

Problem Likely Cause Fix
ISmsService is not registered by this package Twilio provider is not implemented yet Use Azure SMS or register a custom ISmsService.
No Twilio options exist Package is scaffold-only Add TwilioSmsOptions as part of implementation.
No provider tests exist Package is scaffold-only Add unit tests and opt-in integration tests when implementation begins.

Version Notes

  • Targets net10.0.
  • Current status: scaffold/reserved package, not production-ready.
  • Package version is assigned by the repository release workflow.
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.12.2 50 9/11/2026
2.12.1 52 9/11/2026
2.12.0 52 9/10/2026
2.11.0 95 8/30/2026
2.10.1 102 8/23/2026
2.10.0 94 8/23/2026
2.9.45 94 8/10/2026
2.9.44 107 8/3/2026
2.9.43 108 7/29/2026
2.9.1 111 7/23/2026
2.9.0 107 7/21/2026
2.8.2 113 7/21/2026
2.8.1 111 7/21/2026
2.8.0 105 7/21/2026
2.7.0 104 7/21/2026
2.6.0 103 7/20/2026
2.5.0 100 7/17/2026
2.4.2 103 7/16/2026
2.4.1 108 7/14/2026
2.4.0 106 6/24/2026
Loading failed